Zarządzaj parserami usługi Advanced Security Information Model (ASIM)

Użytkownicy zaawansowanego modelu informacji o zabezpieczeniach (ASIM) używają analizatorów ujednolicających zamiast nazw tabel w swoich zapytaniach, aby wyświetlać dane w znormalizowanym formacie i pobierać wszystkie dane istotne dla schematu w jednym zapytaniu. Każdy analizator ujednolicenia używa wielu analizatorów specyficznych dla źródła, które obsługują szczegóły poszczególnych źródeł.

Aby zrozumieć, jak parsery wpisują się w architekturę ASIM, sprawdź sekcję komponentów ASIM na diagramie architektury ASIM.

Może być konieczne zarządzanie parserami specyficznymi dla danego źródła, używanymi przez każdy parser scalający, w celu:

  • Dodaj niestandardowy parser dla konkretnego źródła do parsera ujednolicającego.

  • Zastąp wbudowany analizator specyficzny dla źródła używany przez analizator ujednolicenia niestandardowym analizatorem specyficznym dla źródła. Zastąp wbudowane analizatory, gdy chcesz:

    • Użyj wersji wbudowanego parsera innej niż ta używana domyślnie w parserze ujednolicającym.

    • Zapobiegaj automatycznym aktualizacjom, zachowując wersję analizatora specyficznego dla źródła używanego przez analizator ujednolicenia.

    • Użyj zmodyfikowanej wersji wbudowanego analizatora.

  • Skonfiguruj analizator specyficzny dla źródła, na przykład w celu zdefiniowania źródeł, które wysyłają informacje istotne dla analizatora.

W tym artykule omówiono, jak zarządzać analizatorami specyficznymi dla danego źródła używanymi przez analizatory ujednolicające.

Wymagania wstępne

W procedurach opisanych w tym artykule założono, że wszystkie parsery specyficzne dla źródła zostały już wdrożone w obszarze roboczym Microsoft Sentinel.

Instrukcje dotyczące wdrażania można znaleźć w sekcji Wdrażaj parserów w sekcji Rozwijaj parsery ASIM.

Zarządzanie wbudowanymi analizatorami ujednolicenia

Ponieważ wbudowanych parserów ujednolicających nie można edytować bezpośrednio, zarządza się nimi poprzez wdrażanie niestandardowych parserów ujednolicających, dodawanie lub wykluczanie parserów specyficznych dla źródła oraz używanie list obserwowanych do kontrolowania działania parserów.

Konfigurowanie obszaru roboczego

Microsoft Sentinel użytkownicy nie mogą edytować wbudowanych analizatorów ujednolicających. Zamiast tego użyj następujących mechanizmów, aby zmodyfikować zachowanie wbudowanych analizatorów ujednolicenia:

  • Aby umożliwić dodawanie analizatorów specyficznych dla poszczególnych źródeł, ASIM używa ujednolicających, niestandardowych analizatorów. Te niestandardowe analizatory są wdrażane w obszarze roboczym i w związku z tym można je edytować. Wbudowane, ujednolicające parsery automatycznie wykrywają te niestandardowe parsery, jeśli istnieją.

    Możesz wdrożyć do obszaru roboczego Microsoft Sentinel początkowe, puste niestandardowe parsery ujednolicające dla wszystkich obsługiwanych schematów lub osobno dla określonych schematów. Aby uzyskać więcej informacji, zobacz Wdrażanie początkowych pustych niestandardowych parserów ujednolicających ASIM w repozytorium GitHub rozwiązania Microsoft Sentinel.

  • Aby umożliwić wykluczanie wbudowanych analizatorów specyficznych dla źródła, ASIM używa listy obserwacyjnej. Wdróż listę obserwacyjną do obszaru roboczego Microsoft Sentinel przy użyciu szablonu wdrożenia listy obserwacyjnej ASIM dla Microsoft Sentinel w serwisie GitHub.

  • Do definiowania typu źródła dla wbudowanych i niestandardowych analizatorów ASIM używa watchlisty. Wdróż listę obserwacyjną do obszaru roboczego Microsoft Sentinel przy użyciu szablonu wdrożenia listy obserwacyjnej ASIM dla Microsoft Sentinel w serwisie GitHub.

Dodaj niestandardowy analizator do wbudowanego parsera ujednolicającego

Aby dodać niestandardowy parser, wstaw w niestandardowym parserze ujednolicającym wiersz odwołujący się do nowego niestandardowego parsera.

Upewnij się, że dodasz zarówno niestandardowy parser filtrujący (taki, który akceptuje parametry filtrujące do optymalizacji wydajności), jak i parser niestandardowy bez parametrów (taki, który zwraca wszystkie wyniki bez parametrów filtrowania). Aby dowiedzieć się więcej na temat edytowania analizatorów, zapoznaj się z dokumentem Funkcje w Azure Monitorowanie zapytań dzienników.

Składnia linii do dodania jest inna dla każdego schematu. Poniższa tabela wykorzystuje parametry zdefiniowane w ParserParams odpowiadającym Parsers/ASim<SchemaName>/Parsers/im<SchemaName>.yaml pliku w repozytorium Microsoft Sentinel. Zastąp _parser_name_ nazwą funkcji parsera specyficznego dla źródła filtrowania. Używaj argumentów nazwanych, aby uniknąć wiązania wartości z niewłaściwymi parametrami, gdy kolejność deklaracji się różni.

Przed dodaniem linii sprawdź, czy Twoja niestandardowa funkcja unifikująca deklaruje parametry odniesienia i że parser specyficzny dla źródła je akceptuje. Przekazuj pack=pack tylko wtedy, gdy parser właściwy dla źródła to obsługuje. Jeśli Twoja niestandardowa funkcja unifikująca deklaruje disabled, przekieruj disabled=disabled też do parserów specyficznych dla źródła, które ją obsługują, nawet jeśli nie jest ona uwzględniona w wierszu schematu poniżej.

