Raccogliere i log di Cisco Stealthwatch
Questo documento spiega come raccogliere i log di Cisco Secure Network Analytics (in precedenza Stealthwatch) in Google Security Operations utilizzando Bindplane. Il parser gestisce due formati di log Cisco Stealthwatch: uno con informazioni su IP e pacchetti client/server e un altro con ID dispositivo e conteggi dei byte. Estrae i campi, li converte nei tipi di dati appropriati, li mappa all'UDM e imposta i campi dei metadati come fornitore, prodotto e tipo di evento in base al contenuto e al formato dei log.
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 Cisco Stealthwatch.
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: CISCO_STEALTHWATCH 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
Configurare Syslog di Cisco Secure Network Analytics (in precedenza Stealthwatch)
- Accedi all'UI web della console di gestione.
- Vai a Configurazione > Gestione risposte.
Modifica formato Syslog:
- Nome: inserisci un nome per il formato syslog.
- Descrizione: fornisci una descrizione del formato.
- Struttura: impostata su
Local 0
- Gravità: impostata su
Informational
. - Nel campo Messaggio, incolla il seguente formato:
Lancope|StealthWatch|time|{time}|target_hostname|{target_hostname}|alarm_severity_id|{alarm_severity_id}|alarm_type_id|{alarm_type_id}|alarm_type_description|{alarm_type_description}|port|{port}|target_ip|{target_ip}|target_mac_address|{target_mac_address}|target_label|{target_label}|alarm_type_name|{alarm_type_name}|source_hostname|{source_hostname}|source_ip|{source_ip}|source_mac_address|{source_mac_address}|source_username|{source_username}|device_ip|{device_ip}|device_name|{device_name}|details|{details}|protocol|{protocol}|alarm_id|{alarm_id}|alarm_category_name|{alarm_category_name}|start_active_time|{start_active_time}| end_active_time|{end_active_time}
Fai clic su OK.
Vai a Gestione risposte > Azioni > Aggiungi messaggio Syslog.
Configura l'agente di inoltro Syslog:
- Nome: inserisci il nome del forwarder Google SecOps Bindplane.
- Descrizione: inserisci la descrizione del forwarder Google SecOps Bindplane.
- Indirizzo IP: inserisci l'indirizzo IP dell'agente Bindplane.
- Porta: inserisci il numero di porta dell'agente Bindplane, ad esempio
514
. - Formato: seleziona il formato creato nel passaggio 3.
Fai clic su OK.
Configurare i nomi delle regole per Cisco Secure Network Analytics (in precedenza Stealthwatch)
- Vai a Configurazione > Gestione risposte.
- Seleziona Regole > Aggiungi > Allarmi di sistema SMC.
- Fai clic su OK.
- Nella finestra di dialogo Tipi di regole, seleziona una regola.
- Fai clic su OK.
- Nella finestra di dialogo Regola, procedi nel seguente modo:
- Nome: inserisci un nome per la regola.
- Questa regola viene attivata se: seleziona Qualsiasi, Gravità e Informativa negli elenchi corrispondenti.
- Fai clic su OK.
- Seleziona Azioni > Aggiungi.
- Seleziona l'azione che hai creato in precedenza.
- Fai clic su Ok, quindi su Ok.
- Ripeti i passaggi precedenti per rinominare le tre opzioni seguenti nella sezione Regola:
- Meccanismo di raccolta dei log supportato: Syslog
- Meccanismo di raccolta dei log preferito: Syslog
- Diagramma logico del flusso di eventi - Server syslog remoto SMC
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
Alarm_ID |
additional.fields[?key=='Alarm_ID'].value.string_value |
Il valore di Alarm_ID del log non elaborato viene inserito in una struttura additional.fields nidificata sotto la chiave Alarm_ID . |
ClientBytes |
network.sent_bytes |
ClientBytes dal log non elaborato viene convertito in un numero intero senza segno e mappato. |
ClientIP |
principal.ip |
ClientIP dal log non elaborato viene mappato. |
ClientPort |
principal.port |
ClientPort dal log non elaborato viene convertito in un numero intero e mappato. |
CPayload |
Nessuna mappatura | Questo campo non viene utilizzato nell'UDM finale. |
DestIPv4Address |
target.ip |
DestIPv4Address dal log non elaborato viene mappato. |
DestPort |
target.port |
DestPort dal log non elaborato viene convertito in un numero intero e mappato. |
details |
security_result.summary |
Viene mappato il valore di details dal log non elaborato, con le virgolette doppie rimosse. |
FC |
intermediary.ip |
FC dal log non elaborato viene mappato. |
host.country |
principal.location.country_or_region |
host.country dal log non elaborato viene mappato. |
host.hostGroupNames |
about.group.group_display_name |
Ogni elemento dell'array host.hostGroupNames del log non elaborato è preceduto da host: e mappato come oggetto about separato. |
host.ipAddress |
principal.ip |
host.ipAddress dal log non elaborato viene mappato. |
hostBytes |
network.sent_bytes |
hostBytes dal log non elaborato viene convertito in un numero intero senza segno e mappato. |
InPackets |
additional.fields[?key=='InPackets'].value.string_value |
Il valore di InPackets del log non elaborato viene inserito in una struttura additional.fields nidificata sotto la chiave InPackets . |
inputSNMPIface |
additional.fields[?key=='inputSNMPIface'].value.string_value |
Il valore di inputSNMPIface del log non elaborato viene inserito in una struttura additional.fields nidificata sotto la chiave inputSNMPIface . |
LastTime |
Nessuna mappatura | In alcuni casi, questo campo viene analizzato per il timestamp dell'evento, ma non viene mappato direttamente all'UDM. |
MessageSourceAddress |
principal.ip |
MessageSourceAddress dal log non elaborato viene mappato. |
method |
network.http.method |
method dal log non elaborato viene mappato. |
outputSNMPIface |
additional.fields[?key=='outputSNMPIface'].value.string_value |
Il valore di outputSNMPIface del log non elaborato viene inserito in una struttura additional.fields nidificata sotto la chiave outputSNMPIface . |
PAAppID |
Nessuna mappatura | Questo campo non viene utilizzato nell'UDM finale. |
peer.country |
target.location.country_or_region |
peer.country dal log non elaborato viene mappato. |
peer.hostGroupNames |
about.group.group_display_name |
Ogni elemento dell'array peer.hostGroupNames del log non elaborato è preceduto da peer: e mappato come oggetto about separato. |
peer.ipAddress |
target.ip |
peer.ipAddress dal log non elaborato viene mappato. |
peerBytes |
network.received_bytes |
peerBytes dal log non elaborato viene convertito in un numero intero senza segno e mappato. |
peerPackets |
Nessuna mappatura | Questo campo non viene utilizzato nell'UDM finale. |
Protocol |
Nessuna mappatura | Questo campo viene analizzato per determinare il network.ip_protocol , ma non viene mappato direttamente. |
ProtocolIdentifier |
Nessuna mappatura | Questo campo viene utilizzato per derivare network.ip_protocol , ma non viene mappato direttamente. |
reportName |
metadata.product_event_type |
reportName dal log non elaborato viene mappato. |
ServerBytes |
network.received_bytes |
ServerBytes dal log non elaborato viene convertito in un numero intero senza segno e mappato. |
ServerIP |
target.ip |
ServerIP dal log non elaborato viene mappato. |
ServerPort |
target.port |
ServerPort dal log non elaborato viene convertito in un numero intero e mappato. |
Service |
Nessuna mappatura | Questo campo non viene utilizzato nell'UDM finale. |
sid |
target.user.windows_sid |
sid dal log non elaborato viene mappato. |
SourceModuleName |
target.resource.name |
SourceModuleName dal log non elaborato viene mappato. |
SourceModuleType |
observer.application |
SourceModuleType dal log non elaborato viene mappato. |
SourcePort |
principal.port |
SourcePort dal log non elaborato viene convertito in un numero intero e mappato. |
sourceIPv4Address |
principal.ip |
sourceIPv4Address dal log non elaborato viene mappato. |
SPayload |
Nessuna mappatura | Questo campo non viene utilizzato nell'UDM finale. |
src_ip |
principal.ip |
src_ip dal log non elaborato viene mappato. |
StartTime |
Nessuna mappatura | In alcuni casi, questo campo viene analizzato per il timestamp dell'evento, ma non viene mappato direttamente all'UDM. |
time |
Nessuna mappatura | In alcuni casi, questo campo viene analizzato per il timestamp dell'evento, ma non viene mappato direttamente all'UDM. |
timestamp |
Nessuna mappatura | Questo campo viene analizzato per il timestamp dell'evento, ma non viene mappato direttamente all'UDM. |
UserName |
principal.user.user_display_name |
UserName dal log non elaborato viene mappato. |
Version |
metadata.product_version |
Version dal log non elaborato viene convertito in una stringa e mappato. |
N/A | metadata.event_timestamp |
Il timestamp dell'evento viene derivato da vari campi (LastTime , time , timestamp , StartTime ) a seconda del formato del log o dal campo create_time se non è disponibile nessun altro timestamp. |
N/A | metadata.log_type |
Sempre impostato su CISCO_STEALTHWATCH . |
N/A | metadata.vendor_name |
Sempre impostato su Cisco . |
N/A | metadata.event_type |
Determinato dalla logica del parser in base ai contenuti del log. Può essere NETWORK_CONNECTION , USER_STATS , USER_UNCATEGORIZED , FILE_OPEN , FILE_DELETION o FILE_UNCATEGORIZED . |
N/A | network.ip_protocol |
Determinato dalla logica del parser in base ai campi Protocol o ProtocolIdentifier . Può essere TCP , UDP o ICMP . |
action |
security_result.action_details |
Il valore di action del log non elaborato viene mappato. |
action |
security_result.action |
Derivato dal campo action . Se action è SUCCESS , questo campo è impostato su ALLOW ; in caso contrario, è impostato su BLOCK . |
category |
security_result.category_details |
Il valore di category del log non elaborato viene mappato. |
description |
security_result.description |
Se sia description che file_type sono presenti nel log non elaborato, vengono concatenati e mappati. |
desc |
metadata.description |
Viene mappato il valore di desc dal log non elaborato, con le virgolette doppie rimosse. |
failuer_reason |
security_result.summary |
Se sia failuer_reason che file_type sono presenti nel log non elaborato, vengono concatenati e mappati. |
file_path |
target.file.full_path |
file_path dal log non elaborato viene mappato. |
file_type |
target.file.mime_type |
file_type dal log non elaborato viene mappato. |
hostname |
principal.hostname |
hostname dal log non elaborato viene mappato. |
ip |
principal.ip |
ip dal log non elaborato viene mappato. |
ipf |
intermediary.ip |
ipf dal log non elaborato viene mappato. |
ipt |
target.ip |
ipt dal log non elaborato viene mappato. |
process_id |
target.process.pid |
process_id dal log non elaborato viene mappato. |
protocol |
network.application_protocol |
protocol dal log non elaborato viene mappato. |
security_res.severity |
security_result.severity |
Se severity è Minor , questo campo è impostato su INFORMATIONAL ; se severity è Major , è impostato su ERROR . |
session_id |
network.session_id |
session_id dal log non elaborato viene mappato. |
severity |
Nessuna mappatura | Questo campo viene utilizzato per derivare security_result.severity , ma non viene mappato direttamente. |
Source_HG |
principal.location.country_or_region |
Source_HG dal log non elaborato viene mappato. |
Source_HostSnapshot |
principal.url |
Source_HostSnapshot dal log non elaborato viene mappato. |
Target_HostSnapshot |
target.url |
Target_HostSnapshot dal log non elaborato viene mappato. |
user_name |
principal.user.userid |
user_name dal log non elaborato viene mappato. |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.