Udostępnij za pośrednictwem


Modyfikowanie zawartości w celu korzystania z usługi Advanced Security Information Model (ASIM) (publiczna wersja zapoznawcza)

Znormalizowana zawartość zabezpieczeń w usłudze Microsoft Sentinel obejmuje reguły analizy, zapytania wyszukiwania zagrożeń i skoroszyty, które współpracują z ujednoliceniem analizatorów normalizacji.

Zawartość znormalizowaną, nieaktualną można znaleźć w galeriach i rozwiązaniach usługi Microsoft Sentinel, utworzyć własną znormalizowaną zawartość lub zmodyfikować istniejącą zawartość niestandardową, aby używać znormalizowanych danych.

W tym artykule wyjaśniono, jak przekonwertować istniejące reguły analizy usługi Microsoft Sentinel na użycie znormalizowanych danych za pomocą modelu ASIM (Advanced Security Information Model).

Aby zrozumieć, jak znormalizowana zawartość pasuje do architektury ASIM, zapoznaj się z diagramem architektury ASIM.

Ważne

ASIM jest obecnie w wersji zapoznawczej. Dodatkowe postanowienia dotyczące wersji zapoznawczej platformy Azure obejmują dodatkowe postanowienia prawne dotyczące funkcji platformy Azure, które są dostępne w wersji beta, wersji zapoznawczej lub w inny sposób nie zostały jeszcze wydane w wersji ogólnodostępnej.

Modyfikowanie zawartości niestandardowej w celu korzystania z normalizacji

Aby umożliwić niestandardowej zawartości usługi Microsoft Sentinel korzystanie z normalizacji:

Przykładowa normalizacja reguł analizy

Rozważmy na przykład rzadki klient zaobserwowany z wysoką odwrotną liczbą odnośników DNS regułą analizy DNS, która działa na zdarzeniach DNS wysyłanych przez serwery 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

Poniższy kod jest wersją niezależną od źródła, która używa normalizacji w celu zapewnienia tego samego wykrywania dla dowolnego źródła dostarczającego zdarzenia zapytań DNS. W poniższym przykładzie użyto wbudowanych analizatorów 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

Aby użyć analizatorów ASIM wdrożonych w obszarze roboczym, zastąp pierwszy wiersz następującym kodem:

imDns(responsecodename='NXDOMAIN')

Różnice między wbudowanymi i wdrożonymi obszarami roboczymi analizatorami

Dwie opcje w powyższym przykładzie są funkcjonalnie identyczne. Znormalizowana, niezależna wersja źródła ma następujące różnice:

  • Analizatory _Im_Dns lub imDnsznormalizowane są używane zamiast analizatora infoblox.

  • Znormalizowane analizatory pobierają tylko zdarzenia zapytań DNS, więc nie ma potrzeby sprawdzania typu zdarzenia, zgodnie z where ProcessName =~ "named" and Log_Type =~ "client" operacją w wersji programu Infoblox.

  • Pole SrcIpAddr jest używane zamiast Client_IP.

  • Filtrowanie parametrów analizatora jest używane dla parametru ResponseCodeName, eliminując potrzebę jawnych where klauzul.

Uwaga

Oprócz obsługi dowolnego znormalizowanego źródła DNS znormalizowana wersja jest krótsza i łatwiejsza do zrozumienia.

Jeśli schemat lub analizatory nie obsługują parametrów filtrowania, zmiany są podobne, z tą różnicą, że warunki filtrowania są przechowywane z oryginalnego zapytania. Na przykład:

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

Więcej informacji na temat następujących elementów używanych w poprzednich przykładach można znaleźć w dokumentacji usługi Kusto:

Aby uzyskać więcej informacji na temat języka KQL, zobacz omówienie język zapytań Kusto (KQL).

Inne zasoby:

Następne kroki

W tym artykule omówiono zawartość usługi Advanced Security Information Model (ASIM).

Aby uzyskać więcej informacji, zobacz: