Dell-Switch-Protokolle erfassen

Unterstützt in:

Dieser Parser extrahiert Dell-Switch-Logs, normalisiert Zeitstempel und verwendet Grok-Muster, um die Lognachricht in Schlüssel/Wert-Paare zu strukturieren. Diese extrahierten Felder werden dann dem einheitlichen Datenmodell (Unified Data Model, UDM) zugeordnet. Dabei werden verschiedene Protokollformate verarbeitet und die Daten mit Kontextinformationen wie Asset-Details und Sicherheitsstufe angereichert.

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 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 Console an.
  2. Gehen Sie zu SIEM-Einstellungen > Erfassungsagenten.
  3. Lade die Datei zur Authentifizierung der Datenaufnahme herunter. Speichern Sie die Datei sicher auf dem System, auf dem BindPlane installiert wird.

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

Windows-Installation

  1. Öffnen Sie die Eingabeaufforderung oder die 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
    

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
    

Zusätzliche Installationsressourcen

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

  1. Rufen Sie die Konfigurationsdatei auf:

    • Suchen Sie die Datei config.yaml. Unter Linux befindet es sich normalerweise im Verzeichnis /etc/bindplane-agent/, unter Windows im Installationsverzeichnis.
    • Öffnen Sie die Datei mit einem Texteditor, z. B. nano, vi oder Notepad.
  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: sell_switch
            raw_log_field: body
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.

  4. Ersetzen Sie <customer_id> durch die tatsächliche Kundennummer.

  5. Aktualisieren Sie /path/to/ingestion-authentication-file.json im Abschnitt Authentifizierungsdatei für die Datenaufnahme von Google SecOps abrufen auf den Pfad, unter dem die Authentifizierungsdatei gespeichert wurde.

BindPlane-Agent neu starten, um die Änderungen anzuwenden

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

    sudo systemctl restart bindplane-agent
    
  • Unter Windows können Sie den BindPlane-Agenten entweder über die Konsole Dienste oder über den folgenden Befehl neu starten:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

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: Legen Sie den Mindestschweregrad für Nachrichten fest, die an den Syslog-Server gesendet werden sollen. So loggen Sie beispielsweise nur Informationsmeldungen und höher:

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

    copy running-config startup-config
    
  6. Speichern Sie die Konfiguration:

    write memory
    

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 Haupt- und des Assets 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 Wird direkt dem Asset-Label-Wert zugeordnet. Der Schlüssel ist als „Asset-Name“ hartcodiert. 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 Wird aus verschiedenen Formaten im Nachrichtenfeld geparst und in einen Zeitstempel umgewandelt.
dest_ip target.asset.ip, target.ip Zugewiesene IP-Adresse des Ziels und des Ziel-Assets.
enterpriseId principal.resource.attribute.labels.value Zugewiesen zu einem Label mit dem Schlüssel enterpriseId in principal.resource.attribute.labels.
exe sec_result.detection_fields.value Zugewiesen zu einem Erkennungsfeld mit dem Schlüssel exe.
File target.file.full_path Direkt zugeordnet.
grantors principal.resource.attribute.labels.value Zugewiesen zu einem Label mit dem Schlüssel grantors in principal.resource.attribute.labels.
host principal.hostname, principal.asset.hostname, metadata.event_type Wird als Haupt- und Asset-Hostname verwendet. Wenn host vorhanden ist, wird metadata.event_type auf STATUS_UPDATE gesetzt. Wenn der Hostname vorhanden ist, der Host aber nicht, wird der Hostname als Host verwendet.
hostname principal.asset.ip, principal.ip, host Wenn es sich um eine gültige IP-Adresse handelt, wird sie für die Haupt-IP-Adresse und die Asset-IP-Adresse verwendet. Wenn host leer ist, wird es als host verwendet.
ID principal.resource.attribute.labels.value Zugewiesen zu einem Label mit dem Schlüssel ID in principal.resource.attribute.labels.
ip principal.asset.ip, principal.ip Zugewiesene Haupt-IP und Asset-IP.
is_synced sec_result.detection_fields.value Zugewiesen zu einem Erkennungsfeld mit dem Schlüssel is_synced.
local target.asset.ip, target.ip, target.port Wird geparst, um die lokale IP-Adresse und den lokalen Port zu extrahieren, und der Ziel-IP-Adresse, der Ziel-Asset-IP-Adresse und dem Zielport zugeordnet.
local_ip target.asset.ip, target.ip Wird aus dem Feld local extrahiert und der Ziel-IP-Adresse und der Ziel-Asset-IP-Adresse zugeordnet.
local_port target.port Aus dem Feld local extrahiert und dem Zielanschluss zugeordnet.
mac principal.mac Wenn es sich um eine gültige MAC-Adresse handelt, wird sie der Haupt-MAC-Adresse zugeordnet.
msg metadata.description Wird als Ereignisbeschreibung verwendet, sofern vorhanden. Es werden auch zusätzliche Felder geparst.
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 der String „für Nutzer geöffnet“ enthält, wird der Ereignistyp auf USER_LOGIN und der Authentifizierungstyp auf MACHINE festgelegt. Wenn der Status „Für Nutzer geschlossen“ lautet, wird als Ereignistyp USER_LOGOUT und als Autorisierungstyp MACHINE festgelegt.
op metadata.product_event_type Wird als Produktereignistyp verwendet, sofern vorhanden.
pid principal.process.pid Direkt zugeordnet.
port principal.port Direkt zugeordnet.
prod_event_type metadata.product_event_type Wird als Produktereignistyp verwendet, sofern 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 geparst und als Beschreibung des Sicherheitsergebnisses verwendet.
Server_ID target.resource.product_object_id Direkt zugeordnet.
server principal.asset.ip, principal.ip, principal.port Wird geparst, um die Server-IP und den Server-Port zu extrahieren, und der Haupt-IP, der Haupt-Asset-IP und dem Haupt-Port zugeordnet.
server_ip principal.asset.ip, principal.ip Wird aus dem Feld server extrahiert und der primären IP-Adresse und der primären Asset-IP-Adresse zugeordnet.
server_port principal.port Wird aus dem Feld server extrahiert und dem Hauptanschluss 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 des Sicherheitsergebnisses verwendet, wenn res nicht vorhanden ist.
subj principal.resource.attribute.labels.value Zugewiesen zu einem Label mit dem Schlüssel subj in principal.resource.attribute.labels.
swVersion software.version Direkt zugeordnet.
target_host target.hostname, target.asset.hostname Direkt dem Ziel-Hostnamen und dem Ziel-Asset-Hostnamen zugeordnet.
target_ip target.asset.ip, target.ip Direkt der Ziel-IP und der Ziel-Asset-IP zugeordnet.
target_url target.url Direkt zugeordnet.
target_user_id target.user.userid Direkt zugeordnet.
terminal principal.resource.attribute.labels.value Zugewiesen zu einem Label mit dem Schlüssel terminal in principal.resource.attribute.labels.
tzknown sec_result.detection_fields.value Zugewiesen zu einem Erkennungsfeld mit dem Schlüssel tzknown.
uid principal.resource.attribute.labels.value Zugewiesen zu einem Label mit dem Schlüssel uid in principal.resource.attribute.labels.
user principal.user.userid, metadata.event_type Wird als Hauptnutzer-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 „Dell“ ist hartcodiert.
metadata.product_name Hartcodiert auf „Dell Switch“.
extensions.auth.type Legen Sie für bestimmte Anmelde-/Abmeldeereignisse den Wert MACHINE fest.
metadata.event_type Wird anhand einer komplexen Logik basierend auf verschiedenen Feldern und Bedingungen ermittelt. Standardmäßig ist GENERIC_EVENT festgelegt, sofern nichts anderes festgelegt ist. Kann USER_LOGIN, USER_LOGOUT, USER_UNCATEGORIZED, NETWORK_CONNECTION, NETWORK_UNCATEGORIZED, STATUS_UPDATE oder GENERIC_EVENT sein.

Änderungen

2024-04-25

  • Es wurden Grok-Muster hinzugefügt, um einen neuen Protokolltyp zu parsen.
  • op wurde metadata.product_event_type zugeordnet.
  • mac wurde principal.mac zugeordnet.
  • addr wurde principal.ip zugeordnet.
  • hostname wurde principal.ip zugeordnet.
  • server_ip wurde principal.ip zugeordnet.
  • server_port wurde principal.port zugeordnet.
  • acct wurde principal.user.userid zugeordnet.
  • target_ip wurde target.ip zugeordnet.
  • local_ip wurde target.ip zugeordnet.
  • local_port wurde target.port zugeordnet.
  • File wurde target.file.full_path zugeordnet.
  • target_host wurde target.hostname zugeordnet.
  • target_user_id wurde target.user.userid zugeordnet.
  • Server_ID wurde target.resource.product_object_id zugeordnet.
  • tzknown, is_synced und exe wurden security_result.detection_fields zugeordnet.
  • res wurde security_result.summary zugeordnet.
  • Wenn der Wert des Felds res „“ ist, wird status mit security_result.summary abgeglichen.
  • uid, enterpriseId, auid, terminal, subj, grantors und ID wurden principal.resource.attribute.labels zugeordnet.

2024-04-04

  • Grok-Muster zum Parsen eines neuen Protokolltyps hinzugefügt
  • prod_event_type wurde metadata.product_event_type zugeordnet.
  • ip wurde principal.ip zugeordnet.
  • dest_ip wurde target.ip zugeordnet.
  • target_url wurde target.url zugeordnet.
  • sec_description wurde security_result.description zugeordnet.
  • action_details wurde security_result.action_details zugeordnet.

2024-01-04

  • Grok-Muster für neu aufgenommene Protokolle wurden hinzugefügt.
  • Datumsblock hinzugefügt, wenn datetime im Format SYSLOGTIMESTAMP ist.
  • softwareName wurde principal.asset.software.name zugeordnet.
  • swVersion wurde principal.asset.software.version zugeordnet.
  • port wurde principal_port zugeordnet.
  • user wurde auf principal.user.userid und metadata.event_type auf USER_UNCATEGORIZED festgelegt, wenn user vorhanden ist.
  • application wurde principal.application zugeordnet.
  • ip wurde principal.ip zugeordnet.
  • Legen Sie sec_result.severity auf INFORMATIONAL fest, wenn severity IFMGR-5-OSTATE_DN ist.
  • msg wurde metadata.description zugeordnet.

2023-11-02

  • Neu erstellter Parser.