Raccogliere i log dello switch Dell
Questo parser estrae i log dello switch Dell, normalizza i timestamp e utilizza i pattern grok per strutturare il messaggio di log in coppie chiave-valore. Quindi, mappa questi campi estratti nel modello UDM (Unified Data Model), gestendo vari formati di log e arricchendo i dati con informazioni contestuali come i dettagli degli asset e la gravità della sicurezza.
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 di una connessione attiva e delle credenziali amministrative per uno switch Dell.
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 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
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 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: 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 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
In Linux, per riavviare Bindplane Agent, esegui questo 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 utilizzando SSH o la porta della console.
- Accedi con le credenziali amministrative.
Utilizza questo comando per specificare l'indirizzo IP o il nome host del server syslog (sostituisci
<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 minimo di gravità per i messaggi da inviare al server syslog. Ad esempio, per registrare i messaggi informativi e di livello superiore:
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 | Logic |
---|---|---|
acct |
principal.user.userid |
Utilizzato come userid se il campo user non è presente. |
addr |
principal.asset.ip , principal.ip |
Analizzato come indirizzo IP e utilizzato per l'IP del principal e l'IP dell'asset se è un IP valido e diverso dal nome host. |
application |
principal.application |
Mappato direttamente. |
asset |
principal.asset.attribute.labels.value |
Mappato direttamente al valore dell'etichetta delle risorse, con la chiave codificata come "Nome asset". 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 la chiave auid all'interno di principal.resource.attribute.labels . |
datetime |
metadata.event_timestamp |
Analizzato da vari formati nel campo del messaggio e convertito in un timestamp. |
dest_ip |
target.asset.ip , target.ip |
Mappato all'IP di destinazione e all'IP risorsa target. |
enterpriseId |
principal.resource.attribute.labels.value |
Mappato a un'etichetta con la chiave enterpriseId all'interno di principal.resource.attribute.labels . |
exe |
sec_result.detection_fields.value |
Mappato a un campo di rilevamento con la chiave exe . |
File |
target.file.full_path |
Mappato direttamente. |
grantors |
principal.resource.attribute.labels.value |
Mappato a un'etichetta con la chiave grantors all'interno di principal.resource.attribute.labels . |
host |
principal.hostname , principal.asset.hostname , metadata.event_type |
Utilizzato come nome host principale e nome host dell'asset. Se è presente host , metadata.event_type è impostato su STATUS_UPDATE . Se il nome host è presente, ma l'host no, il nome host viene utilizzato come host. |
hostname |
principal.asset.ip , principal.ip , host |
Se è un IP valido, utilizzato per l'IP principale e l'IP asset. Se host è vuoto, viene utilizzato come host . |
ID |
principal.resource.attribute.labels.value |
Mappato a un'etichetta con la chiave ID all'interno di principal.resource.attribute.labels . |
ip |
principal.asset.ip , principal.ip |
Mappato all'IP principale e all'IP asset. |
is_synced |
sec_result.detection_fields.value |
Mappato a un campo di rilevamento con la chiave is_synced . |
local |
target.asset.ip , target.ip , target.port |
Analizzato per estrarre IP e porta locali, mappati a IP di destinazione, IP asset di destinazione e porta di destinazione. |
local_ip |
target.asset.ip , target.ip |
Estratto dal campo local e mappato all'IP di destinazione e all'IP dell'asset di destinazione. |
local_port |
target.port |
Estratto dal campo local e mappato alla porta di destinazione. |
mac |
principal.mac |
Se è un indirizzo MAC valido, mappato all'indirizzo MAC principale. |
msg |
metadata.description |
Utilizzato come descrizione dell'evento, se presente. Analizzato anche per i campi aggiuntivi. |
msg1 |
metadata.description |
Utilizzato come descrizione dell'evento se msg2 non è presente. |
msg2 |
sec_result.description , metadata.event_type , extensions.auth.type |
Utilizzato come descrizione del risultato di sicurezza. Se contiene "opened for user", 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 prodotto, se presente. |
pid |
principal.process.pid |
Mappato direttamente. |
port |
principal.port |
Mappato direttamente. |
prod_event_type |
metadata.product_event_type |
Utilizzato come tipo di evento prodotto, se presente. |
res |
sec_result.summary |
Mappato direttamente. |
sec_description |
sec_result.description , target.url , target.ip , target.asset.ip , sec_result.action_details |
Analizzato per l'URL di destinazione, l'IP, i dettagli dell'azione e utilizzato come descrizione del risultato di sicurezza. |
Server_ID |
target.resource.product_object_id |
Mappato direttamente. |
server |
principal.asset.ip , principal.ip , principal.port |
Analizzato per estrarre l'IP e la porta del server, mappato 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 dell'entità e all'IP dell'asset dell'entità. |
server_port |
principal.port |
Estratto dal campo server e mappato alla porta principale. |
ses |
network.session_id |
Mappato direttamente. |
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 |
Mappato direttamente. |
softwareName |
software.name |
Mappato direttamente. |
Status |
sec_result.summary |
Utilizzato come riepilogo dei risultati di sicurezza se res non è presente. |
subj |
principal.resource.attribute.labels.value |
Mappato a un'etichetta con la chiave subj all'interno di principal.resource.attribute.labels . |
swVersion |
software.version |
Mappato direttamente. |
target_host |
target.hostname , target.asset.hostname |
Mappato direttamente al nome host di destinazione e al nome host dell'asset di destinazione. |
target_ip |
target.asset.ip , target.ip |
Mappato direttamente all'IP di destinazione e all'IP della risorsa di destinazione. |
target_url |
target.url |
Mappato direttamente. |
target_user_id |
target.user.userid |
Mappato direttamente. |
terminal |
principal.resource.attribute.labels.value |
Mappato a un'etichetta con la chiave terminal all'interno di principal.resource.attribute.labels . |
tzknown |
sec_result.detection_fields.value |
Mappato a un campo di rilevamento con la chiave tzknown . |
uid |
principal.resource.attribute.labels.value |
Mappato a un'etichetta con la chiave uid all'interno di principal.resource.attribute.labels . |
user |
principal.user.userid , metadata.event_type |
Utilizzato come ID utente principale. Se è presente user , metadata.event_type è impostato su USER_UNCATEGORIZED . |
username |
target.user.userid |
Mappato direttamente all'ID utente di destinazione. |
N/D | metadata.vendor_name |
Codificato in modo permanente su "Dell". |
N/D | metadata.product_name |
Codificato in modo permanente su "Dell Switch". |
N/D | extensions.auth.type |
Imposta MACHINE per eventi di accesso/uscita specifici. |
N/D | metadata.event_type |
Determinato da una logica complessa basata su vari campi e condizioni, per impostazione predefinita è GENERIC_EVENT se non è impostato diversamente. Può essere USER_LOGIN , USER_LOGOUT , USER_UNCATEGORIZED , NETWORK_CONNECTION , NETWORK_UNCATEGORIZED , STATUS_UPDATE o GENERIC_EVENT . |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.