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: SQL sorgularını güvenlik açıkları için gözden geçirin Bir yöntem, yönteme dize değişkeninden oluşturulmuş dize kullanarak System.Data.IDbCommand.CommandText özelliğini ayarlar. Bu kural, dize değişkeninin kullanıcı girişi içerdiğini varsayar. Kullanıcı girişi ile oluşan SQL komut dizesi, SQL enjeksiyon saldırılarına karşı savunmasız durumdadır.
CA2109: Görünen olay işleyicileri gözden geçirin Ortak veya korunan olay işleme yöntemi algılandı. Olay işleme yöntemleri kesinlikle gerekli olmadığı sürece maruz bırakılmamalıdır.
CA2119: Özel arabirimleri karşılayan yöntemleri mühürleyin 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, derlemenin dışından geçersiz kılınmasını önleyin.
CA2153: Bozuk Durum Özel Durumlarını İşlemekten Kaçının Bozuk Durum Özel Durumları (CSE), işleminizde bellek bozulması 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 seri durumdan çıkarıcı BinaryFormatter 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.
CA2301: BinaryFormatter.Binder'ı ayarlamadan BinaryFormatter.Deserialize çağrısı yapma 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 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.
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 seri durumdan çıkarıcı NetDataContractSerializer 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.
CA2311: NetDataContractSerializer.Binder'ı ayarlamadan seri durumdan çıkarma 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: Seri durumdan çıkarmadan önce NetDataContractSerializer.Binder'ın ayarlandığı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.
CA2315: Güvenli olmayan seri durumdan çıkarıcı 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 çıkarma 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: TypeNameHandling değerlerini None dışında 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 JsonSerializer kullanmayın Ayarlar 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: JsonSerializer Ayarlar 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 çıkarma 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: Seri durumdan çıkarırken JsonSerializer'ın güvenli bir yapılandırması 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 olun Bir saldırgan, güvenilmeyen girişle seri durumdan çıkarırken DataTable 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 olun Bir saldırgan, güvenilmeyen girişle seri durumdan çıkarırken DataSet 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: Seri hale getirilebilir türde güvenli olmayan DataSet veya DataTable, uzaktan kod yürütme saldırılarına karşı savunmasız olabilir ile SerializableAttribute işaretlenen bir sınıf veya yapı, veya DataSetDataTable alanı veya özelliği içerir ve öğesi yoktur GeneratedCodeAttribute.
CA2353: Seri hale getirilebilir türde güvenli olmayan DataSet veya DataTable XML serileştirme özniteliği veya veri sözleşmesi özniteliği ile işaretlenmiş bir sınıf veya yapı ya da DataTable alan DataSet ya da ö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 serileştirilmiş ile seri durumdan çıkarma ve türün nesne grafı veya DataSetDataTableiçerebilir.
CA2355: Seri durumdan çıkarılmış nesne grafında güvenli olmayan DataSet veya DataTable Yayınlanmış veya belirtilen türün nesne grafı veya DataSetDataTableiçerebilirken seri durumdan çıkarma.
CA2356: Web seri durumdan çıkarılmış nesne grafında güvenli olmayan DataSet veya DataTable veya içeren bir System.Web.Services.WebMethodAttribute yöntemin veya System.ServiceModel.OperationContractAttributeDataTableöğesine başvurabilen bir DataSet parametresi vardır.
CA2361: DataSet.ReadXml() içeren otomatik oluşturulan sınıfın güvenilmeyen verilerle kullanılmadığından emin olun Bir saldırgan, güvenilmeyen girişle seri durumdan çıkarırken DataSet 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şturulan serileştirilebilir türdeki güvenli olmayan DataSet veya DataTable, uzaktan kod yürütme saldırılarına karşı savunmasız olabilir ile güvenilmeyen girişi BinaryFormatter seri durumdan çıkarırken ve seri durumdan çıkarılmış nesne grafı veya DataSetDataTableiçerdiğinde, saldırgan uzaktan kod yürütme saldırısı gerçekleştirmek 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çirme 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çirme 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çirme 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çirme 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 ekleme güvenlik açıkları için kodu gözden geçirme Güvenilmeyen girişlerle çalışırken XML ekleme saldırılarına dikkat edin.
CA3010: XAML ekleme güvenlik açıkları için kodu gözden geçirme 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 ekleme güvenlik açıkları için 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 ekleme güvenlik açıkları için kodu gözden geçirme Güvenilmeyen girişlerle çalışırken regex ekleme saldırılarına dikkat edin. Saldırgan normal bir ifadeyi kötü amaçlı olarak değiştirmek, regex'in istenmeyen sonuçlarla eşleşmesini sağlamak veya regex'in hizmet reddi saldırısına neden olan aşırı CPU tüketmesini sağlamak için regex ekleme özelliğini kullanabilir.
CA3061: URL'ye göre şema eklemeyin Tehlikeli dış başvurulara neden olabileceğinden Add yönteminin güvenli olmayan aşırı yüklemesini kullanmayın.
CA3075: Güvensiz 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üvensiz XSLT Betiği 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ı, XML Belgesi ve XML Metin Okuyucusunda Güvensiz İşleme 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: Fiil işleyicilerini ValidateAntiForgeryToken ile 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ı Kullanmayın Güvenli Olmayan Şifreleme Modlarını Kullanmayın
CA5359: Sertifika doğrulamayı devre dışı bırakma 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 döndürürse true, 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şleminde tehlikeli yöntemleri çağırın. 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: Güçlü şifrelemenin SChannel kullanımını devre dışı bırakma ayarı Switch.System.Net.DontEnableSchUseStrongCryptotrue , 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: Seri durumdan çı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ğrulamayı devre dışı bırakma İ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) kodlamasını etkinleştirir. Bu kodlama, üst bilginin içerdiği güvenilmeyen verileri yankılayan bir uygulamadan yararlanan ekleme saldırılarını önlemeye yardımcı olabilir.
CA5366: DataSet Okuma XML'i için XmlReader kullanma Güvenilmeyen verilerle XML okumak için kullanmak DataSet , güvenli çözümleyici ile veya DTD işleme devre dışı bırakılarak kısıtlanması XmlReader gereken tehlikeli dış başvurular yükleyebilir.
CA5367: İşaretçi Alanlarıyla 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ştirilemedi üyeler, statik üyeler veya ile NonSerializedAttributeişaretlenmiş alanlar gibi bir işaretçi olabilir.
CA5368: Sayfadan türetilen sınıflar için ViewStateUserKey değerini ayarlayın özelliğinin ViewStateUserKey ayarlanması, tek tek kullanıcılar için görünüm durumu değişkenine bir tanımlayıcı atamanıza izin vererek uygulamanıza yönelik saldırıları önlemenize yardımcı olabilir, böylece saldırganlar bir saldırı oluşturmak için değişkeni kullanamaz. Aksi takdirde, siteler arası istek sahteciliği için güvenlik açıkları olacaktır.
CA5369: Seri Durumdan Çıkarmak için XmlReader 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ğrulama 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, zayıf anahtar türetme yöntemleri ve Rfc2898DeriveBytes.CryptDeriveKeyçağrısını algılarSystem.Security.Cryptography.PasswordDeriveBytes. System.Security.Cryptography.PasswordDeriveBytes zayıf bir PBKDF1 algoritması kullandı.
CA5374: XslTransform Kullanmayın Bu kural kodda örneği olup olmadığını System.Xml.Xsl.XslTransform 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'sı, hizmet SAS'siyle izin verilmeyen blob kapsayıcıları, tablolar, kuyruklar ve dosya paylaşımlarındaki okuma, yazma ve silme işlemlerine erişim yetkisi verebilir. Ancak kapsayıcı düzeyinde ilkeleri desteklemez ve verilen izinler üzerinde daha az esnekliğe ve denetime sahiptir. Kötü amaçlı kullanıcılar bunu aldıktan sonra depolama hesabınızın gizliliği kolayca tehlikeye girer.
CA5376: SharedAccessProtocol HttpsOnly kullanma SAS, HTTP üzerinde düz metin olarak taşınabilen 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ırakma true Windows İletişim Çerçevesi 'nin (WCF) Aktarım Katmanı Güvenliği (TLS) bağlantılarını TLS 1.0 ile sınırlandırmak için ayarıDisableUsingServicePointManagerSecurityProtocols. 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 algoritmayı SHA1 kullanır. Oluşturucunun bazı aşırı yüklemelerinde kullanılacak karma algoritmasını veya üzerini SHA256 belirtmeniz gerekir. Özelliğin HashAlgorithm yalnızca bir get erişimciye sahip olduğunu ve değiştiricisi olmadığını overridden 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 bilgileri 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ı 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: Yetersiz yineleme sayısıyla zayıf anahtar türetme işlevi kullanmayın Bu kural, tarafından 100.000'den az yineleme sayısına sahip bir şifreleme anahtarının oluşturulıp Rfc2898DeriveBytes 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şlevini kullanırken yeterli yineleme sayısını sağlayın Bu kural, tarafından 100.000'den az olabilecek bir yineleme sayısıyla şifreleme anahtarının oluşturulıp Rfc2898DeriveBytes 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 antiforgery belirteçleri kullanma POSTBir , PUT, veya PATCHDELETE isteğinin, bir sahteciliğe karşı koruma 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şlevi, kitaplığın yüklenecek geçerli çalışma dizini de dahil olmak üzere bir dizi dizini yoklayarak DllImportAttribute çalışır. 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çırma 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 tanımlama bilgilerinin HttpOnly olarak işaretlendiğinden emin olun. Bu, web tarayıcılarının betiklerin tanımlama bilgilerine erişmesine izin vermemesi gerektiğini gösterir. Eklenen kötü amaçlı betikler, tanımlama bilgilerini çalmanın yaygın bir yoludur.
CA5397: Kullanım dışı bırakılmış 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 listesi denetimini 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: CreateEncryptor'ı varsayılan olmayan IV ile 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 ile kullanma Simetrik şifreleme, sözlük saldırılarını önlemek için her zaman tekrarlanamayan bir başlatma vektöru kullanmalıdır.
CA5403: Sertifikayı sabit kodlamayın data Veya X509Certificate oluşturucusunun or rawDataX509Certificate2 parametresi sabit kodlanmış.
CA5404: Belirteç doğrulama denetimlerini devre dışı bırakma TokenValidationParameters belirteç doğrulamasını denetleyen özellikler olarak falseayarlanmamalıdır.
CA5405: Temsilcilerde belirteç doğrulamayı her zaman atlamayın öğesine atanan AudienceValidator veya LifetimeValidator her zaman geri çağırma döndürür true.