Schemat Parser Linia do dodania
AgentEvent Im_AgentEventCustom _parser_name_ (starttime=starttime, endtime=endtime, agentid_has_any=agentid_has_any, agentname_has_any=agentname_has_any, username_has_any=username_has_any, pack=pack)
AlertEvent Im_AlertEventCustom _parser_name_ (starttime=starttime, endtime=endtime, ipaddr_has_any_prefix=ipaddr_has_any_prefix, hostname_has_any=hostname_has_any, username_has_any=username_has_any, attacktactics_has_any=attacktactics_has_any, attacktechniques_has_any=attacktechniques_has_any, threatcategory_has_any=threatcategory_has_any, alertverdict_has_any=alertverdict_has_any, eventseverity_has_any=eventseverity_has_any, pack=pack)
AssetEntity Im_AssetEntityCustom _parser_name_ (starttime=starttime, endtime=endtime, entityid_has_any=entityid_has_any, entityname_has_any=entityname_has_any, assettype_in=assettype_in, path_has_any=path_has_any, assetowner_has_any=assetowner_has_any, entitysource_has_any=entitysource_has_any, pack=pack)
Zdarzenie audytu Im_AuditEventCustom _parser_name_ (starttime=starttime, endtime=endtime, srcipaddr_has_any_prefix=srcipaddr_has_any_prefix, actorusername_has_any=actorusername_has_any, operation_has_any=operation_has_any, eventtype_in=eventtype_in, eventresult=eventresult, object_has_any=object_has_any, newvalue_has_any=newvalue_has_any, pack=pack)
Uwierzytelnianie Im_AuthenticationCustom _parser_name_ (starttime=starttime, endtime=endtime, username_has_any=username_has_any, targetappname_has_any=targetappname_has_any, srcipaddr_has_any_prefix=srcipaddr_has_any_prefix, srchostname_has_any=srchostname_has_any, eventtype_in=eventtype_in, eventresultdetails_in=eventresultdetails_in, eventresult=eventresult, pack=pack)
DhcpEvent Im_DhcpEventCustom _parser_name_ (starttime=starttime, endtime=endtime, srcipaddr_has_any_prefix=srcipaddr_has_any_prefix, srchostname_has_any=srchostname_has_any, srcusername_has_any=srcusername_has_any, eventresult=eventresult, disabled=disabled, pack=pack)
DNS Im_DnsCustom _parser_name_ (starttime=starttime, endtime=endtime, srcipaddr=srcipaddr, domain_has_any=domain_has_any, responsecodename=responsecodename, response_has_ipv4=response_has_ipv4, response_has_any_prefix=response_has_any_prefix, eventtype=eventtype, pack=pack)
FileEvent Im_FileEventCustom _parser_name_ (starttime=starttime, endtime=endtime, eventtype_in=eventtype_in, srcipaddr_has_any_prefix=srcipaddr_has_any_prefix, actorusername_has_any=actorusername_has_any, targetfilepath_has_any=targetfilepath_has_any, srcfilepath_has_any=srcfilepath_has_any, hashes_has_any=hashes_has_any, dvchostname_has_any=dvchostname_has_any, disabled=disabled, pack=pack)
NetworkSession Im_NetworkSessionCustom _parser_name_ (starttime=starttime, endtime=endtime, srcipaddr_has_any_prefix=srcipaddr_has_any_prefix, dstipaddr_has_any_prefix=dstipaddr_has_any_prefix, ipaddr_has_any_prefix=ipaddr_has_any_prefix, dstportnumber=dstportnumber, hostname_has_any=hostname_has_any, dvcaction=dvcaction, eventresult=eventresult, pack=pack)
ProcessEvent Im_ProcessEventCustom _parser_name_ (starttime=starttime, endtime=endtime, commandline_has_any=commandline_has_any, commandline_has_all=commandline_has_all, commandline_has_any_ip_prefix=commandline_has_any_ip_prefix, actingprocess_has_any=actingprocess_has_any, targetprocess_has_any=targetprocess_has_any, parentprocess_has_any=parentprocess_has_any, actorusername_has=actorusername_has, targetusername_has=targetusername_has, dvcipaddr_has_any_prefix=dvcipaddr_has_any_prefix, dvchostname_has_any=dvchostname_has_any, hashes_has_any=hashes_has_any, eventtype=eventtype)
RegistryEvent Im_RegistryEventCustom _parser_name_ (starttime=starttime, endtime=endtime, eventtype_in=eventtype_in, actorusername_has_any=actorusername_has_any, registrykey_has_any=registrykey_has_any, registryvalue_has_any=registryvalue_has_any, registrydata_has_any=registrydata_has_any, dvchostname_has_any=dvchostname_has_any, disabled=disabled, pack=pack)
Zarządzanie użytkownikami Im_UserManagementCustom _parser_name_ (starttime=starttime, endtime=endtime, srcipaddr_has_any_prefix=srcipaddr_has_any_prefix, targetusername_has_any=targetusername_has_any, actorusername_has_any=actorusername_has_any, eventtype_in=eventtype_in, pack=pack)
WebSession Im_WebSessionCustom _parser_name_ (starttime=starttime, endtime=endtime, srcipaddr_has_any_prefix=srcipaddr_has_any_prefix, ipaddr_has_any_prefix=ipaddr_has_any_prefix, url_has_any=url_has_any, httpuseragent_has_any=httpuseragent_has_any, eventresultdetails_in=eventresultdetails_in, eventresult=eventresult, eventresultdetails_has_any=eventresultdetails_has_any, disabled=disabled, pack=pack)

Podczas dodawania dodatkowego analizatora do niestandardowego analizatora unifikującego, który już zawiera odwołania do analizatorów, pamiętaj, aby dodać przecinek na końcu poprzedniego wiersza.

Na przykład poniższy kod pokazuje Im_DnsCustom po dodaniu added_parser. Oba parsery specyficzne dla źródła w tym przykładzie akceptują disabled i pack, a niestandardowa funkcja unifikująca deklaruje oba parametry. Instrukcja union isfuzzy=true łączy wyniki z istniejących i nowych parserów. Może tolerować brak źródła unii, jeśli inne źródło zostanie poprawnie rozpoznane, ale nie tłumi wszystkich błędów zapytań ani nie weryfikuje przekazywania parametrów:

union isfuzzy=true
existing_parser(starttime=starttime, endtime=endtime, srcipaddr=srcipaddr, domain_has_any=domain_has_any, responsecodename=responsecodename, response_has_ipv4=response_has_ipv4, response_has_any_prefix=response_has_any_prefix, eventtype=eventtype, disabled=disabled, pack=pack),
added_parser(starttime=starttime, endtime=endtime, srcipaddr=srcipaddr, domain_has_any=domain_has_any, responsecodename=responsecodename, response_has_ipv4=response_has_ipv4, response_has_any_prefix=response_has_any_prefix, eventtype=eventtype, disabled=disabled, pack=pack)

Używanie zmodyfikowanej wersji wbudowanego analizatora

Aby zmodyfikować istniejący, wbudowany analizator specyficzny dla źródła:

  1. Utwórz niestandardowy analizator na podstawie oryginalnego analizatora i dodaj niestandardowy analizator do wbudowanego analizatora ujednolicającego. Jako punkt wyjścia można użyć wersji parsera opartej na parserach ASIM wdrożonych w obszarze roboczym.

  2. Dodaj rekord do listy obserwowanych ASim Disabled Parsers .

  3. CallerContext Zdefiniuj wartość jako Exclude<parser name>, gdzie <parser name> jest nazwą analizatorów ujednolicających, z których chcesz wykluczyć analizator.

  4. SourceSpecificParser Zdefiniuj wartość Exclude<parser name>, gdzie <parser name>jest nazwą analizatora, który chcesz wykluczyć, bez specyfikatora wersji.

Aby na przykład wykluczyć Azure Firewall analizatora DNS, dodaj następujący rekord do listy obserwowanych:

CallerContext SourceSpecificParser
Exclude_Im_Dns Exclude_Im_Dns_AzureFirewall

Zapobieganie automatycznej aktualizacji wbudowanego analizatora

Aby przypiąć wbudowany analizator specyficzny dla źródła do określonej wersji i zapobiec automatycznym aktualizacjom, wykonaj następujące kroki:

  1. Dodaj wersję wbudowanego parsera, której chcesz używać, na przykład _Im_Dns_AzureFirewallV02, do niestandardowego parsera ujednolicającego. Aby uzyskać więcej informacji, zobacz Dodaj parser niestandardowy do wbudowanego parsera ujednolicającego.

  2. Dodaj wyjątek dla wbudowanego analizatora. Jeśli na przykład chcesz całkowicie zrezygnować z automatycznych aktualizacji, a zatem wykluczyć dużą liczbę wbudowanych analizatorów, dodaj:

  • Rekord z wartością Any w polu SourceSpecificParser, aby wykluczyć wszystkie parsery dla elementu CallerContext.
  • Rekord dla Any w polach CallerContext i SourceSpecificParser, aby wykluczyć wszystkie wbudowane analizatory.

Szczegóły dotyczące wykluczania wbudowanych parserów korzystających z listy obserwacji można znaleźć w sekcji Użyj zmodyfikowanej wersji wbudowanego parsera .

Konfigurowanie źródeł odpowiednich dla analizatora specyficznego dla źródła

Niektóre analizatory wymagają zaktualizowania listy źródeł, które są istotne dla analizatora. Na przykład analizator, który używa danych dziennika systemowego, może nie być w stanie określić, jakie zdarzenia dziennika systemu są istotne dla analizatora. Taki analizator może użyć listy obserwowanych Sources_by_SourceType , aby określić, które źródła wysyłają informacje istotne dla analizatora. W przypadku takich analiz dodaj rekord dla każdego odpowiedniego źródła do listy obserwowanych:

  • Ustaw pole SourceType na wartość właściwą dla parsera, określoną w dokumentacji parsera.
  • Source Ustaw pole na identyfikator źródła używanego w zdarzeniach. Aby określić poprawną wartość, może być konieczne wykonanie zapytania względem oryginalnej tabeli, takiej jak Syslog.

Jeśli w systemie nie wdrożono listy do obserwacji Sources_by_SourceType, wdróż ją do obszaru roboczego Microsoft Sentinel przy użyciu szablonu wdrożenia listy do obserwacji ASIM w serwisie GitHub.

Dowiedz się więcej o analizatorach ASIM:

Dowiedz się więcej na temat karty ASIM w ogóle: