Dell-Switch-Protokolle erfassen

Unterstützt in:

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

Dieser Parser extrahiert Dell-Switch-Protokolle, normalisiert Zeitstempel und verwendet Grok-Muster, um den Logeintrag in Schlüssel/Wert-Paare zu strukturieren. Anschließend werden diese extrahierten Felder dem Unified Data Model (UDM) zugeordnet, wobei verschiedene Logformate verarbeitet und die Daten mit Kontextinformationen wie Asset-Details und Sicherheitsrisiko angereichert werden.

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 Dell-Switch
  • Wenn Sie den Agent hinter einem Proxy ausführen, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
  • Eine aktive Verbindung und Administratoranmeldedaten für einen Dell-Switch

Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen

  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 Aufnahme herunter.
  4. Speichern Sie die Datei sicher auf dem System, auf dem der BindPlane-Agent installiert wird.

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 Kunden-ID aus dem Bereich Organisationsdetails.

BindPlane-Agent installieren

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

Fenstereinbau

  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 (Wird ausgeführt) 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 aktiv (wird ausgeführt) angezeigt werden.

Zusätzliche Installationsressourcen

Weitere Installationsoptionen und Informationen zur Fehlerbehebung finden Sie in der Installationsanleitung für den Bindplane-Agent.

BindPlane-Agent zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren

Konfigurationsdatei suchen

  • Linux:

    sudo nano /etc/bindplane-agent/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/dell_switch:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: DELL_SWITCH
            raw_log_field: body
    
    service:
        pipelines:
            logs/dell_switch_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/dell_switch
    

Konfigurationsparameter

Ersetzen Sie die folgenden Platzhalter:

  • Empfängerkonfiguration:

    • listen_address: IP-Adresse und Port, auf die gewartet werden soll:
      • 0.0.0.0, um alle Schnittstellen zu überwachen (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 Datei für die Authentifizierung bei der Aufnahme:
      • Linux: /etc/bindplane-agent/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: Kunden-ID, die aus der Google SecOps Console kopiert wurde
    • endpoint: Regionale Endpunkt-URL:
      • USA: malachiteingestion-pa.googleapis.com
      • Europa: europe-malachiteingestion-pa.googleapis.com
      • Asien: asia-southeast1-malachiteingestion-pa.googleapis.com
      • Eine vollständige Liste finden Sie unter Regionale Endpunkte.

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:

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

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

    • Eingabeaufforderung oder PowerShell als Administrator:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Services-Konsole:

      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. Klicken Sie mit der rechten Maustaste und wählen Sie Neu starten aus.
      4. Prüfen Sie, ob der Dienst ausgeführt wird:

        sc query observiq-otel-collector
        
      5. Logs auf Fehler prüfen:

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

Syslog-Export von einem Dell-Switch konfigurieren

  1. Stellen Sie über SSH oder den Konsolenport eine Verbindung zum Dell-Switch her.
  2. Melden Sie sich mit Administratoranmeldedaten an.
  3. Verwenden Sie den folgenden Befehl, um die IP-Adresse oder den Hostnamen des Syslog-Servers anzugeben (ersetzen Sie <syslog-server-ip>, <udp|tcp> und <syslog-port-number> durch die tatsächlichen Details):

    logging host <syslog-server-ip> transport <udp|tcp> port <syslog-port-number>
    
  4. Optional: Definieren Sie den Mindestschweregrad für Nachrichten, die an den Syslog-Server gesendet werden sollen. So protokollieren Sie beispielsweise Informationsmeldungen und höher:

    logging level informational
    
  5. Speichern Sie die aktuelle Konfiguration in der Startkonfiguration, damit die Änderungen auch nach Neustarts erhalten bleiben:

    copy running-config startup-config
    
  6. Konfiguration speichern:

    write memory
    

Unterstützte Dell Switch-Beispiellogs

  • SYSLOG

    {
      "priority": 165,
      "version": 1,
      "timestamp": "2023-10-12T12:37:17.249566+00:00",
      "hostname": "switch-lon-01",
      "app_name": "dn_alm",
      "proc_id": "940",
      "message": "Node.1-Unit.1:PRI [event], Dell EMC (OS10) %ALM_AUTH_EVENT: Authentication event was raised MESSAGE=pam_unix(sshd:session): session opened for user service_account by (uid=0)"
    }
    
  • JSON

    {
      "appname": "SNOOP",
      "facility": 23,
      "hostname": "access-switch-a1",
      "message": "snooping.c(2177) 70820228 %% DBG Report from intf Gi6/0/11 ignored -- no router ports on vlan 193",
      "priority": 191,
      "proc_id": "snoopTask"
    }
    
  • KV-/Ereignisformat

    Events: 
      Eventid        = {38812} 
      Occurrencetime = {3 Sept 2024 00:06:06} 
      Eventseverity  = {Minor} 
      Jobid          = {30506} 
      Computer       = {backup-server-01} 
      Program        = {DatabaseAgent} 
      Description    = {Block Change Tracking is found DISABLED on Oracle DB [PROD_DB]. Incremental backups may run slow.}
    
  • SYSLOG prüfen

    {
        "priority": 110,
        "version": 1,
        "timestamp": "2023-12-12T00:58:26.893679+00:00",
        "hostname": "core-switch-palf",
        "app_name": ".clish",
        "proc_id": "29156",
        "message": "Node.1-Unit.1:PRI [audit], User sec_admin on /dev/pts/0 from 10.0.0.50 used cmd: 'terminal length 0' - completed"
    }
    
  • SNMP-Trap-/TRAPMGR-Format

    {
      "priority": 189,
      "version": 1,
      "timestamp": "2023-12-28T23:37:27.394Z",
      "hostname": "dist-switch-01",
      "app_name": "TRAPMGR",
      "proc_id": "trapTask",
      "extensions": {
        "origin_ip": "192.168.1.1",
        "software": "N3000_Series",
        "swVersion": "6.3.2.3"
      },
      "message": "traputil.c(721) 1056839 %% Gi1/0/5 is transitioned from the Learning state to the Forwarding state"
    }
    

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
acct principal.user.userid Wird als userid verwendet, wenn das Feld user nicht vorhanden ist.
addr principal.asset.ip, principal.ip Wird als IP-Adresse geparst und für die IP-Adresse des Prinzipal und die Asset-IP-Adresse verwendet, wenn es sich um eine gültige IP-Adresse handelt, die sich vom Hostnamen unterscheidet.
application principal.application Direkt zugeordnet.
asset principal.asset.attribute.labels.value Direkt dem Wert des Asset-Labels zugeordnet, wobei der Schlüssel als „Asset Name“ (Asset-Name) hartcodiert ist. Wenn das Asset-Feld leer ist und die Nachricht „Dell“ enthält, wird das Asset auf „Dell“ gesetzt.
auid principal.resource.attribute.labels.value Direkt einem Label mit dem Schlüssel auid in principal.resource.attribute.labels zugeordnet.
datetime metadata.event_timestamp Aus verschiedenen Formaten im Nachrichtenfeld geparst und in einen Zeitstempel konvertiert.
dest_ip target.asset.ip, target.ip Der Ziel-IP und der IP des Ziel-Assets zugeordnet.
enterpriseId principal.resource.attribute.labels.value Dem Label mit dem Schlüssel enterpriseId in principal.resource.attribute.labels zugeordnet.
exe sec_result.detection_fields.value Zugeordnet zu einem Erkennungsfeld mit dem Schlüssel exe.
File target.file.full_path Direkt zugeordnet.
grantors principal.resource.attribute.labels.value Dem Label mit dem Schlüssel grantors in principal.resource.attribute.labels zugeordnet.
host principal.hostname, principal.asset.hostname, metadata.event_type Wird als primärer Hostname und Asset-Hostname verwendet. Wenn host vorhanden ist, wird metadata.event_type auf STATUS_UPDATE gesetzt. Wenn der Hostname, aber nicht der Host vorhanden ist, wird der Hostname als Host verwendet.
hostname principal.asset.ip, principal.ip, host Wenn es sich um eine gültige IP-Adresse handelt, die für die Haupt-IP-Adresse und die Asset-IP-Adresse verwendet wird. Wenn host leer ist, wird es als host verwendet.
ID principal.resource.attribute.labels.value Dem Label mit dem Schlüssel ID in principal.resource.attribute.labels zugeordnet.
ip principal.asset.ip, principal.ip Der Haupt-IP-Adresse und der Asset-IP-Adresse zugeordnet.
is_synced sec_result.detection_fields.value Zugeordnet zu einem Erkennungsfeld mit dem Schlüssel is_synced.
local target.asset.ip, target.ip, target.port Geparsed, um lokale IP-Adresse und lokalen Port zu extrahieren, die der Ziel-IP-Adresse, der IP-Adresse des Zielassets und dem Zielport zugeordnet werden.
local_ip target.asset.ip, target.ip Aus dem Feld local extrahiert und der Ziel-IP und der IP des Ziel-Assets zugeordnet.
local_port target.port Aus dem Feld local extrahiert und dem Zielport zugeordnet.
mac principal.mac Wenn es sich um eine gültige MAC-Adresse handelt, die der primären MAC-Adresse zugeordnet ist.
msg metadata.description Wird als Ereignisbeschreibung verwendet, sofern vorhanden. Auch für zusätzliche Felder wird eine Analyse durchgeführt.
msg1 metadata.description Wird als Ereignisbeschreibung verwendet, wenn msg2 nicht vorhanden ist.
msg2 sec_result.description, metadata.event_type, extensions.auth.type Wird als Beschreibung des Sicherheitsergebnisses verwendet. Wenn sie „opened for user“ enthält, wird der Ereignistyp auf USER_LOGIN und der Autorisierungstyp auf MACHINE festgelegt. Wenn sie „closed for user“ enthält, wird der Ereignistyp auf USER_LOGOUT und der Autorisierungstyp auf MACHINE festgelegt.
op metadata.product_event_type Wird als Produktereignistyp verwendet, falls vorhanden.
pid principal.process.pid Direkt zugeordnet.
port principal.port Direkt zugeordnet.
prod_event_type metadata.product_event_type Wird als Produktereignistyp verwendet, falls vorhanden.
res sec_result.summary Direkt zugeordnet.
sec_description sec_result.description, target.url, target.ip, target.asset.ip, sec_result.action_details Wird nach Ziel-URL, IP-Adresse und Aktionsdetails durchsucht und als Beschreibung des Sicherheitsergebnisses verwendet.
Server_ID target.resource.product_object_id Direkt zugeordnet.
server principal.asset.ip, principal.ip, principal.port Geparsed, um Server-IP und -Port zu extrahieren, die der Prinzipal-IP, der Prinzipal-Asset-IP und dem Prinzipal-Port zugeordnet werden.
server_ip principal.asset.ip, principal.ip Aus dem Feld server extrahiert und der IP-Adresse des Hauptkontos und der IP-Adresse des Haupt-Assets zugeordnet.
server_port principal.port Aus dem Feld server extrahiert und dem Hauptport zugeordnet.
ses network.session_id Direkt zugeordnet.
severity sec_result.severity, metadata.product_event_type Wird verwendet, um den Schweregrad des Sicherheitsergebnisses und den Produktereignistyp anhand bestimmter Werte zu bestimmen.
software principal.asset.software Direkt zugeordnet.
softwareName software.name Direkt zugeordnet.
Status sec_result.summary Wird als Zusammenfassung der Sicherheitsergebnisse verwendet, wenn res nicht vorhanden ist.
subj principal.resource.attribute.labels.value Dem Label mit dem Schlüssel subj in principal.resource.attribute.labels zugeordnet.
swVersion software.version Direkt zugeordnet.
target_host target.hostname, target.asset.hostname Direkt dem Ziel-Hostname und dem Ziel-Asset-Hostname zugeordnet.
target_ip target.asset.ip, target.ip Direkt der Ziel-IP und der IP des Ziel-Assets zugeordnet.
target_url target.url Direkt zugeordnet.
target_user_id target.user.userid Direkt zugeordnet.
terminal principal.resource.attribute.labels.value Dem Label mit dem Schlüssel terminal in principal.resource.attribute.labels zugeordnet.
tzknown sec_result.detection_fields.value Zugeordnet zu einem Erkennungsfeld mit dem Schlüssel tzknown.
uid principal.resource.attribute.labels.value Dem Label mit dem Schlüssel uid in principal.resource.attribute.labels zugeordnet.
user principal.user.userid, metadata.event_type Wird als primäre Nutzer-ID verwendet. Wenn user vorhanden ist, wird metadata.event_type auf USER_UNCATEGORIZED gesetzt.
username target.user.userid Direkt der Zielnutzer-ID zugeordnet.
metadata.vendor_name Fest codiert auf „Dell“.
metadata.product_name Fest codiert auf „Dell Switch“.
extensions.auth.type Auf MACHINE für bestimmte An- und Abmeldeereignisse festlegen.
metadata.event_type Wird durch eine komplexe Logik auf Grundlage verschiedener Felder und Bedingungen bestimmt. Standardmäßig wird GENERIC_EVENT verwendet, sofern nichts anderes festgelegt ist. Kann USER_LOGIN, USER_LOGOUT, USER_UNCATEGORIZED, NETWORK_CONNECTION, NETWORK_UNCATEGORIZED, STATUS_UPDATE oder GENERIC_EVENT sein.

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