Raccogliere i log ESET EDR
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
- 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
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 di 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: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
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.
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
- Accedi alla console web ESET Protect.
- Vai a Altro > Impostazioni > Impostazioni avanzate > Server Syslog.
- Seleziona il pulsante di attivazione/disattivazione accanto ad Attiva Syslog.
- 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
- Fai clic su Salva.
Configura Syslog per ESET PROTECT Cloud
- Accedi alla console web ESET Protect.
- Vai a Altro > Impostazioni > Server Syslog.
- Seleziona il pulsante di attivazione/disattivazione accanto ad Attiva Syslog.
- 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)
- 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.