Raccogliere i log ESET AV

Supportato in:

Questo documento spiega come importare i log ESET AV in Google Security Operations utilizzando Bindplane. Il codice del parser Logstash estrae i dati degli eventi di sicurezza dai log ESET_AV formattati in SYSLOG o JSON. Innanzitutto normalizza il messaggio non elaborato, poi lo analizza in base al formato identificato, mappando i campi estratti allo schema Unified Data Model (UDM) corrispondente per una rappresentazione e un'analisi coerenti.

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 ESET Protect

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_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
            ingestion_labels:
                log_type: 'ESET_AV'
                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
    

Configura Syslog per ESET PROTECT on-premise

  1. Accedi alla console web ESET Protect.
  2. Vai a Altro > Impostazioni > Impostazioni avanzate > Server Syslog.
  3. Seleziona il pulsante di attivazione/disattivazione accanto ad Attiva Syslog.
  4. Fornisci i seguenti dettagli di configurazione:
    • Host: inserisci l'indirizzo IP dell'agente Bindplane
    • Porta: inserisci il numero di porta dell'agente Bindplane (514 per UDP)
    • Formato: seleziona Syslog.
    • Trasporto: seleziona UDP.
    • Livello di dettaglio del log di traccia: seleziona Informativo.
    • Attiva/disattiva Esporta log in Syslog: seleziona Attiva.
    • Formato dei log esportati: seleziona JSON
  5. Fai clic su Salva.

Configura Syslog per ESET PROTECT Cloud

  1. Accedi alla console web ESET Protect.
  2. Vai a Altro > Impostazioni > Server Syslog.
  3. Seleziona il pulsante di attivazione/disattivazione accanto ad Attiva Syslog.
  4. Fornisci i seguenti dettagli di configurazione:
    • Formato del payload: seleziona JSON
    • Formato della busta: seleziona Syslog
    • Livello di log minimo: seleziona Informativo
    • Tipi di eventi da registrare: seleziona Tutti i tipi di eventi.
    • IP di destinazione: inserisci l'indirizzo IP dell'agente Bindplane
    • Porta: inserisci il numero di porta dell'agente Bindplane (514 per UDP)
  5. Fai clic su Salva.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
account principal.administrative_domain Estratto dal campo account utilizzando il pattern grok %{DATA:admin_domain}\\\\%{WORD:user_id}.
account principal.user.userid Estratto dal campo account utilizzando il pattern grok %{DATA:admin_domain}\\\\%{WORD:user_id}.
azione security_result.action Se action è Block (senza distinzione tra maiuscole e minuscole), impostalo su BLOCK. Se action è Start (senza distinzione tra maiuscole e minuscole), impostalo su ALLOW.
action_taken security_result.action_details Mappato direttamente dal campo action_taken.
computer_severity_score security_result.detection_fields Viene creata una coppia chiave-valore con la chiave computer_severity_score e il valore del campo computer_severity_score. Questa coppia viene aggiunta all'array security_result.detection_fields.
dettaglio security_result.description Mappato direttamente dal campo detail.
dominio principal.domain.name Mappato direttamente dal campo domain.
eialarmid security_result.detection_fields Viene creata una coppia chiave-valore con la chiave eialarmid e il valore del campo eialarmid. Questa coppia viene aggiunta all'array security_result.detection_fields.
eiconsolelink principal.url Mappato direttamente dal campo eiconsolelink.
event metadata.description Rinominato da event a event_desc e mappato su metadata.description.
event_type metadata.product_event_type Mappato direttamente dal campo event_type.
group_name principal.group.group_display_name Mappato direttamente dal campo group_name.
hash principal.file.sha1 Convertito in minuscolo. Se il valore in minuscolo corrisponde all'espressione regolare SHA-1, mappata a principal.file.sha1.
hash principal.resource.attribute.labels Viene creata una coppia chiave-valore con la chiave hash e il valore del campo hash. Questa coppia viene aggiunta all'array principal.resource.attribute.labels.
nome host principal.asset.hostname Mappato direttamente dal campo hostname.
nome host principal.hostname Mappato direttamente dal campo hostname.
in entrata network.direction Se è true, imposta INBOUND. Se è false, imposta OUTBOUND.
ipv4 target.asset.ip Mappato direttamente dal campo ipv4 se target_address è vuoto.
ipv4 target.ip Mappato direttamente dal campo ipv4 se target_address è vuoto.
json_data Analizzato come JSON per estrarre vari campi.
messaggio Analizzato utilizzando grok per estrarre timestamp, host e json_data.
need_restart additional.fields Viene creata una coppia chiave-valore con la chiave need_restart e il valore del campo need_restart (convertito in stringa). Questa coppia viene aggiunta all'array additional.fields.
os_name principal.platform Se contiene Window o window (senza distinzione tra maiuscole e minuscole), imposta su WINDOWS. Se contiene Linux o linux (senza distinzione tra maiuscole e minuscole), imposta su LINUX. Se contiene Mac o mac (senza distinzione tra maiuscole e minuscole), imposta su MAC.
os_name principal.platform_version Mappato direttamente dal campo os_name.
process_name principal.process.file.full_path Mappato direttamente dal campo process_name. Se è vuoto, assume il valore di processname.
processname principal.process.file.full_path Se process_name è vuoto, viene mappato a process_name.
protocollo network.ip_protocol Convertito in maiuscolo. Se il valore in maiuscolo corrisponde a protocolli noti (TCP, UDP, ICMP e così via), viene mappato a network.ip_protocol.
result security_result.summary Mappato direttamente dal campo result.
rulename security_result.rule_name Mappato direttamente dal campo rulename.
scan_id security_result.detection_fields Viene creata una coppia chiave-valore con la chiave scan_id e il valore del campo scan_id. Questa coppia viene aggiunta all'array security_result.detection_fields.
scanner_id security_result.detection_fields Viene creata una coppia chiave-valore con la chiave scanner_id e il valore del campo scanner_id. Questa coppia viene aggiunta all'array security_result.detection_fields.
gravità security_result.severity Se contiene Warn o warn (senza distinzione tra maiuscole e minuscole), imposta su HIGH. Se contiene Info o info (senza distinzione tra maiuscole e minuscole), imposta su LOW.
severity_score security_result.detection_fields Viene creata una coppia chiave-valore con la chiave severity_score e il valore del campo severity_score. Questa coppia viene aggiunta all'array security_result.detection_fields.
source_address principal.asset.ip Mappato direttamente dal campo source_address.
source_address principal.ip Mappato direttamente dal campo source_address.
source_port principal.port Convertito in stringa e poi in numero intero. Mappato a principal.port.
source_uuid metadata.product_log_id Mappato direttamente dal campo source_uuid.
target Rinominato in target1.
target_address target.asset.ip Mappato direttamente dal campo target_address.
target_address target.ip Mappato direttamente dal campo target_address.
target_port target.port Convertito in stringa e poi in numero intero. Mappato a target.port.
threat_handled security_result.detection_fields Viene creata una coppia chiave-valore con la chiave threat_handled e il valore del campo threat_handled (convertito in stringa). Questa coppia viene aggiunta all'array security_result.detection_fields.
threat_name security_result.threat_name Mappato direttamente dal campo threat_name.
threat_type security_result.threat_id Mappato direttamente dal campo threat_type.
tempo metadata.event_timestamp Utilizzato per compilare metadata.event_timestamp.
nome utente principal.user.userid Mappato direttamente dal campo username se user_id e user sono vuoti.
utente principal.user.userid Mappato direttamente dal campo user se user_id è vuoto.
metadata.event_type Se source_address e target_address non sono vuoti, imposta NETWORK_CONNECTION. Altrimenti, se has_user è true, imposta USER_UNCATEGORIZED. Altrimenti, se has_principal è true, imposta STATUS_UPDATE. In caso contrario, imposta il valore su GENERIC_EVENT.
metadata.log_type Imposta su ESET_AV.
metadata.product_name Imposta su ESET_AV.
metadata.vendor_name Imposta su ESET_AV.
intermediary.hostname Il valore di questo campo viene estratto dal campo host del messaggio di log.
principal.user.userid Se il campo account non è vuoto, il parser estrae lo User-ID dal campo account utilizzando un pattern grok. In caso contrario, controlla se il campo user non è vuoto e, in caso affermativo, ne prende il valore. Se sia account che user sono vuoti, controlla se il campo username non è vuoto e, in caso affermativo, ne prende il valore.

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