Raccogliere i log ESET EDR

Supportato in:

Questo documento spiega come importare i log ESET in Google Security Operations utilizzando Bindplane. Il codice del parser Logstash tenta innanzitutto di estrarre i campi dai log ESET EDR in formato SYSLOG o JSON utilizzando una serie di pattern grok. A seconda dei campi estratti e del loro formato, elabora ulteriormente i dati utilizzando filtri chiave-valore (kv) o l'analisi JSON per strutturare le informazioni in una rappresentazione del modello di dati unificato (UDM).

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_EDR'
                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
azione event1.idm.read_only_udm.security_result.action Impostato in modo condizionale su BLOCK se il valore è Blocked.
actionTaken event2.idm.read_only_udm.metadata.event_type Impostato in modo condizionale su SCAN_PROCESS se il valore è Cleaned by deleting.
actionTaken event1.idm.read_only_udm.security_result.action_details Mappato direttamente dal campo actionTaken.
actionTaken event2.idm.read_only_udm.security_result.action_details Mappato direttamente dal campo actionTaken.
accountName event2.idm.read_only_udm.additional.fields.value.string_value Mappato direttamente dal campo accountName. Il tasto è impostato su accountName.
app event3.idm.read_only_udm.principal.application Mappato direttamente dal campo app.
circostanze event2.idm.read_only_udm.additional.fields.value.string_value Mappato direttamente dal campo circumstances. Il tasto è impostato su circumstances.
Computer_name event3.idm.read_only_udm.principal.hostname Mappato direttamente dal campo Computer_name.
Computer_name event3.idm.read_only_udm.principal.asset.hostname Mappato direttamente dal campo Computer_name.
date_time
Detection_name event3.idm.read_only_udm.security_result.threat_name Mappato direttamente dal campo Detection_name.
Detectiontype event3.idm.read_only_udm.security_result.category_details Mappato direttamente dal campo Detectiontype.
dst event2.idm.read_only_udm.target.ip Mappato direttamente dal campo dst.
dst event2.idm.read_only_udm.target.asset.ip Mappato direttamente dal campo dst.
dstPort event2.idm.read_only_udm.target.port Mappato direttamente dal campo dstPort dopo la conversione in un numero intero.
event event1.idm.read_only_udm.metadata.description Mappato direttamente dal campo event.
event_type event1.idm.read_only_udm.metadata.product_event_type Mappato direttamente dal campo event_type.
event_type event1.idm.read_only_udm.metadata.event_type Impostato in modo condizionale su NETWORK_CONNECTION se il valore è FirewallAggregated_Event.
hash event1.idm.read_only_udm.target.file.sha1 Mappato direttamente dal campo hash dopo la conversione in minuscolo.
nome host event1.idm.read_only_udm.target.hostname Mappato direttamente dal campo hostname.
nome host event1.idm.read_only_udm.target.asset.hostname Mappato direttamente dal campo hostname.
nome host event.alert.devices.hostname Mappato direttamente dal campo hostname.
ipv4 event1.idm.read_only_udm.principal.ip Mappato direttamente dal campo ipv4. Questo campo viene prima archiviato in un campo temporaneo udm_ip.
ipv4 event1.idm.read_only_udm.principal.asset.ip Mappato direttamente dal campo ipv4. Questo campo viene prima archiviato in un campo temporaneo udm_ip.
ipv4 event.alert.devices.ip_addresses Mappato direttamente dal campo ipv4 dopo la conversione in un indirizzo IP.
Logged_user event3.idm.read_only_udm.principal.user.userid Mappato direttamente dal campo Logged_user.
objectUri event1.idm.read_only_udm.target.file.full_path Mappato direttamente dal campo objectUri.
objectUri event2.idm.read_only_udm.target.file.full_path Mappato direttamente dal campo objectUri.
processName event2.idm.read_only_udm.target.process.file.full_path Mappato direttamente dal campo processName.
processName event1.idm.read_only_udm.principal.process.file.full_path Mappato direttamente dal campo processName.
process_id event3.idm.read_only_udm.principal.process.pid Mappato direttamente dal campo process_id.
process_id event2.idm.read_only_udm.target.process.pid Mappato direttamente dal campo process_id.
protocollo event1.idm.read_only_udm.network.ip_protocol Mappato direttamente dal campo protocol.
proto event2.idm.read_only_udm.network.ip_protocol Mappato direttamente dal campo proto.
result event2.idm.read_only_udm.security_result.action Impostato in modo condizionale su ALLOW se il valore è Success.
Scanner event3.idm.read_only_udm.security_result.description Mappato direttamente dal campo Scanner.
gravità event1.idm.read_only_udm.security_result.severity Mappato dal campo severity in base a queste condizioni: - INFO, Informational, DEBUG, info: INFORMATIONAL - ERROR, error: ERROR - WARNING, Warning: LOW
source_address event1.idm.read_only_udm.principal.ip Mappato direttamente dal campo source_address.
source_address event1.idm.read_only_udm.principal.asset.ip Mappato direttamente dal campo source_address.
source_port event1.idm.read_only_udm.principal.port Mappato direttamente dal campo source_port dopo la conversione in un numero intero.
source_uuid event1.idm.read_only_udm.metadata.product_log_id Mappato direttamente dal campo source_uuid.
src event2.idm.read_only_udm.principal.ip Mappato direttamente dal campo src.
src event2.idm.read_only_udm.principal.asset.ip Mappato direttamente dal campo src.
srcPort event2.idm.read_only_udm.principal.port Mappato direttamente dal campo srcPort dopo la conversione in un numero intero.
target_address event1.idm.read_only_udm.target.ip Mappato direttamente dal campo target_address.
target_address event1.idm.read_only_udm.target.asset.ip Mappato direttamente dal campo target_address.
target_port event1.idm.read_only_udm.target.port Mappato direttamente dal campo target_port dopo la conversione in un numero intero.
threatName event2.idm.read_only_udm.security_result.threat_name Mappato direttamente dal campo threatName.
threatName event.alert.alert_short_name Mappato direttamente dal campo threatName.
Time_of_occurrence event3.idm.read_only_udm.additional.fields.value.string_value Mappato direttamente dal campo Time_of_occurrence. Il tasto è impostato su Time_of_occurrence.
tipo event2.idm.read_only_udm.security_result.category_details Mappato direttamente dal campo type.
tipo event2.idm.read_only_udm.metadata.event_type Impostato in modo condizionale su GENERIC_EVENT se non viene trovata corrispondenza con nessun altro tipo di evento specifico.
user_id event2.idm.read_only_udm.principal.user.userid Mappato direttamente dal campo user_id.
event1.idm.read_only_udm.metadata.event_type Impostato in modo condizionale su FILE_UNCATEGORIZED se il valore di event_type è Threat_Event.
event1.idm.read_only_udm.metadata.log_type Imposta su ESET_EDR.
event1.idm.read_only_udm.metadata.product_name Impostato in modo condizionale su ESET se il valore di event_type è FirewallAggregated_Event.
event2.idm.read_only_udm.metadata.log_type Imposta su ESET_EDR.
event2.idm.read_only_udm.metadata.product_name Imposta su EDR.
event2.idm.read_only_udm.metadata.vendor_name Imposta su ESET.
event3.idm.read_only_udm.metadata.event_type Impostato in modo condizionale in base a queste regole: - USER_UNCATEGORIZED se principal_user_present è true. - STATUS_UPDATE se principal_machine_id_present è true. - GENERIC_EVENT altrimenti.
event3.idm.read_only_udm.metadata.log_type Imposta su ESET_EDR.
event3.idm.read_only_udm.metadata.product_name Imposta su EDR.
event3.idm.read_only_udm.metadata.vendor_name Imposta su ESET.
event.alert.is_significant Impostato su true e poi convertito in un valore booleano.
event3.idm.read_only_udm.security_result.description Impostato in modo condizionale sul valore di kv_data se Scanner è vuoto.

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