Raccogliere i log degli switch Brocade

Supportato in:

Questo parser estrae i campi dai log degli switch Brocade utilizzando pattern grok corrispondenti a vari formati di log. Poi mappa questi campi estratti ai campi UDM, gestisce strutture di log diverse e arricchisce i dati con metadati come informazioni su fornitori e prodotti. Il parser esegue anche trasformazioni dei dati, ad esempio la conversione dei livelli di gravità e la gestione dei messaggi ripetuti, prima di generare l'output UDM finale.

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 dell'accesso amministrativo CLI allo switch Brocade.

Recupera il file di autenticazione di importazione di Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Agenti di raccolta.
  3. Scarica il file di autenticazione dell'importazione.

Ottenere l'ID cliente Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Profilo.
  3. Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.

Installa BindPlane Agent

  1. Per l'installazione su Windows, esegui il seguente script:
    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
  2. Per l'installazione di Linux, esegui il seguente script:
    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
  3. Ulteriori opzioni di installazione sono disponibili in questa guida all'installazione.

Configurare l'agente BindPlane per importare i syslog e inviarli a Google SecOps

  1. Accedi al computer su cui è installato BindPlane.
  2. 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: Brocade_Switch
            raw_log_field: body
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Riavvia l'agente BindPlane per applicare le modifiche:

    sudo systemctl restart bindplane
    

Configurare l'esportazione syslog da uno switch Brocade

  1. Connettiti allo switch Brocade utilizzando SSH o Telnet con le credenziali appropriate.
  2. Esegui il seguente comando per specificare l'indirizzo IP o il nome host e la porta del server syslog (Bindplane):

    syslogadmin --set -ip <IP> -port <Port>
    

    Ad esempio:

    syslogadmin --set -ip 10.10.10.10 -port 54525
    
  3. Esegui il seguente 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 ricavare 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.hostname
principal.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 "Amministratore".
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. Mappati 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 della data.
user principal.user.userid
principal.user.user_display_name
Valore estratto dal campo user o user@1588, analizzato utilizzando grok. Copiato da principal.hostname. Copiato 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". Hardcoded su "BROCADE_SWITCH". Hardcoded su "BROCADE". Hardcoded su "BROCADE_SWITCH". Dedotto dal campo interface o impostato su "SSH" se il campo interface contiene "SSH".

Modifiche

2024-04-15

  • È stato aggiunto il supporto per i log specifici del cliente.

2023-12-01

  • Parser appena creato.