Dela via


Hantera ASIM-parsare (Advanced Security Information Model) (offentlig förhandsversion)

ASIM-användare (Advanced Security Information Model) använder enande parsers i stället för tabellnamn i sina frågor, för att visa data i ett normaliserat format och hämta alla data som är relevanta för schemat i en enda fråga. Varje enande parser använder flera källspecifika parsare som hanterar varje käll specifika information.

Information om hur parsers passar i ASIM-arkitekturen finns i ASIM-arkitekturdiagrammet.

Du kan behöva hantera de källspecifika parsare som används av varje enande parser för att:

  • Lägg till en anpassad, källspecifik parser till en enande parser.

  • Ersätt en inbyggd, källspecifik parser som används av en enande parser med en anpassad, källspecifik parser. Ersätt inbyggda parsers när du vill:

    • Använd en annan version av den inbyggda parsern än den som används som standard i den enande parsern.

    • Förhindra automatiska uppdateringar genom att bevara den version av den källspecifika parsern som används av den enande parsern.

    • Använd en modifierad version av en inbyggd parser.

  • Konfigurera en källspecifik parser, till exempel för att definiera de källor som skickar information som är relevant för parsern.

Den här artikeln vägleder dig genom att hantera dina parsers, oavsett om du använder inbyggda, enhetliga ASIM-parsare eller arbetsytedistribuerade enande parsers.

Viktigt!

ASIM är för närvarande i förhandsversion. Tilläggsvillkoren för Azure Preview innehåller ytterligare juridiska villkor som gäller för Azure-funktioner som är i betaversion, förhandsversion eller på annat sätt ännu inte har släppts i allmän tillgänglighet.

Förutsättningar

Procedurerna i den här artikeln förutsätter att alla källspecifika parsare redan har distribuerats till din Microsoft Sentinel-arbetsyta.

Mer information finns i Utveckla ASIM-parsare.

Hantera inbyggda enande parsers

Konfigurera din arbetsyta

Microsoft Sentinel-användare kan inte redigera inbyggda enande parsers. Använd i stället följande mekanismer för att ändra beteendet för inbyggda enande parsers:

  • För att stödja tillägg av källspecifika parsers använder ASIM enhetliga, anpassade parsers. De här anpassade parsarna är arbetsytedistribuerade och kan därför redigeras. Inbyggda, enande parsare hämtar automatiskt dessa anpassade parsers, om de finns.

    Du kan distribuera inledande, tomma, enhetliga anpassade parsers till din Microsoft Sentinel-arbetsyta för alla scheman som stöds eller individuellt för specifika scheman. Mer information finns i Distribuera inledande ASIM-tomma anpassade enande parsers på Microsoft Sentinel GitHub-lagringsplatsen.

  • För att stödja exkludering av inbyggda källspecifika parsare använder ASIM en bevakningslista. Distribuera visningslistan till din Microsoft Sentinel-arbetsyta från Microsoft Sentinel GitHub-lagringsplatsen .

  • För att definiera källtyp för inbyggda och anpassade parsers använder ASIM en visningslista. Distribuera visningslistan till din Microsoft Sentinel-arbetsyta från Microsoft Sentinel GitHub-lagringsplatsen .

Lägga till en anpassad parser i en inbyggd enande parser

Om du vill lägga till en anpassad parser infogar du en rad i den anpassade enande parsern för att referera till den nya anpassade parsern.

Se till att lägga till både en anpassad parser för filtrering och en parameterlös anpassad parser. Mer information om hur du redigerar parsers finns i dokumentet Functions i Azure Monitor-loggfrågor.

Syntaxen för den rad som ska läggas till är olika för varje schema:

Schema Parser Rad att lägga till
DNS Im_DnsCustom _parser_name_ (starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype)
NetworkSession Im_NetworkSessionCustom _parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, dstipaddr_has_any_prefix, dstportnumber, hostname_has_any, dvcaction, eventresult)
WebSession Im_WebSessionCustom _parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, url_has_any, httpuseragent_has_any, eventresultdetails_in, eventresult)

När du lägger till ytterligare en parser till en enande anpassad parser som redan refererar till parsers, se till att du lägger till ett kommatecken i slutet av föregående rad.

Följande kod visar till exempel en anpassad enande parser när du added_parserhar lagt till :

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

Använda en modifierad version av en inbyggd parser

