Raccogliere i log di Infoblox
Questo documento descrive come raccogliere i log di Infoblox utilizzando un forwarder di Google Security Operations.
Per ulteriori informazioni, consulta Importazione dei dati in Google Security Operations.
Un'etichetta di importazione identifica l'analizzatore sintattico che normalizza i dati dei log non elaborati in formato UDM strutturato. Le informazioni contenute in questo documento si applicano all'analizzatore con l'etichetta di importazione INFOBLOX_DNS
.
Configura Infoblox
- Accedi all'interfaccia utente web di Infoblox.
- Nell'interfaccia utente web di Infoblox, seleziona Sistema > Editor delle proprietà di sistema > Monitoraggio.
- Seleziona la casella di controllo Registra su server syslog esterni.
- Nella sezione Server syslog esterni, fai clic sul segno Più (+) per aggiungere un nuovo server syslog per il forwarder di Google Security Operations.
- Nel campo Indirizzo, inserisci l'indirizzo IP del server di inoltro di Google Security Operations.
- Nell'elenco Trasporto, seleziona TCP o UDP.
- Nel campo Porta, inserisci il numero della porta.
- Nell'elenco Node ID (ID nodo), seleziona LAN per includere l'IP di Infoblox nell'intestazione syslog.
- Dall'elenco Disponibile, seleziona quanto segue e spostalo nell'elenco Selezionato:
- Query DNS
- Risposte DNS
- Procedura DHCP
Il server Infoblox inoltra i log delle query e delle risposte utilizzando syslog al forwarder di Google Security Operations.
Configura il forwarder di Google Security Operations e syslog per importare i log di Infoblox
- Seleziona Impostazioni SIEM > Inoltratori.
- Fai clic su Aggiungi nuovo mittente.
- Inserisci un nome univoco nel campo Nome mittente.
- Fai clic su Invia e poi su Conferma. Il forwarder viene aggiunto e viene visualizzata la finestra Aggiungi configurazione del collettore.
- Nel campo Nome del raccoglitore, inserisci un nome univoco per il raccoglitore.
- Seleziona Infoblox come Tipo di log.
- Seleziona Syslog come Tipo di collettore.
- Configura i seguenti parametri di input:
- Protocollo: specifica il protocollo di connessione che il collector utilizzerà per ascoltare i dati syslog.
- Indirizzo: specifica l'indirizzo IP o il nome host di destinazione in cui risiede il collector e ascolta i dati syslog.
- Porta: specifica la porta di destinazione in cui risiede il raccoglitore e che ascolta i dati syslog.
- Fai clic su Invia.
Per ulteriori informazioni sui forwarder di Google Security Operations, consulta la documentazione sui forwarder di Google Security Operations. Per informazioni sui requisiti per ciascun tipo di forwarder, consulta Configurazione del forwarder per tipo.
Se riscontri problemi durante la creazione dei reindirizzamenti, contatta l'assistenza di Google Security Operations.
Riferimento alla mappatura dei campi
Questo parser estrae i log DNS di Infoblox in formato SYSLOG o CEF, normalizzandoli in UDM. Gestisce vari formati di log utilizzando pattern grok, estrae i campi chiave come l'IP di origine o di destinazione, i dettagli delle query DNS e le informazioni sulla sicurezza e li mappa ai campi UDM appropriati.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
agent.hostname |
principal.hostname |
Per i log nel formato CEF, se esiste agent.hostname , viene mappato a principal.hostname . |
client_ip |
principal.ip |
Per i log nel formato CEF, se esiste client_ip , viene mappato a principal.ip . |
client_port |
principal.port |
Per i log nel formato CEF, se esiste client_port , viene mappato a principal.port . |
data |
answers.data |
Estratto dal campo data della sezione answers nel log non elaborato. Le occorrenze multiple vengono mappate come oggetti answers distinti. |
description |
metadata.description |
Mappato direttamente dal campo description del log non elaborato o estratto utilizzando pattern Grok da altri campi come message e msg2 . |
dest_ip1 |
target.ip |
Estratto dal log non elaborato e mappato a target.ip . |
destinationDnsDomain |
dns_question.name |
Per i log nel formato CEF, se esiste destinationDnsDomain , viene mappato a dns_question.name . |
dns_class |
dns_question.class |
Mappato utilizzando la tabella di ricerca dns_query_class_mapping.include . |
dns_domain |
dns_question.name |
Estratto dal campo message del log non elaborato utilizzando i pattern Grok e mappato a dns_question.name . |
dns_name |
dns_question.name |
Estratto dal campo dns_domain utilizzando i pattern Grok e mappato a dns_question.name . |
dns_records |
answers.data |
Per i log nel formato CEF, se esiste dns_records , viene mappato a answers.data . Le occorrenze multiple vengono mappate come oggetti answers distinti. |
dst_ip |
target.ip o target.hostname |
Estratto dal campo message del log non elaborato utilizzando i pattern Grok. Se si tratta di un indirizzo IP valido, viene mappato a target.ip ; in caso contrario, viene mappato a target.hostname . |
dst_ip1 |
target.ip o target.hostname |
Estratto dal campo message o msg2 del log non elaborato utilizzando i pattern Grok. Se si tratta di un indirizzo IP valido, viene mappato a target.ip ; in caso contrario, viene mappato a target.hostname . Viene mappato solo se è diverso da dst_ip . |
evt_type |
metadata.product_event_type |
Mappato direttamente dal campo evt_type del log non elaborato, che viene estratto dal campo message utilizzando i pattern Grok. |
InfobloxB1OPHIPAddress |
principal.ip |
Per i log nel formato CEF, se esiste InfobloxB1OPHIPAddress , viene mappato a principal.ip . |
InfobloxB1Region |
principal.location.country_or_region |
Per i log nel formato CEF, se esiste InfobloxB1Region , viene mappato a principal.location.country_or_region . |
InfobloxDNSQType |
dns_question.type |
Per i log nel formato CEF, se esiste InfobloxDNSQType , viene mappato a dns_question.type . |
intermediary |
intermediary.ip o intermediary.hostname |
Estratto dal campo message del log non elaborato utilizzando i pattern grok. Se si tratta di un indirizzo IP valido, viene mappato a intermediary.ip ; in caso contrario, viene mappato a intermediary.hostname . |
msg2 |
metadata.description , dns.response_code , dns_question.name , target.ip , target.hostname , answers.name , answers.ttl , answers.data , answers.class , answers.type , security_result.severity |
Estratto dal campo message del log non elaborato utilizzando i pattern grok. Utilizzato per estrarre vari campi, ma non mappato direttamente all'UDM. |
name1 |
answers.name |
Estratto dal campo msg2 del log non elaborato utilizzando i pattern Grok e mappato a answers.name . |
name2 |
answers.name |
Estratto dal campo msg2 del log non elaborato utilizzando i pattern Grok e mappato a answers.name . |
protocol |
network.ip_protocol |
Mappato direttamente dal campo protocol del log non elaborato se corrisponde a protocolli noti. |
qclass |
dns_question.class |
Campo intermedio utilizzato per mappare dns_class a UDM. |
qclass1 |
answers.class |
Campo intermedio utilizzato per mappare dns_class1 a UDM. |
qclass2 |
answers.class |
Campo intermedio utilizzato per mappare dns_class2 a UDM. |
query_type |
dns_question.type |
Mappato utilizzando la tabella di ricerca dns_record_type.include . |
query_type1 |
answers.type |
Mappato utilizzando la tabella di ricerca dns_record_type.include . |
query_type2 |
answers.type |
Mappato utilizzando la tabella di ricerca dns_record_type.include . |
recursion_flag |
network.dns.recursion_desired |
Se recursion_flag contiene un "+", viene mappato a network.dns.recursion_desired come true. |
record_type |
dns_question.type |
Campo intermedio utilizzato per mappare query_type a UDM. |
record_type1 |
answers.type |
Campo intermedio utilizzato per mappare query_type1 a UDM. |
record_type2 |
answers.type |
Campo intermedio utilizzato per mappare query_type2 a UDM. |
res_code |
network.dns.response_code |
Mappato utilizzando la tabella di ricerca dns_response_code.include . |
response_code |
network.dns.response_code |
Per i log nel formato CEF, se esiste response_code , viene mappato a network.dns.response_code utilizzando la tabella di ricerca dns_response_code.include . |
security_action |
security_result.action |
Derivato dal campo status . Se status è "denied", security_action viene impostato su "BLOCK"; in caso contrario, viene impostato su "ALLOW". |
severity |
security_result.severity |
Per i log nel formato CEF, se severity esiste ed è "informativo", viene mappato a security_result.severity come "INFORMATIONAL". |
src_host |
principal.hostname |
Estratto dal campo description o message del log non elaborato utilizzando i pattern Grok e mappato a principal.hostname . |
src_ip |
principal.ip o principal.hostname |
Estratto dal campo message del log non elaborato utilizzando i pattern grok. Se si tratta di un indirizzo IP valido, viene mappato a principal.ip ; in caso contrario, viene mappato a principal.hostname . |
src_port |
principal.port |
Estratto dal campo message del log non elaborato utilizzando i pattern Grok e mappato a principal.port . |
ttl1 |
answers.ttl |
Estratto dal campo msg2 del log non elaborato utilizzando i pattern Grok e mappato a answers.ttl . |
ttl2 |
answers.ttl |
Estratto dal campo msg2 del log non elaborato utilizzando i pattern Grok e mappato a answers.ttl . |
metadata.event_type |
metadata.event_type |
Derivato da vari campi e dalla logica del parser. Il valore predefinito è GENERIC_EVENT se non viene identificato nessun altro tipo di evento. I valori possibili includono NETWORK_DNS , NETWORK_CONNECTION e STATUS_UPDATE . |
metadata.log_type |
metadata.log_type |
Impostato su "INFOBLOX_DNS" dal parser. |
metadata.product_name |
metadata.product_name |
Impostato su "Infoblox DNS" dal parser. |
metadata.vendor_name |
metadata.vendor_name |
Impostato su "INFOBLOX" dal parser. |
metadata.product_version |
metadata.product_version |
Estratto dai messaggi CEF. |
metadata.event_timestamp |
metadata.event_timestamp |
Copiato dal campo timestamp . |
network.application_protocol |
network.application_protocol |
Impostato su "DNS" se event_type non è "GENERIC_EVENT" o "STATUS_UPDATE". |
Modifiche
2023-10-17
- È stato aggiunto un pattern Grok per gestire i log non analizzati.
2023-06-19
- Ho scritto un pattern Grok per estrarre "hostname","ip" e "port" e ho modificato di conseguenza "event_type".
2022-02-09
- Ho scritto un'espressione Grok per estrarre "hostname" e ho modificato di conseguenza "event_type".
- È stato mappato "src_host" a "principal.hostname".
- È stato mappato il valore "event_type" appropriato.
2023-01-19
- È stato aggiunto il pattern Grok per supportare il nuovo Syslog.
- È stata aggiunta la mappatura per quanto segue:
- Se il log contiene un protocollo IP, ad esempio TCP o UDP, il valore viene mappato a "network.ip_protocol".
- Se il log contiene un indirizzo IP o un nome host intermedio, il valore viene mappato a "intermediary.ip/intermediary.hostname".
2022-09-09
- Modifica e mappatura corretta del campo "syslog_timestamp" a "metadata.event_timestamp".
2022-08-25
- Il campo "syslog_timestamp" è stato mappato a "metadata.event_timestamp".
- Sono stati aggiunti controlli grok e condizionali per il campo "smac" mappato a "principal.mac".
- Sono stati aggiunti controlli condizionali per il campo "dns_domain" mappato a "network.dns.questions".
- Sono stati aggiunti controlli condizionali per il campo "name1" mappato a "network.dns.answers.name".
- Sono stati aggiunti controlli condizionali per il campo "ttl1" mappato a "network.dns.answers.ttl".
2022-07-15
- Correzione di bug: è stato rimosso l'ultimo carattere se è un punto da network.dns.questions.name, network.dns.answers.name, network.dns.answers.data
2022-06-02
- Correzione di bug: l'IP non è stato estratto correttamente dal log syslog, quindi è stato modificato il grok per estrarlo correttamente.
- Miglioramento: è stato fornito il supporto per i log nel formato CEF.
- Sono stati mappati i seguenti nuovi campi:
- InfobloxB1OPHIPAddress a principal.ip
- InfobloxDNSQType a dns.questions.type
- destinationDnsDomain a dns.questions.name
- InfobloxB1Region a principal.location.country_or_region
2022-04-28
- È stata rimossa la parola extra "query:" dal campo "network.dns.questions.name".