Úprava obsahu pro použití modelu ASIM (Advanced Security Information Model) (Public Preview)
Normalizovaný obsah zabezpečení v Microsoft Sentinelu zahrnuje analytická pravidla, dotazy proaktivního vyhledávání a sešity, které pracují s sjednocením analyzátorů normalizace.
V galeriích a řešeních Microsoft Sentinelu můžete najít normalizovaný, zastaralý obsah, vytvořit vlastní normalizovaný obsah nebo upravit existující vlastní obsah tak, aby používal normalizovaná data.
Tento článek vysvětluje, jak převést existující analytická pravidla Služby Microsoft Sentinel tak, aby používala normalizovaná data pomocí modelu ASIM (Advanced Security Information Model).
Informace o tom, jak normalizovaný obsah zapadá do architektury ASIM, najdete v diagramu architektury ASIM.
Tip
Podívejte se také na podrobný webinář o normalizaci parserů a normalizovaného obsahu v Microsoft Sentinelu nebo se podívejte na snímky. Další informace najdete v části Další kroky.
Důležité
ASIM je aktuálně ve verzi PREVIEW. Dodatkové podmínky Azure Preview zahrnují další právní podmínky, které se vztahují na funkce Azure, které jsou v beta verzi, preview nebo které ještě nejsou vydány v obecné dostupnosti.
Úprava vlastního obsahu tak, aby používal normalizaci
Povolení vlastního obsahu služby Microsoft Sentinel pro použití normalizace:
Upravte dotazy tak, aby používaly všechny unifikující analyzátory relevantní pro daný dotaz.
Upravte názvy polí v dotazu tak, aby používaly normalizované názvy polí schématu .
Pokud je to možné, změňte podmínky tak, aby používaly normalizované hodnoty polí v dotazu.
Ukázková normalizace pro analytická pravidla
Představte si například vzácného klienta s analytickým pravidlem s vysokým počtem zpětného vyhledávání DNS, které funguje na událostech DNS odesílané servery 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
Následující kód je verze nezávislá na zdroji, která používá normalizaci k zajištění stejné detekce pro jakýkoli zdroj poskytující události dotazů DNS. Následující příklad používá integrované analyzátory ASIM:
_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
Pokud chcete použít analyzátory ASIM nasazené v pracovním prostoru, nahraďte první řádek následujícím kódem:
imDns(responsecodename='NXDOMAIN')
Rozdíly mezi integrovanými a nasazenými analyzátory pracovních prostorů
Dvě možnosti v předchozím příkladu jsou funkčně identické. Normalizovaná verze nezávislá na zdroji má následující rozdíly:
Místo
_Im_Dns
analyzátoru Infoblox se používají neboimDns
normalizované analyzátory.Normalizované analyzátory načítají pouze události dotazů DNS, takže není nutné kontrolovat typ události, jak to provádí
where ProcessName =~ "named" and Log_Type =~ "client"
verze Infoblox.Pole
SrcIpAddr
se používá místoClient_IP
.Filtrování parametrů analyzátoru se používá pro ResponseCodeName a eliminuje potřebu explicitních
where
klauzulí.
Poznámka:
Kromě podpory jakéhokoli normalizovaného zdroje DNS je normalizovaná verze kratší a srozumitelnější.
Pokud schéma nebo analyzátory nepodporují parametry filtrování, změny jsou podobné s tím rozdílem, že podmínky filtrování se uchovávají z původního dotazu. Příklad:
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
Další informace o následujících položkách použitých v předchozích příkladech najdete v dokumentaci Kusto:
- let – příkaz
- where – operátor
- extend – operátor
- operátor join
- Operátor summarize
- isnotempty()
- agregační funkce count()
Další informace o KQL najdete v přehledu dotazovací jazyk Kusto (KQL).
Další zdroje informací:
Další kroky
Tento článek popisuje obsah modelu ASIM (Advanced Security Information Model).
Další informace naleznete v tématu:
- Podívejte se na podrobný webinář o normalizaci analyzátorů a normalizovaného obsahu v Microsoft Sentinelu nebo se podívejte na snímky.
- Přehled rozšířeného modelu informací o zabezpečení (ASIM)
- Analyzátory advanced security information model (ASIM)
- Schémata advanced Security Information Model (ASIM)
- Obsah rozšířeného modelu informací o zabezpečení (ASIM)