Share via


Inhoud wijzigen voor het gebruik van het Advanced Security Information Model (ASIM) (openbare preview)

Genormaliseerde beveiligingsinhoud in Microsoft Sentinel bevat analyseregels, opsporingsquery's en werkmappen die werken met samenvoegende normalisatieparsers.

U kunt genormaliseerde, standaardinhoud vinden in Microsoft Sentinel-galerieën en -oplossingen, uw eigen genormaliseerde inhoud maken of bestaande, aangepaste inhoud wijzigen om genormaliseerde gegevens te gebruiken.

In dit artikel wordt uitgelegd hoe u bestaande Microsoft Sentinel-analyseregels converteert om genormaliseerde gegevens te gebruiken met het Advanced Security Information Model (ASIM).

Raadpleeg het diagram ASIM-architectuur om te begrijpen hoe genormaliseerde inhoud binnen de ASIM-architectuur past.

Belangrijk

ASIM is momenteel beschikbaar als PREVIEW-versie. De Aanvullende voorwaarden voor Azure-previews omvatten aanvullende juridische voorwaarden die van toepassing zijn op Azure-functies die in bèta of preview zijn of die anders nog niet algemeen beschikbaar zijn.

Aangepaste inhoud wijzigen om normalisatie te gebruiken

U kunt als volgende inschakelen dat uw aangepaste Microsoft Sentinel-inhoud gebruikmaakt van normalisatie:

  • Wijzig uw query's om eventuele samenvoegingsparseer te gebruiken die relevant zijn voor de query.

  • Wijzig veldnamen in uw query om de genormaliseerde schemaveldnamen te gebruiken.

  • Wijzig indien van toepassing de voorwaarden om de genormaliseerde waarden van de velden in uw query te gebruiken.

Voorbeeldnormalisatie voor analyseregels

Neem bijvoorbeeld de zeldzame client waargenomen met een hoog aantal omgekeerde DNS-zoekacties DNS-analyseregel, die werkt op DNS-gebeurtenissen die worden verzonden door Infoblox DNS-servers:

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

De volgende code is de bron-agnostische versie, die normalisatie gebruikt om dezelfde detectie te bieden voor elke bron die DNS-querygebeurtenissen levert. In het volgende voorbeeld worden ingebouwde ASIM-parsers gebruikt:

_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

Als u in de werkruimte geïmplementeerde ASIM-parsers wilt gebruiken, vervangt u de eerste regel door de volgende code:

imDns(responsecodename='NXDOMAIN')

Verschillen tussen ingebouwde en door werkruimte geïmplementeerde parsers

De twee opties in het bovenstaande voorbeeld zijn functioneel identiek. De genormaliseerde, bron-agnostische versie heeft de volgende verschillen:

  • De _Im_Dns of imDnsgenormaliseerde parsers worden gebruikt in plaats van de Infoblox-parser.

  • De genormaliseerde parsers halen alleen DNS-querygebeurtenissen op, zodat het niet nodig is om het gebeurtenistype te controleren, zoals uitgevoerd door de where ProcessName =~ "named" and Log_Type =~ "client" in de Infoblox-versie.

  • Het SrcIpAddr veld wordt gebruikt in plaats van Client_IP.

  • Parserparameterfiltering wordt gebruikt voor ResponseCodeName, waardoor er geen expliciete where componenten meer nodig zijn.

Notitie

Afgezien van de ondersteuning van genormaliseerde DNS-bronnen, is de genormaliseerde versie korter en gemakkelijker te begrijpen.

Als het schema of de parsers geen ondersteuning bieden voor filterparameters, zijn de wijzigingen vergelijkbaar, behalve dat de filtervoorwaarden worden behouden van de oorspronkelijke query. Bijvoorbeeld:

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

Volgende stappen

In dit artikel wordt de inhoud van het Advanced Security Information Model (ASIM) besproken.

Zie voor meer informatie: