Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Im Arbeitsbereich bereitgestellte ASIM-Parser (Advanced Security Information Model) werden verwendet, um das Entwickeln und Ändern von ASIM-Parsern zu unterstützen.
Bereitstellen von Arbeitsbereichsparsern
ASIM unterstützt auch die Bereitstellung von Parsern in bestimmten Arbeitsbereichen von GitHub mithilfe einer ARM-Vorlage. Im Arbeitsbereich bereitgestellte Parser werden für die Entwicklung und Verwaltung des ASIM-Parsers verwendet. Im Arbeitsbereich bereitgestellte Parser sind funktional äquivalent, weisen jedoch geringfügig unterschiedliche Namenskonventionen auf, sodass beide Parsersätze gleichzeitig mit integrierten Parsern im selben Microsoft Sentinel Arbeitsbereich vorhanden sind.
Es wird empfohlen, beim Entwickeln von ASIM-Inhalten integrierte Parser zu verwenden. Vom Arbeitsbereich bereitgestellte Parser werden in der Regel während des Parserentwicklungsprozesses oder zum Bereitstellen geänderter Versionen integrierter Parser verwendet, wie unter Verwalten von Parsern beschrieben.
Verwenden von Arbeitsbereichsparsern
Wenn Sie Arbeitsbereichsparser in Ihren Abfragen verwenden, lautet im<schema>der vereinheitlichende Parsername , wobei <schema> für das spezifische Schema steht, das er bedient.
In der folgenden Tabelle sind die verfügbaren vereinheitlichenden Parser aufgeführt:
| Schema | Vereinheitlichender Parser |
|---|---|
| Warnungsereignis | imAlertEvent |
| Audit-Ereignis | imAuditEvent |
| Authentifizierung | ImAuthentication |
| DHCP-Ereignis | imDhcpEvent |
| Dns | imDns |
| Dateiereignis | imFileEvent |
| Netzwerksitzung | imNetworkSession |
| Prozessereignis | imProcessCreate imProcessTerminate |
| Registrierungsereignis | imRegistry |
| User Management | imUserManagement |
| Websitzung | imWebSession |
Verwalten von vom Arbeitsbereich bereitgestellten vereinheitlichenden Parsern
Hinzufügen eines benutzerdefinierten Parsers zu einem vom Arbeitsbereich bereitgestellten vereinheitlichenden Parser
Um einen benutzerdefinierten Parser hinzuzufügen, fügen Sie eine Zeile in die union -Anweisung im vom Arbeitsbereich bereitgestellten vereinheitlichenden Parser ein, der auf den neuen benutzerdefinierten Parser verweist.
Stellen Sie sicher, dass Sie sowohl einen benutzerdefinierten Filterparser als auch einen parameterlosen benutzerdefinierten Parser hinzufügen. Die Syntax der hinzuzufügenden Zeile unterscheidet sich für jedes Schema:
| Schema | Parser | Hinzuzufügende Zeile |
|---|---|---|
| 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) |
| AuditEvent | imAuditEvent |
_parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, eventtype_in, eventresult, actorusername_has_any, operation_has_any, object_has_any, newvalue_has_any) |
| Authentifizierung | 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) |
| UserManagement | 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) |
Wenn Sie einem vereinheitlichenden Parser einen zusätzlichen Parser hinzufügen, stellen Sie sicher, dass Sie am Ende der vorherigen Zeile ein Komma hinzufügen.
Das folgende Beispiel zeigt z. B. den vereinheitlichenden Parser für die DNS-Filterung, nachdem der benutzerdefinierte added_parserhinzugefügt wurde:
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)
Verwenden einer geänderten Version eines vom Arbeitsbereich bereitgestellten Parsers
Microsoft Sentinel Benutzer können im Arbeitsbereich bereitgestellte Parser direkt ändern. Erstellen Sie einen Parser basierend auf dem Original, kommentieren Sie das Original aus, und fügen Sie dann Ihre geänderte Version dem vom Arbeitsbereich bereitgestellten vereinheitlichenden Parser hinzu.
Der folgende Code zeigt z. B. einen vereinheitlichenden Parser für die DNS-Filterung, der den vimDnsAzureFirewall Parser durch eine geänderte Version ersetzt hat:
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)
Verwandte Inhalte
Weitere Informationen finden Sie unter: