Raccogliere i log di BloxOne Threat Defense

Supportato in:

Questo documento spiega come importare i log di BloxOne Threat Defense in Google Security Operations utilizzando Bindplane. L'analizzatore sintattico Logstash estrae i campi dai log BLOXONE DNS ricevuti in formato SYSLOG o JSON. Innanzitutto, normalizza il messaggio di log in un oggetto JSON, quindi mappa i campi estratti nel modello di dati unificato (UDM), arricchendo i dati con i dettagli di geolocalizzazione e DNS per l'analisi della sicurezza.

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, le porte del firewall sono aperte
  • Accesso privilegiato a Infoblox BloxOne

Recuperare il file di autenticazione importazione di Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Agenti di raccolta.
  3. 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

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Profilo.
  3. Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.

Installa l'agente Bindplane

Installazione di Windows

  1. Apri il prompt dei comandi o PowerShell come amministratore.
  2. Esegui questo comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Installazione di Linux

  1. Apri un terminale con privilegi di root o sudo.
  2. 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

  1. 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).
  2. Modifica il file config.yaml come segue:

    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: '/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
            ingestion_labels:
                log_type: 'BLOXONE'
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Sostituisci la porta e l'indirizzo IP in base alle esigenze della tua infrastruttura.

  4. Sostituisci <customer_id> con l'ID cliente effettivo.

  5. 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.

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
    

