Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Analizatory składni ASIM wdrożone w obszarze roboczym służą do tworzenia i modyfikowania analizatorów składni ASIM.
Wdrażanie analizatorów obszaru roboczego
ASIM obsługuje również wdrażanie parserów do określonych obszarów roboczych z serwisu GitHub przy użyciu szablonu ARM. Parsery wdrożone w obszarze roboczym są używane do tworzenia parserów ASIM i zarządzania nimi. Analizatory wdrożone w obszarze roboczym są równoważne pod względem funkcjonalnym, ale mają nieco inne konwencje nazewnictwa, co pozwala obu zestawom analizatorów współistnieć z wbudowanymi analizatorami w tym samym obszarze roboczym Microsoft Sentinel.
Zaleca się używanie wbudowanych analizatorów podczas tworzenia zawartości ASIM. Analizatory wdrożone w obszarze roboczym są zwykle używane podczas procesu opracowywania analizatora lub do udostępniania zmodyfikowanych wersji wbudowanych analizatorów zgodnie z opisem w sekcji zarządzanie analizatorami
Użyj analizatorów obszaru roboczego
W przypadku używania parserów obszaru roboczego w zapytaniach ujednolicona nazwa parsera to im<schema>, gdzie <schema> oznacza konkretny obsługiwany schemat.
W poniższej tabeli wymieniono dostępne analizatory ujednolicenia:
| Schemat | Parser ujednolicający |
|---|---|
| Zdarzenie alarmowe | imAlertEvent |
| Zdarzenie inspekcji | imAuditEvent |
| Uwierzytelnianie | imAuthentication |
| Zdarzenie DHCP | imDhcpEvent |
| DNS | imDns |
| Zdarzenie dotyczące pliku | imFileEvent |
| Sesja sieciowa | imNetworkSession |
| Zdarzenie procesowe | imProcessCreate imProcessTerminate |
| Zdarzenie w rejestrze | imRegistry |
| Zarządzanie użytkownikami | imUserManagement |
| Sesja internetowa | imWebSession |
Zarządzanie analizatorami ujednolicenia wdrożonymi w obszarze roboczym
Dodaj niestandardowy parser do parsera ujednolicającego wdrożonego w obszarze roboczym
Aby dodać analizator niestandardowy, wstaw wiersz do instrukcji union we wdrożonym w obszarze roboczym ujednolicającym analizatorze, który odwołuje się do nowego analizatora niestandardowego.
Pamiętaj, aby dodać zarówno niestandardowy parser filtrujący, jak i niestandardowy parser bez parametrów. Składnia wiersza do dodania jest inna dla każdego schematu:
| Schemat | Parser | Linia do dodania |
|---|---|---|
| AlertEvent | imAlertEvent |
_parser_name_ (starttime, endtime, ipaddr_has_any_prefix, hostname_has_any, username_has_any, attacktactics_has_any, attacktechniques_has_any, threatcategory_has_any, alertverdict_has_any, eventseverity_has_any) |
| Zdarzenie audytu | imAuditEvent |
_parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, eventtype_in, eventresult, actorusername_has_any, operation_has_any, object_has_any, newvalue_has_any) |
| Uwierzytelnianie | imAuthentication |
_parser_name_ (starttime, endtime, targetusername_has_any, actorusername_has_any, srcipaddr_has_any_prefix, srchostname_has_any, targetipaddr_has_any_prefix, dvcipaddr_has_any_prefix, dvchostname_has_any, eventtype_in, eventresultdetails_in, eventresult) |
| DhcpEvent | imDhcpEvent |
_parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, srchostname_has_any, srcusername_has_any, eventresult) |
| DNS | imDns |
_parser_name_ (starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype) |
| FileEvent | imFileEvent |
_parser_name_ (starttime, endtime, eventtype_in, srcipaddr_has_any_prefix, actorusername_has_any, targetfilepath_has_any, srcfilepath_has_any, hashes_has_any, dvchostname_has_any) |
| NetworkSession | imNetworkSession |
_parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, dstipaddr_has_any_prefix, ipaddr_has_any_prefix, dstportnumber, hostname_has_any, dvcaction, eventresult) |
| ProcessEvent |
imProcessCreate, imProcessTerminate |
_parser_name_ (starttime, endtime, commandline_has_any, commandline_has_all, commandline_has_any_ip_prefix, actingprocess_has_any, targetprocess_has_any, parentprocess_has_any, targetusername_has, actorusername_has, dvcipaddr_has_any_prefix, dvchostname_has_any, eventtype) |
| RegistryEvent | imRegistry |
_parser_name_ (starttime, endtime, eventtype_in, actorusername_has_any, registrykey_has_any, registryvalue_has_any, registryvaluedata_has_any, dvchostname_has_any) |
| Zarządzanie użytkownikami | imUserManagement |
_parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, targetusername_has_any, actorusername_has_any, eventtype_in) |
| WebSession | imWebSession |
_parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, ipaddr_has_any_prefix, url_has_any, httpuseragent_has_any, eventresultdetails_in, eventresult) |
Podczas dodawania dodatkowego analizatora do analizatora ujednolicenia upewnij się, że na końcu poprzedniego wiersza dodano przecinek.
Na przykład poniższy przykład pokazuje parser ujednolicający filtrowanie DNS po dodaniu niestandardowego added_parser:
let Generic=(starttime:datetime=datetime(null), endtime:datetime=datetime(null) , srcipaddr:string='*' , domain_has_any:dynamic=dynamic([]) , responsecodename:string='*', response_has_ipv4:string='*' , response_has_any_prefix:dynamic=dynamic([]) , eventtype:string='lookup' ){
let DisabledParsers=materialize(_GetWatchlist('ASimDisabledParsers') | where SearchKey in ('Any', 'imDns') | extend SourceSpecificParser=column_ifexists('SourceSpecificParser','') | distinct SourceSpecificParser);
let imDnsBuiltInDisabled=toscalar('imDnsBuiltIn' in (DisabledParsers) or 'Any' in (DisabledParsers));
union isfuzzy=true
vimDnsEmpty
, vimDnsCiscoUmbrella ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype, (imDnsBuiltInDisabled or('vimDnsCiscoUmbrella' in (DisabledParsers) )))
, vimDnsInfobloxNIOS ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype, (imDnsBuiltInDisabled or('vimDnsInfobloxNIOS' in (DisabledParsers) )))
...
, vimDnsAzureFirewall ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype, (imDnsBuiltInDisabled or('vimDnsAzureFirewall' in (DisabledParsers) )))
, vimDnsMicrosoftNXlog ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype, (imDnsBuiltInDisabled or('vimDnsMicrosoftNXlog' in (DisabledParsers) ))),
added_parser ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype)
};
Generic( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype)
Używanie zmodyfikowanej wersji analizatora wdrożonego w obszarze roboczym
Użytkownicy Microsoft Sentinel mogą bezpośrednio modyfikować parsery wdrożone w obszarze roboczym. Utwórz parser na podstawie oryginału, zakomentuj oryginał, a następnie dodaj zmodyfikowaną wersję do parsera unifikującego wdrożonego w obszarze roboczym.
Na przykład poniższy kod pokazuje parser ujednolicający filtrowanie DNS po zastąpieniu parsera vimDnsAzureFirewall jego zmodyfikowaną wersją:
let Generic=(starttime:datetime=datetime(null), endtime:datetime=datetime(null) , srcipaddr:string='*' , domain_has_any:dynamic=dynamic([]) , responsecodename:string='*', response_has_ipv4:string='*' , response_has_any_prefix:dynamic=dynamic([]) , eventtype:string='lookup' ){
let DisabledParsers=materialize(_GetWatchlist('ASimDisabledParsers') | where SearchKey in ('Any', 'imDns') | extend SourceSpecificParser=column_ifexists('SourceSpecificParser','') | distinct SourceSpecificParser);
let imDnsBuiltInDisabled=toscalar('imDnsBuiltIn' in (DisabledParsers) or 'Any' in (DisabledParsers));
union isfuzzy=true
vimDnsEmpty
, vimDnsCiscoUmbrella ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype, (imDnsBuiltInDisabled or('vimDnsCiscoUmbrella' in (DisabledParsers) )))
, vimDnsInfobloxNIOS ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype, (imDnsBuiltInDisabled or('vimDnsInfobloxNIOS' in (DisabledParsers) )))
...
// , vimDnsAzureFirewall ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype, (imDnsBuiltInDisabled or('vimDnsAzureFirewall' in (DisabledParsers) )))
, vimDnsMicrosoftNXlog ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype, (imDnsBuiltInDisabled or('vimDnsMicrosoftNXlog' in (DisabledParsers) ))),
modified_vimDnsAzureFirewall ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype)
};
Generic( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype)