Aturan keamanan

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

Di bagian ini

Aturan Deskripsi
CA2100: Tinjau kueri SQL untuk kerentanan keamanan Metode mengatur properti System.Data.IDbCommand.CommandText dengan menggunakan string yang dibuat 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 penanganan aktivitas yang terlihat Metode penanganan aktivitas publik atau yang dilindungi telah terdeteksi. Metode penanganan aktivitas tidak boleh diperlihatkan kecuali benar-benar diperlukan.
CA2119: Metode penyegelan yang memenuhi antarmuka privat Jenis publik yang dapat diwarisikan menyediakan penerapan metode yang dapat diganti dari antarmuka internal (Friend dalam Visual Basic). Untuk memperbaiki pelanggaran aturan ini, cegah metode agar tidak diganti di luar rakitan.
CA2153: Hindari Menangani Pengecualian Status Yang Rusak Pengecualian Status Rusak (CSE) menunjukkan bahwa kerusakan memori ada dalam proses Anda. Menangkap ini daripada membiarkan proses mengalami crash dapat menyebabkan kerentanan keamanan jika penyerang dapat menempatkan eksploitasi ke wilayah memori yang rusak.
CA2300: Jangan gunakan BinaryFormatter pendeserialisasi yang tidak aman Pendeserialisasi yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat mengubah data yang diserialisasikan untuk memasukkan jenis tidak terduga untuk menyuntikkan objek dengan efek samping yang berbahaya.
CA2301: Jangan panggil BinaryFormatter.Deserialize tanpa terlebih dahulu mengatur BinaryFormatter.Binder Pendeserialisasi yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat mengubah data yang diserialisasikan untuk memasukkan jenis tidak terduga untuk menyuntikkan objek dengan efek samping yang berbahaya.
CA2302: Pastikan BinaryFormatter.Binder diatur sebelum memanggil BinaryFormatter.Deserialize Pendeserialisasi yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat mengubah data yang diserialisasikan untuk memasukkan jenis tidak terduga untuk menyuntikkan objek dengan efek samping yang berbahaya.
CA2305: Jangan gunakan LosFormatter pendeserialisasi yang tidak aman Pendeserialisasi yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat mengubah data yang diserialisasikan untuk memasukkan jenis tidak terduga untuk menyuntikkan objek dengan efek samping yang berbahaya.
CA2310: Jangan gunakan NetDataContractSerializer pendeserialisasi yang tidak aman Pendeserialisasi yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat mengubah data yang diserialisasikan untuk memasukkan jenis tidak terduga untuk menyuntikkan objek dengan efek samping yang berbahaya.
CA2311: Jangan mendeserialisasi tanpa terlebih dahulu mengatur NetDataContractSerializer.Binder Pendeserialisasi yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat mengubah data yang diserialisasikan untuk memasukkan jenis tidak terduga untuk menyuntikkan objek dengan efek samping yang berbahaya.
CA2312: Pastikan NetDataContractSerializer.Binder diatur sebelum mendeserialisasi Pendeserialisasi yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat mengubah data yang diserialisasikan untuk memasukkan jenis tidak terduga untuk menyuntikkan objek dengan efek samping yang berbahaya.
CA2315: Jangan gunakan ObjectStateFormatter pendeserialisasi yang tidak aman Pendeserialisasi yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat mengubah data yang diserialisasikan untuk memasukkan jenis tidak terduga untuk menyuntikkan objek dengan efek samping yang berbahaya.
CA2321: Jangan mendeserialisasi dengan JavaScriptSerializer menggunakan SimpleTypeResolver Pendeserialisasi yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat mengubah data yang diserialisasikan untuk memasukkan jenis tidak terduga untuk menyuntikkan objek dengan efek samping yang berbahaya.
CA2322: Pastikan JavaScriptSerializer tidak diinisialisasi dengan SimpleTypeResolver sebelum mendeserialisasi Pendeserialisasi yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat mengubah data yang diserialisasikan untuk memasukkan jenis tidak terduga untuk menyuntikkan objek dengan efek samping yang berbahaya.
CA2326: Jangan gunakan nilai TypeNameHandling selain None Pendeserialisasi yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat mengubah data yang diserialisasikan untuk memasukkan jenis tidak terduga untuk menyuntikkan objek dengan efek samping yang berbahaya.
CA2327: Jangan menggunakan JsonSerializerSettings yang tidak aman Pendeserialisasi yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat mengubah data yang diserialisasikan untuk memasukkan jenis tidak terduga untuk menyuntikkan objek dengan efek samping yang berbahaya.
CA2328: Pastikan JsonSerializerSettings aman Pendeserialisasi yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat mengubah data yang diserialisasikan untuk memasukkan jenis tidak terduga untuk menyuntikkan objek dengan efek samping yang berbahaya.
CA2329: Jangan mendeserialisasi dengan JsonSerializer menggunakan konfigurasi yang tidak aman Pendeserialisasi yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat mengubah data yang diserialisasikan untuk memasukkan jenis tidak terduga untuk menyuntikkan objek dengan efek samping yang berbahaya.
CA2330: Pastikan JsonSerializer memiliki konfigurasi yang aman saat mendeserialisasi Pendeserialisasi yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat mengubah data yang diserialisasikan untuk memasukkan jenis tidak terduga untuk menyuntikkan objek dengan efek samping yang berbahaya.
CA2350: Pastikan input DataTable.ReadXml() dipercaya Saat mendeserialisasi DataTable dengan input yang tidak tepercaya, penyerang dapat membuat input berbahaya untuk melakukan penolakan serangan layanan. Mungkin ada kerentanan eksekusi kode jarak jauh yang tidak diketahui.
CA2351: Pastikan input DataSet.ReadXml() tepercaya Saat mendeserialisasi DataSet dengan input yang tidak tepercaya, penyerang dapat membuat input berbahaya untuk melakukan penolakan serangan layanan. Mungkin ada kerentanan eksekusi kode jarak jauh yang tidak diketahui.
CA2352: DataSet atau DataTable yang tidak aman dalam jenis yang dapat diserialisasikan dapat rentan terhadap serangan eksekusi kode jarak jauh Kelas atau struct yang ditandai dengan SerializableAttribute berisi bidang atau properti DataSet atau DataTable, dan tidak memiliki GeneratedCodeAttribute.
CA2353: DataSet atau DataTable yang Tidak Aman dalam jenis yang dapat diserialisasikan Kelas atau struct yang ditandai dengan atribut serialisasi XML atau atribut kontrak data berisi bidang atau properti DataSet atau DataTable.
CA2354: DataSet atau DataTable yang Tidak Aman dalam grafik objek yang dideserialisasi dapat rentan terhadap serangan eksekusi kode jarak jauh Mendeserialisasi dengan System.Runtime.Serialization.IFormatter yang diserialisasikan, dan grafik objek jenis yang ditransmisikan dapat menyertakan DataSet atau DataTable.
CA2355: DataSet atau DataTable yang tidak aman dalam grafik objek yang dideserialisasikan Mendeserialisasi ketika grafik objek yang ditransmisikan atau ditentukan jenisnya dapat menyertakan DataSet atau DataTable.
CA2356: DataSet atau DataTable Tidak Aman dalam grafik objek yang dideserialisasi web Metode dengan System.Web.Services.WebMethodAttribute atau System.ServiceModel.OperationContractAttribute memiliki parameter yang dapat mereferensikan DataSet atau DataTable.
CA2361: Memastikan kelas yang dihasilkan secara otomatis yang berisi DataSet.ReadXml() tidak digunakan dengan data yang tidak tepercaya Saat mendeserialisasi DataSet dengan input yang tidak tepercaya, penyerang dapat membuat input berbahaya untuk melakukan penolakan serangan layanan. Mungkin ada kerentanan eksekusi kode jarak jauh yang tidak diketahui.
CA2362: DataSet atau DataTable yang Tidak Aman dalam jenis yang dapat diserialisasikan yang dapat dibuat secara otomatis dapat menjadi rentan terhadap serangan eksekusi kode jarak jauh Saat mendeserialisasi input yang tidak tepercaya dengan BinaryFormatter dan grafik objek yang dideserialisasi berisi DataSet atau DataTable, penyerang dapat membuat payload berbahaya untuk melakukan serangan eksekusi kode jarak jauh.
CA3001: Tinjau kode untuk kerentanan injeksi SQL Saat bekerja dengan input dan perintah SQL yang tidak dipercaya, berhati-hatilah terhadap serangan injeksi SQL. Serangan injeksi SQL dapat menjalankan perintah SQL berbahaya, menyusupi keamanan dan integritas aplikasi Anda.
CA3002: Tinjau kode untuk kerentanan XSS Saat bekerja dengan input yang tidak tepercaya dari permintaan web, berhati-hatilah terhadap serangan scripting lintas situs (XSS). Serangan XSS menyuntikkan input yang tidak tepercaya ke dalam output HTML mentah, memungkinkan penyerang menjalankan skrip berbahaya atau mengubah konten di halaman web Anda dengan cara yang berbahaya.
CA3003: Tinjau kode untuk kerentanan injeksi jalur file Saat bekerja dengan input yang tidak tepercaya dari permintaan web, berhati-hatilah dalam 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 mendasari, menyusupi 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 guna memberikan tampilan URL yang sah, tetapi mengarahkan pengunjung yang tidak curiga ke phishing atau halaman web berbahaya lainnya.
CA3008: Tinjau kode untuk kerentanan injeksi JalurX Saat bekerja dengan input yang tidak tepercaya, perhatikan serangan injeksi JalurX. Membangun kueri JalurX menggunakan input yang tidak tepercaya dapat memungkinkan penyerang memanipulasi kueri secara berbahaya untuk menampilkan 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: Tinjau kode untuk kerentanan injeksi XAML Saat bekerja dengan input yang tidak tepercaya, perhatikan serangan injeksi XAML. XAML adalah bahasa pemrogram markup yang secara langsung mewakili pembuatan dan eksekusi objek. Hal ini berarti elemen yang dibuat dalam XAML dapat berinteraksi dengan sumber daya sistem (misalnya, akses jaringan dan IO sistem file).
CA3011: Tinjau kode untuk kerentanan injeksi DLL Saat bekerja dengan input yang tidak tepercaya, berhati-hatilah saat 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 regex dengan secara berbahaya, membuat regex cocok dengan hasil yang tidak diinginkan, atau membuat regex menggunakan CPU berlebihan yang mengakibatkan Penolakan serangan Layanan.
CA3061: Jangan tambahkan skema berdasarkan URL Jangan gunakan overload 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 mereferensikan sumber entitas eksternal, pengurai dapat menerima input yang tidak tepercaya dan mengungkapkan informasi sensitif kepada penyerang.
CA3076: Eksekusi Skrip XSLT Tidak Aman Jika Anda menjalankan Extensible StyleSheet Language Transformations (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 Penolakan Layanan dan serangan Lintas Situs.
CA3077: Pemrosesan Tidak Aman dalam Desain API, Dokumen XML, dan Pembaca Teks XML Saat merancang API yang diturunkan dari XMLDocument dan XMLTextReader, perhatikan DtdProcessing. Menggunakan instans DTDProcessing yang tidak aman saat mereferensikan atau menyelesaikan sumber entitas eksternal atau mengatur nilai tidak aman dalam XML dapat menyebabkan pengungkapan informasi.
CA3147: Tandai penangan kata kerja dengan ValidateAntiForgeryToken Saat merancang pengontrol ASP.NET MVC, perhatikan serangan pemalsuan permintaan antar situs. Serangan pemalsuan permintaan antar situs dapat mengirim permintaan berbahaya dari pengguna yang diautentikasi ke pengontrol ASP.NET MVC Anda.
CA5350: Jangan Gunakan Algoritma Kriptografis yang Lemah Algoritma enkripsi dan algoritme hash yang lemah digunakan saat ini karena sejumlah alasan, tetapi keduanya tidak boleh digunakan untuk menjamin kerahasiaan atau integritas data yang dilindungi. Aturan ini dipicu 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 sangat tidak dianjurkan. Aturan ini dipicu ketika aturan menemukan algoritme hash MD5 atau algoritma enkripsi DES atau RC2 dalam kode.
CA5358: Jangan Gunakan Mode Cipher Tidak Aman Jangan Gunakan Mode Sandi 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 menampilkan true, sertifikat apa pun akan lulus validasi.
CA5360: Jangan sebut metode berbahaya dalam deserialisasi Deserialisasi yang tidak aman adalah kerentanan yang terjadi ketika data yang tidak tepercaya digunakan untuk menyalahgunakan logika aplikasi, menimbulkan serangan Denial-of-Service (DoS), atau bahkan menjalankan kode arbitrer setelah dideserialisasi. Pengguna berbahaya seringkali dapat menyalahgunakan fitur deserialisasi ini ketika aplikasi mendeserialisasi data yang tidak tepercaya yang berada di bawah kendali mereka. Secara khusus, panggil metode berbahaya dalam proses deserialisasi. Serangan deserialisasi tidak aman yang berhasil dapat memungkinkan penyerang melakukan serangan seperti serangan DoS, pembobolan autentikasi, dan eksekusi kode jarak jauh.
CA5361: Jangan nonaktifkan penggunaan SChannel dari kripto yang kuat Mengatur Switch.System.Net.DontEnableSchUseStrongCrypto ke true melemahkan kriptografi yang digunakan dalam koneksi Keamanan Lapisan Transportasi (TLS) yang keluar. Kriptografi yang lebih lemah dapat membahayakan kerahasiaan komunikasi antara aplikasi Anda dan server, sehingga memudahkan penyerang untuk mendapatkan data sensitif.
CA5362: Siklus referensi potensial dalam grafik objek yang dideserialisasi Jika mendeserialisasi data yang tidak tepercaya, maka kode apa pun yang memproses grafik objek yang dideserialisasi perlu menangani siklus referensi tanpa masuk ke perulangan tanpa batas. Ini mencakup kode yang merupakan bagian dari panggilan balik deserialisasi dan kode yang memproses grafik objek setelah deserialisasi selesai. Jika tidak, penyerang dapat melakukan Penolakan serangan Layanan dengan data berbahaya yang berisi siklus referensi.
CA5363: Jangan nonaktifkan validasi permintaan Validasi permintaan adalah fitur di ASP.NET yang memeriksa permintaan dan menentukan apakah permintaan tersebut berisi konten yang berpotensi berbahaya yang dapat menyebabkan serangan injeksi, termasuk scripting lintas situs.
CA5364: Jangan gunakan protokol keamanan yang tidak digunakan lagi Keamanan Lapisan Transportasi (TLS) mengamankan komunikasi antar komputer, paling umum dengan Hypertext Transfer Protocol Secure (HTTPS). Versi protokol TLS yang lebih lama kurang aman dibandingkan 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 pengodean karakter kembali ke awal dan baris baru, \r dan \n, yang ditemukan di header respons. Pengodean ini dapat membantu menghindari serangan injeksi yang mengeksploitasi aplikasi yang menggemakan data tidak tepercaya yang disimpan oleh header.
CA5366: Menggunakan XmlReader untuk Xml Baca Himpunan Data Menggunakan DataSet untuk membaca XML dengan data yang tidak tepercaya dapat memuat referensi eksternal yang berbahaya, yang harus dibatasi dengan menggunakan XmlReader dengan penyelesai aman atau dengan pemrosesan DTD yang dinonaktifkan.
CA5367: Jangan Serialisasi Jenis Dengan Bidang Penunjuk Aturan ini memeriksa apakah ada kelas yang dapat diserialisasikan dengan bidang atau properti pointer. Anggota yang tidak dapat diserialisasikan dapat berupa pointer, seperti anggota statik atau bidang yang ditandai dengan NonSerializedAttribute.
CA5368: Atur ViewStateUserKey Untuk Kelas yang Berasal dari Halaman Mengatur properti ViewStateUserKey dapat membantu Anda mencegah serangan pada aplikasi Anda dengan memungkinkan Anda menetapkan pengidentifikasi ke variabel status tampilan untuk masing-masing pengguna sehingga penyerang tidak dapat menggunakan variabel tersebut untuk menghasilkan serangan. Jika tidak, akan ada kerentanan terhadap pemalsuan permintaan antar situs.
CA5369: Gunakan XmlReader untuk Deserialisasi Memproses skema DTD dan XML yang tidak tepercaya dapat mengaktifkan pemuatan referensi eksternal yang berbahaya, yang harus dibatasi dengan menggunakan XmlReader dengan penyelesai aman atau dengan pemrosesan skema sebaris DTD dan XML yang dinonaktifkan.
CA5370: Gunakan XmlReader untuk memvalidasi pembaca Memproses skema DTD dan XML yang tidak tepercaya dapat mengaktifkan pemuatan referensi eksternal yang berbahaya. Pemuatan berbahaya ini dapat dibatasi dengan menggunakan XmlReader dengan penyelesai aman atau dengan pemrosesan skema sebaris DTD dan XML yang dinonaktifkan.
CA5371: Gunakan XmlReader untuk pembacaan skema Memproses skema DTD dan XML yang tidak tepercaya dapat mengaktifkan pemuatan referensi eksternal yang berbahaya. Menggunakan XmlReader dengan penyelesai aman atau dengan pemrosesan skema sebaris DTD dan XML yang dinonaktifkan akan 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 penyelesai aman atau dengan pemrosesan DTD yang dinonaktifkan.
CA5373: Jangan gunakan fungsi turunan kunci yang usang Aturan ini mendeteksi pemanggilan metode turunan kunci lemah System.Security.Cryptography.PasswordDeriveBytes dan Rfc2898DeriveBytes.CryptDeriveKey. System.Security.Cryptography.PasswordDeriveBytes menggunakan algoritma lemah PBKDF1.
CA5374: Jangan Gunakan XslTransform Aturan ini memeriksa apakah System.Xml.Xsl.XslTransform dibuat 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 yang tidak diizinkan dengan SAS layanan. Tetapi, SAS akun tidak mendukung kebijakan tingkat kontainer dan memiliki lebih sedikit fleksibilitas serta kontrol atas izin yang diberikan. Setelah pengguna berbahaya mendapatkannya, akun penyimpanan Anda akan mudah disusupi.
CA5376: Gunakan SharedAccessProtocol HttpsOnly SAS adalah data sensitif yang tidak dapat dikirim dalam teks biasa di HTTP.
CA5377: Menggunakan kebijakan akses tingkat kontainer Kebijakan akses tingkat kontainer dapat diubah atau dicabut kapan saja. Ini memberikan fleksibilitas dan kontrol yang lebih besar atas izin yang diberikan.
CA5378: Jangan nonaktifkan ServicePointManagerSecurityProtocols Mengatur DisableUsingServicePointManagerSecurityProtocols ke true membatasi koneksi Keamanan Lapisan Transportasi (TLS) Windows Communication Framework (WCF) untuk menggunakan TLS 1.0. Versi TLS tersebut tidak akan digunakan lagi.
CA5379: Memastikan algoritma fungsi derivasi kunci cukup kuat Kelas Rfc2898DeriveBytes default menggunakan algoritma SHA1. Anda harus menentukan algoritme hash untuk digunakan dalam beberapa overload konstruktor dengan SHA256 atau lebih tinggi. Perhatikan, properti HashAlgorithm hanya memiliki pengakses get dan tidak memiliki pemodifikasi overridden.
CA5380: Jangan tambahkan sertifikat ke penyimpanan akar Aturan ini mendeteksi kode yang menambahkan sertifikat ke penyimpanan sertifikat Otoritas Sertifikasi Akar Tepercaya. Secara default, penyimpanan sertifikat Otoritas Sertifikasi Akar Tepercaya dikonfigurasi dengan serangkaian CA publik yang telah memenuhi persyaratan Program Sertifikat Akar Microsoft.
CA5381: Pastikan sertifikat tidak ditambahkan ke penyimpanan akar Aturan ini mendeteksi kode yang berpotensi menambahkan sertifikat ke penyimpanan sertifikat Otoritas Sertifikasi Akar Tepercaya. Secara default, penyimpanan sertifikat Otoritas Sertifikasi Akar Tepercaya dikonfigurasi dengan serangkaian otoritas sertifikasi (OS) publik 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 Keamanan Lapisan Transportasi (TLS).
CA5383: Pastikan 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 Keamanan Lapisan Transportasi (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 memadai Kunci RSA yang lebih kecil dari 2048 bit lebih rentan terhadap serangan brute force.
CA5386: Hindari mengodekan nilai SecurityProtocolType secara permanen Keamanan Lapisan Transportasi (TLS) mengamankan komunikasi antar komputer, paling umum 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 adalah yang terbaru. 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 yang lemah dengan jumlah perulangan yang tidak mencukup Aturan ini memeriksa apakah kunci kriptografi dihasilkan oleh Rfc2898DeriveBytes dengan jumlah perulangan kurang dari 100.000. Jumlah perulangan yang lebih tinggi dapat membantu mengurangi serangan kamus yang mencoba menebak kunci kriptografis yang dihasilkan.
CA5388: Memastikan jumlah iterasi yang memadai saat menggunakan fungsi derivasi kunci yang lemah Aturan ini memeriksa apakah kunci kriptografis dibuat oleh Rfc2898DeriveBytes dengan jumlah perulangan yang mungkin kurang dari 100.000. Jumlah perulangan yang lebih tinggi dapat membantu mengurangi serangan kamus yang mencoba menebak kunci kriptografis yang dihasilkan.
CA5389: Jangan tambahkan 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 secara permanen, kunci akan menjadi mudah ditemukan. Bahkan dengan biner yang dikompilasi, mudah bagi pengguna berbahaya untuk mengekstrak kunci. Setelah kunci privat disusupi, teks cipher dapat didekripsi secara langsung dan tidak dilindungi lagi.
CA5391: Gunakan token antiforgery di ASP.NET pengontrol Core MVC Menangani permintaan POST, PUT, PATCH, atau DELETE tanpa memvalidasi token anti pemalsuan mungkin rentan terhadap serangan pemalsuan permintaan antar situs. Serangan pemalsuan permintaan antar situs dapat mengirim permintaan berbahaya dari pengguna yang diautentikasi ke pengontrol ASP.NET Core MVC Anda.
CA5392: Gunakan atribut DefaultDllImportSearchPaths untuk P/Invokes Secara default, P/Invoke berfungsi menggunakan DllImportAttribute menyelidiki sejumlah direktori, termasuk direktori kerja saat ini yang akan dimuat pustaka. Hal ini dapat 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 rakitan. 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 memprediksi nilai sensitif keamanan apa yang akan dihasilkan.
CA5395: Atribut Miss HttpVerb untuk metode tindakan Semua metode tindakan yang membuat, mengedit, menghapus, atau mengubah data perlu dilindungi dengan atribut anti pemalsuan dari serangan pemalsuan permintaan antar situs. Melakukan operasi GET harus menjadi operasi yang aman yang tidak memiliki efek samping dan tidak mengubah data Anda yang disimpan.
CA5396: Atur HttpOnly ke true untuk HttpCookie Sebagai langkah pertahanan mendalam, pastikan cookie HTTP sensitif keamanan ditandai sebagai HttpOnly. Ini menunjukkan 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 Keamanan Lapisan Transportasi (TLS) mengamankan komunikasi antar komputer, paling umum dengan Hypertext Transfer Protocol Secure (HTTPS). Versi protokol TLS yang lebih lama kurang aman dibandingkan 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 dikodekan secara permanen Keamanan Lapisan Transportasi (TLS) mengamankan komunikasi antar komputer, paling umum 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 adalah yang terbaru. Di masa mendatang, TLS 1.2 dan TLS 1.3 mungkin tidak digunakan lagi. Untuk memastikan bahwa aplikasi Anda tetap aman, hindari mengodekan versi protokol secara permanen.
CA5399: Pasti menonaktifkan pemeriksaan daftar pencabutan sertifikat HttpClient Sertifikat yang dicabut tidak dipercaya lagi. Sertifikat yang dicabut dapat digunakan oleh penyerang yang mengirimkan 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. Sertifikat yang dicabut dapat digunakan oleh penyerang yang mengirimkan beberapa data berbahaya atau mencuri data sensitif dalam komunikasi HTTPS.
CA5401: Jangan gunakan CreateEncryptor dengan IV non-default Enkripsi simetris harus selalu menggunakan vektor inisialisasi yang tidak dapat diulang untuk mencegah serangan kamus.
CA5402: Gunakan CreateEncryptor dengan IV default Enkripsi simetris harus selalu menggunakan vektor inisialisasi yang tidak dapat diulang untuk mencegah serangan kamus.
CA5403: Jangan mengodekan sertifikat secara permanen Parameter data atau rawData dari konstruktor X509Certificate atau X509Certificate2 dikodekan secara permanen.
CA5404: Jangan nonaktifkan pemeriksaan validasi token Properti TokenValidationParameters yang tidak boleh diatur ke false oleh validasi token kontrol.
CA5405: Jangan selalu melewatkan validasi token dalam delegasi Panggilan balik yang ditetapkan ke AudienceValidator atau LifetimeValidator selalu mengembalikan true.