Information Disclosure (Bilgilerin Açığa Çıkması)
Bilgilerin açığa çıkması, saldırganın sistem hakkında değerli bilgiler edinmesini sağlar. Bu nedenle, her zaman hangi bilgileri açığa çıkardığını ve kötü amaçlı bir kullanıcı tarafından kullanılıp kullanılamayacağını göz önünde bulundurun. Aşağıdaki listede olası bilgilerin açığa çıkması saldırıları listelenir ve her birine yönelik risk azaltmaları sağlanır.
İleti Güvenliği ve HTTP
HTTP aktarım katmanı üzerinde ileti düzeyi güvenlik kullanıyorsanız, ileti düzeyi güvenliğin HTTP üst bilgilerini korumadığını unutmayın. HTTP üst bilgilerini korumanın tek yolu HTTP yerine HTTPS aktarımı kullanmaktır. HTTPS aktarımı, HTTP üst bilgileri de dahil olmak üzere iletinin tamamının Güvenli Yuva Katmanı (SSL) protokolü kullanılarak şifrelenmesini sağlar.
İlke Bilgileri
İlkenin güvenli tutulması, özellikle hassas verilen belirteç gereksinimlerinin veya belirteç veren bilgilerinin ilkede kullanıma sunulduğu federasyon senaryolarında önemlidir. Bu gibi durumlarda, saldırganların verilen belirteci koyacak taleplerin türü gibi hizmet hakkında bilgi edinmesini veya istemcileri kötü amaçlı belirteç verenlere yönlendirmesini önlemek için federasyon hizmetinin ilke uç noktasının güvenliğini sağlamayı öneririz. Örneğin, bir saldırgan, ortadaki adam saldırısını yürüten bir verende sonlandırmak için federasyon güven zincirini yeniden yapılandırarak kullanıcı adı/parola çiftlerini bulabilir. Ayrıca, bağlamalarını ilke alma yoluyla alan federasyon istemcilerinin, elde edilen federasyon güven zincirindeki verenlere güvendiklerini doğrulamaları önerilir. Federasyon senaryoları hakkında daha fazla bilgi için bkz . Federasyon.
Bellek Dökümleri Talep Bilgilerini Ortaya Çıkarabiliyor
Bir uygulama başarısız olduğunda, Dr. Watson tarafından üretilenler gibi günlük dosyaları talep bilgilerini içerebilir. Bu bilgiler destek ekipleri gibi diğer varlıklara aktarılmamalıdır; aksi takdirde, özel veriler içeren talep bilgileri de dışarı aktarılır. Günlük dosyalarını bilinmeyen varlıklara göndermeyerek bunu azaltabilirsiniz.
Uç Noktası Adresleri
Uç nokta adresi, bir uç noktayla iletişim kurmak için gereken bilgileri içerir. SOAP güvenliği, istemci ile sunucu arasında simetrik anahtar anlaşması yapmak için değiştirilen güvenlik anlaşması iletilerine adresi tam olarak içermelidir. Güvenlik anlaşması bir önyükleme işlemi olduğundan, bu işlem sırasında adres üst bilgileri şifrelenemez. Bu nedenle, adres herhangi bir gizli veri içermemelidir; aksi takdirde, bilgilerin açığa çıkması saldırılarına yol açar.
Aktarılan Sertifikalar Şifrelenmemiş
İstemcinin kimliğini doğrulamak için X.509 sertifikası kullandığınızda, sertifika SOAP üst bilgisinin içinde temiz bir şekilde aktarılır. Bunu, kişisel olarak tanımlanabilir olabilecek bilgilerin (PII) açığa çıkması olarak unutmayın. Bu, iletinin tamamının aktarım düzeyi güvenlikle şifrelendiği mod için TransportWithMessageCredential
bir sorun değildir.
Hizmet Başvuruları
Hizmet başvurusu, başka bir hizmete yapılan başvurudur. Örneğin, bir hizmet bir işlem boyunca bir istemciye hizmet başvurusu geçirebilir. Hizmet başvurusu, uygulama verileri veya kimlik bilgileri gibi bilgileri hedefe açıklamadan önce hedef sorumlunun kimliğini sağlayan bir iç bileşen olan güven kimliği doğrulayıcı ile de kullanılır. Uzak güven kimliği doğrulanamıyorsa veya yanlışsa, gönderenin kendisini, uygulamayı veya kullanıcıyı tehlikeye atabilecek hiçbir verinin açıklanmadığından emin olması gerekir.
Azaltmalar şunları içerir:
Hizmet başvurularının güvenilir olduğu varsayılır. Üzerinde oynanmadığından emin olmak için hizmet başvurusu örneklerini aktarırken dikkatli olun.
Bazı uygulamalar, uzak konak tarafından kanıtlanmış hizmet başvurusu ve güven verileri temelinde etkileşimli güven kurulmasına olanak tanıyan bir kullanıcı deneyimi sunabilir. WCF, böyle bir tesis için genişletilebilirlik noktaları sağlar, ancak kullanıcının bunları uygulaması gerekir.
NTLM
Varsayılan olarak, Windows etki alanı ortamında Windows kimlik doğrulaması, kullanıcıların kimliğini doğrulamak ve yetkilendirmek için Kerberos protokolunu kullanır. Kerberos protokolü bir nedenle kullanılamıyorsa, NT LAN Manager (NTLM) geri dönüş olarak kullanılır. özelliğini false
olarak ayarlayarak AllowNtlm bu davranışı devre dışı bırakabilirsiniz. NTLM'ye izin verme sırasında dikkat edilmesi gereken sorunlar şunlardır:
NTLM, istemci kullanıcı adını kullanıma sunar. Kullanıcı adının gizli tutulması gerekiyorsa bağlamadaki
AllowNTLM
özelliğini olarakfalse
ayarlayın.NTLM sunucu kimlik doğrulaması sağlamaz. Bu nedenle, NTLM'yi kimlik doğrulama protokolü olarak kullandığınızda istemcinin doğru hizmetle iletişim kurduğundan emin olamaz.
İstemci Kimlik Bilgilerini Belirtme veya Geçersiz Kimlik NTLM Kullanımını Zorlar
İstemci oluştururken, etki alanı adı olmadan istemci kimlik bilgilerini belirtirken veya geçersiz bir sunucu kimliği belirtirken, Kerberos protokolü yerine NTLM'nin kullanılmasına neden olur (özellik olarak true
ayarlanırsaAllowNtlm
). NTLM sunucu kimlik doğrulaması yapmadığından, bilgiler açıklanabilir.
Örneğin, aşağıdaki Visual C# kodunda gösterildiği gibi, etki alanı adı olmadan Windows istemci kimlik bilgilerini belirtmek mümkündür.
MyChannelFactory.Credentials.Windows.ClientCredential = new System.Net.NetworkCredential("username", "password");
Kod bir etki alanı adı belirtmez ve bu nedenle NTLM kullanılır.
Etki alanı belirtilirse ancak uç nokta kimliği özelliği kullanılarak geçersiz bir hizmet asıl adı belirtilirse NTLM kullanılır. Uç nokta kimliğinin nasıl belirtildiği hakkında daha fazla bilgi için bkz . Hizmet Kimliği ve Kimlik Doğrulaması.