Raccogliere i log dello switch Brocade

Supportato in:

Questo parser estrae i campi dai log degli switch Brocade utilizzando pattern grok che corrispondono a vari formati di log. Successivamente, esegue la mappatura di questi campi estratti ai campi UDM, gestendo diverse strutture di log e arricchendo i dati con metadati come informazioni su fornitore e prodotto. Il parser esegue anche trasformazioni dei dati, come 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 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 amministrativo CLI allo switch Brocade.

Recuperare il file di autenticazione importazione di Google SecOps

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

Recuperare 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 l'agente Bindplane

  1. Per l'installazione di 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.

Configura l'agente Bindplane per importare Syslog e inviarlo a Google SecOps

  1. Accedi alla macchina in 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
    

Configura l'esportazione di Syslog da uno switch Brocade

  1. Connettiti allo switch Brocade utilizzando SSH o Telnet con le credenziali appropriate.
  2. Esegui questo 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 questo comando per visualizzare i server syslog configurati:

    syslogadmin --show -ip
    

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
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.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 "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.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". Codificato come "BROCADE_SWITCH". Codificato in modo permanente su "BROCADE". Codificato come "BROCADE_SWITCH". Derivato dal campo interface o impostato su "SSH" se il campo interface contiene "SSH".

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.