Configurare Syslog in Infoblox BloxOne

  1. Accedi al portale Infoblox.
  2. Vai a Configura > Amministrazione > Data Connector.
  3. Seleziona la scheda Configurazione destinazione.
  4. Fai clic su Crea > Syslog.
  5. Fornisci i seguenti dettagli di configurazione:
    • Nome: fornisci un nome descrittivo (ad esempio, raccoglitore Google SecOps).
    • Descrizione: fornisci una breve descrizione.
    • Stato: seleziona Attiva.
    • Tag: fai clic su Aggiungi e specifica quanto segue per associare una chiave alla destinazione:
      • KEY: inserisci un nome descrittivo per la chiave.
      • VALUE: inserisci il valore della chiave.
    • Formato: seleziona CEF.
    • Protocollo: seleziona UDP o TCP (a seconda della configurazione dell'agente Bindplane).
    • FQDN/IP: inserisci l'indirizzo IP dell'agente Bindplane.
    • Porta: inserisci la porta dell'agente Bindplane (il valore predefinito è 514 per UDP).
  6. Fai clic su Salva e chiudi.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
additional_list.key Questo campo viene utilizzato in un ciclo per scorrere l'array additional_list ed estrarre i dati in base al valore del campo key. Non è mappato direttamente sull'UDM.
additional_list.value principal.location.region_latitude, principal.location.region_longitude, target.location.region_latitude, target.location.region_longitude Questo campo viene utilizzato in combinazione con additional_list.key per estrarre valori specifici dall'array additional_list. La logica di estrazione e mappatura del valore dipende dal key corrispondente. Ad esempio:
- Se additional_list.key è intel:source:ip:geoIP:location, estrai i valori di latitudine e longitudine utilizzando grok e mappali rispettivamente a principal.location.region_latitude e principal.location.region_longitude.
: se additional_list.key è intel:destination:ip:geoIP:location, estrai i valori di latitudine e longitudine utilizzando grok e mappali rispettivamente a target.location.region_latitude e target.location.region_longitude.
additional_string.key Simile a additional_list.key, questo campo viene utilizzato in un ciclo per scorrere l'array additional_string ed estrarre i dati in base al valore key. Non è mappato direttamente sull'UDM.
additional_string.value additional.fields.value.string_value, principal.location.country_or_region, target.location.country_or_region, src.ip, src.port, src.hostname, network.ip_protocol Utilizzato con additional_string.key per estrarre i valori dall'array additional_string. La logica per mappare il valore dipende dall'elemento key corrispondente. Ad esempio:
. Se additional_string.key è intel:source:ip:ip2asn:start_ip, intel:source:ip:ip2asn:finish_ip, intel:destination:ip:ip2asn:start_ip o intel:destination:ip:ip2asn:finish_ip, mappa il valore a additional.fields.value.string_value con la chiave corrispondente.
: se additional_string.key è intel:source:ip:geoIP:country, mappa il valore su principal.location.country_or_region.
: se additional_string.key è intel:destination:ip:geoIP:country, mappa il valore su target.location.country_or_region.
: se additional_string.key è log:source:ip, mappa il valore su src.ip.
: se additional_string.key è log:source:port, mappa il valore su src.port dopo averlo convertito in un numero intero.
: se additional_string.key è log:source:hostname, mappa il valore su src.hostname.
: se additional_string.key è log:cdh:input:protocol, mappa il valore su network.ip_protocol dopo averlo convertito in maiuscolo.
app_category security_result.category_details Mappato direttamente.
confidence security_result.confidence Mappatura eseguita in base alla seguente logica:
- Se confidence è LOW, esegui la mappatura a LOW_CONFIDENCE.
- Se confidence è MEDIUM, mappalo su MEDIUM_CONFIDENCE.
- Se confidence è HIGH, mappalo su HIGH_CONFIDENCE.
country principal.location.name Mappato direttamente, ma solo se raw.infobloxb1region è vuoto.
device principal.ip, principal.asset.ip Mappato direttamente, ma solo se raw.dvc è vuoto.
dhcp_fingerprint security_result.detection_fields.value Mappato direttamente con il tasto dhcp_fingerprint.
dns_view security_result.detection_fields.value Mappato direttamente con il tasto dns_view.
endpoint_groups security_result.detection_fields.value Mappato direttamente con il tasto endpoint_groups.
event_time metadata.event_timestamp.seconds Analizzato come timestamp ISO8601 e viene estratto il valore dei secondi. Utilizzato solo se il campo timestamp è vuoto.
feed_name principal.resource.name feed_name è mappato a principal.resource.name.
feed_type principal.resource.attribute.labels.value Mappato direttamente con il tasto feed_type.
mac_address principal.mac Mappato direttamente dopo la conversione in minuscolo.
network principal.hostname, principal.asset.hostname Mappato direttamente, ma solo se sia raw.dvchost che raw.dvc sono vuoti.
os_version principal.platform_version Mappato direttamente.
policy_action security_result.action_details, security_result.action policy_action è mappato direttamente a security_result.action_details.
security_result.action viene derivato in base alla seguente logica:
- Se policy_action è Redirect o Log, mappalo su ALLOW.
- Se policy_action è BLOCK, mappalo su BLOCK.
policy_name security_result.detection_fields.value Mappato direttamente con il tasto policy_name.
qname network.dns.questions.name Mappato direttamente.
qtype network.dns.questions.type Mappato in base alla seguente logica:
- Se qtype è A, esegui la mappatura a 1 (convertito in numero intero senza segno).
- Se qtype è PTR, mappalo su 12 (convertito in numero intero senza segno).
raw.act security_result.action_details Mappato direttamente.
raw.app network.application_protocol Mappato direttamente dopo la conversione in maiuscolo.
raw.deviceeventclassid metadata.product_event_type Concatenato con raw.name (separato da -) e mappato a metadata.product_event_type.
raw.devicevendor metadata.vendor_name Mappato direttamente.
raw.deviceproduct metadata.product_name Mappato direttamente.
raw.deviceversion metadata.product_version Mappato direttamente.
raw.deviceseverity security_result.severity_details, security_result.severity raw.deviceseverity è mappato direttamente a security_result.severity_details.
security_result.severity viene derivato in base alla seguente logica:
- Se raw.deviceseverity è in [0, 1, 2, 3], mappalo su LOW.
- Se raw.deviceseverity è in [4, 5, 6], mappalo su MEDIUM.
- If raw.deviceseverity is in [7, 8], map to HIGH.
- If raw.deviceseverity is in [9, 10], map to CRITICAL.
raw.dvc principal.ip, principal.asset.ip Mappato direttamente.
raw.dvchost principal.hostname, principal.asset.hostname Mappato direttamente, ma solo se non è uguale a raw.dvc.
raw.infobloxb1connectiontype additional.fields.value.string_value Mappato direttamente con il tasto infobloxb1connectiontype.
raw.infobloxb1ophname observer.hostname, observer.asset.hostname Mappato direttamente.
raw.infobloxb1ophipaddress observer.ip Mappato direttamente.
raw.infobloxb1policyname security_result.detection_fields.value Mappato direttamente con il tasto infobloxb1policyname.
raw.infobloxdnsqclass dns_question.class, dns_answer.class Utilizzato per derivare dns_question.class e dns_answer.class in base a una tabella di ricerca definita nel file dns_query_class_mapping.include.
raw.infobloxdnsqtype dns_question.type, dns_answer.type Utilizzato per derivare dns_question.type e dns_answer.type in base a una tabella di ricerca definita nel file dns_record_type.include.
raw.infobloxdnsrcode network.dns.response_code Utilizzato per derivare network.dns.response_code in base a una tabella di ricerca definita nel file dns_response_code.include.
raw.infobloxpolicyid security_result.detection_fields.value Mappato direttamente con il tasto infobloxpolicyid.
raw.msg metadata.description raw.msg viene mappato direttamente a metadata.description dopo la rimozione delle virgolette iniziali e finali.
raw.name metadata.product_event_type Concatenato con raw.deviceeventclassid (separato da -) e mappato a metadata.product_event_type.
rcode security_result.detection_fields.value, network.dns.response_code rcode è mappato direttamente a security_result.detection_fields.value con la chiave rcode.
Se rcode è NXDOMAIN, network.dns.response_code è impostato su 3 (convertito in numero intero senza segno).
rdata network.dns.answers.data Mappato direttamente.
rip target.ip, target.asset.ip Mappato direttamente.
severity security_result.severity Mappatura eseguita in base alla seguente logica:
- Se severity è INFO (senza distinzione tra maiuscole e minuscole), esegui la mappatura a INFORMATIONAL.
- Se severity è HIGH, mappalo su HIGH.
tclass security_result.detection_fields.value Mappato direttamente con il tasto tclass.
threat_indicator security_result.detection_fields.value Mappato direttamente con il tasto threat_indicator.
timestamp metadata.event_timestamp.seconds Analizzato come timestamp ISO8601 e viene estratto il valore dei secondi.
user principal.user.user_display_name Mappato direttamente.
user_groups security_result.detection_fields.value Mappato direttamente con il tasto user_groups.
N/D principal.resource.resource_subtype Imposta questo valore su Feed se feed_name non è vuoto.
N/D metadata.log_type Imposta su BLOXONE.
N/D additional.fields.key Imposta su infobloxancount, infobloxarcount, infobloxb1connectiontype, infobloxnscount, intel:destination:ip:ip2asn:finish_ip, intel:destination:ip:ip2asn:start_ip, intel:source:ip:ip2asn:finish_ip o intel:source:ip:ip2asn:start_ip in base ai campi raw corrispondenti.
N/D metadata.event_type Imposta su STATUS_UPDATE se has_principal è true, altrimenti imposta su GENERIC_EVENT.
N/D network.dns.questions.type Imposta su 1 per i record A e su 12 per i record PTR, convertiti in numeri interi senza segno.
N/D network.dns.answers.name, network.dns.answers.type, network.dns.answers.class Estratto da raw.msg analizzando la stringa di risposta DNS.
N/D intermediary.hostname, intermediary.ip, intermediary.asset.ip Estratto da raw.msg analizzando la stringa di risposta DNS.

Nota:questa tabella include solo i campi mappati all'UDM. Alcuni campi del log non elaborato potrebbero essere utilizzati internamente dal parser, ma non si riflettono direttamente nell'output UDM finale.

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.