Cisco-Switch-Protokolle erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Cisco-Switch-Logs mithilfe eines Bindplane-Agents in Google Security Operations aufnehmen. Der Parser extrahiert Felder aus SYSLOG-Nachrichten und ordnet sie basierend auf erkannten Mustern und Keywords einem einheitlichen Datenmodell (UDM) zu. Es verarbeitet eine Vielzahl von Ereignissen, darunter DHCP, SSH, Anmeldeversuche, Netzwerkverkehr und Systemstatusaktualisierungen, kategorisiert sie und ergänzt die Daten um relevante Sicherheitsdetails.

Hinweise

  • Sie benötigen eine Google SecOps-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 erhöhte Zugriffsrechte auf einen Cisco-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
    

Weitere Installationsressourcen

Bindplane-Agent so konfigurieren, dass er Syslog-Daten aufnimmt und an Google SecOps sendet

  1. Rufen Sie die Konfigurationsdatei auf:

    1. Suchen Sie die Datei config.yaml. Normalerweise befindet es sich unter Linux im Verzeichnis /etc/bindplane-agent/ oder unter Windows im Installationsverzeichnis.
    2. Öffnen Sie die Datei mit einem Texteditor, z. B. nano, vi oder Notepad.
  2. Bearbeiten Sie die Datei config.yamlso:

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: CISCO_SWITCH
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                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.

