Aturan keamanan

Aturan keamanan mendukung pustaka dan aplikasi yang lebih aman. Aturan-aturan ini membantu mencegah kelemahan keamanan dalam program Anda. Jika Anda menonaktifkan salah satu aturan ini, Anda harus dengan jelas menandai alasan dalam kode dan juga memberi tahu petugas keamanan yang ditunjuk untuk proyek pengembangan Anda.

Di bagian ini

Aturan Deskripsi
CA2100: Meninjau kueri SQL untuk kerentanan keamanan Sebuah metode menetapkan properti System.Data.IDbCommand.CommandText dengan menggunakan string yang dibangun dari argumen string ke metode. Aturan ini mengasumsikan bahwa argumen string berisi input pengguna. String perintah SQL yang dibangun dari input pengguna rentan terhadap serangan injeksi SQL.
CA2109: Tinjau penangan peristiwa yang terlihat Metode penanganan peristiwa publik atau terlindungi terdeteksi. Metode penanganan peristiwa tidak boleh diekspos kecuali benar-benar diperlukan.
CA2119: Metode segel yang memuaskan antarmuka pribadi Tipe publik yang diwariskan menyediakan implementasi metode yang terlalu banyakrida dari antarmuka internal (Friend in Visual Basic). Untuk memperbaiki pelanggaran aturan ini, cegah metode tersebut diganti di luar majelis.
CA2153: Hindari Penanganan Pengecualian Negara yang Rusak Corrupted State Exceptions (CSE) menunjukkan bahwa kerusakan memori ada dalam proses Anda. Menangkap ini daripada membiarkan proses crash dapat menyebabkan kerentanan keamanan jika penyerang dapat menempatkan eksploitasi ke wilayah memori yang rusak.
CA2300: Jangan gunakan deserializer BinaryFormatter yang tidak aman Deserializers yang tidak aman rentan ketika deserializing data yang tidak dipercaya. Penyerang dapat memodifikasi data serial untuk menyertakan jenis yang tidak terduga untuk menyuntikkan objek dengan efek samping berbahaya.
CA2301: Jangan panggil BinaryFormatter.Deserialize tanpa pengaturan BinaryFormatter terlebih dahulu. Binder Deserializers yang tidak aman rentan ketika deserializing data yang tidak dipercaya. Penyerang dapat memodifikasi data serial untuk menyertakan jenis yang tidak terduga untuk menyuntikkan objek dengan efek samping berbahaya.
CA2302: Pastikan BinaryFormatter. Binder diatur sebelum menelepon BinaryFormatter.Deserialize Deserializers yang tidak aman rentan ketika deserializing data yang tidak dipercaya. Penyerang dapat memodifikasi data serial untuk menyertakan jenis yang tidak terduga untuk menyuntikkan objek dengan efek samping berbahaya.
CA2305: Jangan gunakan deserializer LosFormatter yang tidak aman Deserializers yang tidak aman rentan ketika deserializing data yang tidak dipercaya. Penyerang dapat memodifikasi data serial untuk menyertakan jenis yang tidak terduga untuk menyuntikkan objek dengan efek samping berbahaya.
CA2310: Jangan gunakan deserializer NetDataContractSerializer yang tidak aman Deserializers yang tidak aman rentan ketika deserializing data yang tidak dipercaya. Penyerang dapat memodifikasi data serial untuk menyertakan jenis yang tidak terduga untuk menyuntikkan objek dengan efek samping berbahaya.
CA2311: Jangan deserialize tanpa terlebih dahulu mengatur NetDataContractSerializer. Binder Deserializers yang tidak aman rentan ketika deserializing data yang tidak dipercaya. Penyerang dapat memodifikasi data serial untuk menyertakan jenis yang tidak terduga untuk menyuntikkan objek dengan efek samping berbahaya.
CA2312: Pastikan NetDataContractSerializer. Binder ditetapkan sebelum deserializing Deserializers yang tidak aman rentan ketika deserializing data yang tidak dipercaya. Penyerang dapat memodifikasi data serial untuk menyertakan jenis yang tidak terduga untuk menyuntikkan objek dengan efek samping berbahaya.
CA2315: Jangan gunakan deserializer ObjectStateFormatter yang tidak aman Deserializers yang tidak aman rentan ketika deserializing data yang tidak dipercaya. Penyerang dapat memodifikasi data serial untuk menyertakan jenis yang tidak terduga untuk menyuntikkan objek dengan efek samping berbahaya.
CA2321: Jangan deserialize dengan JavaScriptSerializer menggunakan SimpleTypeResolver Deserializers yang tidak aman rentan ketika deserializing data yang tidak dipercaya. Penyerang dapat memodifikasi data serial untuk menyertakan jenis yang tidak terduga untuk menyuntikkan objek dengan efek samping berbahaya.
CA2322: Pastikan JavaScriptSerializer tidak diinsialisasi dengan SimpleTypeResolver sebelum deserializing Deserializers yang tidak aman rentan ketika deserializing data yang tidak dipercaya. Penyerang dapat memodifikasi data serial untuk menyertakan jenis yang tidak terduga untuk menyuntikkan objek dengan efek samping berbahaya.
CA2326: Jangan gunakan nilai TypeNameHandling selain Tidak Ada Deserializers yang tidak aman rentan ketika deserializing data yang tidak dipercaya. Penyerang dapat memodifikasi data serial untuk menyertakan jenis yang tidak terduga untuk menyuntikkan objek dengan efek samping berbahaya.
CA2327: Jangan gunakan JsonSerializerSettings yang tidak aman Deserializers yang tidak aman rentan ketika deserializing data yang tidak dipercaya. Penyerang dapat memodifikasi data serial untuk menyertakan jenis yang tidak terduga untuk menyuntikkan objek dengan efek samping berbahaya.
CA2328: Pastikan JsonSerializerSettings aman Deserializers yang tidak aman rentan ketika deserializing data yang tidak dipercaya. Penyerang dapat memodifikasi data serial untuk menyertakan jenis yang tidak terduga untuk menyuntikkan objek dengan efek samping berbahaya.
CA2329: Jangan deserialize dengan JsonSerializer menggunakan konfigurasi yang tidak aman Deserializers yang tidak aman rentan ketika deserializing data yang tidak dipercaya. Penyerang dapat memodifikasi data serial untuk menyertakan jenis yang tidak terduga untuk menyuntikkan objek dengan efek samping berbahaya.
CA2330: Pastikan JsonSerializer memiliki konfigurasi yang aman saat deserializing Deserializers yang tidak aman rentan ketika deserializing data yang tidak dipercaya. Penyerang dapat memodifikasi data serial untuk menyertakan jenis yang tidak terduga untuk menyuntikkan objek dengan efek samping berbahaya.
CA2350: Pastikan input DataTable.ReadXml() dipercaya Saat deserializing a DataTable dengan input yang tidak tepercaya, penyerang dapat membuat input berbahaya untuk melakukan serangan denial of service. Mungkin ada kerentanan eksekusi kode jarak jauh yang tidak diketahui.
CA2351: Pastikan input DataSet.ReadXml() dipercaya Saat deserializing a DataSet dengan input yang tidak tepercaya, penyerang dapat membuat input berbahaya untuk melakukan serangan denial of service. Mungkin ada kerentanan eksekusi kode jarak jauh yang tidak diketahui.
CA2352: DataSet tidak aman atau DataTable dalam jenis serializable dapat rentan terhadap serangan eksekusi kode jarak jauh Kelas atau struktur yang ditandai dengan SerializableAttribute berisi bidang atau DataTable properti, dan tidak memiliki GeneratedCodeAttribute.DataSet
CA2353: DataSet tidak aman atau DataTable dalam tipe serializable Kelas atau struct yang ditandai dengan atribut serialisasi XML atau atribut kontrak data berisi DataSet bidang atau DataTable properti.
CA2354: DataSet tidak aman atau DataTable dalam grafik objek yang tidak didedealisasi dapat rentan terhadap serangan eksekusi kode jarak jauh Deserialisasi dengan System.Runtime.Serialization.IFormatter serial, dan grafik objek tipe yang dicor dapat mencakup a DataSet atau DataTable.
CA2355: DataSet tidak aman atau DataTable dalam grafik objek yang tidak didedealisasi Deserializing ketika grafik objek tipe yang dicor atau ditentukan dapat mencakup a DataSet atau DataTable.
CA2356: DataSet Tidak Aman atau DataTable dalam grafik objek deserialized web Metode dengan atau System.Web.Services.WebMethodAttributeSystem.ServiceModel.OperationContractAttribute memiliki parameter yang dapat mereferensikan a DataSet atau DataTable.
CA2361: Pastikan kelas autogenerated yang berisi DataSet.ReadXml() tidak digunakan dengan data yang tidak tepercaya Saat deserializing a DataSet dengan input yang tidak tepercaya, penyerang dapat membuat input berbahaya untuk melakukan serangan denial of service. Mungkin ada kerentanan eksekusi kode jarak jauh yang tidak diketahui.
CA2362: DataSet tidak aman atau DataTable dalam jenis serializable yang dapat dioto fungsi otomatis dapat rentan terhadap serangan eksekusi kode jarak jauh Ketika deserializing input yang tidak dipercaya dengan BinaryFormatter dan grafik objek deserialized berisi a DataSet atau DataTable, penyerang dapat membuat payload berbahaya untuk melakukan serangan eksekusi kode jarak jauh.
CA3001: Kode ulasan untuk kerentanan injeksi SQL Saat bekerja dengan input dan perintah SQL yang tidak tepercaya, berhati-hatilah dengan serangan injeksi SQL. Serangan injeksi SQL dapat menjalankan perintah SQL berbahaya, membahayakan keamanan dan integritas aplikasi Anda.
CA3002: Tinjau kode untuk kerentanan XSS Saat bekerja dengan input yang tidak tepercaya dari permintaan web, perhatikan serangan skrip lintas situs (XSS). Serangan XSS menyuntikkan input yang tidak tepercaya ke dalam output HTML mentah, memungkinkan penyerang untuk mengeksekusi skrip berbahaya atau memodifikasi konten dengan jahat di halaman web Anda.
CA3003: Tinjau kode untuk kerentanan injeksi jalur file Saat bekerja dengan input yang tidak tepercaya dari permintaan web, berhati-hatilah untuk menggunakan input yang dikontrol pengguna saat menentukan jalur ke file.
CA3004: Tinjau kode untuk kerentanan pengungkapan informasi Mengungkapkan informasi pengecualian memberi penyerang wawasan tentang internal aplikasi Anda, yang dapat membantu penyerang menemukan kerentanan lain untuk dieksploitasi.
CA3006: Tinjau kode untuk kerentanan injeksi perintah proses Saat bekerja dengan input yang tidak tepercaya, perhatikan serangan injeksi perintah. Serangan injeksi perintah dapat menjalankan perintah berbahaya pada sistem operasi yang mendasarinya, membahayakan keamanan dan integritas server Anda.
CA3007: Tinjau kode untuk kerentanan pengalihan terbuka Saat bekerja dengan input yang tidak tepercaya, perhatikan kerentanan pengalihan terbuka. Penyerang dapat mengeksploitasi kerentanan pengalihan terbuka untuk menggunakan situs web Anda untuk memberikan tampilan URL yang sah, tetapi mengarahkan pengunjung yang tidak curiga ke phishing atau halaman web berbahaya lainnya.
CA3008: Tinjau kode untuk kerentanan injeksi XPath Saat bekerja dengan input yang tidak tepercaya, perhatikan serangan injeksi XPath. Membangun kueri XPath menggunakan input yang tidak tepercaya memungkinkan penyerang untuk memanipulasi kueri dengan jahat untuk mengembalikan hasil yang tidak diinginkan, dan mungkin mengungkapkan konten XML yang dikueri.
CA3009: Tinjau kode untuk kerentanan injeksi XML Saat bekerja dengan input yang tidak tepercaya, perhatikan serangan injeksi XML.
CA3010: Kode ulasan untuk kerentanan injeksi XAML Saat bekerja dengan input yang tidak tepercaya, perhatikan serangan injeksi XAML. XAML adalah bahasa markup yang secara langsung mewakili instantiasi dan eksekusi objek. Itu berarti elemen yang dibuat di XAML dapat berinteraksi dengan sumber daya sistem (misalnya, akses jaringan dan sistem file IO).
CA3011: Tinjau kode untuk kerentanan injeksi DLL Saat bekerja dengan input yang tidak tepercaya, berhati-hatilah untuk memuat kode yang tidak tepercaya. Jika aplikasi web Anda memuat kode yang tidak tepercaya, penyerang mungkin dapat menyuntikkan DLL berbahaya ke dalam proses Anda dan menjalankan kode berbahaya.
CA3012: Tinjau kode untuk kerentanan injeksi regex Saat bekerja dengan input yang tidak tepercaya, perhatikan serangan injeksi regex. Penyerang dapat menggunakan injeksi regex untuk memodifikasi ekspresi reguler dengan jahat, untuk membuat regex cocok dengan hasil yang tidak diinginkan, atau untuk membuat regex mengkonsumsi CPU yang berlebihan yang mengakibatkan serangan Denial of Service.
CA3061: Jangan menambahkan skema menurut URL Jangan gunakan kelebihan beban yang tidak aman dari metode Tambahkan karena dapat menyebabkan referensi eksternal yang berbahaya.
CA3075: Pemrosesan DTD tidak aman Jika Anda menggunakan instans DTDProcessing yang tidak aman atau referensi sumber entitas eksternal, parser dapat menerima input yang tidak tepercaya dan mengungkapkan informasi sensitif kepada penyerang.
CA3076: Eksekusi Skrip XSLT yang Tidak Aman Jika Anda menjalankan Transformasi Bahasa StyleSheet Extensible (XSLT) di aplikasi .NET dengan tidak aman, prosesor dapat menyelesaikan referensi URI yang tidak tepercaya yang dapat mengungkapkan informasi sensitif kepada penyerang, yang mengarah ke Denial of Service dan serangan Lintas Situs.
CA3077: Pemrosesan Tidak Aman dalam Desain API, Dokumen XML, dan Pembaca Teks XML Saat merancang API yang berasal dari XMLDocument dan XMLTextReader, perhatikan DtdProcessing. Menggunakan instans DTDProcessing yang tidak aman saat mereferensikan atau menyelesaikan sumber entitas eksternal atau menetapkan nilai tidak aman dalam XML dapat menyebabkan pengungkapan informasi.
CA3147: Tandai penangan kata kerja dengan ValidateAntiForgeryToken Saat merancang pengontrol MVC ASP.NET, perhatikan serangan pemalsuan permintaan lintas situs. Serangan pemalsuan permintaan lintas situs dapat mengirim permintaan berbahaya dari pengguna yang diautentikasi ke pengontrol MVC ASP.NET Anda.
CA5350: Jangan Gunakan Algoritma Kriptografi yang Lemah Algoritma enkripsi yang lemah dan fungsi hashing digunakan saat ini karena sejumlah alasan, tetapi mereka tidak boleh digunakan untuk menjamin kerahasiaan atau integritas data yang mereka lindungi. Aturan ini memicu ketika menemukan algoritma TripleDES, SHA1, atau RIPEMD160 dalam kode.
CA5351: Jangan Gunakan Algoritma Kriptografi yang Rusak Algoritma kriptografi yang rusak tidak dianggap aman dan penggunaannya harus sangat tidak dianjurkan. Aturan ini memicu ketika menemukan algoritma hash MD5 atau algoritma enkripsi DES atau RC2 dalam kode.
CA5358: Jangan Gunakan Mode Cipher yang Tidak Aman Jangan Gunakan Mode Cipher yang Tidak Aman
CA5359: Jangan nonaktifkan validasi sertifikat Sertifikat dapat membantu mengautentikasi identitas server. Klien harus memvalidasi sertifikat server untuk memastikan permintaan dikirim ke server yang dituju. Jika ServerCertificateValidationCallback selalu kembali true, sertifikat apa pun akan lulus validasi.
CA5360: Jangan menyebut metode berbahaya dalam deserialisasi Deserialisasi tidak aman adalah kerentanan yang terjadi ketika data yang tidak dipercaya digunakan untuk menyalahgunakan logika aplikasi, menimbulkan serangan Denial-of-Service (DoS), atau bahkan mengeksekusi kode arbitrer di atasnya yang didekriminalisasi. Seringkali pengguna jahat dapat menyalahgunakan fitur deserialisasi ini ketika aplikasi deserializing data yang tidak tepercaya yang berada di bawah kendali mereka. Secara khusus, panggil metode berbahaya dalam proses deserialisasi. Serangan deserialisasi yang tidak aman yang berhasil dapat memungkinkan penyerang untuk melakukan serangan seperti serangan DoS, bypass otentikasi, dan eksekusi kode jarak jauh.
CA5361: Jangan nonaktifkan penggunaan SChannel dari crypto yang kuat Pengaturan Switch.System.Net.DontEnableSchUseStrongCrypto untuk true melemahkan kriptografi yang digunakan dalam koneksi Transport Layer Security (TLS) keluar. Kriptografi yang lebih lemah dapat membahayakan kerahasiaan komunikasi antara aplikasi Anda dan server, sehingga memudahkan penyerang untuk menguping data sensitif.
CA5362: Siklus referensi potensial dalam grafik objek deserialized Jika deserializing data yang tidak dipercaya, maka setiap kode yang memproses grafik objek yang dideerialisasi perlu menangani siklus referensi tanpa masuk ke loop tak terbatas. Ini termasuk kode yang merupakan bagian dari callback deserialisasi dan kode yang memproses grafik objek setelah deserialisasi selesai. Jika tidak, penyerang dapat melakukan serangan Denial-of-Service dengan data berbahaya yang berisi siklus referensi.
CA5363: Jangan nonaktifkan validasi permintaan Validasi permintaan adalah fitur dalam ASP.NET yang memeriksa permintaan HTTP dan menentukan apakah mereka mengandung konten yang berpotensi berbahaya yang dapat menyebabkan serangan injeksi, termasuk skrip lintas situs.
CA5364: Jangan gunakan protokol keamanan yang tidak digunakan lagi Transport Layer Security (TLS) mengamankan komunikasi antara komputer, paling sering dengan Hypertext Transfer Protocol Secure (HTTPS). Versi protokol TLS yang lebih lama kurang aman daripada TLS 1.2 dan TLS 1.3 dan lebih cenderung memiliki kerentanan baru. Hindari versi protokol yang lebih lama untuk meminimalkan risiko.
CA5365: Jangan Nonaktifkan Pemeriksaan Header HTTP Pemeriksaan header HTTP memungkinkan pengkodean pengembalian pengangkutan dan karakter baris baru, \r dan \n, yang ditemukan di header respons. Pengkodean ini dapat membantu menghindari serangan injeksi yang mengeksploitasi aplikasi yang menggemakan data yang tidak tepercaya yang terkandung oleh header.
CA5366: Gunakan XmlReader Untuk DataSet Read XML DataSet Menggunakan XML untuk membaca dengan data yang tidak dipercaya dapat memuat referensi eksternal yang berbahaya, yang harus dibatasi dengan menggunakan XmlReader resolver yang aman atau dengan pemrosesan DTD dinonaktifkan.
CA5367: Jangan membuat serialisasi jenis dengan bidang penunjuk Aturan ini memeriksa apakah ada kelas yang dapat diserialkan dengan bidang penunjuk atau properti. Anggota yang tidak dapat diserialkan dapat menjadi penunjuk, seperti anggota statis atau bidang yang ditandai dengan NonSerializedAttribute.
CA5368: Atur ViewStateUserKey Untuk Kelas yang Berasal dari Halaman ViewStateUserKey Mengatur properti dapat membantu Anda mencegah serangan pada aplikasi Anda dengan memungkinkan Anda menetapkan pengenal ke variabel status tampilan untuk pengguna individual sehingga penyerang tidak dapat menggunakan variabel untuk menghasilkan serangan. Jika tidak, akan ada kerentanan untuk pemalsuan permintaan lintas situs.
CA5369: Gunakan XmlReader untuk Deserialize Memproses skema DTD dan XML yang tidak tepercaya dapat memungkinkan pemuatan referensi eksternal yang berbahaya, yang harus dibatasi dengan menggunakan XmlReader dengan resolver aman atau dengan pemrosesan skema sebaris DTD dan XML dinonaktifkan.
CA5370: Gunakan XmlReader untuk memvalidasi pembaca Memproses skema DTD dan XML yang tidak tepercaya dapat memungkinkan pemuatan referensi eksternal yang berbahaya. Pemuatan berbahaya ini dapat dibatasi dengan menggunakan XmlReader dengan resolver yang aman atau dengan pemrosesan skema sebaris DTD dan XML dinonaktifkan.
CA5371: Gunakan XmlReader untuk membaca skema Memproses skema DTD dan XML yang tidak tepercaya dapat memungkinkan pemuatan referensi eksternal yang berbahaya. Menggunakan XmlReader dengan resolver aman atau dengan pemrosesan skema inline DTD dan XML dinonaktifkan membatasi hal ini.
CA5372: Gunakan XmlReader untuk XPathDocument Memproses XML dari data yang tidak tepercaya dapat memuat referensi eksternal yang berbahaya, yang dapat dibatasi dengan menggunakan XmlReader dengan resolver yang aman atau dengan pemrosesan DTD dinonaktifkan.
CA5373: Jangan gunakan fungsi derivasi kunci usang Aturan ini mendeteksi pemanggilan metode System.Security.Cryptography.PasswordDeriveBytes derivasi kunci yang lemah dan Rfc2898DeriveBytes.CryptDeriveKey. System.Security.Cryptography.PasswordDeriveBytes menggunakan algoritma PBKDF1 yang lemah.
CA5374: Jangan Gunakan XslTransform Aturan ini memeriksa apakah System.Xml.Xsl.XslTransform instantiated dalam kode. System.Xml.Xsl.XslTransform sekarang sudah usang dan tidak boleh digunakan.
CA5375: Jangan gunakan tanda tangan akses bersama akun SAS akun dapat mendelegasikan akses untuk membaca, menulis, dan menghapus operasi pada kontainer blob, tabel, antrean, dan berbagi file yang tidak diizinkan dengan SAS layanan. Namun, itu tidak mendukung kebijakan tingkat kontainer dan memiliki lebih sedikit fleksibilitas dan kontrol atas izin yang diberikan. Setelah pengguna jahat mendapatkannya, akun penyimpanan Anda akan disusupi dengan mudah.
CA5376: Gunakan SharedAccessProtocol HttpsOnly SAS adalah data sensitif yang tidak dapat diangkut dalam teks biasa di HTTP.
CA5377: Gunakan kebijakan akses tingkat kontainer Kebijakan akses tingkat kontainer dapat dimodifikasi atau dicabut kapan saja. Ini memberikan fleksibilitas dan kontrol yang lebih besar atas izin yang diberikan.
CA5378: Jangan nonaktifkan ServicePointManagerSecurityProtocols Pengaturan DisableUsingServicePointManagerSecurityProtocols untuk true membatasi koneksi Communication Framework (WCF) Transport Layer Security (TLS) Windows untuk menggunakan TLS 1.0. Versi TLS itu akan dihentikan lagi.
CA5379: Pastikan algoritma fungsi derivasi kunci cukup kuat Kelas Rfc2898DeriveBytes default untuk menggunakan SHA1 algoritma. Anda harus menentukan algoritma hash untuk digunakan dalam beberapa kelebihan konstruktor dengan SHA256 atau lebih tinggi. Perhatikan, HashAlgorithm properti hanya memiliki get aksesori dan tidak memiliki overriden pengubah.
CA5380: Jangan menambahkan sertifikat ke toko root Aturan ini mendeteksi kode yang menambahkan sertifikat ke penyimpanan sertifikat Otoritas Sertifikasi Akar Tepercaya. Secara default, penyimpanan sertifikat Otoritas Sertifikasi Akar Tepercaya dikonfigurasi dengan seperangkat CAs publik yang telah memenuhi persyaratan Program Sertifikat Akar Microsoft.
CA5381: Pastikan sertifikat tidak ditambahkan ke penyimpanan root Aturan ini mendeteksi kode yang berpotensi menambahkan sertifikat ke penyimpanan sertifikat Otoritas Sertifikasi Akar Tepercaya. Secara default, penyimpanan sertifikat Trusted Root Certification Authorities dikonfigurasi dengan seperangkat otoritas sertifikasi publik (CAs) yang telah memenuhi persyaratan Program Sertifikat Akar Microsoft.
CA5382: Gunakan cookie aman di ASP.NET Core Aplikasi yang tersedia melalui HTTPS harus menggunakan cookie aman, yang menunjukkan kepada browser bahwa cookie hanya boleh ditransmisikan menggunakan Transport Layer Security (TLS).
CA5383: Pastikan penggunaan cookie aman di ASP.NET Core Aplikasi yang tersedia melalui HTTPS harus menggunakan cookie aman, yang menunjukkan kepada browser bahwa cookie hanya boleh ditransmisikan menggunakan Transport Layer Security (TLS).
CA5384: Jangan gunakan algoritma tanda tangan digital (DSA) DSA adalah algoritma enkripsi asimetris yang lemah.
CA5385: Gunakan algoritma Rivest–Shamir–Adleman (RSA) dengan ukuran kunci yang cukup Kunci RSA yang lebih kecil dari 2048 bit lebih rentan terhadap serangan brute force.
CA5386: Hindari hardcoding SecurityProtocolType value Transport Layer Security (TLS) mengamankan komunikasi antara komputer, paling sering dengan Hypertext Transfer Protocol Secure (HTTPS). Versi protokol TLS 1.0 dan TLS 1.1 tidak digunakan lagi, sementara TLS 1.2 dan TLS 1.3 saat ini. Di masa mendatang, TLS 1.2 dan TLS 1.3 mungkin tidak digunakan lagi. Untuk memastikan bahwa aplikasi Anda tetap aman, hindari hardcoding versi protokol dan targetkan setidaknya .NET Framework v4.7.1.
CA5387: Jangan gunakan fungsi derivasi kunci lemah dengan jumlah iterasi yang tidak mencukupi Aturan ini memeriksa apakah kunci kriptografi dihasilkan Rfc2898DeriveBytes dengan jumlah iterasi kurang dari 100.000. Jumlah iterasi yang lebih tinggi dapat membantu mengurangi serangan kamus yang mencoba menebak kunci kriptografi yang dihasilkan.
CA5388: Pastikan jumlah iterasi yang cukup saat menggunakan fungsi derivasi kunci lemah Aturan ini memeriksa apakah kunci kriptografi dihasilkan Rfc2898DeriveBytes dengan jumlah iterasi yang mungkin kurang dari 100.000. Jumlah iterasi yang lebih tinggi dapat membantu mengurangi serangan kamus yang mencoba menebak kunci kriptografi yang dihasilkan.
CA5389: Jangan menambahkan jalur item arsip ke jalur sistem file target Jalur file dapat relatif dan dapat menyebabkan akses sistem file di luar jalur target sistem file yang diharapkan, yang mengarah ke perubahan konfigurasi berbahaya dan eksekusi kode jarak jauh melalui teknik lay-and-wait.
CA5390: Jangan kunci enkripsi kode keras Agar algoritma simetris berhasil, kunci rahasia harus diketahui hanya oleh pengirim dan penerima. Ketika kunci dikodekan dengan keras, itu mudah ditemukan. Bahkan dengan binari yang dikompilasi, mudah bagi pengguna jahat untuk mengekstraknya. Setelah kunci pribadi disusupi, teks cipher dapat didekripsi secara langsung dan tidak dilindungi lagi.
CA5391: Gunakan token antiforgery di ASP.NET Core pengontrol MVC POSTMenangani , PUT, , PATCH, atau DELETE permintaan tanpa memvalidasi token antiforgery mungkin rentan terhadap serangan pemalsuan permintaan lintas situs. Serangan pemalsuan permintaan lintas situs dapat mengirim permintaan berbahaya dari pengguna yang diautentikasi ke pengontrol MVC ASP.NET Core Anda.
CA5392: Gunakan atribut DefaultDllImportSearchPaths untuk P/Invokes Secara default, fungsi P/Invoke menggunakan DllImportAttribute probe sejumlah direktori, termasuk direktori kerja saat ini untuk dimuat perpustakaan. Ini bisa menjadi masalah keamanan untuk aplikasi tertentu, yang mengarah ke pembajakan DLL.
CA5393: Jangan gunakan nilai DllImportSearchPath yang tidak aman Mungkin ada DLL berbahaya di direktori pencarian DLL default dan direktori perakitan. Atau, tergantung dari mana aplikasi Anda dijalankan, mungkin ada DLL berbahaya di direktori aplikasi.
CA5394: Jangan gunakan keacakan yang tidak aman Menggunakan generator nomor pseudo-acak yang lemah secara kriptografis memungkinkan penyerang untuk memprediksi nilai sensitif keamanan apa yang akan dihasilkan.
CA5395: Atribut Miss HttpVerb untuk metode tindakan Semua metode tindakan yang membuat, mengedit, menghapus, atau memodifikasi data harus dilindungi dengan atribut antiforgery dari serangan pemalsuan permintaan lintas situs. Melakukan operasi GET harus menjadi operasi yang aman yang tidak memiliki efek samping dan tidak mengubah data Anda yang bertahan.
CA5396: Atur HttpOnly ke true untuk HttpCookie Sebagai pertahanan dalam ukuran mendalam, pastikan cookie HTTP sensitif keamanan ditandai sebagai HttpOnly. Ini berarti browser web harus melarang skrip mengakses cookie. Skrip berbahaya yang disuntikkan adalah cara umum untuk mencuri cookie.
CA5397: Jangan gunakan nilai SslProtocols yang tidak digunakan lagi Transport Layer Security (TLS) mengamankan komunikasi antara komputer, paling sering dengan Hypertext Transfer Protocol Secure (HTTPS). Versi protokol TLS yang lebih lama kurang aman daripada TLS 1.2 dan TLS 1.3 dan lebih cenderung memiliki kerentanan baru. Hindari versi protokol yang lebih lama untuk meminimalkan risiko.
CA5398: Hindari nilai SslProtocols yang di-hardcode Transport Layer Security (TLS) mengamankan komunikasi antara komputer, paling sering dengan Hypertext Transfer Protocol Secure (HTTPS). Versi protokol TLS 1.0 dan TLS 1.1 tidak digunakan lagi, sementara TLS 1.2 dan TLS 1.3 saat ini. Di masa mendatang, TLS 1.2 dan TLS 1.3 mungkin tidak digunakan lagi. Untuk memastikan bahwa aplikasi Anda tetap aman, hindari hardcoding versi protokol.
CA5399: Pasti menonaktifkan pemeriksaan daftar pencabutan sertifikat HttpClient Sertifikat yang dicabut tidak dipercaya lagi. Ini dapat digunakan oleh penyerang yang melewati beberapa data berbahaya atau mencuri data sensitif dalam komunikasi HTTPS.
CA5400: Pastikan pemeriksaan daftar pencabutan sertifikat HttpClient tidak dinonaktifkan Sertifikat yang dicabut tidak dipercaya lagi. Ini dapat digunakan oleh penyerang yang melewati beberapa data berbahaya atau mencuri data sensitif dalam komunikasi HTTPS.
CA5401: Jangan gunakan CreateEncryptor dengan NON-default IV Enkripsi simetris harus selalu menggunakan vektor inisialisasi yang tidak dapat diulang untuk mencegah serangan kamus.
CA5402: Gunakan CreateEncryptor dengan default IV Enkripsi simetris harus selalu menggunakan vektor inisialisasi yang tidak dapat diulang untuk mencegah serangan kamus.
CA5403: Jangan sertifikat kode keras Parameter data atau rawData konstruktor X509Certificate2X509Certificate adalah kode keras.
CA5404: Jangan nonaktifkan pemeriksaan validasi token TokenValidationParameters properti yang mengontrol validasi token tidak boleh diatur ke false.
CA5405: Jangan selalu melewatkan validasi token di delegasi Callback yang ditetapkan atau AudienceValidatorLifetimeValidator selalu kembali true.