Sisällön muokkaaminen käyttämään asim-mallia (Advanced Security Information Model)

Microsoft Sentinel normalisoitu suojaussisältö sisältää analytiikkasäännöt, metsästyskyselyt ja työkirjat, jotka toimivat normalisoinnin jäsennysten yhtenäistämisen kanssa.

Löydät normalisoitua, valmiita sisältöä Microsoft Sentinel valikoimista ja ratkaisuista, luot omaa normalisoitua sisältöä tai muokkaat olemassa olevaa mukautettua sisältöä käyttämään normalisoituja tietoja.

Tässä artikkelissa kerrotaan, miten voit muuntaa olemassa olevat Microsoft Sentinel analysointisäännöt käyttämään normalisoituja tietoja ASIM(Advanced Security Information Model) -mallin kanssa.

Lisätietoja siitä, miten normalisoitu sisältö sopii ASIM-arkkitehtuuriin, on ASIM-arkkitehtuurikaaviossa.

Muokkaa mukautettua sisältöä normalisointia varten

Mukautetun Microsoft Sentinel sisällön normalisointia varten:

Mallin normalisointi analysointisäännöille

Otetaan esimerkiksi harvinainen asiakas, jota havaitaan DNS-hakujen määrän suuren käänteisen määrän DNS-analytiikkasäännön kanssa, joka toimii Infoblox DNS -palvelimien lähettämiin DNS-tapahtumiin:

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

Seuraava koodi on lähdeagnostinen versio, joka käyttää normalisointia tarjoamaan saman tunnistamisen mille tahansa lähteelle, joka tarjoaa DNS-kyselytapahtumia. Seuraavassa esimerkissä käytetään sisäisiä ASIM-jäsentimiä:

_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

Normalisoidulla lähdeagnostisessa versiossa on seuraavat erot:

  • - _Im_Dns jäsentäjiä tai imDnsnormalisoituja jäsentäjiä käytetään Infoblox-jäsentimen sijaan.

  • Normalisoidut jäsennykset hakevat vain DNS-kyselytapahtumat, joten tapahtumatyyppiä ei tarvitse tarkistaa Infoblox-version suorittamalla where ProcessName =~ "named" and Log_Type =~ "client" tavalla.

  • - SrcIpAddr kenttää käytetään kohteen sijaan Client_IP.

  • Parser-parametrisuodatusta käytetään ResponseCodeName-parametrille, mikä poistaa eksplisiittisten where lauseiden tarpeen.

Huomautus

Normalisoidun DNS-lähteen tukemisen lisäksi normalisoitu versio on lyhyempi ja helpompi ymmärtää.

Jos rakenne tai jäsentimet eivät tue suodatusparametreja, muutokset ovat samankaltaisia lukuun ottamatta sitä, että suodatusehdot pysyvät alkuperäisessä kyselyssä. Esimerkki:

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

Katso lisätietoja seuraavista edellisissä esimerkeissä käytetyistä kohteista Kusto-dokumentaatiosta:

Lisätietoja KQL:stä on Kusto Query Languagen (KQL) yleiskatsauksessa.

Muut resurssit:

Seuraavat vaiheet

Tässä artikkelissa käsitellään ASIM(Advanced Security Information Model) -sisältöä.

Lisätietoja on seuraavissa artikkeleissa: