Raccogliere i log DNS di ExtraHop
Questo documento spiega come importare i log DNS di ExtraHop in Google Security Operations utilizzando Bindplane. L'analizzatore estrae i log in formato JSON da una stringa di messaggi non elaborati, gestendo i dati non JSON eliminando l'evento. Poi, mappa campi specifici del JSON estratto con i campi corrispondenti nello schema del modello di dati unificato (UDM), convertendo i tipi di dati e gestendo diverse strutture di risposta DNS per garantire una rappresentazione coerente.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Istanza Google SecOps
- Windows 2016 o versioni successive oppure un host Linux con
systemd
- Se l'esecuzione avviene tramite un proxy, assicurati che le porte del firewall siano aperte.
- Accesso con privilegi al DNS ExtraHop
Recuperare il file di autenticazione importazione di Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agenti di raccolta.
- Scarica il file di autenticazione importazione. Salva il file in modo sicuro sul sistema in cui verrà installato Bindplane.
Recuperare l'ID cliente Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Profilo.
- Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.
Installa l'agente Bindplane
Installa l'agente Bindplane sul sistema operativo Windows o Linux seguendo le istruzioni riportate di seguito.
Installazione di Windows
- Apri il prompt dei comandi o PowerShell come amministratore.
Esegui questo comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Installazione di Linux
- Apri un terminale con privilegi root o sudo.
Esegui questo comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Risorse aggiuntive per l'installazione
Per ulteriori opzioni di installazione, consulta la guida all'installazione.
Configura l'agente Bindplane per importare Syslog e inviarli a Google SecOps
- Accedi al file di configurazione:
- Individua il file
config.yaml
. In genere, si trova nella directory/etc/bindplane-agent/
su Linux o nella directory di installazione su Windows. - Apri il file utilizzando un editor di testo (ad esempio
nano
,vi
o Blocco note).
- Individua il file
- Modifica il file
config.yaml
come segue:yaml receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization log_type: 'EXTRAHOP_DNS' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
- Sostituisci la porta e l'indirizzo IP in base alle esigenze della tua infrastruttura.
- Sostituisci
<customer_id>
con l'ID cliente effettivo. - Aggiorna
/path/to/ingestion-authentication-file.json
al percorso in cui è stato salvato il file di autenticazione nella sezione Recupera il file di autenticazione per l'importazione di Google SecOps.
- Sostituisci
Riavvia l'agente Bindplane per applicare le modifiche
Per riavviare l'agente Bindplane in Linux, esegui questo comando:
sudo systemctl restart bindplane-agent
Per riavviare l'agente Bindplane in Windows, puoi utilizzare la console Servizi o inserire il seguente comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configura Syslog per ExtraHop Open Data Stream (DNS)
- Accedi all'amministrazione di ExtraHop utilizzando
https://<extrahop-hostname-or-IP-address>/admin
.
- Vai a Configurazione di sistema > Apri stream di dati.
- Fai clic su Aggiungi target.
- Dal menu a discesa Tipo di destinazione, seleziona Syslog.
- Fornisci i seguenti dettagli di configurazione:
- Nome: inserisci un nome univoco per identificare la destinazione.
- Host: inserisci l'indirizzo IP dell'agente Bindplane.
- Porta: inserisci il numero di porta dell'agente Bindplane.
- Protocollo: seleziona UDP o TCP, a seconda della configurazione di Bindplane.
- (Facoltativo) Seleziona Ora locale per inviare le informazioni syslog con timestamp nel fuso orario locale.
- Fai clic su Test.
- Fai clic su Salva.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
ans.data |
network.dns.answers.data | Estratto dal campo data all'interno dell'array answers nel log non elaborato. |
ans.name |
network.dns.answers.name | Estratto dal campo name all'interno dell'array answers nel log non elaborato. |
ans.ttl |
network.dns.answers.ttl | Estratto dal campo ttl all'interno dell'array answers nel log non elaborato. Transazione convertita in uinteger . |
ans.typeNum |
network.dns.answers.type | Estratto dal campo typeNum all'interno dell'array answers nel log non elaborato. Transazione convertita in uinteger . |
ans_data |
network.dns.answers.data | Estratto dal campo ans_data nel log non elaborato quando l'array answers non è presente. |
ans_name |
network.dns.answers.name | Estratto dal campo ans_name nel log non elaborato quando l'array answers non è presente. |
ans_ttl |
network.dns.answers.ttl | Estratto dal campo ans_ttl nel log non elaborato quando l'array answers non è presente. Transazione convertita in uinteger . |
client_ip |
principal.ip | Estratto dal campo client_ip nel log non elaborato. |
dns_type |
network.dns.response | Se il valore è "response", allora è "true", altrimenti non viene mappato. Transazione convertita in boolean . |
dst_ip |
target.ip | Estratto dal campo dst_ip nel log non elaborato. |
ip_or_host |
intermediary.hostname | Se ip_or_host non è un indirizzo IP valido, viene mappato a intermediary.hostname . |
ip_or_host |
intermediary.ip | Se ip_or_host è un indirizzo IP valido, è mappato su intermediary.ip . |
opcode |
network.dns.opcode | Estratto dal campo opcode nel log non elaborato. Mappato su valori numerici in base alla stringa del codice operativo (ad es. "QUERY" -> 0). Transazione convertita in uinteger . |
qname |
network.dns.questions.name | Estratto dal campo qname nel log non elaborato. |
qtype |
network.dns.questions.type | Estratto dal campo qtype nel log non elaborato. Mappato su valori numerici in base alla stringa del tipo di record (ad es. "A" -> 1). Transazione convertita in uinteger . |
metadata.event_type | Imposta su NETWORK_DNS . |
|
metadata.log_type | Imposta su EXTRAHOP_DNS . |
|
network.application_protocol | Imposta su DNS . |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.