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
systemdverwenden. - 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,vioder Notepad).
- Suchen Sie die Datei
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_ROUTER raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labelsErsetzen 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.jsonauf 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-agentWenn 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 teingeben: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 InformationalLegen Sie die Syslog-Einrichtung fest:
logging facility local6Aktivieren Sie Zeitstempel mit dem folgenden Befehl:
service timestamps log datetimeSpeichern 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