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 samenvoeging van normalisatieparsers.
U kunt genormaliseerde, out-of-the-box-inhoud vinden in galerieën en oplossingen van Microsoft Sentinel, uw eigen genormaliseerde inhoud maken of bestaande, aangepaste inhoud wijzigen om genormaliseerde gegevens te gebruiken.
In dit artikel wordt uitgelegd hoe u bestaande Analyseregels van Microsoft Sentinel converteert om genormaliseerde gegevens te gebruiken met het Advanced Security Information Model (ASIM).
Als u wilt weten hoe genormaliseerde inhoud binnen de ASIM-architectuur past, raadpleegt u het ASIM-architectuurdiagram.
Tip
Bekijk ook de Deep Dive Webinar op Microsoft Sentinel Normalizing Parsers and Normalized Content of bekijk de dia's. Zie voor meer informatie Volgende stappen.
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
Als u uw aangepaste Microsoft Sentinel-inhoud wilt inschakelen om normalisatie te gebruiken:
Wijzig uw query's om eventuele samenvoegingsparsers te gebruiken die relevant zijn voor de query.
Wijzig veldnamen in uw query om de genormaliseerde schemaveldnamen te gebruiken.
Wijzig indien van toepassing voorwaarden om de genormaliseerde waarden van de velden in uw query te gebruiken.
Voorbeeldnormalisatie voor analyseregels
Denk bijvoorbeeld aan de zeldzame client die is waargenomen met een hoog aantal omgekeerde DNS-lookups , 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 bronagnostische versie, die gebruikmaakt van normalisatie 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 ASIM-parsers met een werkruimte wilt gebruiken, vervangt u de eerste regel door de volgende code:
imDns(responsecodename='NXDOMAIN')
Verschillen tussen ingebouwde en door de werkruimte geïmplementeerde parsers
De twee opties in het bovenstaande voorbeeld zijn functioneel identiek. De genormaliseerde bronagnostische versie heeft de volgende verschillen:
De
_Im_Dns
ofimDns
genormaliseerde parsers worden gebruikt in plaats van de Infoblox-parser.De genormaliseerde parsers halen alleen DNS-querygebeurtenissen op, dus er is geen noodzaak 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 vanClient_IP
.Parserparameterfiltering wordt gebruikt voor ResponseCodeName, waardoor er geen expliciete
where
componenten meer nodig zijn.
Notitie
Afgezien van de ondersteuning van een genormaliseerde DNS-bron, is de genormaliseerde versie korter en gemakkelijker te begrijpen.
Als het schema of de parsers geen filterparameters ondersteunen, zijn de wijzigingen vergelijkbaar, behalve dat de filtervoorwaarden van de oorspronkelijke query worden bewaard. Voorbeeld:
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
Zie de Kusto-documentatie voor meer informatie over de volgende items die in de voorgaande voorbeelden worden gebruikt:
- let-instructie
- where-operator
- operator uitbreiden
- join-operator
- operator samenvatten
- isnotempty() functie
- aggregatiefunctie count()
Zie het overzicht van Kusto-querytaal (KQL) voor meer informatie over KQL.
Andere resources:
Volgende stappen
In dit artikel wordt de inhoud van Advanced Security Information Model (ASIM) besproken.
Zie voor meer informatie:
- Bekijk de Deep Dive Webinar op Microsoft Sentinel Normalizing Parsers and Normalized Content of bekijk de dia's
- Overzicht van Advanced Security Information Model (ASIM)
- ASIM-parsers (Advanced Security Information Model)
- ASIM-schema's (Advanced Security Information Model)
- ASIM-inhoud (Advanced Security Information Model)