Cisco DNA Center Platform-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Cisco DNA Center Platform-Logs mit zwei verschiedenen Methoden in Google Security Operations aufnehmen. Wählen Sie die Option aus, die am besten zu Ihrer Umgebung und Ihren Anforderungen passt. Der Parser wandelt Cisco DNA Center SYSLOG+JSON-Logs in ein einheitliches Datenmodell (Unified Data Model, UDM) um. Sie extrahiert Felder aus der Rohprotokollnachricht und der JSON-Nutzlast, ordnet sie den entsprechenden UDM-Attributen zu und reichert die Daten mit Labels und Sicherheitskontext basierend auf Ereignismerkmalen wie Schweregrad und beteiligten Entitäten an.
Hinweise
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Eine Google SecOps-Instanz
- Privilegierter Zugriff auf die Cisco DNA Center Platform-Verwaltungskonsole
- Wählen Sie die gewünschte Integrationsmethode aus:
- Für Option 2: Netzwerkverbindung zwischen Cisco DNA Center und dem Google SecOps-Webhook-Endpunkt
- Für Option 1: Windows 2016 oder höher oder ein Linux-Host mit
systemdfür die Installation des BindPlane-Agents
Option 1: Syslog-Integration mit dem BindPlane-Agent
Bei dieser Option wird die Syslog-Weiterleitung von Cisco DNA Center an Bindplane verwendet, das strukturierte Logs dann an Google SecOps weiterleitet.
Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die 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 > Profile 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 in diesem Installationsleitfaden.
BindPlane-Agent zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren
Konfigurationsdatei aufrufen:
- 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,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_file_path: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: YOUR_CUSTOMER_ID endpoint: malachiteingestion-pa.googleapis.com log_type: 'CISCO_DNAC' 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
<YOUR_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. - Bei dieser Konfiguration wird der BindPlane-Agent-Syslog-Empfänger (UDP) verwendet, um strukturierte Syslog-Nachrichten von DNA Center zu erfassen.
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-Weiterleitung auf der Cisco DNA Center-Plattform konfigurieren
- Melden Sie sich in der Cisco DNA Center Platform an.
- Gehen Sie zu System> Einstellungen> Externe Dienste> Ziele> Syslog.
- Klicken Sie auf + Hinzufügen, um ein neues Syslog-Ziel zu erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie einen aussagekräftigen Namen ein, z. B.
Google SecOps BindPlane. - Host: Geben Sie die IP-Adresse des BindPlane-Agents ein.
- Port: Geben Sie
514(oder den in BindPlane konfigurierten Port) ein. - Protokoll: Wählen Sie je nach BindPlane-Konfiguration UDP oder TCP aus.
- Einrichtung: Wählen Sie die entsprechende Einrichtung aus (z. B. Local0).
- Schweregrad: Wählen Sie Information aus, um alle Ereignisebenen zu erfassen.
- Name: Geben Sie einen aussagekräftigen Namen ein, z. B.
- Klicken Sie auf Speichern.
Option 2: Echtzeit-Webhook-Integration
Bei dieser Option werden die nativen Webhook-Funktionen von Cisco DNA Center verwendet, um strukturierte JSON-Ereignisse in Echtzeit direkt an Google SecOps zu senden.
Übersicht
Cisco DNA Center unterstützt Webhook-Benachrichtigungen für die Echtzeitübermittlung von Ereignissen. Diese Option bietet strukturierte JSON-Nutzlasten mit umfassendem Ereigniskontext und stellt Ereignisse direkt an Google SecOps bereit, ohne dass Bindplane als Vermittler erforderlich ist.
Google SecOps-Webhook-Feed konfigurieren
- Rufen Sie in Google SecOps die SIEM-Einstellungen > Feeds auf.
- Klicken Sie auf + Neuen Feed hinzufügen.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B.
Cisco DNA Center Webhook. - Wählen Sie Webhook als Quelltyp aus.
- Wählen Sie Cisco DNA Center Platform als Log type (Logtyp) aus.
- Klicken Sie auf Weiter.
- Geben Sie Werte für die folgenden Eingabeparameter an:
- Trennzeichen für Aufteilung: Optional
\n. - Asset-Namespace: Der Asset-Namespace.
- Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll.
- Trennzeichen für Aufteilung: Optional
- Klicken Sie auf Weiter.
- Prüfen Sie die Feedkonfiguration und klicken Sie auf Senden.
- Klicken Sie auf Geheimen Schlüssel generieren, um einen geheimen Schlüssel zur Authentifizierung dieses Feeds zu generieren.
- Kopieren Sie den geheimen Schlüssel und speichern Sie ihn, da Sie ihn nicht noch einmal aufrufen können.
- Wechseln Sie zum Tab Details.
- Kopieren Sie die Feed-Endpunkt-URL aus dem Feld Endpoint Information (Endpunktinformationen).
- Klicken Sie auf Fertig.
API-Schlüssel für den Webhook-Feed erstellen
- Rufen Sie in der Google Cloud Console die Seite Anmeldedaten auf.
- Klicken Sie auf Anmeldedaten erstellen und wählen Sie dann API-Schlüssel aus.
- Schränken Sie den Zugriff des API-Schlüssels auf die Google SecOps API ein.
Webhook-Ziel in Cisco DNA Center konfigurieren
- Melden Sie sich in der Cisco DNA Center Platform an.
- Gehen Sie zu System> Einstellungen> Externe Dienste> Ziele> Webhook.
- Klicken Sie auf + Hinzufügen, um ein neues Webhook-Ziel zu erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie einen aussagekräftigen Namen ein, z. B.
Google SecOps Webhook. - Beschreibung: Geben Sie eine Beschreibung für den Webhook ein.
- URL: Geben Sie die Google SecOps-Webhook-Endpunkt-URL aus dem vorherigen Schritt ein.
- Methode: Wählen Sie POST aus.
- Zertifikat vertrauen: Wählen Sie Nein aus, wenn Sie selbst signierte Zertifikate verwenden.
- Header: Fügen Sie die erforderlichen Header hinzu:
- Inhaltstyp:
application/json - X-goog-api-key: Ihr Google Cloud API-Schlüssel
- X-Webhook-Access-Key: Ihr geheimer Schlüssel für den Google SecOps-Feed
- Inhaltstyp:
- Name: Geben Sie einen aussagekräftigen Namen ein, z. B.
- Klicken Sie auf Verbindung testen, um die Verbindung zu überprüfen.
- Klicken Sie auf Speichern.
Ereignisse für Webhook-Benachrichtigungen abonnieren
- Klicken Sie in Cisco DNA Center auf Platform > Developer Toolkit > Event Notifications (Plattform > Entwicklertools > Ereignisbenachrichtigungen).
- Klicken Sie auf + Abonnieren.
- Geben Sie die folgenden Konfigurationsdetails an:
- Abonnementname: Geben Sie einen aussagekräftigen Namen ein, z. B.
Google SecOps Events. - Anschlusstyp: Wählen Sie REST-Endpunkt aus.
- Ziel: Wählen Sie das im vorherigen Schritt erstellte Webhook-Ziel aus.
- Abonnementname: Geben Sie einen aussagekräftigen Namen ein, z. B.
- Wählen Sie die Ereignistypen aus, die Sie beobachten möchten:
- Netzwerkereignisse: Gerät nicht erreichbar, Schnittstelle nicht verfügbar, Konfigurationsänderungen.
- Sicherheitsereignisse: Verstöße gegen Sicherheitsrichtlinien, fehlgeschlagene Authentifizierungen.
- Systemereignisse: Plattformereignisse, Softwareupdates, Wartung.
- Assurance-Ereignisse: Leistungseinbußen, Konnektivitätsprobleme.
- Konfigurieren Sie bei Bedarf Ereignisfilter:
- Schweregrad: Wählen Sie den minimalen Schweregrad aus (z. B. P1, P2).
- Domain (Domain): Filtern Sie nach bestimmten Domains, z. B. Connectivity (Verbindung) oder Performance (Leistung).
- Klicken Sie auf Abonnieren.
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
| Kategorie | security_result.severity_details | Direkt aus dem Feld category im Rohlog zugeordnet. |
| ciscoDnaEventLink | target.url | Direkt aus dem Feld ciscoDnaEventLink im Rohlog zugeordnet. |
| date_time | metadata.event_timestamp | Aus der Roh-Lognachricht mit dem Grok-Muster extrahiert und in das Zeitstempelformat konvertiert. |
| details.Assurance_Issue_Category | security_result.about.resource.attribute.labels[].value | Direkt aus dem Feld details.Assurance_Issue_Category im Rohlog zugeordnet. Der Schlüssel für dieses Label ist „Assurance_Issue_Category“. |
| details.Assurance_Issue_Details | security_result.summary | Direkt aus dem Feld details.Assurance_Issue_Details im Rohlog zugeordnet. |
| details.Assurance_Issue_Name | security_result.about.resource.attribute.labels[].value | Direkt aus dem Feld details.Assurance_Issue_Name im Rohlog zugeordnet. Der Schlüssel für dieses Label ist „Assurance_Issue_Name“. |
| details.Assurance_Issue_Priority | security_result.about.resource.attribute.labels[].value | Direkt aus dem Feld details.Assurance_Issue_Priority im Rohlog zugeordnet. Der Schlüssel für dieses Label ist „Assurance_Issue_Priority“. |
| details.Assurance_Issue_Status | security_result.about.resource.attribute.labels[].value | Direkt aus dem Feld details.Assurance_Issue_Status im Rohlog zugeordnet. Der Schlüssel für dieses Label ist „Assurance_Issue_Status“. |
| details.Device | target.ip ODER target.hostname | Wird aus dem Feld details.Device im Rohlog zugeordnet. Wenn der Wert eine IP-Adresse ist, wird er target.ip zugeordnet, andernfalls target.hostname. |
| dnacIp | target.ip | Direkt aus dem Feld dnacIp im Rohlog, sofern es sich um eine IP-Adresse handelt. |
| Domain | additional.fields[].value.string_value | Direkt aus dem Feld domain im Rohlog zugeordnet. Der Schlüssel für dieses Feld ist „domain“. |
| eventId | metadata.product_event_type | Direkt aus dem Feld eventId im Rohlog zugeordnet. |
| instanceId | target.resource.product_object_id | Direkt aus dem Feld instanceId im Rohlog zugeordnet. |
| Name | target.resource.attribute.labels[].value | Direkt aus dem Feld name im Rohlog zugeordnet. Der Schlüssel für dieses Label ist „name“. |
| Namespace | target.namespace | Direkt aus dem Feld namespace im Rohlog zugeordnet. |
| network.deviceId | target.asset.asset_id | Direkt aus dem Feld network.deviceId im Rohlog zugeordnet und mit „deviceId: “ versehen. |
| Hinweis | additional.fields[].value.string_value | Direkt aus dem Feld note im Rohlog zugeordnet. Der Schlüssel für dieses Feld ist „note“. |
| metadata.event_type | Wird anhand der Felder has_principal, has_target und userId bestimmt. Mögliche Werte: NETWORK_CONNECTION, USER_UNCATEGORIZED, STATUS_UPDATE, GENERIC_EVENT. |
|
| is_alert | „True“, wenn der Schweregrad 0 oder 1 ist, andernfalls „False“. | |
| is_significant | „True“, wenn der Schweregrad 0 oder 1 ist, andernfalls „False“. | |
| die Ausprägung | Wird verwendet, um den Wert von security_result.severity, is_alert und is_significant zu bestimmen. |
|
| source | target.resource.attribute.labels[].value | Direkt aus dem Feld source im Rohlog zugeordnet. Der Schlüssel für dieses Label ist „source“. |
| src_ip | principal.ip | Aus der Roh-Log-Nachricht mit dem Grok-Muster extrahiert. |
| subDomain | additional.fields[].value.string_value | Direkt aus dem Feld subDomain im Rohlog zugeordnet. Der Schlüssel für dieses Feld ist „subDomain“. |
| tntId | target.resource.attribute.labels[].value | Direkt aus dem Feld tntId im Rohlog zugeordnet. Der Schlüssel für dieses Label ist „tntId“. |
| Typ | target.resource.attribute.labels[].value | Direkt aus dem Feld type im Rohlog zugeordnet. Der Schlüssel für dieses Label ist „type“. |
| userId | target.user.userid | Direkt aus dem Feld userId im Rohlog zugeordnet. |
| Version | metadata.product_version | Direkt aus dem Feld version im Rohlog zugeordnet. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten