Raccogliere i log dello switch Dell
Questo parser estrae i log degli switch Dell, normalizza i timestamp e utilizza i pattern Grok per strutturare il messaggio del log in coppie chiave-valore. Poi mappa questi campi estratti all'Unified Data Model (UDM), gestisce vari formati di log e arricchisce i dati con informazioni contestuali come i dettagli delle risorse e la gravità della sicurezza.
Prima di iniziare
- Assicurati di avere un'istanza Google Security Operations.
- Assicurati di utilizzare Windows 2016 o versioni successive o un host Linux con
systemd
. - Se il servizio è in esecuzione dietro un proxy, assicurati che le porte del firewall siano aperte.
- Assicurati di disporre di una connessione attiva e delle credenziali amministrative per uno switch Dell.
Recupera il file di autenticazione di importazione di Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agenti di raccolta.
- Scarica il file di autenticazione dell'importazione. Salva il file in modo sicuro sul sistema in cui verrà installato BindPlane.
Ottenere 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 BindPlane Agent
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 di installazione aggiuntive
- Per altre opzioni di installazione, consulta questa guida all'installazione.
Configurare l'agente BindPlane per importare i 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: tcplog: # Replace the below port <54525> and IP <0.0.0.0> with your specific values listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the creds location below according the placement of the credentials file you downloaded creds: '{ json file for creds }' # Replace <customer_id> below with your actual ID that you copied customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # You can apply ingestion labels below as preferred ingestion_labels: log_type: SYSLOG namespace: sell_switch raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
Sostituisci la porta e l'indirizzo IP come richiesto nella tua infrastruttura.
Sostituisci
<customer_id>
con l'ID cliente effettivo.Aggiorna
/path/to/ingestion-authentication-file.json
con il percorso in cui è stato salvato il file di autenticazione nella sezione Ottenere il file di autenticazione per l'importazione di Google SecOps.
Riavvia BindPlane Agent per applicare le modifiche
In Linux, per riavviare BindPlane Agent, esegui il seguente comando:
sudo systemctl restart bindplane-agent
In Windows, per riavviare l'agente BindPlane, puoi utilizzare la console Servizi o inserire il seguente comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configurare l'esportazione di Syslog da uno switch Dell
- Connettiti allo switch Dell tramite SSH o la porta console.
- Accedi con le credenziali amministrative.
Utilizza il seguente comando per specificare l'indirizzo IP o il nome host del server syslog (sostitui
<syslog_server_ip>
,<udp|tcp>
e<syslog-port-number>
con i dettagli effettivi):logging host <syslog-server-ip> transport <udp|tcp> port <syslog-port-number>
(Facoltativo) Definisci il livello di gravità minimo per i messaggi da inviare al server syslog. Ad esempio, per registrare i messaggi informativi e quelli successivi:
logging level informational
Salva la configurazione in esecuzione nella configurazione di avvio per assicurarti che le modifiche vengano mantenute dopo i riavvii:
copy running-config startup-config
Salva la configurazione:
write memory
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logica |
---|---|---|
acct |
principal.user.userid |
Utilizzato come userid se il campo user non è presente. |
addr |
principal.asset.ip , principal.ip |
Analizza come indirizzo IP e utilizzato per l'IP del principale e l'IP della risorsa se è un indirizzo IP valido e diverso dal nome host. |
application |
principal.application |
Mappatura diretta. |
asset |
principal.asset.attribute.labels.value |
Mappato direttamente al valore dell'etichetta della risorsa, con la chiave hardcoded come "Nome risorsa". Se il campo della risorsa è vuoto e il messaggio contiene "Dell", la risorsa viene impostata su "Dell". |
auid |
principal.resource.attribute.labels.value |
Mappato direttamente a un'etichetta con chiave auid in principal.resource.attribute.labels . |
datetime |
metadata.event_timestamp |
Analizzati da vari formati nel campo del messaggio e convertiti in un timestamp. |
dest_ip |
target.asset.ip , target.ip |
Mappato all'IP target e all'IP della risorsa target. |
enterpriseId |
principal.resource.attribute.labels.value |
Mappato a un'etichetta con chiave enterpriseId in principal.resource.attribute.labels . |
exe |
sec_result.detection_fields.value |
Mappato a un campo di rilevamento con chiave exe . |
File |
target.file.full_path |
Mappatura diretta. |
grantors |
principal.resource.attribute.labels.value |
Mappato a un'etichetta con chiave grantors in principal.resource.attribute.labels . |
host |
principal.hostname , principal.asset.hostname , metadata.event_type |
Utilizzato come nome host principale e nome host della risorsa. Se è presente host , metadata.event_type viene impostato su STATUS_UPDATE . Se il nome host è presente, ma non l'host, il nome host viene utilizzato come host. |
hostname |
principal.asset.ip , principal.ip , host |
Se è un indirizzo IP valido, viene utilizzato per l'IP principale e l'IP della risorsa. Se host è vuoto, viene utilizzato come host . |
ID |
principal.resource.attribute.labels.value |
Mappato a un'etichetta con chiave ID in principal.resource.attribute.labels . |
ip |
principal.asset.ip , principal.ip |
Mappato all'IP principale e all'IP della risorsa. |
is_synced |
sec_result.detection_fields.value |
Mappato a un campo di rilevamento con chiave is_synced . |
local |
target.asset.ip , target.ip , target.port |
Analizzati per estrarre l'IP e la porta locali, mappati all'IP target, all'IP della risorsa target e alla porta target. |
local_ip |
target.asset.ip , target.ip |
Estratto dal campo local e mappato all'IP target e all'IP dell'asset target. |
local_port |
target.port |
Estratto dal campo local e mappato alla porta di destinazione. |
mac |
principal.mac |
Se si tratta di un indirizzo MAC valido, deve essere mappato all'indirizzo MAC principale. |
msg |
metadata.description |
Utilizzato come descrizione dell'evento, se presente. Analizza anche i campi aggiuntivi. |
msg1 |
metadata.description |
Viene utilizzato come descrizione dell'evento se msg2 non è presente. |
msg2 |
sec_result.description , metadata.event_type , extensions.auth.type |
Utilizzata come descrizione del risultato di sicurezza. Se contiene "aperto per l'utente", il tipo di evento è impostato su USER_LOGIN e il tipo di autenticazione su MACHINE . Se contiene "closed for user", il tipo di evento è impostato su USER_LOGOUT e il tipo di autenticazione su MACHINE . |
op |
metadata.product_event_type |
Utilizzato come tipo di evento del prodotto, se presente. |
pid |
principal.process.pid |
Mappatura diretta. |
port |
principal.port |
Mappatura diretta. |
prod_event_type |
metadata.product_event_type |
Utilizzato come tipo di evento del prodotto, se presente. |
res |
sec_result.summary |
Mappatura diretta. |
sec_description |
sec_result.description , target.url , target.ip , target.asset.ip , sec_result.action_details |
Analizzati per URL di destinazione, IP, dettagli dell'azione e utilizzati come descrizione del risultato di sicurezza. |
Server_ID |
target.resource.product_object_id |
Mappatura diretta. |
server |
principal.asset.ip , principal.ip , principal.port |
Analizzati per estrarre l'IP e la porta del server, mappati all'IP principale, all'IP dell'asset principale e alla porta principale. |
server_ip |
principal.asset.ip , principal.ip |
Estratto dal campo server e mappato all'IP principale e all'IP della risorsa principale. |
server_port |
principal.port |
Estratte dal campo server e mappate alla porta principale. |
ses |
network.session_id |
Mappatura diretta. |
severity |
sec_result.severity , metadata.product_event_type |
Utilizzato per determinare la gravità del risultato di sicurezza e il tipo di evento del prodotto in base a valori specifici. |
software |
principal.asset.software |
Mappatura diretta. |
softwareName |
software.name |
Mappatura diretta. |
Status |
sec_result.summary |
Viene utilizzato come riepilogo del risultato di sicurezza se res non è presente. |
subj |
principal.resource.attribute.labels.value |
Mappato a un'etichetta con chiave subj in principal.resource.attribute.labels . |
swVersion |
software.version |
Mappatura diretta. |
target_host |
target.hostname , target.asset.hostname |
Mappato direttamente al nome host di destinazione e al nome host della risorsa di destinazione. |
target_ip |
target.asset.ip , target.ip |
Mappato direttamente all'IP target e all'IP della risorsa target. |
target_url |
target.url |
Mappatura diretta. |
target_user_id |
target.user.userid |
Mappatura diretta. |
terminal |
principal.resource.attribute.labels.value |
Mappato a un'etichetta con chiave terminal in principal.resource.attribute.labels . |
tzknown |
sec_result.detection_fields.value |
Mappato a un campo di rilevamento con chiave tzknown . |
uid |
principal.resource.attribute.labels.value |
Mappato a un'etichetta con chiave uid in principal.resource.attribute.labels . |
user |
principal.user.userid , metadata.event_type |
Utilizzato come ID utente principale. Se è presente user , metadata.event_type viene impostato su USER_UNCATEGORIZED . |
username |
target.user.userid |
Mappato direttamente all'ID utente di destinazione. |
N/D | metadata.vendor_name |
Hardcoded su "Dell". |
N/D | metadata.product_name |
Hardcoded su "Dell Switch". |
N/D | extensions.auth.type |
Impostato su MACHINE per eventi di accesso/uscita specifici. |
N/D | metadata.event_type |
Determinato da una logica complessa basata su vari campi e condizioni, il valore predefinito è GENERIC_EVENT se non viene impostato diversamente. Può essere USER_LOGIN , USER_LOGOUT , USER_UNCATEGORIZED , NETWORK_CONNECTION , NETWORK_UNCATEGORIZED , STATUS_UPDATE o GENERIC_EVENT . |
Modifiche
2024-04-25
- Sono stati aggiunti pattern Grok per analizzare un nuovo tipo di log.
op
è stato mappato ametadata.product_event_type
.mac
è stato mappato aprincipal.mac
.addr
è stato mappato aprincipal.ip
.hostname
è stato mappato aprincipal.ip
.server_ip
è stato mappato aprincipal.ip
.server_port
è stato mappato aprincipal.port
.acct
è stato mappato aprincipal.user.userid
.target_ip
è stato mappato atarget.ip
.local_ip
è stato mappato atarget.ip
.local_port
è stato mappato atarget.port
.File
è stato mappato atarget.file.full_path
.target_host
è stato mappato atarget.hostname
.target_user_id
è stato mappato atarget.user.userid
.Server_ID
è stato mappato atarget.resource.product_object_id
.tzknown
,is_synced
eexe
sono stati mappati asecurity_result.detection_fields
.res
è stato mappato asecurity_result.summary
.- Se il valore del campo
res
è "",status
viene mappato asecurity_result.summary
. - Sono stati mappati
uid
,enterpriseId
,auid
,terminal
,subj
,grantors
eID
aprincipal.resource.attribute.labels
.
2024-04-04
- Sono stati aggiunti pattern Grok per analizzare il nuovo tipo di log.
prod_event_type
è stato mappato ametadata.product_event_type
.ip
è stato mappato aprincipal.ip
.dest_ip
è stato mappato atarget.ip
.target_url
è stato mappato atarget.url
.sec_description
è stato mappato asecurity_result.description
.action_details
è stato mappato asecurity_result.action_details
.
2024-01-04
- Sono stati aggiunti pattern Grok per i log appena importati.
- È stato aggiunto un blocco di date quando
datetime
è in formatoSYSLOGTIMESTAMP
. softwareName
è stato mappato aprincipal.asset.software.name
.swVersion
è stato mappato aprincipal.asset.software.version
.port
è stato mappato aprincipal_port
.- È stato mappato
user
aprincipal.user.userid
e impostatometadata.event_type
suUSER_UNCATEGORIZED
quando è presenteuser
. application
è stato mappato aprincipal.application
.ip
è stato mappato aprincipal.ip
.- Imposta
sec_result.severity
suINFORMATIONAL
quandoseverity
èIFMGR-5-OSTATE_DN
. msg
è stato mappato ametadata.description
.
2023-11-02
- Parser appena creato.