Cisco-Router-Protokolle erfassen
In diesem Dokument wird beschrieben, wie Sie Cisco-Router-Logs mithilfe eines Bindplane-Agents in Google Security Operations aufnehmen. Der Parser extrahiert zuerst mithilfe einer Reihe von Grok-Mustern gängige Felder aus verschiedenen syslog-Nachrichtenformaten und verarbeitet verschiedene Zeitstempel- und Schlüssel/Wert-Datenvarianten. Anschließend wird eine bestimmte Logik basierend auf dem extrahierten Ereignistyp (facility, mnemonics, message_type) angewendet, um die Daten mit zusätzlichen Feldern anzureichern und sie dem UDM-Modell zuzuordnen.
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-Router.
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_ROUTER 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-Router konfigurieren
- Melden Sie sich beim Cisco-Router 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 Bindplane-Agent-Warten, z. B.udp
. - Ersetzen Sie
<interface>
durch die Cisco-Schnittstellen-ID, z. B.Ethernet1/1
.
- 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 |
---|---|---|
client_ip |
target.ip, target.asset.ip | Der Wert wird aus dem Feld client_ip übernommen, das vom Grok-Parser extrahiert wurde. |
client_mac |
target.mac | Der Wert wird aus dem Feld client_mac übernommen, das vom Grok-Parser extrahiert wurde. |
dst_ip |
target.ip, target.asset.ip | Der Wert wird aus dem Feld dst_ip übernommen, das vom Grok-Parser extrahiert wurde. |
dst_port |
target.port | Der Wert wird aus dem Feld dst_port übernommen, das vom Grok-Parser extrahiert wurde, und in eine Ganzzahl umgewandelt. |
duration |
- | Dieses Feld ist nicht dem UDM zugeordnet. |
host_ip |
target.ip, target.asset.ip | Der Wert wird aus dem Feld host_ip übernommen, das vom Grok-Parser extrahiert wurde. |
local_proxy |
intermediary.ip | Der Wert wird aus dem Feld local_proxy übernommen, das vom Grok-Parser extrahiert wurde. |
message_data |
metadata.description | Der Wert wird aus dem Feld message_data übernommen, das vom Grok-Parser extrahiert wurde. |
protocol |
network.ip_protocol | Der Wert wird aus dem Feld protocol übernommen, das vom Grok-Parser extrahiert und in Großbuchstaben umgewandelt wird. |
received_bytes |
network.received_bytes | Der Wert wird aus dem Feld received_bytes übernommen, das vom Grok-Parser extrahiert wurde, und in eine vorzeichenlose Ganzzahl konvertiert. |
referral_url |
network.http.referral_url | Der Wert wird aus dem Feld referral_url übernommen, das vom Grok-Parser extrahiert wurde. |
remote_proxy |
intermediary.ip | Der Wert wird aus dem Feld remote_proxy übernommen, das vom Grok-Parser extrahiert wurde. |
send_bytes |
network.sent_bytes | Der Wert wird aus dem Feld send_bytes übernommen, das vom Grok-Parser extrahiert wurde, und in eine vorzeichenlose Ganzzahl konvertiert. |
sent_bytes |
network.sent_bytes | Der Wert wird aus dem Feld sent_bytes übernommen, das vom Grok-Parser extrahiert wurde, und in eine vorzeichenlose Ganzzahl konvertiert. |
server_host |
target.hostname, target.asset.hostname | Der Wert wird aus dem Feld server_host übernommen, das vom Grok-Parser extrahiert wurde. |
server_ip |
target.ip, target.asset.ip | Der Wert wird aus dem Feld server_ip übernommen, das vom Grok-Parser extrahiert wurde. |
src_ip |
principal.ip, principal.asset.ip | Der Wert wird aus dem Feld src_ip übernommen, das vom Grok-Parser extrahiert wurde. |
src_port |
principal.port | Der Wert wird aus dem Feld src_port übernommen, das vom Grok-Parser extrahiert wurde, und in eine Ganzzahl umgewandelt. |
user_ip |
target.ip, target.asset.ip | Der Wert wird aus dem Feld user_ip übernommen, das vom Grok-Parser extrahiert wurde. |
user_mail |
principal.user.userid, principal.user.email_addresses | Der Wert wird aus dem Feld user_mail übernommen, das vom Grok-Parser extrahiert wurde. |
username |
target.user.userid | Der Wert wird aus dem Feld username übernommen, das vom Grok-Parser extrahiert wurde. |
- | is_alert | Der Wert ist standardmäßig auf true festgelegt. |
- | is_significant | Der Wert ist standardmäßig auf true festgelegt. |
- | metadata.event_timestamp | Der Wert wird aus dem Feld create_time übernommen. |
- | metadata.event_type | Der Wert ist standardmäßig auf GENERIC_EVENT festgelegt und wird basierend auf der geparsten Protokollnachricht in bestimmte Ereignistypen geändert. |
- | metadata.log_type | Der Wert ist auf CISCO_ROUTER festgelegt. |
- | metadata.product_event_type | Der Wert wird aus dem Feld message_type übernommen, das durch Kombination der Felder facility , priority und mnemonics generiert wird. |
- | metadata.product_name | Der Wert ist auf Router festgelegt. |
- | metadata.vendor_name | Der Wert ist auf Cisco festgelegt. |
- | network.application_protocol | Der Wert wird auf HTTP oder HTTPS gesetzt, wenn das Feld protocol http oder https ist. |
- | extensions.auth.type | Der Wert ist standardmäßig auf AUTHTYPE_UNSPECIFIED festgelegt und wird basierend auf der geparsten Protokollnachricht in bestimmte Authentifizierungstypen geändert. |
- | security_result.action | Der Wert wird auf ALLOW für erfolgreiche Anmeldungen und auf BLOCK für fehlgeschlagene Anmeldungen gesetzt. |
- | security_result.category | Der Wert wird auf NETWORK_SUSPICIOUS für Ereignisse mit IP-Optionen und auf AUTH_VIOLATION für fehlgeschlagene Anmeldungen festgelegt. |
- | security_result.description | Der Wert wird auf bestimmte Nachrichten für verschiedene Ereignisse festgelegt. |
- | security_result.severity | Der Wert wird auf LOW für erfolgreiche Anmeldungen, auf MEDIUM für fehlgeschlagene Anmeldungen und auf INFORMATIONAL für andere Ereignisse festgelegt. |
- | security_result.severity_details | Der Wert wird für fehlgeschlagene Anmeldungen aus dem Feld fail_reason übernommen und für Ereignisse mit IP-Optionen auf Informational message festgelegt. |
- | security_result.summary | Der Wert wird auf bestimmte Nachrichten für verschiedene Ereignisse festgelegt. |
Änderungen
2024-12-12
Optimierung:
intermediary_host
wurdeintermediary.hostname
zugeordnet.
2024-12-05
Optimierung:
- Es wurde ein Grok-Muster hinzugefügt, um ein neues Muster von syslog-Protokollen zu unterstützen.
srcip
wurdeprincipal.ip
zugeordnet.
2024-10-30
Optimierung:
- Unterstützung für
metadata.event_timestamp
in der ZeitzoneBST
hinzugefügt.
2024-10-15
Optimierung:
inter_hostname
wurdeintermediary.ip
undintermediary_host
intermediary.hostname
zugeordnet.
2024-09-12
Optimierung:
- Es wurde ein Grok-Muster hinzugefügt, um
int_ip
aufintermediary.hostname
abzubilden.
2024-06-26
Optimierung:
- Es wurde ein neues Grok-Muster hinzugefügt, um ein neues Format von SYSLOG-Protokollen zu analysieren.
2024-06-09
Optimierung:
hostname
aus dem Syslog-Header wurdeintermediary.hostname
zugeordnet.
2024-05-20
Optimierung:
- Es wurde ein neues Grok-Muster hinzugefügt, um ein neues Format von SYSLOG-Protokollen zu analysieren.
MessageSourceAddress
wurdeprincipal.ip
undprincipal.asset.ip
zugeordnet.SourceModuleName
undSourceModuleType
wurdenprincipal.resource.attribute.labels
zugeordnet.
2023-11-10
Optimierung:
- Es wurden neue Grok-Muster hinzugefügt, um fehlgeschlagene SYSLOG-Protokolle zu analysieren.
- Die Bedingungen
Unable
,exceeded
undNo space left on device
fürAUTH_VIOLATION
wurden hinzugefügt.
2023-10-30
Optimierung:
- Es wurden neue Grok-Muster hinzugefügt, um fehlgeschlagene syslog-Protokolle zu analysieren.
resourcename
wurdeprincipal.resource.name
zugeordnet.app_protocol
wurdenetwork.application.protocol
zugeordnet.app
wurdetarget.application
zugeordnet.source_port
wurdeprincipal.port
zugeordnet.source_ip
wurdeprincipal.ip
zugeordnet.device_ip
wurdetarget.ip
zugeordnet.username
wurdetarget.user.userid
zugeordnet.intermediary_ip
wurdeintermediary.ip
zugeordnet.mnemonics
wurdemetadata.event_type
zugeordnet.sec_action
wurdesecurity_result.action
zugeordnet.sec_category
security_result.category
wurde zugeordnet.sec_summary
wurdesecurity_result.summary
zugeordnet.- Legen Sie für Logs zum Authentifizierungstyp
metadata.event_type
aufUSER_LOGIN
fest.
2023-05-09
Optimierung:
- Protokolle mit dem Wert
FMANFP-6-IPACCESSLOGP
werden alsNETWORK_CONNECTION
-Ereignisse geparst.
2022-12-02
Optimierung:
- Grok wurde hinzugefügt, um nicht geparste Syslog-Protokolle zu unterstützen.
- Wenn
principal.hostname
die Zuordnung von „event_type“ von „GENERIC_EVENT“ zu „STATUS_UPDATE“ geändert hat.
2022-11-10
Optimierung:
- Unterstützung für SYS-5-CONFIG_I-Ereignisprotokolle hinzugefügt.
- Grok wurde so geändert, dass Logs mit Zeitzone unterstützt werden.
2022-10-27
Optimierung:
- Parsen der folgenden syslog-Felder des Logtyps IOSXE-6-PLATFORM
ip
wurdeintermediary.ip
zugeordnetsrc_ip
wurdeprincipal.ip
zugeordnetsrc_port
wurdeprincipal.port
zugeordnetdst_ip
wurdetarget.ip
zugeordnetdst_port
wurdetarget.port
zugeordnetprotocol
wurdenetwork.ip_protocol
zugeordnetfacility
wurdeprincipal.resource.type
zugeordnetmnemonics
wurdemetadata.product_event_type
zugeordnetsc_summary
wurdemetadata.description
zugeordnetsr_action
wurdesecurity_result.action
zugeordnetsummary
wurdesecurity_result.summary
zugeordnet
2022-08-23
Optimierung:
- Korrigierte Zuordnung von Haupt- und Ziel-IP
target_ip
wurdeevent.idm.read_only_udm.target.ip
zugeordnetsrc_ip
wurdeevent.idm.read_only_udm.principal.asset.ip
zugeordnet
2022-07-01
Optimierung:
- Ein Fehler beim Parsen von Protokollen mit dem Produktereignistyp SYS-3-LOGGINGHOST_FAIL,SEC_LOGIN-5-LOGIN_SUCCESS,SYS-6-LOGGINGHOST_STARTSTOP,SYS-6-LOGOUT wurde behoben. Der Zeitstempel fehlte.
- Der Metadaten-Ereignistyp von SYS-3-LOGGINGHOST_FAIL-Protokollen wurde von GENERIC_EVENT in STATUS_UPDATE geändert.
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten