Raccogli i log CEF di ArcSight
Versione parser: 34.0
Questo documento spiega come importare i log ArcSight CEF in Google Security Operations utilizzando l'agente Bindplane.
ArcSight (ora parte di OpenText) utilizza il formato Common Event Format (CEF) per normalizzare gli eventi di sicurezza provenienti da più origini. ArcSight SmartConnector raccoglie gli eventi e li inoltra in formato CEF tramite syslog ai consumatori downstream, incluse le piattaforme SIEM.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Un'istanza Google SecOps
- Windows Server 2016 o versioni successive oppure host Linux con
systemd - Connettività di rete tra l'agente Bindplane e l'host ArcSight SmartConnector
- Se l'agente viene eseguito dietro un proxy, assicurati che le porte del firewall siano aperte in base ai requisiti dell'agente Bindplane
- Accesso al portale di assistenza OpenText per scaricare SmartConnector
- Accesso amministrativo al server SmartConnector
Recuperare il file di autenticazione dell'importazione di Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agenti di raccolta.
- Scarica il file di autenticazione dell'acquisizione.
Salva il file in modo sicuro sul sistema in cui verrà installato l'agente 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 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" /quietAttendi il completamento dell'installazione.
Verifica l'installazione eseguendo:
sc query observiq-otel-collectorIl servizio dovrebbe essere visualizzato come IN ESECUZIONE.
Installazione di Linux
- Apri un terminale con privilegi 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.shAttendi il completamento dell'installazione.
Verifica l'installazione eseguendo:
sudo systemctl status observiq-otel-collectorIl servizio dovrebbe essere visualizzato come attivo (in esecuzione).
Risorse aggiuntive per l'installazione
Per ulteriori opzioni di installazione e risoluzione dei problemi, consulta la guida all'installazione dell'agente Bindplane.
Configura l'agente Bindplane per importare syslog e inviarli a Google SecOps
Individua il file di configurazione
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Modifica il file di configurazione
Sostituisci l'intero contenuto di
config.yamlcon la seguente configurazione:receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/arcsight_cef: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: ARCSIGHT_CEF raw_log_field: body service: pipelines: logs/arcsight_to_chronicle: receivers: - udplog exporters: - chronicle/arcsight_cef
Parametri di configurazione
Sostituisci i seguenti segnaposto:
Configurazione del ricevitore:
listen_address: Indirizzo IP e porta da ascoltare:0.0.0.0per ascoltare su tutte le interfacce (consigliato)- La porta
514è la porta syslog standard (richiede l'accesso root su Linux; utilizza1514per l'accesso non root)
Configurazione dell'esportatore:
creds_file_path: percorso completo del file di autenticazione dell'acquisizione:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id: ID cliente copiato dalla console Google SecOpsendpoint: URL endpoint regionale:- Stati Uniti:
malachiteingestion-pa.googleapis.com - Europa:
europe-malachiteingestion-pa.googleapis.com - Asia:
asia-southeast1-malachiteingestion-pa.googleapis.com - Per un elenco completo, vedi Endpoint regionali.
- Stati Uniti:
Salvare il file di configurazione
- Dopo la modifica, salva il file:
- Linux: premi
Ctrl+O, poiEntere infineCtrl+X. - Windows: fai clic su File > Salva.
- Linux: premi
Riavvia l'agente Bindplane per applicare le modifiche
Per riavviare l'agente Bindplane in Linux, esegui questo comando:
sudo systemctl restart observiq-otel-collectorVerifica che il servizio sia in esecuzione:
sudo systemctl status observiq-otel-collectorControlla i log per individuare eventuali errori:
sudo journalctl -u observiq-otel-collector -f
Per riavviare l'agente Bindplane in Windows, scegli una delle seguenti opzioni:
Prompt dei comandi o PowerShell come amministratore:
net stop observiq-otel-collector && net start observiq-otel-collectorConsole dei servizi:
- Premi
Win+R, digitaservices.msce premi Invio. - Individua observIQ OpenTelemetry Collector.
- Fai clic con il tasto destro del mouse e seleziona Riavvia.
Verifica che il servizio sia in esecuzione:
sc query observiq-otel-collectorControlla i log per individuare eventuali errori:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- Premi
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
.binsul server Smart Connector:scp ArcSight-Connector-Linux64-8.4.0.8499.0.bin user@your-smartconnector-host:/tmpAccedi 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.binSegui 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
In Host SmartConnector, avvia la procedura guidata per la destinazione:
cd /opt/arcsight/connectors/current/bin ./arcsight connectorsNella 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 (ad esempio,
514). - Protocollo: seleziona UDP.
Completa la configurazione e riavvia il connettore:
./arcsight agentsEsegui un controllo della connettività (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 | mapping UDM | Logica |
|---|---|---|
| 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. Converte i nomi dei protocolli nelle rispettive costanti (ad es. tcp in TCP). |
| rt | metadata.event_timestamp.seconds | Mappato direttamente dal campo rt. |
| spettro | about.hostname | Mappato direttamente dal campo shost. |
| spettro | 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 il valore su HIGH se il campo sev è maggiore o uguale a 7, altrimenti impostalo su LOW. |
|
PanOSFileType |
event.idm.read_only_udm.target.file.mime_type |
Mappato dal log delle modifiche |
PanOSEmailSubject |
event.idm.read_only_udm.network.email.subject |
Mappato dal log delle modifiche |
PanOSNSSAINetworkSliceType |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
PanOSURLCounter |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
PanOSReportID |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
PanOSDGHierarchyLevel2 |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
PanOSVirtualSystemName |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
PanOSSigFlags |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
PanOSPartialHash |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
version |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
cn3 |
network.duration.seconds |
Mappato dal log delle modifiche |
PanOSTenantID |
additional.fields |
Mappato dal log delle modifiche |
cn3 |
additional.fields |
Mappato dal log delle modifiche |
PanOSCortexDataLakeTenantID |
additional.fields |
Mappato dal log delle modifiche |
target_user |
target.user.userid |
Mappato dal log delle modifiche |
principal_ip |
principal.ip |
Mappato dal log delle modifiche |
PanOSStage", "PanOSConnectionError", and "PanOSEventDetails |
additional.fields |
Mappato dal log delle modifiche |
outcome |
security_result.action_details |
Mappato dal log delle modifiche |
PanOSDescription |
metadata.description |
Mappato dal log delle modifiche |
PanOSSourceUser |
principal.user.userid |
Mappato dal log delle modifiche |
app |
target.application |
Mappato dal log delle modifiche |
flexString2", "PanOSFileHash", and "filePath |
additional.fields |
Mappato dal log delle modifiche |
threat_name |
security_result.threat_name |
Mappato dal log delle modifiche |
principal_ip1 |
principal.ip |
Mappato dal log delle modifiche |
metadata.event_type |
NETWORK_CONNECTION |
Mappato dal log delle modifiche |
deviceOutboundInterface", "deviceInboundInterface |
additional.fields |
Mappato dal log delle modifiche |
query |
additional fields |
Mappato dal log delle modifiche |
Log delle modifiche
Visualizza il log delle modifiche per questo parser
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.