Brocade-Switch-Logs erfassen

Parserversion:5.0

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Brocade-Switch-Logs mit dem Bindplane-Agent in Google Security Operations aufnehmen.

Brocade-Switches (Fibre Channel-SAN-Switches) generieren Syslog-Nachrichten für Fabric-Ereignisse, Zonenänderungen, Anmelde-/Abmeldeaktivitäten und Systemereignisse. Der Parser normalisiert Felder und ordnet sie dem Unified Data Model (UDM) zu.

Hinweis

Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:

  • Eine Google SecOps-Instanz
  • Windows Server 2016 oder höher oder Linux-Host mit systemd
  • Netzwerkverbindung zwischen dem Bindplane-Agent und dem Brocade-Switch
  • Wenn der Agent hinter einem Proxy ausgeführt wird, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
  • Administratorzugriff auf den Brocade-Switch über SSH oder Telnet

Google SecOps-Anmeldedaten für den Bindplane-Agenten abrufen

Wählen Sie eine der folgenden Methoden aus, um den Bindplane-Agent bei Google SecOps zu authentifizieren:

  • Neue Deployments: Verwenden Sie die Chronicle API (Option 1).
  • Alte Bereitstellungen: Verwenden Sie die Datei für die Authentifizierung bei der Aufnahme (Option 2) weiterhin, bis die Ingestion API am 20. Juli 2027 eingestellt wird.
  1. Melden Sie sich in der Google Cloud Console an und wählen Sie das Google Cloud -Projekt aus, das mit Ihrer Google SecOps-Instanz verknüpft ist.
  2. Rufen Sie IAM und Verwaltung > Dienstkonten auf.
  3. Klicken Sie auf Dienstkonto erstellen.
  4. Geben Sie die folgenden Konfigurationsdetails an:
    • Name des Dienstkontos: Geben Sie einen Namen für das Konto ein, z. B. bindplane-ingest.
    • Dienstkontobeschreibung: Geben Sie eine Beschreibung ein (z. B. Bindplane agent log ingestion).
  5. Klicken Sie auf Erstellen und fortfahren.
  6. Klicken Sie im Abschnitt Diesem Dienstkonto Zugriff auf das Projekt erteilen auf Rolle auswählen und wählen Sie Chronicle Editor aus.
  7. Klicken Sie auf Weiter und dann auf Fertig.
  8. Klicken Sie auf das von Ihnen erstellte Dienstkonto und rufen Sie den Tab Schlüssel auf.
  9. Klicken Sie auf Schlüssel hinzufügen > Neuen Schlüssel erstellen.
  10. Wählen Sie JSON aus und klicken Sie auf Erstellen. Die Schlüsseldatei wird auf Ihren Computer heruntergeladen.
  11. Speichern Sie die Schlüsseldatei als ingestion-auth.json im Bindplane-Collector-Verzeichnis (/opt/observiq-otel-collector/ingestion-auth.json unter Linux oder C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json unter Windows) oder aktualisieren Sie creds_file_path in config.yaml, damit der Pfad mit dem Pfad übereinstimmt, in dem Sie die Datei speichern.
  12. Rufen Sie IAM & Verwaltung > Einstellungen auf und kopieren Sie die Projektnummer. Sie benötigen sie für die Exporter-Konfiguration.

Option 2: Authentifizierungsdatei für die Aufnahme herunterladen (Legacy)

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > Collection Agents auf.
  3. Laden Sie die Authentifizierungsdatei für die Datenaufnahme herunter.
  4. Speichern Sie die Datei sicher auf dem System, auf dem der Bindplane-Agent installiert werden soll.

Google SecOps-Kundennummer abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > Profile auf.
  3. Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.

Bindplane-Agent installieren

Installieren Sie den Bindplane-Agenten gemäß der folgenden Anleitung auf Ihrem Windows- oder Linux-Betriebssystem.

Windows-Installation

  1. Öffnen Sie die Eingabeaufforderung oder PowerShell als Administrator.
  2. Führen Sie dazu diesen Befehl aus:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Warten Sie, bis die Installation abgeschlossen ist.

  4. Überprüfen Sie die Installation mit folgendem Befehl:

    sc query observiq-otel-collector
    

    Der Dienst sollte als RUNNING angezeigt werden.

Linux-Installation

  1. Öffnen Sie ein Terminal mit Root- oder sudo-Berechtigungen.
  2. Führen Sie dazu diesen Befehl aus:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Warten Sie, bis die Installation abgeschlossen ist.

  4. Überprüfen Sie die Installation mit folgendem Befehl:

    sudo systemctl status observiq-otel-collector
    

    Der Dienst sollte als active (running) angezeigt werden.

Zusätzliche Installationsressourcen

Weitere Installationsoptionen und Informationen zur Problembehebung finden Sie im Installationsanleitung für den Bindplane-Agent.

Bindplane-Agent so konfigurieren, dass Syslog-Daten aufgenommen und an Google SecOps gesendet werden

Konfigurationsdatei suchen

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Konfigurationsdatei bearbeiten

  • Ersetzen Sie den gesamten Inhalt von config.yaml durch die folgende Konfiguration:

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/brocade_switch:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: chronicle.googleapis.com
        log_type: BROCADE_SWITCH
        raw_log_field: body
    
    service:
      pipelines:
        logs/brocade_switch_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/brocade_switch
    

Konfigurationsparameter

Ersetzen Sie die folgenden Platzhalter:

  • Empfängerkonfiguration:

    • listen_address: IP-Adresse und Port, auf dem gelauscht werden soll:
      • 0.0.0.0, um auf allen Schnittstellen zuzuhören (empfohlen)
      • Port 514 ist der Standard-Syslog-Port (erfordert Root unter Linux; verwenden Sie 1514 für Nicht-Root).
  • Exporter-Konfiguration:

    • creds_file_path: Vollständiger Pfad zur JSON-Schlüsseldatei des Dienstkontos (Option 1):
      • Linux: /opt/observiq-otel-collector/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: Kundennummer, die aus der Google SecOps-Konsole kopiert wurde
    • location: Ersetzen Sie <LOCATION> durch die Region Ihrer Google SecOps-Instanz (z. B. us, europe oder asia-southeast1). Der Exporter stellt diesem Wert chronicle.googleapis.com voran. Eine vollständige Liste finden Sie unter Regionale Endpunkte.
    • project: Ersetzen Sie <PROJECT_NUMBER> durch die Projektnummer aus IAM & Verwaltung > Einstellungen.
    • endpoint: Behalten Sie die Einstellung chronicle.googleapis.com bei.

Exporter für die Legacy Ingestion API

  • Wenn Sie die Authentifizierungsdatei für die Datenaufnahme aus Option 2 verwenden, ersetzen Sie den Block exporters durch Folgendes. Legen Sie für creds_file_path den Pfad zur Authentifizierungsdatei für die Datenaufnahme fest. Wenn sich Ihre Instanz außerhalb der USA befindet, ersetzen Sie malachiteingestion-pa.googleapis.com durch Ihren regionalen Endpunkt (z. B. europe-malachiteingestion-pa.googleapis.com).

    exporters:
      chronicle/brocade_switch:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: BROCADE_SWITCH
        raw_log_field: body
    

Konfigurationsdatei speichern

  • Speichern Sie die Datei nach der Bearbeitung:
    • Linux: Drücken Sie Ctrl+O, dann Enter und dann Ctrl+X.
    • Windows: Klicken Sie auf Datei > Speichern.

Bindplane-Agent neu starten, um die Änderungen zu übernehmen

  • Führen Sie den folgenden Befehl aus, um den Bindplane-Agent unter Linux neu zu starten:

    sudo systemctl restart observiq-otel-collector
    
    1. Prüfen Sie, ob der Dienst ausgeführt wird:

      ```bash
      sudo systemctl status observiq-otel-collector
      ```
      
    2. Logs auf Fehler prüfen:

      ```bash
      sudo journalctl -u observiq-otel-collector -f
      ```
      
  • Wählen Sie eine der folgenden Optionen aus, um den Bindplane-Agenten unter Windows neu zu starten:

    • Eingabeaufforderung oder PowerShell als Administrator:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Dienstkonsole:

      1. Drücken Sie Win+R, geben Sie services.msc ein und drücken Sie die Eingabetaste.
      2. Suchen Sie nach observIQ OpenTelemetry Collector.
      3. Rechtsklicken Sie und wählen Sie Neu starten aus.
      4. Prüfen Sie, ob der Dienst ausgeführt wird:

        sc query observiq-otel-collector
        
      5. Prüfen Sie die Logs auf Fehler:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Syslog-Export von einem Brocade-Switch konfigurieren

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

    syslogadmin --set -ip <BINDPLANE_IP> -port 514
    
  3. Führen Sie den folgenden Befehl aus, um die konfigurierten Syslog-Server anzuzeigen:

    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 Rohlog extrahiert wird, wenn das Datenfeld KV_DATA vorhanden ist.
class additional.fields[].key: "class"
additional.fields[].value.string_value:
Wert, der aus dem Feld class@1588 im Rohlog 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 Rohlog extrahiert wird, wenn das Feld KV_DATA vorhanden ist.
event_id metadata.product_log_id Der Wert, der aus dem Grok-Muster extrahiert wurde, das dem Feld event_id entspricht.
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:
Der Wert, der aus dem Grok-Muster extrahiert wurde, das dem Feld flags entspricht.
Info metadata.description Der Wert wird aus dem Feld Info extrahiert und mit grok geparst.
interface app_protocol_src Wert, der aus dem Feld interface@1588 im Rohlog extrahiert wird, wenn das Datenfeld KV_DATA vorhanden ist. Wird verwendet, um network.application_protocol abzuleiten.
ip principal.ip Der Wert wird aus dem Feld ip extrahiert und mit grok geparst. Wird mit principal.ip zusammengeführt, wenn sie nicht mit der aus dem Feld Info extrahierten IP-Adresse übereinstimmt.
Info, IP Addr principal.ip Der Wert wird aus dem Feld IP Addr im Feld Info extrahiert und mit grok geparst.
log additional.fields[].key: "log"
additional.fields[].value.string_value:
Wert, der aus dem Feld log@1588 im Rohlog extrahiert wird, wenn das Feld KV_DATA vorhanden ist.
msg metadata.description Der Wert wird aus dem Feld msg extrahiert und mit grok geparst.
msgid additional.fields[].key: "msgid"
additional.fields[].value.string_value:
Wert, der aus dem Feld msgid@1588 im Rohlog extrahiert wird, wenn das Datenfeld KV_DATA vorhanden ist.
prin_host principal.hostname
principal.asset.hostname
Der Wert, der aus dem Grok-Muster extrahiert wurde, das dem Feld prin_host entspricht.
product_version metadata.product_version Der Wert, der aus dem Grok-Muster extrahiert wurde, das dem Feld product_version entspricht.
repeat_count additional.fields[].key: „repeat_count“
additional.fields[].value.string_value:
Der Wert wird aus dem Feld msg extrahiert und mit grok geparst.
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 „Admin“ 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 Der Wert wird aus dem Feld severity extrahiert und mit grok geparst. UDM-Schweregradwerten zugeordnet (INFORMATIONAL, ERROR, CRITICAL, MEDIUM).
Status security_result.summary Aus dem Feld Status extrahierter Wert.
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 Wert, der aus dem Feld timestamp extrahiert und mit dem Datumsfilter geparst wurde.
user principal.user.userid
principal.user.user_display_name
Der Wert wird aus dem Feld user oder user@1588 extrahiert und mit grok geparst. Von principal.hostname kopiert. Von principal.ip kopiert. Kopiert aus metadata.product_event_type oder basierend auf Bedingungen auf „STATUS_UPDATE“ gesetzt. Aus dem create_time.nanos des Logs kopiert. Wird durch die Parserlogik basierend auf den Werten von has_principal, has_target, has_userid und event_type bestimmt. Kann „SYSTEM_AUDIT_LOG_UNCATEGORIZED“, „STATUS_UPDATE“ oder „GENERIC_EVENT“ sein. Hartcodiert auf „BROCADE_SWITCH“. Hartcodiert auf „BROCADE“. Hartcodiert auf „BROCADE_SWITCH“. Abgeleitet aus dem Feld interface oder auf „SSH“ gesetzt, wenn das Feld interface „SSH“ enthält.
CLI event.idm.read_only_udm.metadata.description Aus Änderungsprotokoll zugeordnet
prin_host event.idm.read_only_udm.intermediary.hostname Aus Änderungsprotokoll zugeordnet

Änderungsprotokoll

Änderungsprotokoll für diesen Parser ansehen

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten