Gestire parser ASIM (Advanced Security Information Model) (anteprima pubblica)

Gli utenti di Advanced Security Information Model (ASIM) usano parser unificanti anziché nomi di tabella nelle query, per visualizzare i dati in un formato normalizzato e ottenere tutti i dati rilevanti per lo schema in una singola query. Ogni parser unificante usa più parser specifici dell'origine che gestiscono i dettagli specifici di ogni origine.

Per comprendere l'adattamento dei parser all'interno dell'architettura ASIM, vedere il diagramma dell'architettura ASIM.

Potrebbe essere necessario gestire i parser specifici dell'origine usati da ogni parser unificatore per:

  • Aggiungere un parser personalizzato specifico dell'origine a un parser unificatore.

  • Sostituire un parser predefinito specifico dell'origine usato da un parser unificante con un parser personalizzato specifico dell'origine. Sostituire i parser predefiniti quando si vuole:

    • Usare una versione del parser predefinito diverso da quello usato per impostazione predefinita nel parser unificante.

    • Impedire gli aggiornamenti automatizzati mantenendo la versione del parser specifico dell'origine usato dal parser unificante.

    • Usare una versione modificata di un parser predefinito.

  • Configurare un parser specifico dell'origine, ad esempio per definire le origini che inviano informazioni pertinenti al parser.

Questo articolo illustra la gestione dei parser, indipendentemente dall'uso di parser ASIM predefiniti o parser unificanti distribuiti nell'area di lavoro.

Importante

ASIM è attualmente in ANTEPRIMA. Le condizioni aggiuntive per l'anteprima di Azure includono termini legali aggiuntivi che si applicano a funzionalità di Azure in versione beta, anteprima o diversamente non ancora disponibili a livello generale.

Prerequisiti

Le procedure descritte in questo articolo presuppongono che tutti i parser specifici dell'origine siano già stati distribuiti nell'area di lavoro di Microsoft Sentinel.

Per altre informazioni, vedere Sviluppare parser ASIM.

Gestire parser unificanti predefiniti

Configurare l'area di lavoro

Gli utenti di Microsoft Sentinel non possono modificare parser unificanti predefiniti. Usare invece i meccanismi seguenti per modificare il comportamento dei parser unificanti predefiniti:

  • Per supportare l'aggiunta di parser specifici dell'origine, ASIM usa parser personalizzati unificanti. Questi parser personalizzati sono distribuiti nell'area di lavoro e pertanto modificabili. I parser predefiniti, unificanti, prelevano automaticamente questi parser personalizzati, se esistenti.

    È possibile distribuire parser personalizzati iniziali, vuoti e unificati nell'area di lavoro di Microsoft Sentinel per tutti gli schemi supportati o singolarmente per schemi specifici. Per altre informazioni, vedere Deploy initial ASIM empty custom unifying parsers in the Microsoft Sentinel GitHub repository .For more information, see Deploy initial ASIM empty custom unifying parsers in the Microsoft Sentinel GitHub repository.

  • Per supportare l'esclusione di parser specifici dell'origine predefiniti, ASIM usa un watchlist. Distribuire l'elenco di controllo nell'area di lavoro di Microsoft Sentinel dal repository GitHub di Microsoft Sentinel.

  • Per definire il tipo di origine per parser predefiniti e personalizzati, ASIM usa un watchlist. Distribuire l'elenco di controllo nell'area di lavoro di Microsoft Sentinel dal repository GitHub di Microsoft Sentinel.

Aggiungere un parser personalizzato a un parser unificatore predefinito

Per aggiungere un parser personalizzato, inserire una riga al parser di unificazione personalizzato per fare riferimento al nuovo parser personalizzato.

Assicurarsi di aggiungere sia un parser personalizzato di filtro che un parser personalizzato senza parametri. Per altre informazioni su come modificare i parser, vedere il documento Funzioni nelle query di log di Monitoraggio di Azure.

La sintassi della riga da aggiungere è diversa per ogni schema:

SCHEMA Parser Riga da aggiungere
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)

Quando si aggiunge un parser aggiuntivo a un parser personalizzato che fa già riferimento ai parser, assicurarsi di aggiungere una virgola alla fine della riga precedente.

Ad esempio, il codice seguente mostra un parser unificatore personalizzato dopo aver aggiunto :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)

Usare una versione modificata di un parser predefinito

Per modificare un parser specifico dell'origine esistente:

  1. Creare un parser personalizzato basato sul parser originale e aggiungerlo al parser predefinito.

  2. Aggiungere un record all'elenco ASim Disabled Parsers di controllo.

  3. Definire il CallerContext valore come Exclude<parser name>, dove <parser name> è il nome dei parser unificanti da cui si vuole escludere il parser.

  4. Definire il SourceSpecificParser valore Exclude<parser name>, dove <parser name>è il nome del parser che si vuole escludere, senza un identificatore di versione.

Ad esempio, per escludere il parser DNS Firewall di Azure, aggiungere il record seguente all'elenco di controllo:

CallerContext SourceSpecificParser
Exclude_Im_Dns Exclude_Im_Dns_AzureFirewall

Impedire un aggiornamento automatico di un parser predefinito

Usare il processo seguente per impedire gli aggiornamenti automatici per i parser specifici dell'origine predefiniti:

  1. Aggiungere la versione predefinita del parser da usare, ad esempio _Im_Dns_AzureFirewallV02, al parser unificatore personalizzato. Per altre informazioni, vedere sopra Aggiungere un parser personalizzato a un parser unificatore predefinito.

  2. Aggiungere un'eccezione per il parser predefinito. Ad esempio, quando si vuole rifiutare esplicitamente gli aggiornamenti automatici e quindi escludere un numero elevato di parser predefiniti, aggiungere:

  • Record con Any come SourceSpecificParser campo , per escludere tutti i parser per l'oggetto CallerContext.
  • Record per Any in CallerContext e nei SourceSpecificParser campi per escludere tutti i parser predefiniti.

Per altre informazioni, vedere Usare una versione modificata di un parser predefinito.

Gestire parser unificanti distribuiti nell'area di lavoro

Aggiungere un parser personalizzato a un parser unificatore distribuito nell'area di lavoro

Per aggiungere un parser personalizzato, inserire una riga all'istruzione nel parser unificatore distribuito nell'area union di lavoro che fa riferimento al nuovo parser personalizzato.

Assicurarsi di aggiungere sia un parser personalizzato di filtro che un parser personalizzato senza parametri. La sintassi della riga da aggiungere è diversa per ogni schema:

SCHEMA Parser Riga da aggiungere
autenticazione 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)
Evento File imFileEvent _parser_name_
Sessione di rete 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)
Evento Processo - imProcess
- imProcessCreate
- imProcessTerminate
_parser_name_
Evento Registro di sistema imRegistry

_parser_name_
Sessione Web imWebSession

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

Quando si aggiunge un parser aggiuntivo a un parser unificatore, assicurarsi di aggiungere una virgola alla fine della riga precedente.

L'esempio seguente, ad esempio, mostra il parser di filtro DNS che unifica, dopo aver aggiunto l'oggetto personalizzato 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)

Usare una versione modificata di un parser distribuito nell'area di lavoro

Gli utenti di Microsoft Sentinel possono modificare direttamente i parser distribuiti nell'area di lavoro. Creare un parser basato sull'originale, impostare come commento l'originale e quindi aggiungere la versione modificata al parser unificatore distribuito nell'area di lavoro.

Ad esempio, il codice seguente mostra un parser di filtro DNS che unifica il parser, dopo aver sostituito il vimDnsAzureFirewall parser con una versione modificata:

  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)

Configurare le origini rilevanti per un parser specifico dell'origine

Per alcuni parser è necessario aggiornare l'elenco delle origini rilevanti per il parser. Ad esempio, un parser che usa dati Syslog potrebbe non essere in grado di determinare quali eventi Syslog sono rilevanti per il parser. Un parser di questo tipo può usare l'elenco Sources_by_SourceType di controllo per determinare quali origini inviano informazioni pertinenti al parser. Per tali analisi, aggiungere un record per ogni origine pertinente all'elenco di controllo:

  • Impostare il SourceType campo sul valore specifico del parser specificato nella documentazione del parser.
  • Impostare il Source campo sull'identificatore dell'origine utilizzata negli eventi. Potrebbe essere necessario eseguire una query sulla tabella originale, ad esempio Syslog, per determinare il valore corretto.

Se il sistema non ha distribuito l'elenco Sources_by_SourceType di controllo, distribuire l'elenco di controllo nell'area di lavoro di Microsoft Sentinel dal repository GitHub di Microsoft Sentinel.

Passaggi successivi

Questo articolo illustra la gestione dei parser ASIM (Advanced Security Information Model).

Altre informazioni sui parser ASIM:

Altre informazioni su ASIM sono disponibili in generale: