Brocade-Switch-Protokolle erfassen

Unterstützt in:

Dieser Parser extrahiert Felder aus Brocade-Switch-Logs mithilfe von Grok-Mustern, die verschiedenen Protokollformaten entsprechen. Diese extrahierten Felder werden dann UDM-Feldern zugeordnet. Dabei werden unterschiedliche Protokollstrukturen verarbeitet und die Daten mit Metadaten wie Anbieter- und Produktinformationen angereichert. Der Parser führt auch Datentransformationen durch, z. B. die Umwandlung von Schweregraden und die Verarbeitung wiederholter Nachrichten, bevor die endgültige UDM-Ausgabe generiert wird.

Hinweis

  • Sie benötigen eine Google Security Operations-Instanz.
  • Sie müssen Windows 2016 oder höher oder einen Linux-Host mit systemd verwenden.
  • Wenn die Ausführung hinter einem Proxy erfolgt, müssen die Firewallports geöffnet sein.
  • Sie benötigen Administratorzugriff auf die Befehlszeile des Brocade-Switches.

Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen

  1. Melden Sie sich in der Google SecOps Console an.
  2. Gehen Sie zu SIEM-Einstellungen > Erfassungsagenten.
  3. Lade die Datei zur Authentifizierung der Datenaufnahme herunter.

Google SecOps-Kundennummer abrufen

  1. Melden Sie sich in der Google SecOps Console an.
  2. Gehen Sie zu SIEM-Einstellungen > Profil.
  3. Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.

BindPlane-Agent installieren

  1. Führen Sie für die Windows-Installation das folgende Script aus:
    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
  2. Führen Sie für die Linux-Installation das folgende Script aus:
    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
  3. Weitere Installationsoptionen finden Sie in diesem Installationsleitfaden.

BindPlane-Agent so konfigurieren, dass er Syslog-Protokolle aufnimmt und an Google SecOps sendet

  1. Rufen Sie den Computer auf, auf dem BindPlane installiert ist.
  2. Bearbeiten Sie die Datei config.yamlso:

    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. Starten Sie den BindPlane-Agent neu, um die Änderungen anzuwenden:

    sudo systemctl restart bindplane
    

Syslog-Export von einem Brocade-Switch konfigurieren

  1. Stellen Sie mit den entsprechenden Anmeldedaten eine SSH- oder Telnet-Verbindung zum Brocade-Switch her.
  2. Führen Sie den folgenden Befehl aus, um die IP-Adresse oder den Hostnamen und den Port des Syslog-Servers (Bindebene) anzugeben:

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

    Beispiel:

    syslogadmin --set -ip 10.10.10.10 -port 54525
    
  3. Führen Sie den folgenden Befehl aus, um die konfigurierten syslog-Server aufzurufen:

    syslogadmin --show -ip
    

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
application additional.fields[].key: „application“
additional.fields[].value.string_value:
Wert, der aus dem Feld application@1588 im Rohprotokoll extrahiert wird, wenn das Feld „KV_DATA“ vorhanden ist.
class additional.fields[].key: „class“
additional.fields[].value.string_value:
Wert, der aus dem Feld class@1588 im Rohprotokoll extrahiert wird, wenn das Feld „KV_DATA“ vorhanden ist.
domain principal.administrative_domain Wert, der aus dem Grok-Muster extrahiert wurde, das mit dem Feld domain übereinstimmt.
Event additional.fields[].key: „event_category“
additional.fields[].value.string_value:
Wert, der aus dem Feld arg0@1588 im Rohprotokoll extrahiert wird, wenn das Feld „KV_DATA“ vorhanden ist.
event_id metadata.product_log_id Wert, der aus dem Grok-Muster extrahiert wurde, das mit dem Feld event_id übereinstimmt.
event_type metadata.product_event_type Wert, der aus dem Grok-Muster extrahiert wurde, das mit dem Feld event_type übereinstimmt.
flags additional.fields[].key: „flags“
additional.fields[].value.string_value:
Wert, der aus dem Grok-Muster extrahiert wurde, das mit dem Feld flags übereinstimmt.
Info metadata.description Aus dem Feld Info extrahierter Wert, der mit Grok geparst wurde.
interface app_protocol_src Wert, der aus dem Feld interface@1588 im Rohprotokoll extrahiert wird, wenn das Feld „KV_DATA“ vorhanden ist. Wird verwendet, um network.application_protocol abzuleiten.
ip principal.ip Aus dem Feld ip extrahierter Wert, der mit Grok geparst wurde. Wird mit principal.ip zusammengeführt, wenn sie nicht mit der IP-Adresse übereinstimmt, die aus dem Feld Info extrahiert wurde.
Info, IP Addr principal.ip Wert, der aus dem Feld IP Addr im Feld Info extrahiert und mit Grok geparst wurde.
log additional.fields[].key: „log“
additional.fields[].value.string_value:
Wert, der aus dem Feld log@1588 im Rohprotokoll extrahiert wird, wenn das Feld „KV_DATA“ vorhanden ist.
msg metadata.description Aus dem Feld msg extrahierter Wert, der mit Grok geparst wurde.
msgid additional.fields[].key: „msgid“
additional.fields[].value.string_value:
Wert, der aus dem Feld msgid@1588 im Rohprotokoll extrahiert wird, wenn das Feld „KV_DATA“ vorhanden ist.
prin_host principal.hostname
principal.asset.hostname
Wert, der aus dem Grok-Muster extrahiert wurde, das mit dem Feld prin_host übereinstimmt.
product_version metadata.product_version Wert, der aus dem Grok-Muster extrahiert wurde, das mit dem Feld product_version übereinstimmt.
repeat_count additional.fields[].key: „repeat_count“
additional.fields[].value.string_value:
Aus dem Feld msg extrahierter Wert, der mit Grok geparst wurde.
role, user_role principal.user.attribute.roles[].name Wert, der aus dem Feld role@1588 oder user_role extrahiert wurde. Wenn der Wert „admin“ ist, wird er durch „Administrator“ ersetzt.
sequence_number additional.fields[].key: „sequence_number“
additional.fields[].value.string_value:
Wert, der aus dem Grok-Muster extrahiert wurde, das mit dem Feld sequence_number übereinstimmt.
severity security_result.severity Aus dem Feld severity extrahierter Wert, der mit Grok geparst wurde. Zugewiesene UDM-Schweregradwerte (INFORMATIONEN, FEHLER, KRITISCH, MITTEL).
Status security_result.summary Wert, der aus dem Feld Status extrahiert wurde.
switch_name additional.fields[].key: „switch_name“
additional.fields[].value.string_value:
Wert, der aus dem Grok-Muster extrahiert wurde, das mit dem Feld switch_name übereinstimmt.
target_application target.application Wert, der aus dem Grok-Muster extrahiert wurde, das mit dem Feld target_application übereinstimmt.
time additional.fields[].key: „time“
additional.fields[].value.string_value:
Wert, der aus dem Feld time im Feld kv_data3 extrahiert wurde.
timestamp metadata.event_timestamp.seconds Aus dem Feld timestamp extrahierter Wert, der mit dem Datumsfilter geparst wurde.
user principal.user.userid
principal.user.user_display_name
Wert, der aus dem Feld user oder user@1588 extrahiert und mit Grok geparst wurde. Kopiert von principal.hostname. Kopiert von principal.ip. Wird aus metadata.product_event_type kopiert oder basierend auf Bedingungen auf „STATUS_UPDATE“ festgelegt. Aus create_time.nanos des Protokolls kopiert Wird anhand der Parserlogik basierend auf den Werten von has_principal, has_target, has_userid und event_type ermittelt. Kann „SYSTEM_AUDIT_LOG_UNCATEGORIZED“, „STATUS_UPDATE“ oder „GENERIC_EVENT“ sein. Hartcodiert auf „BROCADE_SWITCH“. Hartcodiert auf „BROCADE“. Hartcodiert auf „BROCADE_SWITCH“. Wird aus dem Feld interface abgeleitet oder auf „SSH“ gesetzt, wenn das Feld interface „SSH“ enthält.

Änderungen

2024-04-15

  • Unterstützung für kundenspezifische Protokolle hinzugefügt.

2023-12-01

  • Neu erstellter Parser.