Mengubah konten untuk menggunakan Model Informasi Keamanan Tingkat Lanjut (ASIM)

Konversi konten Microsoft Sentinel untuk menggunakan data yang dinormalisasi ASIM

Konten keamanan yang dinormalisasi di Microsoft Sentinel mencakup aturan analitik, kueri pencarian, dan Buku Kerja yang berfungsi dengan parser normalisasi pemersatu.

Anda dapat menemukan konten out-of-the-box yang dinormalisasi di galeri Microsoft Sentinel dan katalog solusi Microsoft Sentinel, membuat konten anda sendiri yang dinormalisasi, atau memodifikasi konten kustom yang ada untuk menggunakan data yang dinormalisasi.

Artikel ini menjelaskan cara mengonversi aturan analitik Microsoft Sentinel yang ada untuk menggunakan data yang dinormalisasi ASIM dengan Model Informasi Keamanan Tingkat Lanjut (ASIM).

Untuk memahami bagaimana konten yang dinormalisasi cocok dalam arsitektur ASIM, lihat diagram arsitektur ASIM.

Mengubah konten kustom untuk menggunakan normalisasi

Untuk mengaktifkan konten Microsoft Azure Sentinel kustom Anda untuk menggunakan normalisasi:

  • Ubah kueri Anda untuk menggunakan parser pemersatu ASIM yang relevan dengan kueri.

  • Ubah nama bidang dalam kueri Anda untuk menggunakan nama bidang skema yang dinormalisasi ASIM .

  • Jika berlaku, ubah kondisi untuk menggunakan nilai yang dinormalisasi dari bidang dalam kueri Anda.

Normalisasi sampel untuk aturan analisis

Misalnya, pertimbangkan aturan analitik DNS Klien langka yang diamati dengan jumlah pencarian DNS terbalik yang tinggi, yang bekerja pada kejadian DNS yang dikirim oleh server DNS Infoblox:

let threshold = 200;
InfobloxNIOS
| where ProcessName =~ "named" and Log_Type =~ "client"
| where isnotempty(ResponseCode)
| where ResponseCode =~ "NXDOMAIN"
| summarize count() by Client_IP, bin(TimeGenerated,15m)
| where count_ > threshold
| join kind=inner (InfobloxNIOS
    | where ProcessName =~ "named" and Log_Type =~ "client"
    | where isnotempty(ResponseCode)
    | where ResponseCode =~ "NXDOMAIN"
    ) on Client_IP
| extend timestamp = TimeGenerated, IPCustomEntity = Client_IP

Kode berikut adalah versi agnostik sumber, yang menggunakan normalisasi untuk menyediakan deteksi yang sama untuk sumber apa pun yang menyediakan peristiwa kueri DNS. Contoh berikut menggunakan parser ASIM bawaan:

_Im_Dns(responsecodename='NXDOMAIN')
| summarize count() by SrcIpAddr, bin(TimeGenerated,15m)
| where count_ > threshold
| join kind=inner (imDns(responsecodename='NXDOMAIN')) on SrcIpAddr
| extend timestamp = TimeGenerated, IPCustomEntity = SrcIpAddr

Versi sumber agnostik yang dinormalisasi memiliki perbedaan berikut:

  • Parser _Im_Dns atau imDnsyang dinormalisasi digunakan, bukan Pengurai Infoblox.

  • Parser yang dinormalisasi hanya mengambil peristiwa kueri DNS, jadi tidak perlu memeriksa jenis peristiwa, seperti yang dilakukan olehwhere ProcessName =~ "named" and Log_Type =~ "client" di versi Infoblox.

  • Bidang SrcIpAddr digunakan sebagai pengganti Client_IP.

  • Pemfilteran parameter parser digunakan untuk ResponseCodeName, menghilangkan kebutuhan akan klausa where eksplisit.

Note

Selain mendukung sumber DNS yang dinormalisasi, versi yang dinormalisasi lebih pendek dan lebih mudah dipahami.

Jika skema atau pengurai tidak mendukung parameter pemfilteran, perubahan kueri yang diperlukan untuk menormalkan aturan serupa, kecuali bahwa kondisi pemfilteran disimpan dari kueri asli. Contohnya:

let threshold = 200;
imDns
| where isnotempty(ResponseCodeName)
| where ResponseCodeName =~ "NXDOMAIN"
| summarize count() by SrcIpAddr, bin(TimeGenerated,15m)
| where count_ > threshold
| join kind=inner (imDns
    | where isnotempty(ResponseCodeName)
    | where ResponseCodeName =~ "NXDOMAIN"
    ) on SrcIpAddr
| extend timestamp = TimeGenerated, IPCustomEntity = SrcIpAddr

Lihat informasi selengkapnya tentang elemen KQL berikut yang digunakan dalam contoh normalisasi kueri DNS, dalam dokumentasi Kusto:

Untuk informasi selengkapnya tentang KQL, lihat gambaran umum Bahasa Kueri Kusto (KQL).

Sumber daya lainnya:

Untuk informasi selengkapnya, lihat sumber daya berikut ini: