Raccogliere i log di Infoblox

Supportato in:

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

  1. Accedi all'interfaccia utente web di Infoblox.
  2. Nell'interfaccia utente web di Infoblox, seleziona Sistema > Editor delle proprietà di sistema > Monitoraggio.
  3. Seleziona la casella di controllo Registra su server syslog esterni.
  4. Nella sezione Server syslog esterni, fai clic sul segno Più (+) per aggiungere un nuovo server syslog per il forwarder di Google Security Operations.
  5. Nel campo Indirizzo, inserisci l'indirizzo IP del server di inoltro di Google Security Operations.
  6. Nell'elenco Trasporto, seleziona TCP o UDP.
  7. Nel campo Porta, inserisci il numero della porta.
  8. Nell'elenco Node ID (ID nodo), seleziona LAN per includere l'IP di Infoblox nell'intestazione syslog.
  9. 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

  1. Seleziona Impostazioni SIEM > Inoltratori.
  2. Fai clic su Aggiungi nuovo mittente.
  3. Inserisci un nome univoco nel campo Nome mittente.
  4. Fai clic su Invia e poi su Conferma. Il forwarder viene aggiunto e viene visualizzata la finestra Aggiungi configurazione del collettore.
  5. Nel campo Nome del raccoglitore, inserisci un nome univoco per il raccoglitore.
  6. Seleziona Infoblox come Tipo di log.
  7. Seleziona Syslog come Tipo di collettore.
  8. 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.
  9. 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".