Denial of Service (Hizmet Reddi)
Hizmet reddi, bir sistem iletilerin işlenemeyeceği şekilde bunaldığında veya son derece yavaş işlendiğinde oluşur.
Fazla Bellek Tüketimi
Çok sayıda benzersiz yerel ad, ad alanı veya ön ek içeren bir XML belgesi okunurken bir sorun oluşabilir. öğesinden XmlReadertüretilen bir sınıf kullanıyorsanız ve her öğe için , Prefix veya NamespaceURI özelliğini çağırırsanızLocalName, döndürülen dize öğesine NameTableeklenir. tarafından tutulan koleksiyonun NameTable boyutu hiç azalmaz ve dize tanıtıcılarının sanal bir "bellek sızıntısı" oluşturulur.
Azaltmalar şunlardır:
sınıfından türetilir NameTable ve en büyük boyut kotasını zorlar. (Dolduğunda veya NameTable anahtarının NameTable kullanımını önleyemezsiniz.)
Belirtilen özellikleri kullanmaktan kaçının ve bunun yerine yöntemini mümkün olduğunca yöntemiyle IsStartElement kullanınMoveToAttribute; bu yöntemler dize döndürmez ve bu nedenle koleksiyonun aşırı doldurulması NameTable sorununu önler.
Kötü Amaçlı İstemci Hizmete Aşırı Lisans İstekleri Gönderiyor
Kötü amaçlı bir istemci bir hizmeti aşırı lisans istekleriyle bombalarsa, sunucunun aşırı bellek kullanmasına neden olabilir.
Azaltma: Sınıfının aşağıdaki özelliklerini LocalServiceSecuritySettings kullanın:
MaxCachedCookies: sunucunun veya anlaşmadan sonra
SPNego
SSL
önbelleğe alma süresi sınırlanmışSecurityContextToken
en fazla s sayısını denetler.IssuedCookieLifetime: sunucunun
SecurityContextTokens
aşağıdakiSPNego
veyaSSL
anlaşmayla ilgili olarak gerçekleştirdiğinin yaşam ömrünü denetler. Sunucu, bu süre boyunca s'leri önbelleğe alırSecurityContextToken
.MaxPendingSessions: sunucuda oluşturulan ancak uygulama iletilerinin işlenmediği en fazla güvenli konuşma sayısını denetler. Bu kota, istemcilerin hizmette güvenli konuşmalar kurmasını engeller, böylece hizmetin istemci başına durumu korumasına neden olur, ancak bunları hiçbir zaman kullanmaz.
InactivityTimeout: hizmetin, konuşma için istemciden bir uygulama iletisi almadan güvenli bir konuşmayı canlı tutma süresini denetler. Bu kota, istemcilerin hizmette güvenli konuşmalar kurmasını engeller, böylece hizmetin istemci başına durumu korumasına neden olur, ancak bunları hiçbir zaman kullanmaz.
WSDualHttpBinding veya İkili Özel Bağlamalar İstemci Kimlik Doğrulaması Gerektirir
Varsayılan olarak, WSDualHttpBinding güvenlik etkindir. Ancak, istemci kimlik doğrulaması özelliği Noneolarak ayarlanarak ClientCredentialType devre dışı bırakılırsa kötü amaçlı bir kullanıcının üçüncü bir hizmette hizmet reddi saldırısına neden olması mümkündür. Bunun nedeni kötü amaçlı bir istemcinin hizmeti üçüncü bir hizmete ileti akışı göndermeye yönlendirmesi olabilir.
Bunu azaltmak için özelliğini olarak None
ayarlamayın. Ayrıca, ikili ileti deseni olan bir özel bağlama oluştururken bu olasılığı da unutmayın.
Denetim Olay Günlüğü Doldurulabilir
Kötü amaçlı bir kullanıcı denetimin etkinleştirildiğini anlarsa, bu saldırgan denetim girdilerinin yazılması için geçersiz iletiler gönderebilir. Denetim günlüğü bu şekilde doldurulursa, denetim sistemi başarısız olur.
Bunu azaltmak için özelliğini true
olarak ayarlayın SuppressAuditFailure ve denetim davranışını denetlemek için Olay Görüntüleyicisi özelliklerini kullanın. Olay günlüklerini görüntülemek ve yönetmek için Olay Görüntüleyicisi kullanma hakkında daha fazla bilgi için bkz. Olay Görüntüleyicisi. Daha fazla bilgi için bkz . Denetim.
IAuthorizationPolicy'nin Geçersiz Uygulamaları Hizmetin Yanıt Vermemeye Başlamasına Neden Olabilir
yönteminin arabiriminin EvaluateIAuthorizationPolicy hatalı bir uygulamasında çağrılması hizmetin yanıt vermemeye başlamasına neden olabilir.
Azaltma: Yalnızca güvenilen kodu kullanın. Başka bir ifadeyle, yalnızca yazdığınız ve test ettiğiniz veya güvenilir bir sağlayıcıdan gelen kodu kullanın. Güvenilmeyen uzantılarının IAuthorizationPolicy , dikkate alınmadan kodunuz içine takılmasına izin verme. Bu, bir hizmet uygulamasında kullanılan tüm uzantılar için geçerlidir. WCF, genişletilebilirlik noktaları kullanılarak takılı olan uygulama kodu ile yabancı kod arasında herhangi bir ayrım yapmaz.
Kerberos En Büyük Belirteç Boyutu Yeniden Boyutlandırılabilir
bir istemci çok sayıda gruba aitse (gerçek sayı gruplara bağlı olarak değişse de yaklaşık 900), ileti üst bilgisinin bloğu 64 kilobayt'ı aştığında bir sorun oluşabilir. Bu durumda, en fazla Kerberos belirteci boyutunu artırabilirsiniz. Daha büyük Kerberos belirtecini barındırmak için en büyük WCF ileti boyutunu artırmanız da gerekebilir.
Otomatik Kayıt, Makine için Aynı Konu Adına Sahip Birden Çok Sertifikaya Neden Olur
Otomatik kayıt , Windows Server 2003'ün kullanıcıları ve bilgisayarları sertifikalar için otomatik olarak kaydetme özelliğidir. Bir makine, özelliği etkinleştirilmiş bir etki alanında olduğunda, istemci kimlik doğrulamasının hedeflenen amacına sahip bir X.509 sertifikası otomatik olarak oluşturulur ve ağa yeni bir makine katıldığında yerel bilgisayarın Kişisel sertifika deposuna eklenir. Ancak otomatik kayıt, önbellekte oluşturduğu tüm sertifikalar için aynı konu adını kullanır.
Bunun etkisi, WCF hizmetlerinin otomatik kayıt içeren etki alanlarında açılamamasıdır. Bunun nedeni, varsayılan hizmet X.509 kimlik bilgisi arama ölçütlerinin belirsiz olmasıdır çünkü makinenin tam Etki Alanı Adı Sistemi (DNS) adına sahip birden çok sertifika vardır. Bir sertifika otomatik kayıttan kaynaklanır; diğeri kendi kendine verilen bir sertifika olabilir.
Bunu azaltmak için serviceCredentials> üzerinde daha hassas bir arama ölçütü kullanarak kullanılacak sertifikaya <tam olarak başvurun. Örneğin, seçeneğini kullanın FindByThumbprint ve sertifikayı benzersiz parmak izine (karma) göre belirtin.
Otomatik kayıt özelliği hakkında daha fazla bilgi için bkz . Windows Server 2003'te Sertifika Otomatik Kaydı.
Yetkilendirme için Kullanılan Birden Çok Alternatif Konu Adının Sonuncusu
Bir X.509 sertifikası birden çok alternatif konu adı içerdiğinde ve alternatif konu adını kullanarak yetkilendirildiğinizde, yetkilendirme başarısız olabilir.
Yapılandırma Dosyalarını ACL'lerle koruma
CardSpace tarafından verilen belirteçler için kod ve yapılandırma dosyalarında gerekli ve isteğe bağlı talepleri belirtebilirsiniz. Bu, karşılık gelen öğelerin güvenlik belirteci hizmetine gönderilen iletilerde RequestSecurityToken
gönderilmesine neden olur. Saldırgan, gerekli veya isteğe bağlı talepleri kaldırmak için kodu veya yapılandırmayı değiştirebilir ve güvenlik belirteci hizmetinin hedef hizmete erişime izin vermeyen bir belirteç vermesine neden olabilir.
Azaltmak için: Yapılandırma dosyasını değiştirmek için bilgisayara erişim gerektir. Yapılandırma dosyalarının güvenliğini sağlamak için dosya erişim denetim listelerini (ACL' ler) kullanın. WCF, bu kodun yapılandırmadan yüklenmesine izin vermeden önce kodun uygulama dizininde veya genel derleme önbelleğinde olmasını gerektirir. Dizinlerin güvenliğini sağlamak için dizin ACL'lerini kullanın.
Bir Hizmet için En Fazla Güvenli Oturum Sayısına Ulaşıldı
Bir istemcinin kimliği bir hizmet tarafından başarıyla doğrulandığında ve hizmetle güvenli bir oturum kurulduğunda, istemci tarafından iptal edilene veya oturumun süresi dolana kadar hizmet oturumu izler. Oluşturulan her oturum, bir hizmetle en fazla etkin eşzamanlı oturum sayısı sınırına göre sayılır. Bu sınıra ulaşıldığında, bu hizmetle yeni bir oturum oluşturmaya çalışan istemciler, bir veya daha fazla etkin oturumun süresi dolana veya bir istemci tarafından iptal edilene kadar reddedilir. İstemcinin bir hizmetle birden çok oturumu olabilir ve bu oturumlardan her biri sınıra doğru sayılır.
Not
Durum bilgisi olan oturumları kullandığınızda, önceki paragraf geçerli değildir. Durum bilgisi olan oturumlar hakkında daha fazla bilgi için bkz . Nasıl yapılır: Güvenli Oturum için Güvenlik Bağlam Belirteci Oluşturma.
Bunu azaltmak için, sınıfın özelliğini SecurityBindingElement ayarlayarak etkin oturum sayısı üst sınırı ve bir oturum için maksimum yaşam süresi sınırını ayarlayınSecurityBindingElement.