Condividi tramite


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

Gli utenti di Advanced Security Information Model (ASIM) usano parser unificanti anziché nomi di tabelle 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 in che modo i parser rientrano nell’architettura ASIM, vedere il diagramma dell’architettura ASIM.

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

  • Aggiungere un parser personalizzato specifico dell’origine a un parser unificante.

  • Sostituire un parser specifico dell’origine predefinito 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 diversa da quella usata per impostazione predefinita nel parser unificante.

    • Impedire gli aggiornamenti automatizzati mantenendo la versione del parser specifico dell’origine usata 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 di 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 e unificanti. Questi parser personalizzati sono distribuiti nell’area di lavoro e pertanto modificabili. I parser predefiniti e unificanti prelevano automaticamente questi parser personalizzati se esistenti.

    È possibile distribuire parser personalizzati, iniziali, vuoti e unificanti nell’area di lavoro di Microsoft Sentinel per tutti gli schemi supportati o singolarmente per gli schemi specifici. Per altre informazioni, vedere Distribuire parser unificanti, personalizzati, vuoti, ASIM e iniziali nel repository GitHub di Microsoft Sentinel.

  • Per supportare l’esclusione di parser predefiniti specifici dell’origine, ASIM usa un watchlist. Distribuire la watchlist 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 la watchlist nell’area di lavoro di Microsoft Sentinel dal repository GitHub di Microsoft Sentinel.

Aggiungere un parser personalizzato a un parser unificante predefinito

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

Assicurarsi di aggiungere sia un parser personalizzato di filtro sia un parser personalizzato senza parametri. Per altre informazioni su come modificare i parser, vedere il documento Funzioni in 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 unificante che fa già riferimento a parser, assicurarsi di aggiungere una virgola alla fine della riga precedente.

Ad esempio, il codice seguente mostra un parser unificante 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, predefinito ed esistente:

  1. Creare un parser personalizzato in base al parser originale e aggiungerlo al parser predefinito.

  2. Aggiungere un record alla watchlist ASim Disabled Parsers.

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

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

Ad esempio, per escludere il parser DNS di Firewall di Azure, aggiungere il record seguente alla watchlist:

CallerContext SourceSpecificParser
Exclude_Im_Dns Exclude_Im_Dns_AzureFirewall

Impedire l’aggiornamento automatizzato di un parser predefinito

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

  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 unificante predefinito.

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

  • Record con Any come campo SourceSpecificParser per escludere tutti i parser per CallerContext.
  • Record per Any nei campi CallerContext e SourceSpecificParser per escludere tutti i parser predefiniti.

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

Gestire i parser unificanti distribuiti nell’area di lavoro

Aggiungere un parser personalizzato a un parser unificante distribuito nell’area di lavoro

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

Assicurarsi di aggiungere sia un parser personalizzato di filtro sia 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 di 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 di processo - imProcess
- imProcessCreate
- imProcessTerminate
_parser_name_
Evento di registro 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 unificante, assicurarsi di aggiungere una virgola alla fine della riga precedente.

Ad esempio, l’esempio seguente mostra il parser unificante del filtro DNS dopo aver aggiunto added_parserpersonalizzato:

  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 unificante distribuito nell’area di lavoro.

Ad esempio, il codice seguente mostra un parser unificante del filtro DNS dopo che ha sostituito il parser vimDnsAzureFirewall 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

Alcuni parser richiedono di 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 la watchlist Sources_by_SourceType 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 campo SourceType sul valore preciso del parser specificato nella documentazione del parser.
  • Impostare il campo Source sull’identificatore dell’origine usata negli eventi. Potrebbe essere necessario eseguire una query sulla tabella originale, ad esempio Syslog, per determinare il valore corretto.

Se la watchlist Sources_by_SourceType non è stata distribuita nel sistema, distribuirla 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 in generale: