Raccogliere i log di FireEye HX
Questo documento spiega come raccogliere i log di FireEye Endpoint Security (HX) in Google Security Operations utilizzando Bindplane. Il parser tenta di elaborare il messaggio di input come JSON. Se il messaggio non è in formato JSON, utilizza i pattern grok per estrarre i campi e poi esegue il mapping UDM condizionale in base al tipo di evento estratto e ad altri criteri.
Prima di iniziare
- Assicurati di avere un'istanza Google Security Operations.
- Assicurati di utilizzare 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.
- Assicurati di disporre dell'accesso con privilegi a FireEye Endpoint Security.
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 questa 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: '/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: 'FIREEYE_HX' 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 di FireEye HX Event Streamer utilizzando la UI
- Accedi alla console di gestione FireEye HX.
- Vai a Event Streamer.
- Seleziona Attiva Event Streamer sull'host.
- Salva le modifiche ai criteri.
- Vai a Destinazioni > Impostazioni server > Aggiungi destinazione syslog.
- Fornisci i seguenti dettagli di configurazione:
- Nome: inserisci un nome univoco per etichettare il raccoglitore di log Google SecOps.
- Indirizzo IP: inserisci l'indirizzo IP dell'agente Bindplane.
- Porta: inserisci il numero di porta dell'agente Bindplane.
- Salva le modifiche per applicarle.
Configura syslog di FireEye HX Event Streamer utilizzando la CLI
- Accedi all'appliance FireEye HX utilizzando l'interfaccia a riga di comando (CLI).
Esegui questo comando per attivare la modalità di configurazione:
enable configure terminal
Esegui questo comando per aggiungere una destinazione del server syslog remoto:
logging BINDPLANE_IP_ADDRESS port PORT_NUMBER port
- Sostituisci quanto segue:
BINDPLANE_IP_ADDRESS
: l'indirizzo IP del forwarder Google SecOpsPORT_NUMBER
: il numero di porta
- Sostituisci quanto segue:
Esegui questo comando per salvare i dettagli della configurazione:
write mem
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
alert.agent._id | principal.asset.asset_id | L'ID agente del log non elaborato, con il prefisso AGENT ID: |
alert.agent.url | principal.labels.value | L'URL dell'agente dal log non elaborato. |
alert.condition._id | additional.fields.value.string_value | L'ID condizione del log non elaborato, con = caratteri rimossi. |
alert.condition.url | additional.fields.value.string_value | L'URL della condizione del log non elaborato, con = caratteri rimossi. |
alert.decorators[].data.fireeye_report.indicator_verdict.malware_families.0 | security_result.threat_name | La famiglia di malware del report FireEye nel campo dei decoratori del log non elaborato. |
alert.decorators[].data.fireeye_report.risk_summary | security_result.description | Il riepilogo dei rischi del report FireEye nel campo dei decoratori del log non elaborato. |
alert.decorators[].data.fireeye_verdict | security_result.severity_details | Il verdetto di FireEye dal campo dei decoratori del log non elaborato. |
alert.event_at | read_only_udm.metadata.event_timestamp | Il timestamp evento del log non elaborato. |
alert.event_id | read_only_udm.metadata.product_log_id | L'ID evento del log non elaborato. |
alert.event_type | read_only_udm.metadata.product_event_type | Il tipo di evento del log non elaborato. |
alert.event_values.fileWriteEvent/fullPath | target.file.full_path | Il percorso completo del file scritto dal log non elaborato. |
alert.event_values.fileWriteEvent/md5 | target.file.md5 | L'hash MD5 del file scritto dal log non elaborato. |
alert.event_values.fileWriteEvent/pid | principal.process.pid | L'ID processo che ha scritto il file dal log non elaborato. |
alert.event_values.fileWriteEvent/processPath | principal.process.file.full_path | Il percorso del processo che ha scritto il file dal log non elaborato. Combinato con alert.event_values.fileWriteEvent/process per creare il percorso completo se il sistema operativo è Windows. |
alert.event_values.fileWriteEvent/size | target.file.size | Le dimensioni del file scritto dal log non elaborato. |
alert.event_values.fileWriteEvent/username | principal.user.userid | L'utente che ha scritto il file dal log non elaborato. |
alert.event_values.ipv4NetworkEvent/localIP | principal.ip | L'indirizzo IP locale del log non elaborato. |
alert.event_values.ipv4NetworkEvent/localPort | principal.port | La porta locale dal log non elaborato. |
alert.event_values.ipv4NetworkEvent/pid | principal.process.pid | L'ID processo dal log non elaborato. |
alert.event_values.ipv4NetworkEvent/process | principal.process.file.full_path | Il nome del processo dal log non elaborato. Combinato con alert.event_values.ipv4NetworkEvent/processPath per creare il percorso completo se il sistema operativo è Windows. |
alert.event_values.ipv4NetworkEvent/processPath | principal.process.file.full_path | Il percorso del processo dal log non elaborato. Combinato con alert.event_values.ipv4NetworkEvent/process per creare il percorso completo se il sistema operativo è Windows. |
alert.event_values.ipv4NetworkEvent/protocol | network.ip_protocol | Il protocollo di rete dal log non elaborato. |
alert.event_values.ipv4NetworkEvent/remoteIP | target.ip | L'indirizzo IP remoto dal log non elaborato. |
alert.event_values.ipv4NetworkEvent/remotePort | target.port | La porta remota dal log non elaborato. |
alert.event_values.ipv4NetworkEvent/timestamp | read_only_udm.metadata.event_timestamp | Il timestamp evento del log non elaborato. |
alert.event_values.ipv4NetworkEvent/username | principal.user.userid | L'utente del log non elaborato. |
alert.event_values.processEvent/md5 | target.process.file.md5 | L'hash MD5 del processo dal log non elaborato. |
alert.event_values.processEvent/parentPid | principal.process.pid | L'ID processo padre del log non elaborato. |
alert.event_values.processEvent/parentProcess | principal.process.file.full_path | Il nome del processo padre dal log non elaborato. |
alert.event_values.processEvent/parentProcessPath | principal.process.file.full_path | Il percorso del processo padre dal log non elaborato. |
alert.event_values.processEvent/pid | target.process.pid | L'ID processo dal log non elaborato. |
alert.event_values.processEvent/process | target.process.file.full_path | Il nome del processo dal log non elaborato. |
alert.event_values.processEvent/processCmdLine | target.process.command_line | La riga di comando del processo dal log non elaborato. |
alert.event_values.processEvent/processPath | target.process.file.full_path | Il percorso del processo dal log non elaborato. |
alert.event_values.processEvent/timestamp | read_only_udm.metadata.event_timestamp | Il timestamp evento del log non elaborato. |
alert.event_values.processEvent/username | principal.user.userid | L'utente del log non elaborato. |
alert.event_values.urlMonitorEvent/hostname | target.hostname | Il nome host del log non elaborato. |
alert.event_values.urlMonitorEvent/localPort | principal.port | La porta locale dal log non elaborato. |
alert.event_values.urlMonitorEvent/pid | principal.process.pid | L'ID processo dal log non elaborato. |
alert.event_values.urlMonitorEvent/process | principal.process.file.full_path | Il nome del processo dal log non elaborato. Combinato con alert.event_values.urlMonitorEvent/processPath per creare il percorso completo se il sistema operativo è Windows. |
alert.event_values.urlMonitorEvent/processPath | principal.process.file.full_path | Il percorso del processo dal log non elaborato. Combinato con alert.event_values.urlMonitorEvent/process per creare il percorso completo se il sistema operativo è Windows. |
alert.event_values.urlMonitorEvent/remoteIpAddress | target.ip | L'indirizzo IP remoto dal log non elaborato. |
alert.event_values.urlMonitorEvent/remotePort | target.port | La porta remota dal log non elaborato. |
alert.event_values.urlMonitorEvent/requestUrl | target.url | L'URL richiesto dal log non elaborato. |
alert.event_values.urlMonitorEvent/timestamp | read_only_udm.metadata.event_timestamp | Il timestamp evento del log non elaborato. |
alert.event_values.urlMonitorEvent/urlMethod | network.http.method | Il metodo HTTP dal log non elaborato. |
alert.event_values.urlMonitorEvent/userAgent | network.http.user_agent | Lo user agent del log grezzo. |
alert.event_values.urlMonitorEvent/username | principal.user.userid | L'utente del log non elaborato. |
alert.indicator._id | security_result.about.labels.value | L'ID indicatore del log non elaborato. |
alert.indicator.name | read_only_udm.security_result.summary | Il nome dell'indicatore del log non elaborato. |
alert.indicator.url | security_result.about.labels.value | L'URL dell'indicatore dal log non elaborato. |
alert.multiple_match | read_only_udm.metadata.description | Il messaggio di più corrispondenze dal log non elaborato. |
alert.source | additional.fields.value.string_value | L'origine dell'avviso dal log non elaborato. |
authmethod | extensions.auth.mechanism | Il metodo di autenticazione dal log non elaborato. Imposta LOCAL se il valore è local o LOCAL , altrimenti imposta MECHANISM_OTHER . |
authsubmethod | extensions.auth.auth_details | Il sottometodo di autenticazione del log non elaborato, convertito in maiuscolo. |
client | principal.ip | L'indirizzo IP client dal log non elaborato. |
conditions.data.tests[].token | security_result.detection_fields.key | Il token dei test delle condizioni nel log non elaborato. |
conditions.data.tests[].value | security_result.detection_fields.value | Il valore dei test delle condizioni nel log non elaborato. |
description | read_only_udm.metadata.description | La descrizione del log non elaborato. |
host.agent_version | read_only_udm.metadata.product_version | La versione dell'agente dal log non elaborato. |
host.containment_state | read_only_udm.principal.containment_state | Lo stato di contenimento del log non elaborato. |
host.domain | read_only_udm.principal.administrative_domain | Il dominio del log non elaborato. |
host.hostname | read_only_udm.principal.hostname | Il nome host del log non elaborato. |
host.os.platform | read_only_udm.principal.platform | La piattaforma del sistema operativo dal log non elaborato. |
host.os.product_name | read_only_udm.principal.platform_version | Il nome del prodotto del sistema operativo dal log non elaborato. |
host.primary_ip_address | read_only_udm.principal.ip | L'indirizzo IP principale del log non elaborato. |
host.primary_mac | read_only_udm.principal.mac | L'indirizzo MAC principale del log non elaborato, con i caratteri - sostituiti da : . |
host_ | principal.hostname | Il nome host del log non elaborato. |
host_details.data.agent_version | read_only_udm.metadata.product_version | La versione dell'agente dal log non elaborato. |
host_details.data.containment_state | read_only_udm.security_result.severity_details | Lo stato di contenimento del log non elaborato. |
host_details.data.domain | read_only_udm.principal.administrative_domain | Il dominio del log non elaborato. |
host_details.data.hostname | read_only_udm.principal.hostname | Il nome host del log non elaborato. |
host_details.data.os.platform | read_only_udm.principal.platform | La piattaforma del sistema operativo dal log non elaborato. |
host_details.data.os.product_name | read_only_udm.principal.platform_version | Il nome del prodotto del sistema operativo dal log non elaborato. |
host_details.data.primary_ip_address | read_only_udm.principal.ip | L'indirizzo IP principale del log non elaborato. |
host_details.data.primary_mac | read_only_udm.principal.mac | L'indirizzo MAC principale del log non elaborato, con i caratteri - sostituiti da : . |
indicators.data.description | read_only_udm.metadata.description | La descrizione dell'indicatore dal log non elaborato. |
linea | target.application | La riga del log non elaborato. |
localusername | target.user.user_display_name | Il nome utente locale del log non elaborato. |
principal_ip | principal.ip | L'indirizzo IP principale del log non elaborato. |
di diffusione | read_only_udm.principal.application | Il nome del processo dal log non elaborato. |
process_id | read_only_udm.principal.process.pid | L'ID processo dal log non elaborato. |
referrer | network.http.referral_url | L'URL referrer dal log non elaborato. |
remoteaddress | principal.ip | L'indirizzo remoto dal log non elaborato. |
richiesta | additional.fields.value.string_value | La richiesta dal log non elaborato. |
ruolo | target.user.role_name | Il ruolo del log non elaborato. |
server | target.resource.attribute.labels.value | Il server dal log non elaborato. |
sessionID | network.session_id | L'ID sessione del log non elaborato. |
gravità | security_result.severity | Imposta su LOW , MEDIUM o HIGH in base alla gravità del log non elaborato. |
target_host | read_only_udm.target.hostname | Il nome host di destinazione dal log non elaborato. |
target_ip | target.ip | L'indirizzo IP di destinazione del log non elaborato. |
target_ip1 | target.ip | L'indirizzo IPv6 di destinazione dal log non elaborato. |
timestamp | timestamp | Il timestamp del log non elaborato. |
upstream | target.url | L'URL upstream dal log non elaborato. |
nome utente | target.user.userid | Il nome utente del log non elaborato. |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.