Raccogliere i log di Cisco Firepower NGFW
Questo documento spiega come importare i log di Cisco Firepower Next Generation Firewall (NGFW) in Google Security Operations utilizzando Bindplane. Il parser estrae i log da vari formati (syslog, JSON e combinazioni), normalizza il timestamp e mappa i campi pertinenti al modello UDM (Unified Data Model). Gestisce sia i messaggi syslog convenzionali sia i payload in formato JSON all'interno dei log, sfruttando i pattern grok e la logica condizionale per estrarre campi come ID evento, gravità e IP client, quindi arricchisce i dati con etichette basate su nome host e URI HTTP.
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, assicurati che le porte del firewall siano aperte.
- Accesso con privilegi a un dispositivo Cisco Firepower
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 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 inviarlo 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: 'CISCO_FIREPOWER_FIREWALL' 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
Configurare Syslog sul dispositivo Cisco FirePower
- Accedi all'interfaccia utente web di Firepower Device Manager.
- Vai a Impostazioni di sistema > Impostazioni di registrazione.
- Attiva l'opzione Abilita per Logging dei dati.
- Fai clic sull'icona + in Server Syslog.
- Fai clic su Crea nuovo server Syslog. In alternativa, puoi creare il server Syslog in Oggetti > Server Syslog.
- Fornisci i seguenti dettagli di configurazione:
- Indirizzo IP: inserisci l'indirizzo IP dell'agente Bindplane.
- Tipo di protocollo: seleziona UDP.
- Numero porta: inserisci il numero di porta dell'agente Bindplane.
- Seleziona Interfaccia dati o Interfaccia di gestione.
- Fai clic su OK.
- Seleziona il server Syslog appena creato dall'elenco e fai clic su Ok.
- Fai clic su Livello di gravità per il filtro di tutti gli eventi e seleziona Informativo dall'elenco.
- Fai clic su Salva.
- Fai clic sull'icona Implementa nuove impostazioni > Implementa ora.
- Fai clic su Norme nella parte superiore dello schermo.
- Passa il mouse sopra il lato destro della regola ACP e fai clic su Modifica Modifica.
- Vai alla scheda Registrazione.
- Seleziona Al termine della connessione.
- Apri l'elenco Seleziona una configurazione di avviso Syslog.
- seleziona il server Syslog di Bindplane.
- Fai clic su OK.
- Fai clic sull'icona Implementa nuove impostazioni > Implementa ora.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
AccessControlRuleAction |
security_result.action |
Mappato direttamente dal log non elaborato. I valori sono normalizzati in UDM (ALLOW/BLOCK). |
AccessControlRuleName |
security_result.rule_name |
Mappato direttamente dal log non elaborato. |
ACPolicy |
security_result.rule_labels.value |
Mappato direttamente dal log non elaborato. La chiave è impostata su "ACPolicy". |
ApplicationProtocol |
network.application_protocol |
Mappato direttamente dal log non elaborato. |
Client |
network.http.user_agent |
Mappato direttamente dal log non elaborato. |
ClientVersion |
principal.asset.platform_version |
Mappato direttamente dal log non elaborato. |
collection_time.nanos |
metadata.event_timestamp.nanos |
Mappato direttamente dal log non elaborato. |
collection_time.seconds |
metadata.event_timestamp.seconds |
Mappato direttamente dal log non elaborato. |
ConnectionDuration |
network.session_duration.seconds |
Mappato direttamente dal log non elaborato, convertito in secondi se necessario (ad es. dal formato della durata). |
data |
metadata.description |
Utilizzato in combinazione con eventId per generare una descrizione più descrittiva. Utilizzato anche per estrarre altri campi utilizzando grok ed espressioni regolari. |
deviceId |
metadata.product_log_id |
Mappato direttamente dal log non elaborato dopo la ridenominazione in device_uuid . |
device_uuid |
metadata.product_log_id |
Mappato direttamente dal log non elaborato. |
DstIP |
target.asset.ip , target.ip |
Mappato direttamente dal log non elaborato. |
DstPort |
target.port |
Mappato direttamente dal log non elaborato. |
EgressInterface |
principal.asset.attribute.labels.value |
Mappato direttamente dal log non elaborato. La chiave è impostata su "EgressInterface". |
EgressZone |
target.location.name |
Mappato direttamente dal log non elaborato. |
eventId |
metadata.product_event_type |
Mappato direttamente dal log non elaborato. Utilizzato anche per la logica condizionale e il filtraggio. |
FileAction |
security_result.summary |
Mappato direttamente dal log non elaborato. |
FileDirection |
metadata.description |
Mappato direttamente dal log non elaborato e aggiunto alla descrizione. |
FileName |
target.file.full_path |
Mappato direttamente dal log non elaborato. |
FilePolicy |
security_result.rule_name |
Mappato direttamente dal log non elaborato. |
FileSize |
target.file.size |
Mappato direttamente dal log non elaborato. |
FileSHA256 |
target.file.sha256 |
Mappato direttamente dal log non elaborato. |
FileSandboxStatus |
security_result.description |
Mappato direttamente dal log non elaborato. |
HTTPReferer |
network.http.referral_url |
Mappato direttamente dal log non elaborato. |
HTTPResponse |
network.http.response_code |
Mappato direttamente dal log non elaborato. |
HTTP_Hostname |
target.resource.attribute.labels.value |
Mappato direttamente dal log non elaborato. La chiave è impostata su "HTTP_Hostname". |
HTTP_URI |
target.resource.attribute.labels.value |
Mappato direttamente dal log non elaborato. La chiave è impostata su "HTTP_URI". |
IngressInterface |
principal.asset.attribute.labels.value |
Mappato direttamente dal log non elaborato. La chiave è impostata su "IngressInterface". |
IngressZone |
principal.location.name |
Mappato direttamente dal log non elaborato. |
InitiatorBytes |
network.received_bytes |
Mappato direttamente dal log non elaborato. |
InlineResult |
security_result.action_details |
Mappato direttamente dal log non elaborato. |
IntrusionPolicy |
security_result.rule_name |
Mappato direttamente dal log non elaborato. |
log_type |
metadata.log_type |
Mappato direttamente dal log non elaborato. |
Message |
security_result.description |
Mappato direttamente dal log non elaborato, spesso preceduto da "Message : ". |
NAPPolicy |
principal.asset.attribute.labels.value |
Mappato direttamente dal log non elaborato. La chiave è impostata su "NAPPolicy". |
Prefilter Policy |
security_result.rule_labels.value |
Mappato direttamente dal log non elaborato. La chiave è impostata su "Prefilter Policy". |
Priority |
security_result.priority_details |
Mappato direttamente dal log non elaborato. |
priorityId |
security_result.priority_details |
Mappato direttamente dal log non elaborato. |
product |
metadata.product_name |
Imposta "Firepower Firewall". |
Protocol |
network.ip_protocol |
Mappato direttamente dal log non elaborato. I valori sono normalizzati in UDM (TCP, UDP, ICMP e così via). |
ResponderBytes |
network.sent_bytes |
Mappato direttamente dal log non elaborato. |
Revision |
security_result.about.labels.value |
Mappato direttamente dal log non elaborato. La chiave è impostata su "Singnature_Version". |
ruleId |
security_result.rule_id |
Mappato direttamente dal log non elaborato. |
security_result.severity |
security_result.severity |
Impostato in base al campo severity del log non elaborato, utilizzando una tabella di ricerca per la mappatura ai valori di gravità UDM. |
security_result.severity_details |
security_result.severity_details |
Impostato in base al campo severity del log non elaborato, utilizzando una tabella di ricerca per la mappatura ai dettagli di gravità UDM. |
SID |
security_result.threat_id |
Mappato direttamente dal log non elaborato. |
SrcIP |
principal.asset.ip , principal.ip |
Mappato direttamente dal log non elaborato. |
SrcPort |
principal.port |
Mappato direttamente dal log non elaborato. |
syslog_msg_id |
metadata.product_event_type |
Mappato direttamente dal log non elaborato dopo la conversione in una stringa. Utilizzato per sovrascrivere eventId , se presente. |
syslog_msg_text |
metadata.description , security_result.description |
Mappato direttamente dal log non elaborato, a volte preceduto da "Message : ". Utilizzato per ignorare la descrizione generata da data e eventId . |
syslog_severity |
security_result.severity |
Mappato direttamente dal log non elaborato dopo la conversione in una stringa. Utilizzato per eseguire l'override della gravità derivata da eventId . I valori vengono normalizzati in UDM (INFORMATIONAL, WARNING, ERROR e così via). |
sysloghost |
intermediary.hostname |
Mappato direttamente dal log non elaborato. |
ThreatName |
security_result.threat_name |
Mappato direttamente dal log non elaborato. |
ts |
metadata.event_timestamp |
Analizzato dal log non elaborato utilizzando filtri per data e vari formati. |
ts_year |
metadata.event_timestamp |
Analizzato dal log non elaborato utilizzando filtri per data e vari formati. |
URL |
target.url |
Mappato direttamente dal log non elaborato. |
URLCategory |
security_result.category_details |
Mappato direttamente dal log non elaborato. |
URLReputation |
security_result.confidence_details |
Mappato direttamente dal log non elaborato. |
User |
target.user.userid |
Mappato direttamente dal log non elaborato. |
UserAgent |
network.http.user_agent |
Mappato direttamente dal log non elaborato. |
UserName |
target.user.userid |
Mappato direttamente dal log non elaborato. |
user_name |
principal.user.email_addresses |
Mappati direttamente dal log non elaborato per tipi di eventi specifici. |
WebApplication |
target.application |
Mappato direttamente dal log non elaborato. |
metadata.event_type è impostato sul valore predefinito NETWORK_CONNECTION e a volte viene sostituito in base a eventId o ad altri campi. |
||
metadata.vendor_name è sempre impostato su "Cisco". |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.