Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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
| Peraturan | Deskripsi |
|---|---|
| CA2100: Tinjau kueri SQL untuk kerentanan keamanan | Metode mengatur properti System.Data.IDbCommand.CommandText dengan menggunakan string yang dibangun dari argumen string untuk metode tersebut. Aturan ini mengasumsikan bahwa argumen string berisi input pengguna. String perintah SQL yang dibangun dari input pengguna rentan terhadap serangan injeksi SQL. |
| CA2109: Meninjau penanganan aktivitas yang terlihat | Metode penanganan peristiwa publik atau terlindungi terdeteksi. Metode penanganan peristiwa tidak boleh diekspos kecuali benar-benar diperlukan. |
| CA2119: Metode segel yang memenuhi antarmuka privat | Jenis publik yang dapat diwariskan menyediakan implementasi metode yang dapat diganti dari antarmuka internal (Teman di Visual Basic). Untuk memperbaiki pelanggaran aturan ini, cegah metode agar tidak ditimpa di luar assembly. |
| CA2153: Hindari Memproses Pengecualian Status yang Korup | Pengecualian Status Rusak (CSE) menunjukkan bahwa kerusakan memori terdapat dalam proses Anda. Menangkap ini daripada memungkinkan proses crash dapat menyebabkan kerentanan keamanan jika penyerang dapat menempatkan eksploitasi ke wilayah memori yang rusak. |
| CA2300: Jangan gunakan deserializer yang tidak aman BinaryFormatter | Deserializer yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat memodifikasi data berseri untuk menyertakan jenis tak terduga untuk menyuntikkan objek dengan efek samping berbahaya. |
| CA2301: Jangan panggil BinaryFormatter.Deserialize tanpa terlebih dahulu mengatur BinaryFormatter.Binder | Deserializer yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat memodifikasi data berseri untuk menyertakan jenis tak terduga untuk menyuntikkan objek dengan efek samping berbahaya. |
| CA2302: Pastikan BinaryFormatter.Binder diatur sebelum memanggil BinaryFormatter.Deserialize | Deserializer yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat memodifikasi data berseri untuk menyertakan jenis tak terduga untuk menyuntikkan objek dengan efek samping berbahaya. |
| CA2305: Jangan gunakan deserializer LosFormatter yang tidak aman digunakan | Deserializer yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat memodifikasi data berseri untuk menyertakan jenis tak terduga untuk menyuntikkan objek dengan efek samping berbahaya. |
| CA2310: Jangan gunakan deserializer yang tidak aman NetDataContractSerializer | Deserializer yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat memodifikasi data berseri untuk menyertakan jenis tak terduga untuk menyuntikkan objek dengan efek samping berbahaya. |
| CA2311: Jangan deserialisasi tanpa terlebih dahulu mengatur NetDataContractSerializer.Binder | Deserializer yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat memodifikasi data berseri untuk menyertakan jenis tak terduga untuk menyuntikkan objek dengan efek samping berbahaya. |
| CA2312: Pastikan NetDataContractSerializer.Binder diatur sebelum deserialisasi | Deserializer yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat memodifikasi data berseri untuk menyertakan jenis tak terduga untuk menyuntikkan objek dengan efek samping berbahaya. |
| CA2315: Jangan gunakan deserializer yang tidak aman ObjectStateFormatter | Deserializer yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat memodifikasi data berseri untuk menyertakan jenis tak terduga untuk menyuntikkan objek dengan efek samping berbahaya. |
| CA2321: Jangan deserialisasi dengan JavaScriptSerializer menggunakan SimpleTypeResolver | Deserializer yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat memodifikasi data berseri untuk menyertakan jenis tak terduga untuk menyuntikkan objek dengan efek samping berbahaya. |
| CA2322: Pastikan JavaScriptSerializer tidak diinisialisasi dengan SimpleTypeResolver sebelum deserialisasi | Deserializer yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat memodifikasi data berseri untuk menyertakan jenis tak terduga untuk menyuntikkan objek dengan efek samping berbahaya. |
| CA2326: Jangan gunakan nilai TypeNameHandling selain None | Deserializer yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat memodifikasi data berseri untuk menyertakan jenis tak terduga untuk menyuntikkan objek dengan efek samping berbahaya. |
| CA2327: Jangan gunakan JsonSerializerSettings yang tidak aman | Deserializer yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat memodifikasi data berseri untuk menyertakan jenis tak terduga untuk menyuntikkan objek dengan efek samping berbahaya. |
| CA2328: Pastikan JsonSerializerSettings aman | Deserializer yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat memodifikasi data berseri untuk menyertakan jenis tak terduga untuk menyuntikkan objek dengan efek samping berbahaya. |
| CA2329: Jangan deserialisasi dengan JsonSerializer menggunakan konfigurasi yang tidak aman | Deserializer yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat memodifikasi data berseri untuk menyertakan jenis tak terduga untuk menyuntikkan objek dengan efek samping berbahaya. |
| CA2330: Pastikan JsonSerializer memiliki konfigurasi yang aman saat mendeserialisasi | Deserializer yang tidak aman rentan saat mendeserialisasi data yang tidak tepercaya. Penyerang dapat memodifikasi data berseri untuk menyertakan jenis tak terduga untuk menyuntikkan objek dengan efek samping berbahaya. |
| CA2350: Pastikan input DataTable.ReadXml() tepercaya | Saat mendeserialisasi DataTable dengan input yang tidak tepercaya, penyerang dapat membuat input berbahaya untuk melakukan serangan penolakan 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 serangan penolakan layanan. Mungkin ada kerentanan eksekusi kode jarak jauh yang tidak diketahui. |
| CA2352: Himpunan Data tidak aman atau DataTable dalam jenis yang dapat diserialisasikan dapat rentan terhadap serangan eksekusi kode jarak jauh | Kelas atau struktur yang ditandai dengan SerializableAttribute berisi bidang atau properti DataSet atau DataTable, dan tidak memiliki GeneratedCodeAttribute. |
| CA2353: Himpunan Data tidak aman atau DataTable dalam jenis yang dapat diserialisasikan | Kelas atau struktur yang ditandai dengan atribut serialisasi XML atau atribut kontrak data berisi bidang atau properti DataSet atau DataTable. |
| CA2354: Himpunan Data tidak aman atau DataTable dalam grafik objek yang dideserialisasi dapat rentan terhadap serangan eksekusi kode jarak jauh | Deserialisasi dengan objek yang diserialisasikan sebagai System.Runtime.Serialization.IFormatter, dan grafik objek dari tipe yang telah dikonversi dapat menyertakan DataSet atau DataTable. |
| CA2355: Himpunan Data tidak aman atau DataTable dalam grafik objek yang dideserialisasi | Deserialisasi ketika grafik objek dari jenis yang di-cast atau ditentukan dapat menyertakan DataSet atau DataTable. |
| CA2356: Himpunan Data tidak aman atau DataTable 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 dibuat 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 serangan penolakan layanan. Mungkin ada kerentanan eksekusi kode jarak jauh yang tidak diketahui. |
| CA2362: Himpunan Data tidak aman atau DataTable dalam jenis serial yang dibuat secara otomatis dapat 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 muatan berbahaya untuk melakukan serangan eksekusi kode jarak jauh. |
| CA3001: Meninjau kode untuk kerentanan injeksi SQL | Saat bekerja dengan input yang tidak tepercaya dan perintah SQL, perhatikan serangan injeksi SQL. Serangan injeksi SQL dapat menjalankan perintah SQL berbahaya, mengorbankan keamanan dan integritas aplikasi Anda. |
| CA3002: Tinjau kode untuk kerentanan XSS | Saat bekerja dengan masukan yang tidak terjamin dari permintaan web, perhatikan kemungkinan serangan scripting lintas situs (XSS). Serangan XSS menyuntikkan input yang tidak tepercaya ke dalam output HTML mentah, memungkinkan penyerang untuk menjalankan skrip berbahaya atau memodifikasi konten dengan berbahaya di halaman web Anda. |
| CA3003: Meninjau kode untuk kerentanan injeksi pada jalur file | Saat bekerja dengan input yang tidak tepercaya dari permintaan web, perhatikan penggunaan 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: Meninjau kode untuk kerentanan injeksi perintah pada proses | Saat bekerja dengan input yang tidak tepercaya, perhatikan serangan injeksi perintah. Serangan injeksi perintah dapat menjalankan perintah berbahaya pada sistem operasi yang mendasar, mengorbankan 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 mengalihkan pengunjung yang tidak curiga ke phishing atau halaman web berbahaya lainnya. |
| CA3008: Memeriksa kode untuk adanya kerentanan injeksi XPath | Saat bekerja dengan input yang tidak tepercaya, perhatikan serangan injeksi XPath. Membuat kueri XPath menggunakan input yang tidak tepercaya dapat memungkinkan penyerang memanipulasi kueri dengan berbahaya untuk mengembalikan hasil yang tidak diinginkan, dan mungkin mengungkapkan konten XML yang dikueri. |
| CA3009: Meninjau kode untuk kerentanan injeksi XML | Saat bekerja dengan input yang tidak tepercaya, perhatikan serangan injeksi XML. |
| CA3010: Periksa kode untuk kerentanan injeksi XAML | Saat bekerja dengan input yang tidak tepercaya, perhatikan serangan injeksi XAML. XAML adalah bahasa markup yang secara langsung mewakili instansiasi dan eksekusi objek. Itu berarti elemen yang dibuat di XAML dapat berinteraksi dengan sumber daya sistem (misalnya, akses jaringan dan IO sistem file). |
| CA3011: Tinjau kode untuk mengidentifikasi kerentanan injeksi DLL | Saat bekerja dengan input yang tidak tepercaya, perhatikan pemuatan 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, berikan perhatian terhadap serangan injeksi regex. Penyerang dapat menggunakan injeksi regex untuk memodifikasi ekspresi reguler dengan berbahaya, untuk membuat regex cocok dengan hasil yang tidak diinginkan, atau untuk membuat regex mengonsumsi CPU yang berlebihan yang mengakibatkan serangan Penolakan Layanan. |
| CA3061: Jangan tambahkan skema dengan URL | Jangan gunakan kelebihan beban tidak aman dari metode Tambahkan karena dapat menyebabkan referensi eksternal yang berbahaya. |
| CA3075: Pemrosesan DTD yang 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 berasal dari XMLDocument dan XMLTextReader, perhatikan DtdProcessing. Menggunakan instans DTDProcessing yang tidak aman saat mereferensikan atau menyelesaikan sumber entitas eksternal atau mengatur nilai yang 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 lemah | Algoritma enkripsi yang lemah dan fungsi hashing digunakan saat ini karena sejumlah alasan, tetapi 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 Sandi 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 dimaksudkan. Jika ServerCertificateValidationCallback selalu mengembalikan true, sertifikat apa pun akan melewati 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 jahat sering kali berpotensi untuk 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 yang berhasil tidak aman dapat memungkinkan penyerang untuk melakukan serangan seperti serangan DoS, bypass autentikasi, dan eksekusi kode jarak jauh. |
| CA5361: Jangan nonaktifkan penggunaan kripto yang kuat oleh SChannel | Mengubah Switch.System.Net.DontEnableSchUseStrongCrypto ke true akan melemahkan kriptografi yang digunakan dalam koneksi TLS yang keluar. Kriptografi yang lebih lemah dapat membahayakan kerahasiaan komunikasi antara aplikasi Anda dan server, sehingga lebih mudah bagi penyerang untuk menguping data sensitif. |
| CA5362: Siklus referensi potensial dalam grafik objek deserialisasi | Jika mendeserialisasi data yang tidak tepercaya, maka kode apa pun yang memproses grafik objek yang dideserialisasi perlu menangani siklus referensi tanpa masuk ke perulangan tak terbatas. Ini termasuk kedua kode yang merupakan bagian dari panggilan balik deserialisasi dan kode yang memproses grafik objek setelah deserialisasi selesai. Jika tidak, penyerang dapat melakukan serangan Penolakan Layanan 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 berisi konten yang berpotensi berbahaya yang dapat menyebabkan serangan injeksi, termasuk pembuatan skrip 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 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 pengodean karakter carriage return dan newline, \r dan \n, yang ditemukan di header respons. Pengodean ini dapat membantu menghindari serangan injeksi yang mengeksploitasi aplikasi yang memantulkan data yang tidak tepercaya yang terdapat dalam header. |
| CA5366: Gunakan XmlReader Untuk Himpunan Data Read XML | Menggunakan DataSet untuk membaca XML dengan data yang tidak tepercaya dapat memuat referensi eksternal berbahaya, yang harus dibatasi dengan menggunakan XmlReader dengan resolver aman atau dengan pemrosesan DTD dinonaktifkan. |
| CA5367: Jangan Serialisasi Tipe Dengan Bidang Pointer | Aturan ini memeriksa apakah ada kelas yang dapat diserialisasikan dengan bidang atau properti penunjuk. Anggota yang tidak dapat diserialisasikan dapat menjadi penunjuk, seperti anggota statis atau bidang yang ditandai dengan NonSerializedAttribute. |
| CA5368: Atur ViewStateUserKey Untuk Kelas Turunan dari Halaman | Mengatur properti ViewStateUserKey dapat membantu Anda mencegah serangan pada aplikasi Anda dengan memungkinkan Anda menetapkan pengidentifikasi 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: Menggunakan XmlReader untuk Deserialisasi | Memproses skema DTD dan XML yang tidak tepercaya dapat memungkinkan pemuatan referensi eksternal 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 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 sebaris DTD dan XML yang dinonaktifkan membatasi ini. |
| CA5372: Gunakan XmlReader untuk XPathDocument | Memproses XML dari data yang tidak tepercaya dapat memuat referensi eksternal berbahaya, yang dapat dibatasi dengan menggunakan XmlReader dengan resolver aman atau dengan pemrosesan DTD dinonaktifkan. |
| CA5373: Jangan gunakan fungsi derivasi kunci usang | Aturan ini mendeteksi pemanggilan metode derivasi 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 diinisialisasi dalam kode. System.Xml.Xsl.XslTransform sekarang usang dan tidak boleh digunakan. |
| CA5375: Jangan gunakan tanda tangan akses bersama akun | SAS akun dapat mendelegasikan akses untuk melakukan operasi membaca, menulis, dan menghapus pada kontainer blob, tabel, antrean, dan berbagi file yang tidak diizinkan dengan SAS layanan. Namun, ini 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: Menggunakan 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 | Mengatur DisableUsingServicePointManagerSecurityProtocols ke true membatasi koneksi Transport Layer Security (TLS) dari Windows Communication Foundation (WCF) untuk menggunakan TLS 1.0. Versi TLS tersebut tidak akan digunakan lagi. |
| CA5379: Pastikan algoritma fungsi derivasi utama cukup kuat | Kelas Rfc2898DeriveBytes secara default menggunakan algoritma SHA1. Anda harus menentukan algoritma hash yang akan digunakan dalam beberapa kelebihan beban konstruktor dengan SHA256 atau yang lebih tinggi. Perhatikan, properti HashAlgorithm hanya memiliki aksesor get dan tidak memiliki pengubah overridden. |
| CA5380: Jangan tambahkan sertifikat ke ruang penyimpanan 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 sekumpulan 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 sekumpulan otoritas sertifikasi publik (CA) 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 menetapkan secara tetap nilai dari SecurityProtocolType | 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 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 yang lemah dengan jumlah perulangan yang tidak mencukup | Aturan ini memeriksa apakah kunci kriptografi dihasilkan oleh 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 memadai saat menggunakan fungsi derivasi kunci yang lemah | Aturan ini memeriksa apakah kunci kriptografi dihasilkan oleh 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 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 kode keras kunci enkripsi | Agar algoritma simetris berhasil, kunci rahasia harus diketahui hanya oleh pengirim dan penerima. Ketika kunci dikodekan secara permanen, kunci tersebut mudah ditemukan. Bahkan dengan biner yang dikompilasi, mudah bagi pengguna jahat untuk mengekstraknya. Setelah kunci privat disusupi, teks sandi dapat didekripsi secara langsung dan tidak dilindungi lagi. |
| CA5391: Gunakan token antiforgery di pengontrol ASP.NET Core MVC | Menangani permintaan POST, PUT, PATCH, atau DELETE tanpa memvalidasi token antiforgeri mungkin rentan terhadap serangan pemalsuan permintaan lintas situs. Serangan pemalsuan permintaan lintas situs dapat mengirim permintaan berbahaya dari pengguna yang diautentikasi ke pengontrol MVC Core ASP.NET Anda. |
| CA5392: Gunakan atribut DefaultDllImportSearchPaths untuk P/Invokes | Secara default, fungsi P/Invoke menggunakan DllImportAttribute memeriksa sejumlah direktori, termasuk direktori kerja saat ini agar pustaka dapat dimuat. 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 sumber acak yang tidak aman | Menggunakan generator angka pseudo-random yang lemah secara kriptografis dapat memungkinkan penyerang untuk memprediksi nilai sensitif keamanan apa yang akan dihasilkan. |
| CA5395: Atribut HttpVerb hilang untuk metode tindakan | Semua metode tindakan yang membuat, mengedit, menghapus, atau memodifikasi data perlu dilindungi dengan atribut antiforgery dari serangan pemalsuan permintaan lintas situs. Melakukan operasi GET harus merupakan operasi aman yang tidak memiliki efek samping dan tidak mengubah data Anda yang bertahan. |
| CA5396: Atur HttpOnly ke true untuk HttpCookie | Sebagai langkah pertahanan berlapis, pastikan cookie HTTP yang sensitif terhadap 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 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 dikodekan secara tetap | 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 saat ini. Di masa mendatang, TLS 1.2 dan TLS 1.3 mungkin tidak digunakan lagi. Untuk memastikan bahwa aplikasi Anda tetap aman, hindari menyematkan secara tetap versi protokol. |
| CA5399: Pastikan untuk menonaktifkan pemeriksaan daftar pencabutan sertifikat HttpClient | Sertifikat yang dicabut tidak tepercaya lagi. Ini dapat digunakan oleh penyerang yang meneruskan beberapa data berbahaya atau mencuri data sensitif dalam komunikasi HTTPS. |
| CA5400: Pastikan pemeriksaan daftar pencabutan sertifikat HttpClient tidak dinonaktifkan | Sertifikat yang dicabut tidak tepercaya lagi. Ini dapat digunakan oleh penyerang yang meneruskan beberapa data berbahaya atau mencuri data sensitif dalam komunikasi HTTPS. |
| CA5401: Jangan gunakan CreateEncryptor dengan IV yang bukan default | Enkripsi simetris harus selalu menggunakan vektor inisialisasi yang tidak dapat diulang untuk mencegah serangan kamus. |
| CA5402: Gunakan CreateEncryptor dengan IV bawaan | Enkripsi simetris harus selalu menggunakan vektor inisialisasi yang tidak dapat diulang untuk mencegah serangan kamus. |
| CA5403: Jangan menggunakan sertifikat dengan kode keras | Parameter data atau rawData konstruktor X509Certificate atau X509Certificate2 dikodekan secara permanen. |
| CA5404: Jangan nonaktifkan pemeriksaan validasi token |
TokenValidationParameters properti yang mengontrol validasi token tidak boleh diatur ke false. |
| CA5405: Jangan selalu melewatkan validasi token pada delegasi | Panggilan balik yang diberikan ke AudienceValidator atau LifetimeValidator selalu mengembalikan true. |
Berkolaborasi dengan kami di GitHub
Sumber untuk konten ini dapat ditemukan di GitHub, yang juga dapat Anda gunakan untuk membuat dan meninjau masalah dan menarik permintaan. Untuk informasi selengkapnya, lihat panduan kontributor kami.