Starten Sie den Bindplane-Agent neu, um die Änderungen anzuwenden

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

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

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Syslog auf einem Cisco-Switch konfigurieren

  1. Melden Sie sich am Cisco-Switch an.
  2. Erhöhen Sie die Berechtigungen mit dem Befehl enable:

    Switch> enable
    Switch#
    
  3. Wechseln Sie mit dem Befehl conf t in den Konfigurationsmodus:

    Switch# conf t
    Switch(config)#
    
  4. Geben Sie die folgenden Befehle ein:

    logging host <bindplane-server-ip> transport <tcp/udp> port <port-number>
    logging source-interface <interface>
    
    • Ersetzen Sie <bindplane-server-ip> durch die IP-Adresse des Bindplane-Agents und <port-number> durch den konfigurierten Port.
    • Ersetzen Sie <tcp/udp> durch das konfigurierte Protokoll für das Zuhören auf dem Bindplane-Agenten. (Zum Beispiel udp).
    • Ersetzen Sie <interface> durch die Cisco-Interface-ID.
  5. Legen Sie die Prioritätsstufe mit dem folgenden Befehl fest:

    logging trap Informational 
    logging console Informational 
    logging severity Informational
    
  6. Syslog-Einrichtung festlegen:

    logging facility local6
    
  7. Aktivieren Sie Zeitstempel mit dem folgenden Befehl:

    service timestamps log datetime
    
  8. Speichern Sie die Datei und beenden Sie den Vorgang.

  9. Konfigurieren Sie die Einstellungen so, dass sie nach einem Neustart erhalten bleiben. Geben Sie dazu den folgenden Befehl ein:

    copy running-config startup-config
    

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
Aktion security_result.action_details Der Wert dieses Felds wird aus dem Feld action im Rohprotokoll abgeleitet.
Tag
description metadata.description Der Wert dieses Felds wird aus dem Feld description im Rohprotokoll abgeleitet.
description security_result.description Der Wert dieses Felds wird aus dem Feld description im Rohprotokoll abgeleitet.
destination_ip target.asset.ip Der Wert dieses Felds wird aus dem Feld destination_ip im Rohprotokoll abgeleitet.
destination_ip target.ip Der Wert dieses Felds wird aus dem Feld destination_ip im Rohprotokoll abgeleitet.
destination_port target.port Der Wert dieses Felds wird aus dem Feld destination_port im Rohprotokoll abgeleitet.
Gerät principal.asset.hostname Der Wert dieses Felds wird aus dem Feld device im Rohprotokoll abgeleitet.
Gerät principal.hostname Der Wert dieses Felds wird aus dem Feld device im Rohprotokoll abgeleitet.
Gerät target.asset.hostname Der Wert dieses Felds wird aus dem Feld device im Rohprotokoll abgeleitet.
Gerät target.hostname Der Wert dieses Felds wird aus dem Feld device im Rohprotokoll abgeleitet.
device_ip principal.asset.ip Der Wert dieses Felds wird aus dem Feld device_ip im Rohprotokoll abgeleitet.
device_ip principal.ip Der Wert dieses Felds wird aus dem Feld device_ip im Rohprotokoll abgeleitet.
device_ip target.asset.ip Der Wert dieses Felds wird aus dem Feld device_ip im Rohprotokoll abgeleitet.
device_ip target.ip Der Wert dieses Felds wird aus dem Feld device_ip im Rohprotokoll abgeleitet.
Einrichtung principal.resource.type Der Wert dieses Felds wird aus dem Feld facility im Rohprotokoll abgeleitet.
header_data metadata.product_log_id Der Wert dieses Felds wird aus dem Feld header_data im Rohprotokoll abgeleitet.
header_data target.asset.ip Der Wert dieses Felds wird aus dem Feld header_data im Rohprotokoll abgeleitet.
header_data target.ip Der Wert dieses Felds wird aus dem Feld header_data im Rohprotokoll abgeleitet.
Hostname principal.asset.hostname Der Wert dieses Felds wird aus dem Feld hostname im Rohprotokoll abgeleitet.
Hostname principal.hostname Der Wert dieses Felds wird aus dem Feld hostname im Rohprotokoll abgeleitet.
ip principal.asset.ip Der Wert dieses Felds wird aus dem Feld ip im Rohprotokoll abgeleitet.
ip principal.ip Der Wert dieses Felds wird aus dem Feld ip im Rohprotokoll abgeleitet.
ip_address principal.asset.ip Der Wert dieses Felds wird aus dem Feld ip_address im Rohprotokoll abgeleitet.
ip_address principal.ip Der Wert dieses Felds wird aus dem Feld ip_address im Rohprotokoll abgeleitet.
ip_protocol network.ip_protocol Der Wert dieses Felds wird aus dem Feld ip_protocol im Rohprotokoll abgeleitet.
mac principal.mac Der Wert dieses Felds wird aus dem Feld mac im Rohprotokoll abgeleitet.
Merkhilfe network.dhcp.opcode Der Wert dieses Felds wird aus dem Feld mnemonic im Rohprotokoll abgeleitet.
Merkhilfe metadata.product_event_type Der Wert dieses Felds wird aus dem Feld mnemonic im Rohprotokoll abgeleitet.
Monat
p_ip principal.asset.ip Der Wert dieses Felds wird aus dem Feld p_ip im Rohprotokoll abgeleitet.
p_ip principal.ip Der Wert dieses Felds wird aus dem Feld p_ip im Rohprotokoll abgeleitet.
Port target.port Der Wert dieses Felds wird aus dem Feld port im Rohprotokoll abgeleitet.
Priorität
Protokoll network.ip_protocol Der Wert dieses Felds wird aus dem Feld protocol im Rohprotokoll abgeleitet.
reason
Regel security_result.rule_id Der Wert dieses Felds wird aus dem Feld rule im Rohprotokoll abgeleitet.
sec_result_action security_result.action Der Wert dieses Felds wird aus dem Feld sec_result_action im Rohprotokoll abgeleitet.
die Ausprägung
source principal.asset.ip Der Wert dieses Felds wird aus dem Feld source im Rohprotokoll abgeleitet.
source principal.ip Der Wert dieses Felds wird aus dem Feld source im Rohprotokoll abgeleitet.
source_ip network.dhcp.ciaddr Der Wert dieses Felds wird aus dem Feld source_ip im Rohprotokoll abgeleitet.
source_ip principal.asset.ip Der Wert dieses Felds wird aus dem Feld source_ip im Rohprotokoll abgeleitet.
source_ip principal.ip Der Wert dieses Felds wird aus dem Feld source_ip im Rohprotokoll abgeleitet.
source_mac network.dhcp.chaddr Der Wert dieses Felds wird aus dem Feld source_mac im Rohprotokoll abgeleitet.
source_port principal.port Der Wert dieses Felds wird aus dem Feld source_port im Rohprotokoll abgeleitet.
Zusammenfassung security_result.summary Der Wert dieses Felds wird aus dem Feld summary im Rohprotokoll abgeleitet.
Zeit
Zeitzone
Nutzer principal.user.userid Der Wert dieses Felds wird aus dem Feld user im Rohprotokoll abgeleitet.
Nutzer target.user.userid Der Wert dieses Felds wird aus dem Feld user im Rohprotokoll abgeleitet.
Wann?
Jahr
extensions.auth.type MACHINE
metadata.log_type CISCO_SWITCH
metadata.vendor_name Cisco
metadata.product_name Cisco-Switch
network.application_protocol DHCP
network.dhcp.type ANFRAGE

Änderungen

2025-02-18

Optimierung:

  • Unterstützung für ein neues SYSLOG-Log-Muster hinzugefügt.

2025-01-22

Optimierung:

  • Wenn facility = SEC_LOGIN und mnemonic = LOGIN_SUCCESS ist, wird device = principle.hostname und principal.asset.hostname zugeordnet.
  • Wenn facility = SEC_LOGIN und mnemonic = LOGIN_FAILED ist, wird device = principal.hostname und principal.asset.hostname zugeordnet.

2024-11-27

Optimierung:

  • Es wurden neue Grok-Muster hinzugefügt, um fehlgeschlagene syslog-Protokolle zu analysieren.
  • username3 wurde principal.user.userid zugeordnet.
  • login_status wurde security_result.summary zugeordnet.

2024-11-20

Optimierung:

  • Unterstützung für ein neues SYSLOG-Log-Muster hinzugefügt.

2024-11-06

Optimierung:

  • ecs.version wurde metadata.product_version zugeordnet.
  • fileset.name, flow.locality, flow.id, input.type, netflow.exporter.source_id und netflow.exporter.uptime_millis wurden additional.fields zugeordnet.
  • network.transport wurde network.ip_protocol zugeordnet.
  • netflow.post_nat_source_ipv4_address wurde principal.ip zugeordnet.
  • netflow.source_transport_port wurde principal.port zugeordnet.
  • network.direction wurde network.direction zugeordnet.

2024-10-22

Optimierung:

  • Es wurde ein Grok-Muster hinzugefügt, um nicht geparste Protokolle zu analysieren.
  • intermediary_ip wurde intermediary.ip zugeordnet
  • intermediary_hostname wurde intermediary.hostname zugeordnet

2024-10-03

Optimierung:

  • Unterstützung für ein neues SYSLOG-Log-Muster hinzugefügt.

2024-09-24

Optimierung:

  • Unterstützung für ein neues Format von syslog-Protokollen hinzugefügt.

2024-08-26

Optimierung:

  • Wenn principal_host leer ist, wird nur device zu principal.hostname zugeordnet.

2024-07-01

Optimierung:

  • Es wurde ein Grok-Muster hinzugefügt, um gültige gelöschte Protokolle mit einem neuen Muster zu parsen.
  • Außerdem wurde ein Grok-Muster hinzugefügt, um target_ip aus dem Feld header_data abzurufen.

2024-05-29

Optimierung:

  • Es wurde ein Grok-Muster hinzugefügt, um gültige gelöschte Protokolle mit einem neuen Muster zu parsen.
  • Es wurde ein Grok-Muster hinzugefügt, um principal_host aus dem Feld header_data abzurufen.
  • Es wurde ein Grok-Muster hinzugefügt, um destination_ip, src_mac und hostname aus dem Feld description abzurufen.
  • principal_host wurde principal.hostname zugeordnet.
  • src_mac wurde principal.mac zugeordnet.
  • eventSummary wurde metadata.product_event_type zugeordnet.
  • description wurde security_result.description zugeordnet.
  • error_msg wurde security_result.detection_fields zugeordnet.

2024-05-22

Optimierung:

  • Es wurde ein Grok-Muster zum Abrufen des Hostnamens hinzugefügt.

2024-05-08

Optimierung:

  • Es wurde ein Grok-Muster hinzugefügt, um geparste SYSLOG-Format-Protokolle zu unterstützen.
  • pid wurde principal.process.pid zugeordnet.
  • srcPort wurde principal.port zugeordnet.
  • device_ip wurde principal.ip und principal.asset.ip zugeordnet.
  • srcUser wurde principal.user.userid zugeordnet.
  • username1 wurde target.user.userid zugeordnet.
  • command wurde target.process.command_line zugeordnet.
  • PWD wurde target.process.file.full_path zugeordnet.
  • host_name wurde principal.hostnameandprincipal.asset.hostname zugeordnet.
  • node_id, cluster_id, exception, UniqueId und app_id wurden additional.fields zugeordnet.

2023-12-08

Optimierung:

  • Unterstützung für das neue Muster von SYSLOG-Protokollen und Schlüssel/Wert-Protokollen hinzugefügt.
  • DEVICE wurde principal.mac zugeordnet.
  • SRC wurde principal.ip zugeordnet.
  • SPT wurde principal.port zugeordnet.
  • DST wurde target.ip zugeordnet.
  • DPT wurde target.port zugeordnet.
  • ID wurde network.session_id zugeordnet.
  • LEN wurde network.session_duration.seconds zugeordnet.
  • PROTO wurde network.ip_protocol zugeordnet.
  • Zugewiesen IN, OUT, PHYSIN, WINDOW, RES,TOS,PREC,TTL,URGP,MAC,radio,vap,auth_type,sugg_band,ssid_id,ssid_profile_nameandprotocoltoadditional.fields`.
  • client_mac wurde principal.mac zugeordnet.
  • aid wurde network.session_id zugeordnet.
  • rssi wurde intermediary.asset.product_object_id zugeordnet.
  • channel wurde security_result.detection_fields zugeordnet.

2023-11-05

Optimierung:

  • Es wurden neue Grok-Muster hinzugefügt und vorhandene geändert, um fehlgeschlagene syslog-Protokolle zu analysieren.
  • KV-Filter zum Parsen von KV-Logs hinzugefügt.
  • eventSummary, dhcp_ip, client_mac, aid und ip_src wurden jeweils metadata.product_event_type, target.ip, network.dhcp.chaddr, network.session_id und principal.ip zugeordnet.
  • mac, src, sport, dst, dport, action, protocol, url und signature wurden jeweils principal.mac, principal.ip, principal.port, target.ip, target.port, security_result.action, network.ip_protocol, principal.url und „additional.fields“ zugeordnet.
  • Für „eventSummary“ hat splash_auth metadata.event_type und extensions.auth.type den Werten USER_LOGIN und MACHINE zugeordnet.
  • Für „eventSummary“ hat association eventSummary, aid, rssi, channel, last_known_client_ip und event_type jeweils auf security_result.summary, network.session_id, intermediary.asset.product_object_id, security_result.detection_fields, principal.ip und STATUS_UPDATE abgebildet.

2023-04-27

Optimierung:

  • Reduzierter allgemeiner Prozentsatz.
  • Unnötige Grok-Muster wurden entfernt.
  • Grok-Muster zum Parsen von syslog-Protokollen hinzugefügt.
  • Bedingte Prüfung für source_ip, destination_ip hinzugefügt.
  • Wenn source_ip und destination_ip vorhanden sind, ordnen Sie event_type NETWORK_CONNECTION zu.
  • Wenn source_ip vorhanden ist und destination_ip nicht, ordnen Sie event_type STATUS_UPDATE zu.
  • pid wurde target.process.pid zugeordnet.
  • app_name wurde target.application zugeordnet.

2023-03-24

Fehlerkorrektur:

  • Grok-Muster und Zuordnung für Protokolle hinzugefügt, bei denen die Nachrichtentypen FILECPY, REJECT, CONNECT oder DISCONNECT sind.

2023-01-24

Optimierung:

  • Grok-Muster wurden geändert, um Logs mit Zeitzone zu unterstützen.
  • „ip_address“ wurde „principal.ip“ zugeordnet.
  • Wenn mnemonic NBR_RESET ist und „ip_address“ vorhanden ist , wird metadata.event_type auf STATUS_UPDATE gesetzt.

2022-07-21

Optimierung:

  • Grok-Muster hinzugefügt und den Parser erweitert, um die Logs zu parsen, die zuvor verworfen wurden (Logs ohne `%--).
  • „hostname“ wurde „principal.hostname“ zugeordnet
  • „source_ip“ wurde „principal.ip“ zugeordnet
  • „destination_ip“ wurde in „target.ip“ umgewandelt
  • „ip_protocol“ wurde in „network.ip_protocol“ geändert.
  • „summary“ wurde „security_result.summary“ zugeordnet.
  • „header_data“ wurde „metadata.product_log_id“ zugeordnet.

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