Raccogliere i log dello switch Brocade
Versione parser: 5.0
Questo documento spiega come importare i log degli switch Brocade in Google Security Operations utilizzando l'agente Bindplane.
Gli switch Brocade (switch SAN Fibre Channel) generano messaggi syslog per eventi di fabric, modifiche di zona, attività di accesso/disconnessione ed eventi di sistema. Il parser normalizza i campi e li mappa al modello Unified Data Model (UDM).
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Un'istanza Google SecOps
- Windows Server 2016 o versioni successive o host Linux con
systemd - Connettività di rete tra l'agente Bindplane e lo switch Brocade
- Se l'agente viene eseguito dietro un proxy, assicurati che le porte del firewall siano aperte in base ai requisiti dell'agente Bindplane
- Accesso amministrativo allo switch Brocade tramite SSH o Telnet
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/brocade_switch: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: BROCADE_SWITCH raw_log_field: body service: pipelines: logs/brocade_switch_to_chronicle: receivers: - udplog exporters: - chronicle/brocade_switch
Parametri di configurazione
Sostituisci i seguenti segnaposto:
Configurazione del destinatario:
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 dell'endpoint regionale:- Stati Uniti:
malachiteingestion-pa.googleapis.com - Europa:
europe-malachiteingestion-pa.googleapis.com - Asia:
asia-southeast1-malachiteingestion-pa.googleapis.com - Per l'elenco completo, consulta Endpoint regionali.
- Stati Uniti:
Salva 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:
```bash sudo systemctl status observiq-otel-collector ```Controlla i log per individuare eventuali errori:
```bash 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
Configura l'esportazione di syslog da uno switch Brocade
- Connettiti allo switch Brocade utilizzando SSH o Telnet con le credenziali appropriate.
Esegui questo comando per specificare l'indirizzo IP e la porta del server syslog (Bindplane):
syslogadmin --set -ip <BINDPLANE_IP> -port 514Esegui questo comando per visualizzare i server syslog configurati:
syslogadmin --show -ip
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Logica |
|---|---|---|
application |
additional.fields[].key: "application"additional.fields[].value.string_value: |
Valore estratto dal campo application@1588 nel log non elaborato quando esiste il campo KV_DATA. |
class |
additional.fields[].key: "class"additional.fields[].value.string_value: |
Valore estratto dal campo class@1588 nel log non elaborato quando esiste il campo KV_DATA. |
domain |
principal.administrative_domain |
Valore estratto dal pattern grok corrispondente al campo domain. |
Event |
additional.fields[].key: "event_category"additional.fields[].value.string_value: |
Valore estratto dal campo arg0@1588 nel log non elaborato quando esiste il campo KV_DATA. |
event_id |
metadata.product_log_id |
Valore estratto dal pattern grok corrispondente al campo event_id. |
event_type |
metadata.product_event_type |
Valore estratto dal pattern grok corrispondente al campo event_type. |
flags |
additional.fields[].key: "flags"additional.fields[].value.string_value: |
Valore estratto dal pattern grok corrispondente al campo flags. |
Info |
metadata.description |
Valore estratto dal campo Info, analizzato utilizzando grok. |
interface |
app_protocol_src |
Valore estratto dal campo interface@1588 nel log non elaborato quando esiste il campo KV_DATA. Utilizzato per derivare network.application_protocol. |
ip |
principal.ip |
Valore estratto dal campo ip, analizzato utilizzando grok. Unito a principal.ip se non è uguale all'IP estratto dal campo Info. |
Info, IP Addr |
principal.ip |
Valore estratto dal campo IP Addr all'interno del campo Info, analizzato utilizzando grok. |
log |
additional.fields[].key: "log"additional.fields[].value.string_value: |
Valore estratto dal campo log@1588 nel log non elaborato quando esiste il campo KV_DATA. |
msg |
metadata.description |
Valore estratto dal campo msg, analizzato utilizzando grok. |
msgid |
additional.fields[].key: "msgid"additional.fields[].value.string_value: |
Valore estratto dal campo msgid@1588 nel log non elaborato quando esiste il campo KV_DATA. |
prin_host |
principal.hostnameprincipal.asset.hostname |
Valore estratto dal pattern grok corrispondente al campo prin_host. |
product_version |
metadata.product_version |
Valore estratto dal pattern grok corrispondente al campo product_version. |
repeat_count |
additional.fields[].key: "repeat_count"additional.fields[].value.string_value: |
Valore estratto dal campo msg, analizzato utilizzando grok. |
role, user_role |
principal.user.attribute.roles[].name |
Valore estratto dal campo role@1588 o user_role. Se il valore è "admin", viene sostituito con "Admin". |
sequence_number |
additional.fields[].key: "sequence_number"additional.fields[].value.string_value: |
Valore estratto dal pattern grok corrispondente al campo sequence_number. |
severity |
security_result.severity |
Valore estratto dal campo severity, analizzato utilizzando grok. Mappato ai valori di gravità UDM (INFORMATIONAL, ERROR, CRITICAL, MEDIUM). |
Status |
security_result.summary |
Valore estratto dal campo Status. |
switch_name |
additional.fields[].key: "switch_name"additional.fields[].value.string_value: |
Valore estratto dal pattern grok corrispondente al campo switch_name. |
target_application |
target.application |
Valore estratto dal pattern grok corrispondente al campo target_application. |
time |
additional.fields[].key: "time"additional.fields[].value.string_value: |
Valore estratto dal campo time all'interno del campo kv_data3. |
timestamp |
metadata.event_timestamp.seconds |
Valore estratto dal campo timestamp, analizzato utilizzando il filtro per data. |
user |
principal.user.useridprincipal.user.user_display_name |
Valore estratto dal campo user o user@1588, analizzato utilizzando grok. Copiate da principal.hostname. Copiate da principal.ip. Copiato da metadata.product_event_type o impostato su "STATUS_UPDATE" in base alle condizioni. Copiato da create_time.nanos del log. Determinato dalla logica del parser in base ai valori di has_principal, has_target, has_userid e event_type. Può essere "SYSTEM_AUDIT_LOG_UNCATEGORIZED", "STATUS_UPDATE" o "GENERIC_EVENT". Codificato in modo permanente su "BROCADE_SWITCH". Codificato su "BROCADE". Codificato in modo permanente su "BROCADE_SWITCH". Derivato dal campo interface o impostato su "SSH" se il campo interface contiene "SSH". |
CLI |
event.idm.read_only_udm.metadata.description |
Mappato dal log delle modifiche |
prin_host |
event.idm.read_only_udm.intermediary.hostname |
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.