Så här ändrar du en befintlig, inbyggd källspecifik parser:

  1. Skapa en anpassad parser baserat på den ursprungliga parsern och lägg till den i den inbyggda parsern.

  2. Lägg till en post i visningslistan ASim Disabled Parsers .

  3. CallerContext Definiera värdet som Exclude<parser name>, där <parser name> är namnet på de enande parsare som du vill exkludera parsern från.

  4. SourceSpecificParser Definiera värdet Exclude<parser name>, där <parser name>är namnet på den parser som du vill exkludera, utan en versionsspecificerare.

Om du till exempel vill exkludera DNS-parsern för Azure Firewall lägger du till följande post i bevakningslistan:

CallerContext SourceSpecificParser
Exclude_Im_Dns Exclude_Im_Dns_AzureFirewall

Förhindra en automatisk uppdatering av en inbyggd parser

Använd följande process för att förhindra automatiska uppdateringar för inbyggda, källspecifika parsare:

  1. Lägg till den inbyggda parserversion som du vill använda, till exempel _Im_Dns_AzureFirewallV02, i den anpassade enande parsern. Mer information finns i Ovan, Lägg till en anpassad parser till en inbyggd enande parser.

  2. Lägg till ett undantag för den inbyggda parsern. Om du till exempel helt vill välja bort automatiska uppdateringar och därför exkludera ett stort antal inbyggda parsers lägger du till:

  • En post med Any som SourceSpecificParser fält för att exkludera alla parsers för CallerContext.
  • En post för Any i CallerContext och fälten SourceSpecificParser för att exkludera alla inbyggda parsers.

Mer information finns i Använda en modifierad version av en inbyggd parser.

Hantera arbetsytedistribuerade enande parsers

Lägga till en anpassad parser till en arbetsytedistribuerad enande parser

Om du vill lägga till en anpassad parser infogar du en rad i -instruktionen union i den arbetsytedistribuerade enande parsern som refererar till den nya anpassade parsern.

Se till att lägga till både en anpassad parser för filtrering och en parameterlös anpassad parser. Syntaxen för den rad som ska läggas till är olika för varje schema:

Schema Parser Rad att lägga till
Autentisering ImAuthentication _parser_name_ (starttime, endtime, targetusername_has)
DNS ImDns _parser_name_ (starttime, endtime, srcipaddr, domain_has_any,
responsecodename, response_has_ipv4, response_has_any_prefix,
eventtype)
Filhändelse imFileEvent _parser_name_
Nätverkssession imNetworkSession _parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, dstipaddr_has_any_prefix, dstportnumber, url_has_any,
httpuseragent_has_any, hostname_has_any, dvcaction, eventresult)
Processhändelse - imProcess
- imProcessCreate
- imProcessTerminate
_parser_name_
Registerhändelse imRegistry

_parser_name_
Webbsession imWebSession

_parser_name_ parser (starttime, endtime, srcipaddr_has_any, url_has_any, httpuseragent_has_any, eventresultdetails_in, eventresult)

När du lägger till ytterligare en parser i en enande parser ska du lägga till ett kommatecken i slutet av föregående rad.

I följande exempel visas till exempel DNS-filtreringens enande parser när du har lagt till den anpassade 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)

Använda en modifierad version av en arbetsytedistribuerad parser

Microsoft Sentinel-användare kan direkt ändra arbetsytedistribuerade parsers. Skapa en parser baserat på originalet, kommentera ut originalet och lägg sedan till den ändrade versionen i den arbetsytedistribuerade enande parsern.

Följande kod visar till exempel en DNS-filtreringsenande enande parser, efter att ha ersatt parsern med en modifierad vimDnsAzureFirewall version:

  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)

Konfigurera de källor som är relevanta för en källspecifik parser

Vissa parsare kräver att du uppdaterar listan över källor som är relevanta för parsern. En parser som använder Syslog-data kanske till exempel inte kan avgöra vilka Syslog-händelser som är relevanta för parsern. En sådan parser kan använda Sources_by_SourceType visningslistan för att avgöra vilka källor som skickar information som är relevant för parsern. För sådana parsar lägger du till en post för varje relevant källa i visningslistan:

  • Ange fältet SourceType till det parser-specifika värde som anges i parserdokumentationen.
  • Ange fältet Source till identifieraren för den källa som används i händelserna. Du kan behöva fråga den ursprungliga tabellen, till exempel Syslog, för att fastställa rätt värde.

Om systemet inte har Sources_by_SourceType visningslistan distribuerad distribuerar du visningslistan till din Microsoft Sentinel-arbetsyta från Microsoft Sentinel GitHub-lagringsplatsen .

Nästa steg

I den här artikeln beskrivs hur du hanterar ASIM-parsarna (Advanced Security Information Model).

Läs mer om ASIM-parsers:

Läs mer om ASIM i allmänhet: