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:
Creare un parser personalizzato basato sul parser originale e aggiungerlo al parser predefinito.
Aggiungere un record all'elenco
ASim Disabled Parsers
di controllo.Definire il
CallerContext
valore comeExclude<parser name>
, dove<parser name>
è il nome dei parser unificanti da cui si vuole escludere il parser.Definire il
SourceSpecificParser
valoreExclude<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:
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.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
comeSourceSpecificParser
campo , per escludere tutti i parser per l'oggettoCallerContext
. - Record per
Any
in CallerContext e neiSourceSpecificParser
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:
- Panoramica dei parser ASIM
- Usare i parser ASIM
- Sviluppare parser ASIM personalizzati
- Elenco dei parser ASIM
Altre informazioni su ASIM sono disponibili in generale:
- Guardare il webinar di approfondimento sulla normalizzazione dei parser e sul contenuto normalizzato di Microsoft Sentinel o esaminare le diapositive
- Panoramica di Advanced Security Information Model (ASIM)
- Schemi ASIM (Advanced Security Information Model)
- Contenuto di Advanced Security Information Model (ASIM)