Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In de werkruimte geïmplementeerdE ASIM-parsers (Advanced Security Information Model) worden gebruikt ter ondersteuning van het ontwikkelen en wijzigen van ASIM-parsers.
Werkruimteparser implementeren
ASIM ondersteunt ook het implementeren van parsers naar specifieke werkruimten vanuit GitHub, met behulp van een ARM-sjabloon. Door werkruimte geïmplementeerde parsers worden gebruikt voor de ontwikkeling en het beheer van ASIM-parser. Door werkruimte geïmplementeerde parsers zijn functioneel gelijkwaardig, maar hebben enigszins verschillende naamconventies, waardoor beide parsersets naast ingebouwde parsers in dezelfde Microsoft Sentinel werkruimte kunnen bestaan.
Het wordt aanbevolen om ingebouwde parsers te gebruiken bij het ontwikkelen van ASIM-inhoud. Door werkruimte geïmplementeerde parsers worden meestal gebruikt tijdens het ontwikkelingsproces van de parser of om gewijzigde versies van ingebouwde parsers te bieden, zoals beschreven in Parsers beheren
Werkruimteparser gebruiken
Wanneer u werkruimteparser gebruikt in uw query's, is im<schema>de naam van de samenvoegende parser , waarbij <schema> staat voor het specifieke schema dat wordt gebruikt.
In de volgende tabel ziet u de beschikbare parseringsservers:
| Schema | Parseerfunctie voor unifying |
|---|---|
| Waarschuwingsevenement | imAlertEvent |
| Controlegebeurtenis | imAuditEvent |
| Verificatie | imAuthentication |
| DHCP-gebeurtenis | imDhcpEvent |
| Dns | imDns |
| Bestands gebeurtenis | imFileEvent |
| Netwerksessie | imNetworkSession |
| Proces-gebeurtenis | imProcessCreate imProcessTerminate |
| Register-gebeurtenis | imRegistry |
| Gebruikersbeheer | imUserManagement |
| Websessie | imWebSession |
Door werkruimte geïmplementeerde unifying-parsers beheren
Een aangepaste parser toevoegen aan een door een werkruimte geïmplementeerde unifying-parser
Als u een aangepaste parser wilt toevoegen, voegt u een regel toe aan de union instructie in de door de werkruimte geïmplementeerde samenvoegingsparser die verwijst naar de nieuwe aangepaste parser.
Zorg ervoor dat u zowel een aangepaste filterparser als een aangepaste parser met parameters toevoegt. De syntaxis van de toe te voegen regel verschilt voor elk schema:
| Schema | Parser | Toe te voegen regel |
|---|---|---|
| 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) |
| Verificatie | 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) |
Wanneer u een extra parser toevoegt aan een samenvoegingsparseer, moet u ervoor zorgen dat u een komma toevoegt aan het einde van de vorige regel.
In het volgende voorbeeld ziet u bijvoorbeeld de parseerfunctie voor het samenvoegen van DNS-filtering, nadat u de aangepaste added_parserhebt toegevoegd:
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)
Een aangepaste versie van een door een werkruimte geïmplementeerde parser gebruiken
Microsoft Sentinel gebruikers kunnen door werkruimte geïmplementeerde parsers rechtstreeks wijzigen. Maak een parser op basis van het origineel, maak een commentaar op het origineel en voeg vervolgens de gewijzigde versie toe aan de door de werkruimte geïmplementeerde unifying parser.
De volgende code toont bijvoorbeeld een parseerfunctie voor DNS-filtering die de vimDnsAzureFirewall parser heeft vervangen door een gewijzigde versie:
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)
Verwante onderwerpen
Zie voor meer informatie: