Cisco Prime-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Cisco Prime-Logs mit Bindplane in Google Security Operations aufnehmen. Der Parser verwendet Grok-Muster, um Felder aus verschiedenen Syslog-Nachrichtenformaten zu extrahieren und sie einem einheitlichen Datenmodell (Unified Data Model, UDM) zuzuordnen. Es verarbeitet verschiedene Logstrukturen, einschließlich Schlüssel-Wert-Paaren, und reichert die Daten mit Nutzer-, Prinzipal-, Ziel- und Sicherheitsinformationen an, die auf bestimmten Schlüsselwörtern und Mustern in den Logmeldungen basieren.
Hinweise
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Google SecOps-Instanz
- Windows 2016 oder höher oder ein Linux-Host mit
systemd
- Wenn die Ausführung hinter einem Proxy erfolgt, müssen die Firewallports geöffnet sein.
- Privilegierter Zugriff auf Cisco Prime
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
Installieren Sie den Bindplane-Agent auf Ihrem Windows- oder Linux-Betriebssystem gemäß der folgenden Anleitung.
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 im Installationsleitfaden.
BindPlane-Agent zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren
- Rufen Sie die Konfigurationsdatei auf:
- Suchen Sie die Datei
config.yaml
. Normalerweise befindet sie 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_file_path: '/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 log_type: 'CISCO_PRIME' raw_log_field: body ingestion_labels: 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
Benachrichtigungen für Änderungen an der Audit-Konfiguration und Syslog-Empfänger konfigurieren
Sie können das System so konfigurieren, dass Syslog-Benachrichtigungen für Änderungsprüfungen im Zusammenhang mit den folgenden Ereignissen gesendet werden:
- Aktualisierungen des Gerätebestands
- Konfigurationsänderungen
- Änderungen an Konfigurationsvorlagen
- Vorlagenbezogene Vorgänge
- Nutzeraktivitäten wie Anmeldungen, Abmeldungen und Kontoänderungen
Melden Sie sich in der Cisco Prime-Web-UI an.
Gehen Sie zu Verwaltung > Einstellungen > Systemeinstellungen.
Wählen Sie E-Mail und Benachrichtigung > Benachrichtigung über Audit ändern aus.
Klicken Sie das Kästchen Benachrichtigung zur Änderungsprüfung aktivieren an.
Klicken Sie auf die Schaltfläche +, um einen Syslog-Server anzugeben.
Geben Sie die folgenden Konfigurationsdetails an:
- Geben Sie die IP-Adresse des Bindplane-Agents ein.
- Wählen Sie das Protokoll UDP aus.
- Geben Sie die Portnummer des Bindplane-Agents ein.
Klicken Sie auf Speichern.
Audit-Logs des Weiterleitungssystems als Syslog konfigurieren
- Melden Sie sich in der Cisco Prime-Web-UI an.
- Gehen Sie zu Administration > Einstellungen > Protokollierung > Syslog-Protokollierungsoptionen.
- Klicken Sie das Kästchen Syslog aktivieren an.
- Geben Sie die folgenden Konfigurationsdetails an:
- Geben Sie die IP-Adresse des Bindplane-Agents ein.
- Wählen Sie das Protokoll UDP aus.
- Geben Sie die Portnummer des Bindplane-Agents ein.
- Wählen Sie eine der acht Einrichtungen oder
local0
aus.
- Klicken Sie auf Speichern.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
client_ip_address | principal.ip, principal.asset.ip | Der Wert wird dem Feld client_ip_address entnommen, das mit dem kv-Filter aus dem Rohlog extrahiert wird. |
Datum | metadata.event_timestamp | Der Wert stammt aus dem Feld date , das mithilfe von Grok-Mustern aus dem Rohlog extrahiert und dann mit dem Datumsfilter in einen Zeitstempel konvertiert wird. |
description | security_result.description | Der Wert wird aus dem Feld description übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
dest_mac | target.mac | Der Wert wird aus dem Feld dest_mac übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert und in Kleinbuchstaben konvertiert wird. |
device_id | principal.asset_id | Der Wert wird aus dem Feld device_id übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. Der endgültige Wert wird als „Geräte-ID: |
device_ip | principal.ip, principal.asset.ip | Der Wert wird dem Feld device_ip entnommen, das mit dem kv-Filter aus dem Rohlog extrahiert wird. Der Wert wird dann als JSON-Array geparst und jede IP-Adresse im Array wird den UDM-Feldern hinzugefügt. |
device_type | target.resource.attribute.labels.value | Der Wert wird aus dem Feld device_type übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
dst_user | target.user.userid | Der Wert wird aus dem Feld dst_user übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
src.hostname | Der Wert wird aus dem Feld email übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
|
file_path | principal.process.file.full_path | Der Wert wird aus dem Feld file_path übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
Hostname | target.resource.attribute.labels.value | Der Wert wird aus dem Feld hostname übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
id | principal.asset_id | Der Wert wird aus dem Feld id übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. Der Endwert hat das Format „Entitäts-ID: |
ip_address | principal.ip, principal.asset.ip | Der Wert wird aus dem Feld ip_address übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
log_level | security_result.severity | Der Wert wird aus dem Feld log_level übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. Sie wird verwendet, um den Schweregrad zu bestimmen, wenn severity nicht vorhanden ist. |
mac_address | principal.mac, source_mac | Der Wert wird aus dem Feld mac_address übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert und in Kleinbuchstaben konvertiert wird. Er wird auch als Wert für source_mac verwendet, wenn source_mac leer ist. |
oid | principal.asset.product_object_id | Der Wert wird aus dem Feld oid übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
principal_ip | principal.ip, principal.asset.ip | Der Wert wird aus dem Feld principal_ip übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
principal_port | principal.port | Der Wert wird aus dem Feld principal_port übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert und in eine Ganzzahl konvertiert wird. |
process_name | principal.resource.name | Der Wert wird aus dem Feld process_name übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
sec_description | security_result.description | Der Wert wird aus dem Feld sec_description übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
session_id | network.session_id | Der Wert wird aus dem Feld session_id übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
die Ausprägung | security_result.severity | Der Wert wird aus dem Feld severity übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. Damit wird der Schweregrad bestimmt, sofern vorhanden. |
source_mac | principal.mac | Der Wert wird aus dem Feld source_mac übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert und in Kleinbuchstaben konvertiert wird. Wenn leer, wird der Wert von mac_address übernommen. |
Zusammenfassung | security_result.summary | Der Wert wird aus dem Feld summary übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
target_ip | target.ip, target.asset.ip | Der Wert wird aus dem Feld target_ip übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
thread_pool | metadata.product_event_type | Der Wert wird aus dem Feld thread_pool übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
timestamp | metadata.event_timestamp | Der Wert stammt aus dem Feld timestamp , das mithilfe von Grok-Mustern aus dem Rohlog extrahiert und dann mit dem Datumsfilter in einen Zeitstempel konvertiert wird. |
Typ | metadata.product_event_type | Der Wert wird dem Feld Type entnommen, das mit dem kv-Filter aus dem Rohlog extrahiert wird. |
user_name | principal.user.userid | Der Wert stammt aus dem Feld user_name , das aus dem Rohlog mit Grok-Mustern oder dem KV-Filter extrahiert wird. |
metadata.event_type | metadata.event_type | Der Wert wird anhand des Vorhandenseins bestimmter Felder und Muster im Rohlog ermittelt. Die Logik umfasst: – Standardwert: GENERIC_EVENT – Wenn thread_pool „EmailAlertHelper“ ist: EMAIL_TRANSACTION – Wenn application_name „aesSystem“ ist und desc „HealthMonitorHelper“ enthält: STATUS_HEARTBEAT – Wenn user_present und target_resource_present beide „true“ sind: USER_RESOURCE_ACCESS – Wenn user_present „true“ ist: USER_UNCATEGORIZED – Wenn principal_present und target_present beide „true“ sind: NETWORK_CONNECTION – Wenn principal_present „true“ ist: STATUS_UPDATE – Wenn dst_user vorhanden ist und description „logout“ enthält: USER_LOGOUT – Wenn dst_user vorhanden ist und description nicht „logout“ enthält: USER_LOGIN |
metadata.vendor_name | metadata.vendor_name | Der Wert ist auf „CISCO“ festgelegt. |
metadata.product_name | metadata.product_name | Der Wert ist auf „CISCO_PRIME“ festgelegt. |
metadata.log_type | metadata.log_type | Der Wert ist auf „CISCO_PRIME“ festgelegt. |
network.session_id | network.session_id | Der Wert wird aus dem Feld session_id übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
principal.application | principal.application | Der Wert wird aus dem Feld application_name übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
principal.asset.ip | principal.asset.ip | Der Wert kann aus den folgenden Feldern stammen: client_ip_address , device_ip , ip_address , principal_ip , target_ip . |
principal.asset.product_object_id | principal.asset.product_object_id | Der Wert wird aus dem Feld oid übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
principal.asset_id | principal.asset_id | Der Wert kann aus den folgenden Feldern stammen: device_id , id . |
principal.ip | principal.ip | Der Wert kann aus den folgenden Feldern stammen: client_ip_address , device_ip , ip_address , principal_ip . |
principal.mac | principal.mac | Der Wert kann aus den folgenden Feldern stammen: mac_address , source_mac . |
principal.port | principal.port | Der Wert wird aus dem Feld principal_port übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert und in eine Ganzzahl konvertiert wird. |
principal.process.file.full_path | principal.process.file.full_path | Der Wert wird aus dem Feld file_path übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
principal.resource.name | principal.resource.name | Der Wert wird aus dem Feld process_name übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
principal.user.userid | principal.user.userid | Der Wert stammt aus dem Feld user_name , das aus dem Rohlog mit Grok-Mustern oder dem KV-Filter extrahiert wird. |
security_result.action | security_result.action | Der Wert wird auf „BLOCK“ gesetzt, wenn description „fail“ enthält. |
security_result.description | security_result.description | Der Wert kann aus den folgenden Feldern stammen: desc , description , sec_description . |
security_result.severity | security_result.severity | Der Wert kann aus den folgenden Feldern stammen: log_level , severity . |
security_result.summary | security_result.summary | Der Wert wird aus dem Feld summary übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
src.hostname | src.hostname | Der Wert wird aus dem Feld email übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
target.asset.ip | target.asset.ip | Der Wert wird aus dem Feld target_ip übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
target.ip | target.ip | Der Wert wird aus dem Feld target_ip übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
target.mac | target.mac | Der Wert wird aus dem Feld dest_mac übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert und in Kleinbuchstaben konvertiert wird. |
target.resource.attribute.labels.key | target.resource.attribute.labels.key | Der Wert wird je nach Kontext auf „Device Type“ (Gerätetyp) oder „Device Hostname“ (Gerätehostname) festgelegt. |
target.resource.attribute.labels.value | target.resource.attribute.labels.value | Der Wert kann aus den folgenden Feldern stammen: device_type , hostname . |
target.user.userid | target.user.userid | Der Wert wird aus dem Feld dst_user übernommen, das mithilfe von Grok-Mustern aus dem Rohlog extrahiert wird. |
extensions.auth.mechanism | extensions.auth.mechanism | Der Wert wird auf „USERNAME_PASSWORD“ gesetzt, wenn dst_user vorhanden ist und description „password“ enthält. |
extensions.auth.type | extensions.auth.type | Der Wert wird auf „MACHINE“ gesetzt, wenn dst_user vorhanden ist. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten