Aracılığıyla paylaş


Güvenlik kuralları

Güvenlik kuralları daha güvenli kitaplıkları ve uygulamaları destekler. Bu kurallar, programınızdaki güvenlik açıklarını önlemeye yardımcı olur. Bu kurallardan herhangi birini devre dışı bırakırsanız nedeni açıkça kodda işaretlemeniz ve ayrıca geliştirme projeniz için belirlenen güvenlik görevlisini bilgilendirmeniz gerekir.

Bu bölümde

Kural Açıklama
CA2100: Güvenlik açıkları için SQL sorgularını gözden geçirin Bir yöntem, methoda verilen bir dize bağımsız değişkeni kullanılarak oluşturulan bir dize aracılığıyla System.Data.IDbCommand.CommandText özelliğini ayarlar. Bu kural, dize bağımsız değişkeninin kullanıcı girişi içerdiğini varsayar. Kullanıcı girişinden oluşturulan bir SQL komut dizesi SQL ekleme saldırılarına karşı savunmasızdır.
CA2109: Görünür olay işleyicilerini gözden geçirin Genel veya korumalı bir olay işleme yöntemi algılandı. Olay işleme yöntemleri kesinlikle gerekli olmadıkça kullanıma sunulmamalıdır.
CA2119: Özel arayüzleri karşılayan seal metodları Devralınabilir genel tür, iç (Visual Basic'te Arkadaş) arabiriminin geçersiz kılınabilir bir yöntem uygulaması sağlar. Bu kuralın ihlalini düzeltmek için yöntemin derleme dışında geçersiz kılınmasını önleyin.
CA2153 : Bozuk Durum Özel Durumlarını İşlemekten Kaçının Bozuk Durum İstisnaları (CSE) işleminizde bellek bozulmasının olduğunu gösterir. İşlemin kilitlenmesine izin vermek yerine bunları yakalamak, bir saldırganın bozuk bellek bölgesine bir açık oluşturabilmesi durumunda güvenlik açıklarına yol açabilir.
CA2300: Güvenli olmayan deseriyalize edici BinaryFormatter kullanmayın Seri durumdan çıkarma işlemi güvenilmeyen verilerle yapıldığında, güvensiz seri durumdan çıkarıcılar savunmasız hale gelir. Saldırgan, kötü amaçlı yan etkilere sahip nesneler eklemek için seri hale getirilmiş verileri beklenmeyen türler içerecek şekilde değiştirebilir.
CA2301: BinaryFormatter.Binder'ı ayarlamadan önce BinaryFormatter.Deserialize çağrısını yapmayın Güvenilmeyen verilerin seri durumdan çıkarılması sırasında güvenli olmayan seri durumdan çıkarıcılar savunmasızdır. Saldırgan, kötü amaçlı yan etkilere sahip nesneler eklemek için seri hale getirilmiş verileri beklenmeyen türler içerecek şekilde değiştirebilir.
CA2302: BinaryFormatter.Deserialize çağrılmadan önce BinaryFormatter.Binder'ın ayarlandığından emin olun Güvenilmeyen veriler seri durumdan çıkarıldığında, güvenli olmayan seri durumdan çıkarıcılar savunmasız hale gelir. Saldırgan, kötü amaçlı yan etkilere sahip nesneler eklemek için seri hale getirilmiş verileri beklenmeyen türler içerecek şekilde değiştirebilir.
CA2305: Güvenli olmayan seri durumdan çıkarıcı LosFormatter kullanmayın Güvenilmeyen verilerin seri durumdan çıkarılması sırasında güvenli olmayan seri durumdan çıkarıcılar savunmasızdır. Saldırgan, kötü amaçlı yan etkilere sahip nesneler eklemek için seri hale getirilmiş verileri beklenmeyen türler içerecek şekilde değiştirebilir.
CA2310: Güvenli olmayan seriden çıkarıcı NetDataContractSerializer kullanmayın Güvensiz seri durumdan çıkarıcılar, güvenilmeyen verilerin seri durumdan çıkarılması sırasında savunmasızdır. Saldırgan, kötü amaçlı yan etkilere sahip nesneler eklemek için seri hale getirilmiş verileri beklenmeyen türler içerecek şekilde değiştirebilir.
CA2311: Önce NetDataContractSerializer.Binder'i ayarlamadan seri durumdan çıkarmayın. Güvenilmeyen verilerin seri durumdan çıkarılması sırasında güvenli olmayan seri durumdan çıkarıcılar savunmasızdır. Saldırgan, kötü amaçlı yan etkilere sahip nesneler eklemek için seri hale getirilmiş verileri beklenmeyen türler içerecek şekilde değiştirebilir.
CA2312: seriden çıkarmadan önce NetDataContractSerializer.Binder'ın ayarlandığından emin olun Güvensiz seri durumdan çıkarıcılar, güvenilmeyen verilerin seri durumdan çıkarılması sırasında savunmasızdır. Saldırgan, kötü amaçlı yan etkilere sahip nesneler eklemek için seri hale getirilmiş verileri beklenmeyen türler içerecek şekilde değiştirebilir.
CA2315: Güvenli olmayan deserializer ObjectStateFormatter kullanmayın Güvenilmeyen verilerin seri durumdan çıkarılması sırasında güvenli olmayan seri durumdan çıkarıcılar savunmasızdır. Saldırgan, kötü amaçlı yan etkilere sahip nesneler eklemek için seri hale getirilmiş verileri beklenmeyen türler içerecek şekilde değiştirebilir.
CA2321: SimpleTypeResolver kullanarak JavaScriptSerializer ile seri durumdan çıkarmayın Güvenilmeyen verilerin seri durumdan çıkarılması sırasında güvenli olmayan seri durumdan çıkarıcılar savunmasızdır. Saldırgan, kötü amaçlı yan etkilere sahip nesneler eklemek için seri hale getirilmiş verileri beklenmeyen türler içerecek şekilde değiştirebilir.
CA2322: seri durumdan çıkarmadan önce JavaScriptSerializer'ın SimpleTypeResolver ile başlatılmadığından emin olun Güvenilmeyen verilerin seri durumdan çıkarılması sırasında güvenli olmayan seri durumdan çıkarıcılar savunmasızdır. Saldırgan, kötü amaçlı yan etkilere sahip nesneler eklemek için seri hale getirilmiş verileri beklenmeyen türler içerecek şekilde değiştirebilir.
CA2326: None dışındaki TypeNameHandling değerlerini kullanmayın Güvenilmeyen verilerin seri durumdan çıkarılması sırasında güvenli olmayan seri durumdan çıkarıcılar savunmasızdır. Saldırgan, kötü amaçlı yan etkilere sahip nesneler eklemek için seri hale getirilmiş verileri beklenmeyen türler içerecek şekilde değiştirebilir.
CA2327: Güvenli olmayan JsonSerializerSettings kullanmayın Güvenilmeyen verilerin seri durumdan çıkarılması sırasında güvenli olmayan seri durumdan çıkarıcılar savunmasızdır. Saldırgan, kötü amaçlı yan etkilere sahip nesneler eklemek için seri hale getirilmiş verileri beklenmeyen türler içerecek şekilde değiştirebilir.
CA2328 : JsonSerializerSettings'in güvenli olduğundan emin olun Güvenilmeyen verilerin seri durumdan çıkarılması sırasında güvenli olmayan seri durumdan çıkarıcılar savunmasızdır. Saldırgan, kötü amaçlı yan etkilere sahip nesneler eklemek için seri hale getirilmiş verileri beklenmeyen türler içerecek şekilde değiştirebilir.
CA2329: Güvenli olmayan bir yapılandırma kullanarak JsonSerializer ile seri durumdan çıkarmayın Güvenilmeyen verilerin seri durumdan çıkarılması sırasında güvenli olmayan seri durumdan çıkarıcılar savunmasızdır. Saldırgan, kötü amaçlı yan etkilere sahip nesneler eklemek için seri hale getirilmiş verileri beklenmeyen türler içerecek şekilde değiştirebilir.
CA2330: Deseriyalize ederken JsonSerializer'ın güvenli bir yapılandırmaya sahip olduğundan emin olun Güvenilmeyen verilerin seri durumdan çıkarılması sırasında güvenli olmayan seri durumdan çıkarıcılar savunmasızdır. Saldırgan, kötü amaçlı yan etkilere sahip nesneler eklemek için seri hale getirilmiş verileri beklenmeyen türler içerecek şekilde değiştirebilir.
CA2350: DataTable.ReadXml() girişinin güvenilir olduğundan emin Güvenilmeyen girişlerle bir DataTable'ın seri durumdan çıkarılması sırasında, saldırgan hizmet reddi saldırısı gerçekleştirmek için kötü amaçlı girişler oluşturabilir. Bilinmeyen uzaktan kod yürütme güvenlik açıkları olabilir.
CA2351 : DataSet.ReadXml() girişinin güvenilir olduğundan emin DataSet'ın güvenilmeyen girişlerle seri durumdan çıkarılması sırasında, bir saldırgan hizmet reddi saldırısı gerçekleştirmek için kötü amaçlı girişler oluşturabilir. Bilinmeyen uzaktan kod yürütme güvenlik açıkları olabilir.
CA2352: Serileştirilebilir türde güvenli olmayan DataSet veya DataTable, uzaktan kod yürütme saldırılarına karşı savunmasız olabilir SerializableAttribute ile işaretlenmiş bir sınıf veya yapı bir DataSet veya DataTable alanı veya özelliği içerir ve GeneratedCodeAttributeyoktur.
CA2353: Serileştirilebilir türde güvenli olmayan DataSet veya DataTable XML serileştirme özniteliği veya veri sözleşmesi özniteliğiyle işaretlenmiş bir sınıf veya yapı, DataSet veya DataTable bir alan veya özellik içerir.
CA2354: Seri durumdan çıkarılmış nesne grafında güvenli olmayan DataSet veya DataTable uzaktan kod yürütme saldırısına karşı savunmasız olabilir Serileştirilmiş bir System.Runtime.Serialization.IFormatter ile seri durumdan çıkarma ve atılan türün nesne grafiği bir DataSet veya DataTableiçerebilir.
CA2355: Seri durumdan çıkarılmış nesne grafında güvenli olmayan bir DataSet veya DataTable Dönüştürülen veya belirtilen türün nesne grafiği bir DataSet veya DataTableiçerebiliyorsa seriden çıkarma.
CA2356: Web'de seri hale getirilmiş nesne grafiğinde güvenli olmayan DataSet veya DataTable System.Web.Services.WebMethodAttribute veya System.ServiceModel.OperationContractAttribute olan bir yöntem, bir DataSet veya DataTable'e başvurabilecek bir parametreye sahiptir.
CA2361: DataSet.ReadXml() içeren otomatik oluşturulan sınıfın güvenilmeyen verilerle kullanılmadığından emin Güvenilmeyen bir girdiyle DataSet'ı seri durumdan çıkarırken, bir saldırgan hizmet reddi saldırısı gerçekleştirmek için kötü amaçlı girişler oluşturabilir. Bilinmeyen uzaktan kod yürütme güvenlik açıkları olabilir.
CA2362: Otomatik olarak oluşturulabilen serileştirilebilir türdeki güvenli olmayan DataSet veya DataTable, uzaktan kod yürütme saldırılarına karşı savunmasız olabilir Güvenilmeyen bir girdi BinaryFormatter ile seri durumdan çıkarılırken ve seri durumdan çıkarılmış nesne grafiği bir DataSet veya DataTableiçerdiğinde, saldırgan uzaktan kod yürütme saldırısı yapmak için kötü amaçlı bir yük oluşturabilir.
CA3001: SQL ekleme güvenlik açıkları için kodu gözden geçirme Güvenilmeyen giriş ve SQL komutlarıyla çalışırken SQL ekleme saldırılarına dikkat edin. SQL ekleme saldırısı kötü amaçlı SQL komutlarını yürüterek uygulamanızın güvenliğini ve bütünlüğünü tehlikeye atabilir.
CA3002: XSS güvenlik açıkları için kodu gözden geçirin Web isteklerinden gelen güvenilmeyen girişlerle çalışırken siteler arası betik (XSS) saldırılarına dikkat edin. XSS saldırısı ham HTML çıkışına güvenilmeyen giriş ekler ve saldırganın kötü amaçlı betikleri yürütmesine veya web sayfanızdaki içeriği kötü amaçlı olarak değiştirmesine olanak sağlar.
CA3003: Dosya yolu ekleme güvenlik açıkları için kodu gözden geçirin Web isteklerinden gelen güvenilmeyen girişlerle çalışırken, dosyaların yollarını belirtirken kullanıcı tarafından denetlenen girişi kullanmaya dikkat edin.
CA3004: Bilgilerin açığa çıkmasıyla ilgili güvenlik açıkları için kodu gözden geçirin Özel durum bilgilerinin açıklanması, saldırganlara uygulamanızın iç işlevleri hakkında içgörüler sağlar ve bu da saldırganların yararlanabilecekleri diğer güvenlik açıklarını bulmasına yardımcı olabilir.
CA3006: İşlem komutu ekleme güvenlik açıkları için kodu gözden geçirin Güvenilmeyen girişlerle çalışırken, komut ekleme saldırılarına dikkat edin. Komut ekleme saldırısı, temel alınan işletim sisteminde kötü amaçlı komutlar yürüterek sunucunuzun güvenliğini ve bütünlüğünü tehlikeye atabilir.
CA3007: Açık yeniden yönlendirme güvenlik açıkları için kodu gözden geçirin Güvenilmeyen girişlerle çalışırken açık yeniden yönlendirme güvenlik açıklarına dikkat edin. Saldırgan, açık yeniden yönlendirme güvenlik açığından yararlanarak web sitenizi kullanarak geçerli bir URL'nin görünümünü verebilir, ancak istenmeyen bir ziyaretçiyi kimlik avına veya başka bir kötü amaçlı web sayfasına yönlendirebilir.
CA3008: XPath ekleme güvenlik açıkları için kodu gözden geçirin Güvenilmeyen girişlerle çalışırken XPath ekleme saldırılarına dikkat edin. Güvenilmeyen giriş kullanarak XPath sorguları oluşturmak, saldırganın istenmeyen bir sonuç döndürmek için sorguyu kötü amaçlı olarak işlemesine ve sorgulanan XML'nin içeriğini açıklamasına olanak tanıyabilir.
CA3009: XML enjeksiyon güvenlik açıklarına karşı kodu gözden geçirin Güvenilmeyen girişlerle çalışırken XML ekleme saldırılarına dikkat edin.
CA3010: XAML ekleme güvenlik açıklarına karşı kodu gözden geçirin Güvenilmeyen girişlerle çalışırken XAML ekleme saldırılarına dikkat edin. XAML, nesne örnekleme ve yürütmeyi doğrudan temsil eden bir işaretleme dilidir. Bu, XAML'de oluşturulan öğelerin sistem kaynaklarıyla (örneğin, ağ erişimi ve dosya sistemi GÇ) etkileşim kurabileceği anlamına gelir.
CA3011: DLL enjeksiyonu güvenlik açıkları açısından kodu gözden geçirme Güvenilmeyen girişlerle çalışırken, güvenilmeyen kodu yüklemeye dikkat edin. Web uygulamanız güvenilmeyen kod yüklerse, bir saldırgan işleminize kötü amaçlı DLL'ler ekleyip kötü amaçlı kod yürütebilir.
CA3012: Regex enjeksiyonu güvenlik açıkları için kodu gözden geçirin Güvenilmeyen girişlerle çalışırken regex ekleme saldırılarına dikkat edin. Bir saldırgan, bir normal ifadeyi kötü amaçlı olarak değiştirebilir, regex'in istenmeyen sonuçlarla eşleşmesini sağlamak veya regex'in aşırı CPU tüketmesine ve bunun sonucunda bir Hizmetin Reddedilmesi saldırısına neden olmak için regex enjeksiyonunu kullanabilir.
CA3061: URL göre şema eklemeyin Tehlikeli dış başvurulara neden olabileceğinden Add yönteminin güvenli olmayan aşırı yüklenmiş halini kullanmayın.
CA3075: Güvenli Olmayan DTD İşleme Güvenli olmayan DTDProcessing örnekleri kullanıyorsanız veya dış varlık kaynaklarına başvuruda bulunursanız, ayrıştırıcı güvenilmeyen girişi kabul edebilir ve hassas bilgileri saldırganlara ifşa edebilir.
CA3076: Güvenli Olmayan XSLT Betik Yürütme .NET uygulamalarında Genişletilebilir Stil Sayfası Dili Dönüştürmelerini (XSLT) güvenli olmayan bir şekilde yürütürseniz, işlemci hassas bilgileri saldırganlara ifşa edebilecek güvenilmeyen URI başvurularını çözümleyip Hizmet Reddi ve Siteler Arası saldırılara yol açabilir.
CA3077: API Tasarımında Güvenli Olmayan İşleme, XML Belgesi ve XML Metin Okuyucusu XMLDocument ve XMLTextReader'dan türetilen bir API tasarlarken DtdProcessing'e dikkat edin. Dış varlık kaynaklarına başvururken veya çözümlenirken güvenli olmayan DTDProcessing örneklerinin kullanılması veya XML'de güvenli olmayan değerler ayarlanması bilgilerin açığa çıkmasına neden olabilir.
CA3147: ValidateAntiForgeryToken ile fiil işleyicilerini işaretleme ASP.NET MVC denetleyicisi tasarlarken siteler arası istek sahteciliği saldırılarına dikkat edin. Siteler arası istek sahteciliği saldırısı, kimliği doğrulanmış bir kullanıcıdan ASP.NET MVC denetleyicinize kötü amaçlı istekler gönderebilir.
CA5350: Zayıf Şifreleme Algoritmaları Kullanmayın Zayıf şifreleme algoritmaları ve karma işlevleri bugün çeşitli nedenlerle kullanılır, ancak korudukları verilerin gizliliğini veya bütünlüğünü garanti etmek için kullanılmamalıdır. Bu kural kodda TripleDES, SHA1 veya RIPEMD160 algoritmaları bulduğunda tetikler.
CA5351: Bozuk Şifreleme Algoritmaları Kullanmayın Bozuk şifreleme algoritmaları güvenli olarak kabul edilmez ve kullanımları kesinlikle önerilmez. Bu kural, kodda MD5 karma algoritmasını veya DES veya RC2 şifreleme algoritmalarını bulduğunda tetikler.
CA5358: Güvenli Olmayan Şifreleme Modlarını Kullanma Güvenli Olmayan Şifreleme Modlarını Kullanmayın
CA5359 : Sertifika doğrulamayı devre dışı bırakmayın Sertifika, sunucunun kimliğini doğrulamaya yardımcı olabilir. İsteklerin istenen sunucuya gönderildiğinden emin olmak için istemciler sunucu sertifikasını doğrulamalıdır. ServerCertificateValidationCallback her zaman truedöndürürse, tüm sertifikalar doğrulamayı geçirir.
CA5360: Seri durumdan çıkarmada tehlikeli yöntemleri çağırmayın Güvenli olmayan seri durumdan çıkarma, bir uygulamanın mantığını kötüye kullanmak, Hizmet Reddi (DoS) saldırısı uygulamak ve hatta seri durumdan çıkarıldıktan sonra rastgele kod yürütmek için güvenilmeyen veriler kullanıldığında oluşan bir güvenlik açığıdır. Uygulama, kendi denetimi altındaki güvenilmeyen verileri seri durumdan çıkarırken kötü amaçlı kullanıcıların bu seri durumdan çıkarma özelliklerini kötüye kullanmaları sıklıkla mümkündür. Özellikle, seri durumdan çıkarma işlemi sırasında tehlikeli yöntemler çağırılmalıdır. Güvenli olmayan seri durumdan çıkarma saldırılarının başarılı olması, saldırganın DoS saldırıları, kimlik doğrulama atlamaları ve uzaktan kod yürütme gibi saldırıları gerçekleştirmesine olanak sağlayabilir.
CA5361: SChannel'ın güçlü şifreleme kullanımını devre dışı bırakma Switch.System.Net.DontEnableSchUseStrongCrypto true olarak ayarlanması, giden Aktarım Katmanı Güvenliği (TLS) bağlantılarında kullanılan şifrelemeyi zayıflatır. Daha zayıf şifreleme, uygulamanızla sunucu arasındaki iletişimin gizliliğini tehlikeye atarak saldırganların hassas verileri dinlemesini kolaylaştırır.
CA5362: Serileştirmeden çıkarılmış nesne grafında olası başvuru döngüsü Güvenilmeyen verilerin seri durumdan çıkarılması durumunda, seri durumdan çıkarılmış nesne grafını işleyen herhangi bir kodun sonsuz döngülere girmeden başvuru döngülerini işlemesi gerekir. Bu hem seri durumdan çıkarma geri çağırmasının parçası olan kodu hem de seri durumdan çıkarma tamamlandıktan sonra nesne grafını işleyen kodu içerir. Aksi takdirde, bir saldırgan başvuru döngüsü içeren kötü amaçlı verilerle Hizmet Reddi saldırısı gerçekleştirebilir.
CA5363: İstek doğrulamasını devre dışı bırakmayın İstek doğrulama, ASP.NET HTTP isteklerini inceleyen ve siteler arası betik oluşturma da dahil olmak üzere ekleme saldırılarına yol açabilecek tehlikeli olabilecek içerik içerip içermediklerini belirleyen bir özelliktir.
CA5364: Kullanım dışı bırakılan güvenlik protokollerini kullanmayın Aktarım Katmanı Güvenliği (TLS), çoğunlukla Köprü Metni Aktarım Protokolü Güvenli (HTTPS) ile bilgisayarlar arasındaki iletişimin güvenliğini sağlar. TLS'nin eski protokol sürümleri TLS 1.2 ve TLS 1.3'ten daha az güvenlidir ve yeni güvenlik açıklarına sahip olma olasılığı daha yüksektir. Riski en aza indirmek için eski protokol sürümlerinden kaçının.
CA5365 : HTTP Üst Bilgi Denetimini Devre Dışı Bırakma HTTP üst bilgi denetimi, yanıt üst bilgilerinde bulunan satır başı ve yeni satır karakterlerinin (\r ve \n) kodlanmasına imkan tanır. Bu kodlama, üst bilgide bulunan güvenilmeyen verileri yankılayan bir uygulamadan faydalanan ekleme saldırılarını önlemeye yardımcı olabilir.
CA5366: DataSet Read XML için XmlReader kullanma Güvenilmeyen verilerle XML okumak için bir DataSet kullanmak tehlikeli dış başvurular yükleyebilir. Bu, güvenli çözümleyiciye sahip bir XmlReader kullanılarak veya DTD işleme devre dışı bırakılarak kısıtlanmalıdır.
CA5367: İşaretçi Alanları Olan Türleri Serileştirmeyin Bu kural, işaretçi alanı veya özelliği olan serileştirilebilir bir sınıf olup olmadığını denetler. Serileştirilemeyen üyeler, statik üyeler veya NonSerializedAttributeile işaretlenmiş alanlar gibi bir işaretçi olabilir.
CA5368: Sayfa türetilen sınıflar için ViewStateUserKey değerini ayarlayın ViewStateUserKey özelliğini ayarlamak, saldırganların bir saldırı oluşturmak için değişkeni kullanamaması için tek tek kullanıcılar için görünüm durumu değişkenine bir tanımlayıcı atamanıza olanak tanıyarak uygulamanıza yönelik saldırıları önlemenize yardımcı olabilir. Aksi takdirde, siteler arası istek sahteciliği için güvenlik açıkları olacaktır.
CA5369: XmlReader'ı seri durumdan çıkarmada kullanma Güvenilmeyen DTD ve XML şemalarının işlenmesi tehlikeli dış başvuruların yüklenmesine olanak tanıyabilir. Bu, güvenli bir çözümleyici ile XmlReader kullanılarak veya DTD ve XML satır içi şema işleme devre dışı bırakılarak kısıtlanmalıdır.
CA5370: Okuyucu doğrulamak için XmlReader kullanma Güvenilmeyen DTD ve XML şemalarının işlenmesi tehlikeli dış başvuruların yüklenmesini sağlayabilir. Bu tehlikeli yükleme, güvenli çözümleyicisi olan bir XmlReader kullanılarak veya DTD ve XML satır içi şema işleme devre dışı bırakılarak kısıtlanabilir.
CA5371: Şema okuma için XmlReader kullanma Güvenilmeyen DTD ve XML şemalarının işlenmesi tehlikeli dış başvuruların yüklenmesini sağlayabilir. XmlReader'ı güvenli bir çözümleyiciyle veya DTD ve XML satır içi şema işleme devre dışı bırakılmış olarak kullanmak bunu kısıtlar.
CA5372: XPathDocument için XmlReader kullanma Güvenilmeyen verilerden XML'nin işlenmesi tehlikeli dış başvurular yükleyebilir. Bu, güvenli bir çözümleyici ile XmlReader kullanılarak veya DTD işleme devre dışı bırakılarak kısıtlanabilir.
CA5373: Eski anahtar türetme işlevini kullanmayın Bu kural, System.Security.Cryptography.PasswordDeriveBytes ve Rfc2898DeriveBytes.CryptDeriveKeyzayıf anahtar türetme yöntemlerinin çağrılması algılar. System.Security.Cryptography.PasswordDeriveBytes zayıf bir PBKDF1 algoritması kullandı.
CA5374: XslTransform Kullanmayın Bu kural, kodda System.Xml.Xsl.XslTransform örneği olup olmadığını denetler. System.Xml.Xsl.XslTransform artık kullanım dışıdır ve kullanılmamalıdır.
CA5375: Hesap paylaşılan erişim imzası kullanmayın Hesap SAS, hizmet SAS ile izin verilmeyen blob kapsayıcıları, tablolar, kuyruklar ve dosya paylaşımlarındaki okuma, yazma ve silme işlemleri için erişim yetkisi verebilir. Ancak kapsayıcı düzeyinde politikaları desteklemez ve tanınan izinler üzerinde daha az esneklik ve denetim sunar. Kötü amaçlı kullanıcılar bunu aldıktan sonra depolama hesabınızın gizliliği kolayca tehlikeye girer.
CA5376: SharedAccessProtocol HttpsOnly Kullanın SAS, HTTP üzerinde düz metin olarak taşınamayan hassas verilerdir.
CA5377: Kapsayıcı düzeyi erişim ilkesini kullanma Kapsayıcı düzeyinde erişim ilkesi istediğiniz zaman değiştirilebilir veya iptal edilebilir. Verilen izinler üzerinde daha fazla esneklik ve denetim sağlar.
CA5378: ServicePointManagerSecurityProtocols devre dışı bırakmayın DisableUsingServicePointManagerSecurityProtocols true olarak ayarlanması, Windows İletişim Çerçevesi'nin (WCF) Aktarım Katmanı Güvenliği (TLS) bağlantılarını TLS 1.0 ile sınırlar. TLS'nin bu sürümü kullanım dışı bırakılacaktır.
CA5379: Anahtar türetme işlevi algoritmasının yeterince güçlü olduğundan emin olun Rfc2898DeriveBytes sınıfı varsayılan olarak SHA1 algoritmasını kullanır. Oluşturucunun bazı aşırı yüklemelerinde kullanılacak karma algoritmasını SHA256 veya daha yüksek bir değerle belirtmeniz gerekir. HashAlgorithm özelliğinin yalnızca bir get erişimcisi olduğunu ve overridden değiştiricisi olmadığını unutmayın.
CA5380: Kök depoya sertifika eklemeyin Bu kural, Güvenilen Kök Sertifika Yetkilileri sertifika deposuna sertifika ekleyen kodu algılar. Varsayılan olarak, Güvenilen Kök Sertifika Yetkilileri sertifika deposu, Microsoft Kök Sertifika Programı gereksinimlerini karşılayan bir dizi genel CA ile yapılandırılır.
CA5381 : Sertifikaların kök depoya eklenmediğinden emin olun Bu kural, Güvenilen Kök Sertifika Yetkilileri sertifika deposuna sertifika ekleme olasılığı olan kodu algılar. Varsayılan olarak, Güvenilen Kök Sertifika Yetkilileri sertifika deposu, Microsoft Kök Sertifika Programı gereksinimlerini karşılayan bir dizi genel sertifika yetkilisi (CA) ile yapılandırılır.
CA5382: ASP.NET Core'da güvenli tanımlama bilgilerini kullanma HTTPS üzerinden kullanılabilen uygulamalar, tarayıcıya tanımlama bilgisinin yalnızca Aktarım Katmanı Güvenliği (TLS) kullanılarak iletilmesi gerektiğini belirten güvenli tanımlama bilgileri kullanmalıdır.
CA5383: ASP.NET Core'da güvenli tanımlama bilgileri kullandığınızdan emin olun HTTPS üzerinden kullanılabilen uygulamalar, tarayıcıya tanımlama bilgisinin yalnızca Aktarım Katmanı Güvenliği (TLS) kullanılarak iletilmesi gerektiğini belirten güvenli tanımlama bilgileri kullanmalıdır.
CA5384: Dijital imza algoritması (DSA) kullanmayın DSA zayıf bir asimetrik şifreleme algoritmasıdır.
CA5385: Yeterli anahtar boyutuna sahip Rivest–Shamir–Adleman (RSA) algoritmasını kullanın 2048 bitten küçük bir RSA anahtarı deneme yanılma saldırılarına karşı daha savunmasızdır.
CA5386: SecurityProtocolType değerini sabit kodlamaktan kaçının Aktarım Katmanı Güvenliği (TLS), çoğunlukla Köprü Metni Aktarım Protokolü Güvenli (HTTPS) ile bilgisayarlar arasındaki iletişimin güvenliğini sağlar. TlS 1.0 ve TLS 1.1 protokol sürümleri kullanım dışı bırakılmıştır, TLS 1.2 ve TLS 1.3 ise günceldir. Gelecekte TLS 1.2 ve TLS 1.3 kullanım dışı bırakılabilir. Uygulamanızın güvenli kalmasını sağlamak için protokol sürümünü sabit kodlamaktan ve en az .NET Framework v4.7.1'i hedeflemekten kaçının.
CA5387: Yeterli yineleme sayısı olmadan zayıf anahtar türetme işlevini kullanmayın Bu kural, Rfc2898DeriveBytes tarafından 100.000'den az yineleme sayısına sahip bir şifreleme anahtarı oluşturulıp oluşturulmadığını denetler. Daha yüksek yineleme sayısı, oluşturulan şifreleme anahtarını tahmin etmeye çalışan sözlük saldırılarına karşı azaltmaya yardımcı olabilir.
CA5388: Zayıf anahtar türetme işlevi kullanırken yeterli yineleme sayısını sağlayın Bu kural, 100.000'den az bir yineleme sayısına sahip Rfc2898DeriveBytes tarafından şifreleme anahtarı oluşturulıp oluşturulmadığını denetler. Daha yüksek yineleme sayısı, oluşturulan şifreleme anahtarını tahmin etmeye çalışan sözlük saldırılarına karşı azaltmaya yardımcı olabilir.
CA5389 : Arşiv öğesinin yolunu hedef dosya sistemi yoluna eklemeyin Dosya yolu göreli olabilir ve beklenen dosya sistemi hedef yolunun dışında dosya sistemi erişimine yol açarak kötü amaçlı yapılandırma değişikliklerine ve lay-and-wait tekniğiyle uzaktan kod yürütülmesine yol açabilir.
CA5390 : Şifreleme anahtarını sabit kodlamayın Simetrik algoritmanın başarılı olması için gizli anahtarın yalnızca gönderen ve alıcı tarafından bilinmesi gerekir. Bir anahtar sabit kodlandığında kolayca bulunur. Derlenmiş ikili dosyalar olsa bile, kötü amaçlı kullanıcıların ayıklaması kolaydır. Özel anahtarın gizliliği ihlal edildikten sonra şifre metninin şifresi doğrudan çözülebilir ve artık korunmaz.
CA5391: ASP.NET Core MVC denetleyicilerinde sahteciliğe karşı belirteçleri kullanma Bir POST, PUT, PATCHveya DELETE isteğinin bir sahteciliği önleme belirtecini doğrulamadan işlenmesi siteler arası istek sahteciliği saldırılarına karşı savunmasız olabilir. Siteler arası istek sahteciliği saldırısı, kimliği doğrulanmış bir kullanıcıdan ASP.NET Core MVC denetleyicinize kötü amaçlı istekler gönderebilir.
CA5392: P/Invokes için DefaultDllImportSearchPaths özniteliğini kullanın Varsayılan olarak, P/Invoke işlevlerini kullanarak kitaplığın yüklenecek geçerli çalışma dizini de dahil olmak üzere bir dizi dizini yoklama DllImportAttribute. Bu, belirli uygulamalar için dll ele geçirmesine yol açan bir güvenlik sorunu olabilir.
CA5393: Güvenli olmayan DllImportSearchPath değeri kullanmayın Varsayılan DLL arama dizinlerinde ve derleme dizinlerinde kötü amaçlı bir DLL olabilir. Ya da uygulamanızın nereden çalıştırıldığına bağlı olarak, uygulamanın dizininde kötü amaçlı bir DLL olabilir.
CA5394: Güvenli olmayan rastgelelik kullanmayın Kriptografik olarak zayıf bir sahte rastgele sayı oluşturucu kullanmak, saldırganın hangi güvenlik duyarlı değerin oluşturulacağını tahmin etmesine olanak tanıyabilir.
CA5395: eylem yöntemleri için HttpVerb özniteliğini kaçırmayın Verileri oluşturan, düzenleyen, silen veya başka bir şekilde değiştiren tüm eylem yöntemlerinin siteler arası istek sahteciliği saldırılarına karşı koruma özniteliğiyle korunması gerekir. GET işlemi gerçekleştirmek, yan etkisi olmayan ve kalıcı verilerinizi değiştirmeyen güvenli bir işlem olmalıdır.
CA5396: HttpCookie için HttpOnly değerini true olarak ayarlayın Derinlemesine savunma önlemi olarak, güvenlik duyarlı HTTP çerezlerinin HttpOnly olarak işaretlendiğinden emin olun. Bu, web tarayıcılarının betiklerin tanımlama bilgilerine erişimini engellemesi gerektiğini belirtir. Eklenen kötü amaçlı betikler, tanımlama bilgilerini çalmanın yaygın bir yoludur.
CA5397: Kullanım dışı bırakılan SslProtocols değerlerini kullanmayın Aktarım Katmanı Güvenliği (TLS), çoğunlukla Köprü Metni Aktarım Protokolü Güvenli (HTTPS) ile bilgisayarlar arasındaki iletişimin güvenliğini sağlar. TLS'nin eski protokol sürümleri TLS 1.2 ve TLS 1.3'ten daha az güvenlidir ve yeni güvenlik açıklarına sahip olma olasılığı daha yüksektir. Riski en aza indirmek için eski protokol sürümlerinden kaçının.
CA5398: sabit kodlanmış SslProtocols değerlerinden kaçının Aktarım Katmanı Güvenliği (TLS), çoğunlukla Köprü Metni Aktarım Protokolü Güvenli (HTTPS) ile bilgisayarlar arasındaki iletişimin güvenliğini sağlar. TlS 1.0 ve TLS 1.1 protokol sürümleri kullanım dışı bırakılmıştır, TLS 1.2 ve TLS 1.3 ise günceldir. Gelecekte TLS 1.2 ve TLS 1.3 kullanım dışı bırakılabilir. Uygulamanızın güvenli kalmasını sağlamak için protokol sürümünü sabit kodlamaktan kaçının.
CA5399: HttpClient sertifika iptal listesini kesinlikle devre dışı bırak İptal edilen sertifikaya artık güvenilmiyor. Saldırganlar tarafından bazı kötü amaçlı verileri geçirirken veya HTTPS iletişiminde hassas verileri çalarken kullanılabilir.
CA5400: HttpClient sertifika iptal listesi denetiminin devre dışı bırakılmadığından emin olun İptal edilen sertifikaya artık güvenilmiyor. Saldırganlar tarafından bazı kötü amaçlı verileri geçirirken veya HTTPS iletişiminde hassas verileri çalarken kullanılabilir.
CA5401: Varsayılan olmayan bir IV ile CreateEncryptor kullanmayın Simetrik şifreleme, sözlük saldırılarını önlemek için her zaman tekrarlanamayan bir başlatma vektöru kullanmalıdır.
CA5402: CreateEncryptor'ı varsayılan IV kullanın Simetrik şifreleme, sözlük saldırılarını önlemek için her zaman tekrarlanamayan bir başlatma vektöru kullanmalıdır.
CA5403: Sertifika sabit kodlamayın X509Certificate veya X509Certificate2 oluşturucusunun data veya rawData parametresi sabit kodlanmıştır.
CA5404: Belirteç doğrulama denetimlerini devre dışı bırakma Belirteç doğrulamasını denetleyen TokenValidationParameters özellikleri falseolarak ayarlanmamalıdır.
CA5405 : Temsilcilerde belirteç doğrulamayı asla atlamayın AudienceValidator veya LifetimeValidator'e atanan geri çağırma fonksiyonu her zaman true'yi döndürür.