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

ASIM-användare (Advanced Security Information Model) använder enande parsare 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 parsare 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 i 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 parsrar 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 parsare. 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 parsers plockar automatiskt upp dessa anpassade parsers, om de finns.

    Du kan distribuera inledande, tomma, enhetliga anpassade parsare 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 visningslista. Distribuera visningslistan till din Microsoft Sentinel-arbetsyta från Microsoft Sentinel GitHub-lagringsplatsen .

  • För att definiera källtyp för inbyggda och anpassade parsare 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 in Azure Monitor log queries (Funktioner i Azure Monitor-loggfrågor).

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

Schema Parser Linje 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 i en enhetlig anpassad parser som redan refererar till parsers ska du lägga till ett kommatecken i slutet av föregående rad.

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

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 undanta 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 Azure Firewall DNS-parser lägger du till följande post i visningslistan:

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 parsningsversion som du vill använda, till exempel _Im_Dns_AzureFirewallV02, i den anpassade enande parsern. Mer information finns i Lägg till en anpassad parser i 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 undanta alla inbyggda parsers.

Mer information finns i Använda en ändrad 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 raden som ska läggas till är olika för varje schema:

Schema Parser Linje 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 måste 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 parsare. 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-filtrering av enande parser, efter att ha ersatt parsern med en ändrad 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 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 parsningar lägger du till en post för varje relevant källa i visningslistan:

  • Ange fältet SourceType till det parsningsspecifika värdet som anges i parserdokumentationen.
  • Ange fältet Source till identifieraren för källan 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 du inte har Sources_by_SourceType distribuerat visningslistan distribuerar du visningslistan till din Microsoft Sentinel-arbetsyta från GitHub-lagringsplatsen för Microsoft Sentinel.

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: