Cisco-Switch-Protokolle erfassen
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
- Melden Sie sich in der Google SecOps Console an.
- Gehen Sie zu SIEM-Einstellungen > Erfassungsagenten.
- 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
- Melden Sie sich in der Google SecOps Console an.
- Gehen Sie zu SIEM-Einstellungen > Profil.
- Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.
Bindplane-Agent installieren
Windows-Installation
- Öffnen Sie die Eingabeaufforderung oder die PowerShell als Administrator.
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
- Öffnen Sie ein Terminal mit Root- oder Sudo-Berechtigungen.
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
- Weitere Installationsoptionen finden Sie in diesem Installationsleitfaden.
Bindplane-Agent so konfigurieren, dass er Syslog-Daten aufnimmt und an Google SecOps sendet
Rufen Sie die Konfigurationsdatei auf:
- Suchen Sie die Datei
config.yaml
. Normalerweise befindet es sich unter Linux im Verzeichnis/etc/bindplane-agent/
oder unter Windows im Installationsverzeichnis. - Öffnen Sie die Datei mit einem Texteditor, z. B.
nano
,vi
oder Notepad.
- Suchen Sie die Datei
Bearbeiten Sie die Datei
config.yaml
so: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
Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.
Ersetzen Sie
<customer_id>
durch die tatsächliche Kundennummer.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
- Melden Sie sich am Cisco-Switch an.
Erhöhen Sie die Berechtigungen mit dem Befehl
enable
:Switch> enable Switch#
Wechseln Sie mit dem Befehl
conf t
in den Konfigurationsmodus:Switch# conf t Switch(config)#
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 Beispieludp
). - Ersetzen Sie
<interface>
durch die Cisco-Interface-ID.
- Ersetzen Sie
Legen Sie die Prioritätsstufe mit dem folgenden Befehl fest:
logging trap Informational logging console Informational logging severity Informational
Syslog-Einrichtung festlegen:
logging facility local6
Aktivieren Sie Zeitstempel mit dem folgenden Befehl:
service timestamps log datetime
Speichern Sie die Datei und beenden Sie den Vorgang.
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
undmnemonic
=LOGIN_SUCCESS
ist, wirddevice
=principle.hostname
undprincipal.asset.hostname
zugeordnet. - Wenn
facility
=SEC_LOGIN
undmnemonic
=LOGIN_FAILED
ist, wirddevice
=principal.hostname
undprincipal.asset.hostname
zugeordnet.
2024-11-27
Optimierung:
- Es wurden neue Grok-Muster hinzugefügt, um fehlgeschlagene syslog-Protokolle zu analysieren.
username3
wurdeprincipal.user.userid
zugeordnet.login_status
wurdesecurity_result.summary
zugeordnet.
2024-11-20
Optimierung:
- Unterstützung für ein neues SYSLOG-Log-Muster hinzugefügt.
2024-11-06
Optimierung:
ecs.version
wurdemetadata.product_version
zugeordnet.fileset.name
,flow.locality
,flow.id
,input.type
,netflow.exporter.source_id
undnetflow.exporter.uptime_millis
wurdenadditional.fields
zugeordnet.network.transport
wurdenetwork.ip_protocol
zugeordnet.netflow.post_nat_source_ipv4_address
wurdeprincipal.ip
zugeordnet.netflow.source_transport_port
wurdeprincipal.port
zugeordnet.network.direction
wurdenetwork.direction
zugeordnet.
2024-10-22
Optimierung:
- Es wurde ein Grok-Muster hinzugefügt, um nicht geparste Protokolle zu analysieren.
intermediary_ip
wurdeintermediary.ip
zugeordnetintermediary_hostname
wurdeintermediary.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 nurdevice
zuprincipal.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 Feldheader_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 Feldheader_data
abzurufen. - Es wurde ein Grok-Muster hinzugefügt, um
destination_ip
,src_mac
undhostname
aus dem Felddescription
abzurufen. principal_host
wurdeprincipal.hostname
zugeordnet.src_mac
wurdeprincipal.mac
zugeordnet.eventSummary
wurdemetadata.product_event_type
zugeordnet.description
wurdesecurity_result.description
zugeordnet.error_msg
wurdesecurity_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
wurdeprincipal.process.pid
zugeordnet.srcPort
wurdeprincipal.port
zugeordnet.device_ip
wurdeprincipal.ip
undprincipal.asset.ip
zugeordnet.srcUser
wurdeprincipal.user.userid
zugeordnet.username1
wurdetarget.user.userid
zugeordnet.command
wurdetarget.process.command_line
zugeordnet.PWD
wurdetarget.process.file.full_path
zugeordnet.host_name
wurde principal.hostnameand
principal.asset.hostname zugeordnet.node_id
,cluster_id
,exception
,UniqueId
undapp_id
wurdenadditional.fields
zugeordnet.
2023-12-08
Optimierung:
- Unterstützung für das neue Muster von SYSLOG-Protokollen und Schlüssel/Wert-Protokollen hinzugefügt.
DEVICE
wurdeprincipal.mac
zugeordnet.SRC
wurdeprincipal.ip
zugeordnet.SPT
wurdeprincipal.port
zugeordnet.DST
wurdetarget.ip
zugeordnet.DPT
wurdetarget.port
zugeordnet.ID
wurdenetwork.session_id
zugeordnet.LEN
wurdenetwork.session_duration.seconds
zugeordnet.PROTO
wurdenetwork.ip_protocol
zugeordnet.- Zugewiesen
IN
,OUT
,PHYSIN
,WINDOW
,RES,
TOS,
PREC,
TTL,
URGP,
MAC,
radio,
vap,
auth_type,
sugg_band,
ssid_id,
ssid_profile_nameand
protocolto
additional.fields`. client_mac
wurdeprincipal.mac
zugeordnet.aid
wurdenetwork.session_id
zugeordnet.rssi
wurdeintermediary.asset.product_object_id
zugeordnet.channel
wurdesecurity_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
undip_src
wurden jeweilsmetadata.product_event_type
,target.ip
,network.dhcp.chaddr
,network.session_id
undprincipal.ip
zugeordnet.mac
,src
,sport
,dst
,dport
,action
,protocol
,url
undsignature
wurden jeweilsprincipal.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
undextensions.auth.type
den WertenUSER_LOGIN
undMACHINE
zugeordnet. - Für „eventSummary“ hat
association
eventSummary
,aid
,rssi
,channel
,last_known_client_ip
undevent_type
jeweils aufsecurity_result.summary
,network.session_id
,intermediary.asset.product_object_id
,security_result.detection_fields
,principal.ip
undSTATUS_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
unddestination_ip
vorhanden sind, ordnen Sieevent_type
NETWORK_CONNECTION
zu. - Wenn
source_ip
vorhanden ist unddestination_ip
nicht, ordnen Sieevent_type
STATUS_UPDATE
zu. pid
wurdetarget.process.pid
zugeordnet.app_name
wurdetarget.application
zugeordnet.
2023-03-24
Fehlerkorrektur:
- Grok-Muster und Zuordnung für Protokolle hinzugefügt, bei denen die Nachrichtentypen
FILECPY
,REJECT
,CONNECT
oderDISCONNECT
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 , wirdmetadata.event_type
aufSTATUS_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