Raccogliere i log CEF di ArcSight
Questo documento spiega come importare i log ArcSight CEF (Common Event Format) in Google Security Operations utilizzando Bindplane. Il parser trasforma i dati non elaborati in un formato Unified Data Model (UDM) strutturato. Estrae i campi dalle intestazioni ed estensioni CEF, li mappa ai campi UDM ed esegue una logica specifica per classificare gli eventi come accessi utente, connessioni di rete e accessi alle risorse in base alle informazioni estratte.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Istanza Google SecOps
- Un host Windows 2016 o versioni successive oppure Linux con
systemd
- Se l'esecuzione avviene tramite un proxy, le porte del firewall sono aperte
- ArcSight SmartConnector 8.4 (o versioni successive) installato su un host con accesso alla rete all'agente Bindplane
- Accesso privilegiato al portale OpenText
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
Installa l'agente Bindplane sul sistema operativo Windows o Linux seguendo le istruzioni riportate di seguito.
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 log_type: 'ARCSIGHT_CEF' raw_log_field: body ingestion_labels: 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
Scarica ArcSight SmartConnector
- Accedi al portale di assistenza OpenText.
- Trova e scarica l'ultima versione di ArcSight SmartConnector per Linux.
- Nome file di esempio:
ArcSight-Connector-Linux64-8.4.0.8499.0.bin
.
Installa ArcSight SmartConnector
Carica il file
.bin
sul server Smart Connector:scp ArcSight-Connector-Linux64-8.4.0.8499.0.bin user@your-smartconnector-host:/tmp
Accedi al server SmartConnector utilizzando SSH ed esegui:
cd /tmp chmod +x ArcSight-Connector-Linux64-8.4.0.8499.0.bin ./ArcSight-Connector-Linux64-8.4.0.8499.0.bin
Segui il programma di installazione interattivo:
- Seleziona la directory di installazione (ad esempio,
/opt/arcsight/connectors/current
). - Accetta la licenza.
- Seleziona Installa connettore quando richiesto.
- Seleziona la directory di installazione (ad esempio,
Configura ArcSight SmartConnector per inviare CEF a Syslog
Nell'host SmartConnector, avvia la procedura guidata di destinazione:
cd /opt/arcsight/connectors/current/bin ./arcsight connectors
Nella procedura guidata:
- Seleziona Aggiungi destinazione.
- Seleziona CEF Syslog.
Fornisci i seguenti dettagli di configurazione:
- Host/IP: inserisci l'indirizzo IP dell'agente Bindplane.
- Porta: inserisci il numero di porta dell'agente Bindplane.
- Protocollo: seleziona UDP.
Completa la configurazione e riavvia il connettore:
./arcsight agents
Esegui un controllo della connettività (ad esempio, cerca:
Successfully connected to syslog: X.X.X.X:514
).tail -f /opt/arcsight/connectors/current/logs/agent.log
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
atto | security_result.action_details | Mappato direttamente dal campo act . |
agt | principal.ip | Mappato direttamente dal campo agt . |
agt | principal.asset.ip | Mappato direttamente dal campo agt . |
app | network.application_protocol | Mappato direttamente dal campo app . |
art | metadata.event_timestamp.seconds | Mappato direttamente dal campo art . |
cs2 | additional.fields.value.string_value | Mappato direttamente dal campo cs2 quando cs2Label è EventlogCategory . |
cs2Label | additional.fields.key | Mappato direttamente dal campo cs2Label quando il suo valore è EventlogCategory . |
cs3 | additional.fields.value.string_value | Mappato direttamente dal campo cs3 quando cs3Label è Process ID . |
cs3Label | additional.fields.key | Mappato direttamente dal campo cs3Label quando il suo valore è Process ID . |
cs5 | additional.fields.value.string_value | Mappato direttamente dal campo cs5 quando cs5Label è Authentication Package Name . |
cs5Label | additional.fields.key | Mappato direttamente dal campo cs5Label quando il suo valore è Authentication Package Name . |
cs6 | additional.fields.value.string_value | Mappato direttamente dal campo cs6 quando cs6Label è Logon GUID . |
cs6Label | additional.fields.key | Mappato direttamente dal campo cs6Label quando il suo valore è Logon GUID . |
dhost | about.hostname | Mappato direttamente dal campo dhost . |
dhost | target.hostname | Mappato direttamente dal campo dhost . |
dntdom | about.administrative_domain | Mappato direttamente dal campo dntdom . |
dntdom | target.administrative_domain | Mappato direttamente dal campo dntdom . |
dproc | about.process.command_line | Mappato direttamente dal campo dproc . |
dproc | target.process.command_line | Mappato direttamente dal campo dproc . |
dst | principal.ip | Mappato direttamente dal campo dst . |
dst | principal.asset.ip | Mappato direttamente dal campo dst . |
dst | target.ip | Mappato direttamente dal campo dst . |
duid | target.user.userid | Mappato direttamente dal campo duid . |
duser | target.user.user_display_name | Mappato direttamente dal campo duser . |
dvc | about.ip | Mappato direttamente dal campo dvc . |
dvchost | about.hostname | Mappato direttamente dal campo dvchost . |
eventId | additional.fields.value.string_value | Mappato direttamente dal campo eventId . |
externalId | metadata.product_log_id | Mappato direttamente dal campo externalId . |
fname | additional.fields.value.string_value | Mappato direttamente dal campo fname . |
msg | metadata.description | Mappato direttamente dal campo msg . |
proto | network.ip_protocol | Mappato direttamente dal campo proto . Traduce i nomi dei protocolli nelle rispettive costanti (ad es. tcp a TCP ). |
rt | metadata.event_timestamp.seconds | Mappato direttamente dal campo rt . |
shost | about.hostname | Mappato direttamente dal campo shost . |
shost | principal.hostname | Mappato direttamente dal campo shost . |
src | principal.ip | Mappato direttamente dal campo src . |
src | principal.asset.ip | Mappato direttamente dal campo src . |
src | target.ip | Mappato direttamente dal campo src . |
sproc | principal.process.command_line | Mappato direttamente dal campo sproc . |
spt | principal.port | Mappato direttamente dal campo spt . |
spt | target.port | Mappato direttamente dal campo spt . |
additional.EventRecordID | additional.fields.value.string_value | Mappato direttamente dal campo ad.EventRecordID . |
additional.ThreadID | additional.fields.value.string_value | Mappato direttamente dal campo ad.ThreadID . |
additional.Opcode | additional.fields.value.string_value | Mappato direttamente dal campo ad.Opcode . |
additional.ProcessID | additional.fields.value.string_value | Mappato direttamente dal campo ad.ProcessID . |
additional.TargetDomainName | additional.fields.value.string_value | Mappato direttamente dal campo ad.TargetDomainName . |
additional.Version | additional.fields.value.string_value | Mappato direttamente dal campo ad.Version . |
deviceExternalId | about.asset.hardware.serial_number | Mappato direttamente dal campo deviceExternalId . |
deviceInboundInterface | additional.fields.value.string_value | Mappato direttamente dal campo deviceInboundInterface . |
deviceOutboundInterface | additional.fields.value.string_value | Mappato direttamente dal campo deviceOutboundInterface . |
PanOSConfigVersion | security_result.detection_fields.value | Mappato direttamente dal campo PanOSConfigVersion . |
PanOSContentVersion | security_result.detection_fields.value | Mappato direttamente dal campo PanOSContentVersion . |
PanOSDGHierarchyLevel1 | security_result.detection_fields.value | Mappato direttamente dal campo PanOSDGHierarchyLevel1 . |
PanOSDestinationLocation | target.location.country_or_region | Mappato direttamente dal campo PanOSDestinationLocation . |
PanOSRuleUUID | metadata.product_log_id | Mappato direttamente dal campo PanOSRuleUUID . |
PanOSThreatCategory | security_result.category_details | Mappato direttamente dal campo PanOSThreatCategory . |
PanOSThreatID | security_result.threat_id | Mappato direttamente dal campo PanOSThreatID . |
about.asset.asset_id | Generato concatenando Palo Alto Networks. , il nome del fornitore (LF ) e il campo deviceExternalId . |
|
extensions.auth.type | Imposta su AUTHTYPE_UNSPECIFIED se il campo event_name contiene logged on . |
|
metadata.description | Se il campo description contiene by seguito da un indirizzo IP, l'indirizzo IP viene estratto e mappato a principal.ip e principal.asset.ip . |
|
metadata.event_type | Determinato in base a una serie di controlli condizionali su vari campi, tra cui event_name , principal_* , target_* e device_event_class_id . La logica determina il tipo di evento più appropriato in base alle informazioni disponibili. |
|
metadata.log_type | Imposta su ARCSIGHT_CEF . |
|
metadata.product_event_type | Generato concatenando \[ , the device_event_class_id field, \] - e il campo name . |
|
metadata.product_name | Imposta su NGFW se il campo product_name è LF . |
|
principal.asset.ip | Se il campo description contiene by seguito da un indirizzo IP, l'indirizzo IP viene estratto e mappato a principal.ip e principal.asset.ip . |
|
principal.ip | Se il campo description contiene by seguito da un indirizzo IP, l'indirizzo IP viene estratto e mappato a principal.ip e principal.asset.ip . |
|
security_result.action | Imposta su ALLOW se il campo act è alert , altrimenti imposta su BLOCK . |
|
security_result.severity | Imposta HIGH se il campo sev è maggiore o uguale a 7, altrimenti imposta LOW . |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.