Cisco-Router-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Cisco Router-Logs mithilfe eines Bindplane-Agents in Google Security Operations aufnehmen. Der Parser extrahiert zuerst allgemeine Felder aus verschiedenen Syslog-Nachrichtenformaten mithilfe einer Reihe von Grok-Mustern und verarbeitet dabei verschiedene Zeitstempel- und Schlüssel-Wert-Datenvariationen. Anschließend wird basierend auf dem extrahierten Ereignistyp (facility, mnemonics, message_type) eine bestimmte Logik angewendet, um die Daten mit zusätzlichen Feldern anzureichern und dem UDM-Modell zuzuordnen.
Hinweise
- Prüfen Sie, ob Sie eine Google SecOps-Instanz haben.
- Achten Sie darauf, dass Sie Windows 2016 oder höher oder einen Linux-Host mit
systemd
verwenden. - Wenn Sie einen Proxy verwenden, müssen die Firewallports geöffnet sein.
- Sie benötigen privilegierten Zugriff auf einen Cisco-Router.
Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie SIEM-Einstellungen > Collection Agents auf.
- Laden Sie die Authentifizierungsdatei für die Aufnahme 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-Konsole an.
- Rufen Sie die SIEM-Einstellungen > „Profil“ auf.
- Kopieren und speichern Sie die Kunden-ID aus dem Bereich Organisationsdetails.
BindPlane-Agent installieren
Fenstereinbau
- Öffnen Sie die Eingabeaufforderung oder 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
Zusätzliche Installationsressourcen
- Weitere Installationsoptionen finden Sie in diesem Installationsleitfaden.
BindPlane-Agent zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren
Greifen Sie auf die Konfigurationsdatei zu:
- 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 Kunden-ID.Aktualisieren Sie
/path/to/ingestion-authentication-file.json
auf den Pfad, in dem die Authentifizierungsdatei im Abschnitt Google SecOps-Aufnahmeauthentifizierungsdatei abrufen gespeichert wurde.
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 bindplane-agent
Wenn Sie den Bindplane-Agent unter Windows neu starten möchten, können Sie entweder die Konsole Dienste verwenden oder den folgenden Befehl eingeben:
net stop BindPlaneAgent && net start BindPlaneAgent
Syslog auf einem Cisco-Router konfigurieren
- Melden Sie sich beim Cisco-Router an.
Erweitern Sie die Berechtigungen mit dem Befehl
enable
:Switch> enable Switch#
Wechseln Sie in den Konfigurationsmodus, indem Sie den Befehl
conf t
eingeben: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 Listening-Protokoll für den BindPlane-Agenten, 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
Legen Sie die Syslog-Einrichtung fest:
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 einen Neustart überstehen, indem Sie den folgenden Befehl eingeben:
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 wird. |
client_mac |
target.mac | Der Wert wird aus dem Feld client_mac übernommen, das vom Grok-Parser extrahiert wird. |
dst_ip |
target.ip, target.asset.ip | Der Wert wird aus dem Feld dst_ip übernommen, das vom Grok-Parser extrahiert wird. |
dst_port |
target.port | Der Wert wird aus dem Feld dst_port übernommen, das vom Grok-Parser extrahiert und in eine Ganzzahl konvertiert wird. |
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 wird. |
local_proxy |
intermediary.ip | Der Wert wird aus dem Feld local_proxy übernommen, das vom Grok-Parser extrahiert wird. |
message_data |
metadata.description | Der Wert wird aus dem Feld message_data übernommen, das vom Grok-Parser extrahiert wird. |
protocol |
network.ip_protocol | Der Wert wird aus dem Feld protocol übernommen, das vom Grok-Parser extrahiert wurde, und in Großbuchstaben umgewandelt. |
received_bytes |
network.received_bytes | Der Wert wird aus dem Feld received_bytes übernommen, das vom Grok-Parser extrahiert und in eine vorzeichenlose Ganzzahl konvertiert wird. |
referral_url |
network.http.referral_url | Der Wert wird aus dem Feld referral_url übernommen, das vom Grok-Parser extrahiert wird. |
remote_proxy |
intermediary.ip | Der Wert wird aus dem Feld remote_proxy übernommen, das vom Grok-Parser extrahiert wird. |
send_bytes |
network.sent_bytes | Der Wert wird aus dem Feld send_bytes übernommen, das vom Grok-Parser extrahiert und in eine vorzeichenlose Ganzzahl konvertiert wird. |
sent_bytes |
network.sent_bytes | Der Wert wird aus dem Feld sent_bytes übernommen, das vom Grok-Parser extrahiert und in eine vorzeichenlose Ganzzahl konvertiert wird. |
server_host |
target.hostname, target.asset.hostname | Der Wert wird aus dem Feld server_host übernommen, das vom Grok-Parser extrahiert wird. |
server_ip |
target.ip, target.asset.ip | Der Wert wird aus dem Feld server_ip übernommen, das vom Grok-Parser extrahiert wird. |
src_ip |
principal.ip, principal.asset.ip | Der Wert wird aus dem Feld src_ip übernommen, das vom Grok-Parser extrahiert wird. |
src_port |
principal.port | Der Wert wird aus dem Feld src_port übernommen, das vom Grok-Parser extrahiert und in eine Ganzzahl konvertiert wird. |
user_ip |
target.ip, target.asset.ip | Der Wert wird aus dem Feld user_ip übernommen, das vom Grok-Parser extrahiert wird. |
user_mail |
principal.user.userid, principal.user.email_addresses | Der Wert wird aus dem Feld user_mail übernommen, das vom Grok-Parser extrahiert wird. |
username |
target.user.userid | Der Wert wird aus dem Feld username übernommen, das vom Grok-Parser extrahiert wird. |
- | 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 Log-Nachricht in bestimmte Ereignistypen geändert. |
- | metadata.log_type | Der Wert wird auf CISCO_ROUTER festgelegt. |
- | metadata.product_event_type | Der Wert wird aus dem Feld message_type übernommen, das durch Kombinieren der Felder facility , priority und mnemonics generiert wird. |
- | metadata.product_name | Der Wert wird auf Router festgelegt. |
- | metadata.vendor_name | Der Wert wird auf Cisco festgelegt. |
- | network.application_protocol | Der Wert wird auf HTTP oder HTTPS festgelegt, wenn das Feld protocol http bzw. https ist. |
- | extensions.auth.type | Der Wert ist standardmäßig auf AUTHTYPE_UNSPECIFIED festgelegt und wird basierend auf der geparsten Log-Nachricht in bestimmte Authentifizierungstypen geändert. |
- | security_result.action | Der Wert wird für erfolgreiche Anmeldungen auf ALLOW und für fehlgeschlagene Anmeldungen auf BLOCK gesetzt. |
- | security_result.category | Der Wert wird für Ereignisse mit IP-Optionen auf NETWORK_SUSPICIOUS und für fehlgeschlagene Anmeldungen auf AUTH_VIOLATION festgelegt. |
- | security_result.description | Der Wert wird für verschiedene Ereignisse auf bestimmte Meldungen festgelegt. |
- | security_result.severity | Der Wert wird bei erfolgreichen Log-ins auf LOW , bei fehlgeschlagenen Log-ins auf MEDIUM und bei anderen Ereignissen auf INFORMATIONAL gesetzt. |
- | security_result.severity_details | Der Wert wird für fehlgeschlagene Log-ins aus dem Feld fail_reason übernommen und für Ereignisse mit IP-Optionen auf Informational message festgelegt. |
- | security_result.summary | Der Wert wird für verschiedene Ereignisse auf bestimmte Meldungen festgelegt. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten