DNSFilter-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie DNSFilter so konfigurieren, dass Logs über Webhooks über das HTTP Event Collector-Protokoll (HEC) an Google Security Operations gesendet werden.

DNSFilter ist eine KI-basierte DNS-Sicherheitslösung, die Bedrohungsschutz, Inhaltsfilterung und Netzwerksichtbarkeit bietet. Mit der Funktion „Datenexport“ können DNS-Abfragelogdaten automatisch über die HEC-API (HTTP Event Collector) auf SIEM-Plattformen exportiert werden. So werden Sicherheitsmonitoring in Echtzeit und Compliance-Berichte unterstützt.

Hinweise

Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:

  • Eine Google SecOps-Instanz
  • Zugriff auf das DNSFilter-Dashboard mit Administratorberechtigungen oder höher
  • Das Add-on DNSFilter Data Export ist aktiviert (als kostenpflichtiges Add-on für Basic-, Pro- und Enterprise-Abos verfügbar).
  • Zugriff auf die Google Cloud Console (zum Erstellen von API-Schlüsseln)

Webhook-Feed in Google SecOps erstellen

Feed erstellen

  1. Rufen Sie die SIEM-Einstellungen > Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Klicken Sie auf der nächsten Seite auf Einen einzelnen Feed konfigurieren.
  4. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. DNSFilter HEC Feed.
  5. Wählen Sie Webhook als Quelltyp aus.
  6. Wählen Sie DNSFILTER als Logtyp aus.
  7. Klicken Sie auf Weiter.
  8. Geben Sie Werte für die folgenden Eingabeparameter an:
    • Trennzeichen für Aufteilung (optional): Lassen Sie das Feld leer, da jede HEC-Anfrage korrekt formatierte Ereignisse enthält.
    • Asset-Namespace: Der Asset-Namespace
    • Labels für Datenaufnahme: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll
  9. Klicken Sie auf Weiter.
  10. Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.

Secret-Schlüssel generieren und speichern

Nachdem Sie den Feed erstellt haben, müssen Sie einen geheimen Schlüssel für die Authentifizierung generieren:

  1. Klicken Sie auf der Seite mit den Feeddetails auf Secret Key generieren.
  2. In einem Dialogfeld wird der geheime Schlüssel angezeigt.
  3. Kopieren und speichern Sie den geheimen Schlüssel sicher.

Feed-Endpunkt-URL abrufen

  1. Rufen Sie den Tab Details des Feeds auf.
  2. Kopieren Sie im Abschnitt Endpunktinformationen die Feed-Endpunkt-URL.
  3. Das URL-Format lautet:

    https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate
    

    oder

    https://<REGION>-malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate
    
  4. Speichern Sie diese URL für die nächsten Schritte.

  5. Klicken Sie auf Fertig.

Google Cloud API-Schlüssel erstellen

Für Google SecOps ist ein API-Schlüssel für die Authentifizierung erforderlich. Erstellen Sie in der Google Cloud Console einen eingeschränkten API-Schlüssel.

API-Schlüssel erstellen

  1. Rufen Sie die Seite „Anmeldedaten“ in der Google Cloud Console auf.
  2. Wählen Sie Ihr Projekt aus (das Projekt, das mit Ihrer Google SecOps-Instanz verknüpft ist).
  3. Klicken Sie auf Anmeldedaten erstellen > API-Schlüssel.
  4. Ein API-Schlüssel wird erstellt und in einem Dialogfeld angezeigt.
  5. Klicken Sie auf API-Schlüssel bearbeiten, um den Schlüssel einzuschränken.

API-Schlüssel einschränken

  1. Gehen Sie auf der Seite mit den Einstellungen für API-Schlüssel so vor: Name: Geben Sie einen aussagekräftigen Namen ein, z. B. Google SecOps DNSFilter Webhook API Key.
  2. Gehen Sie unter API-Einschränkungen so vor:
    1. Wählen Sie Schlüssel einschränken aus.
    2. Suchen Sie im Drop-down-Menü APIs auswählen nach Google SecOps API (oder Chronicle API) und wählen Sie die Option aus.
  3. Klicken Sie auf Speichern.
  4. Kopieren Sie den API-Schlüsselwert aus dem Feld API-Schlüssel oben auf der Seite.
  5. Speichern Sie den API-Schlüssel sicher.

DNSFilter-Datenexport konfigurieren

HEC-Endpunkt-URL erstellen

  • Kombinieren Sie die Google SecOps-Endpunkt-URL und den API-Schlüssel, um die HEC-URL zu erstellen:

    <ENDPOINT_URL>?key=<API_KEY>
    
  • Beispiel:

    https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=AIzaSyD...
    

Datenexport in DNSFilter konfigurieren

  1. Melden Sie sich im DNSFilter-Dashboard an.
  2. Klicken Sie auf Tools > „Datenexport“.
  3. Wählen Sie im Bereich Exportziel die Option HTTP Event Collector (HEC) aus.
  4. Geben Sie im Abschnitt HEC-Konfiguration Folgendes ein:
    • HTTP Event Collector URL (URL des HTTP Event Collector): Fügen Sie die vollständige Endpunkt-URL mit API-Schlüssel aus dem vorherigen Schritt ein.
    • Aktives Event Collector-Token: Fügen Sie den geheimen Schlüssel ein, der beim Erstellen des Google SecOps-Feeds generiert wurde.
  5. Klicken Sie auf Konfiguration speichern.
  6. DNSFilter testet die Verbindung und zeigt eine Erfolgsmeldung an, wenn die Konfiguration korrekt ist.

Datenaufnahme prüfen

  1. Rufen Sie im DNSFilter-Dashboard Tools > Datenexport auf.
  2. Prüfen Sie, ob der Status als Aktiv oder Verbunden angezeigt wird.
  3. Rufen Sie in der Google SecOps Console die SIEM-Einstellungen > Feeds auf.
  4. Suchen Sie Ihren DNSFilter-Feed und prüfen Sie, ob der Status als Aktiv angezeigt wird.
  5. Klicken Sie auf den Feednamen, um Details aufzurufen.
  6. Prüfen Sie den Messwert Logs Ingested (Aufgenommene Logs), um zu bestätigen, dass Daten übertragen werden.
  7. Wenn Sie nach DNSFilter-Ereignissen suchen möchten, rufen Sie Suchen auf und führen Sie die folgende Abfrage aus:

    metadata.log_type = "DNSFILTER"
    

Referenz zu Authentifizierungsmethoden

Google SecOps-Webhook-Feeds unterstützen mehrere Authentifizierungsmethoden. Bei der DNSFilter-HEC-Integration wird die Hybridmethode verwendet.

Verwendete Methode: Hybrid (URL + Header)

DNSFilter sendet den API-Schlüssel in der URL und den geheimen Schlüssel (HEC-Token) im Anfrageheader.

  • Anfrageformat:

    POST <ENDPOINT_URL>?key=<API_KEY> HTTP/1.1
    Content-Type: application/json
    Authorization: Splunk <SECRET_KEY>
    
    {
        "event": "data",
        "timestamp": "2025-01-15T10:30:00Z"
    }
    

Alternative Methode: Benutzerdefinierte Header

Wenn Sie eine benutzerdefinierte Anwendung so konfigurieren, dass Protokolle an Google SecOps gesendet werden, sollten Sie diese Methode verwenden, um die Sicherheit zu erhöhen.

  • Anfrageformat:

    POST <ENDPOINT_URL> HTTP/1.1
    Content-Type: application/json
    x-goog-chronicle-auth: <API_KEY>
    x-chronicle-auth: <SECRET_KEY>
    
    {
        "event": "data",
        "timestamp": "2025-01-15T10:30:00Z"
    }
    
  • Vorteile:

    • API-Schlüssel und Secret sind in der URL nicht sichtbar
    • Sicherer (Header werden nicht in Webserver-Zugriffslogs protokolliert)
    • Bevorzugte Methode, wenn sie vom Anbieter unterstützt wird

Namen von Authentifizierungsheadern

Google SecOps akzeptiert die folgenden Headernamen für die Authentifizierung:

  • Für API-Schlüssel:

    • x-goog-chronicle-auth (empfohlen)
    • X-Goog-Chronicle-Auth (keine Unterscheidung zwischen Groß- und Kleinschreibung)
  • Für den geheimen Schlüssel:

    • x-chronicle-auth (empfohlen)
    • X-Chronicle-Auth (keine Unterscheidung zwischen Groß- und Kleinschreibung)
    • Authorization: Splunk <TOKEN> (HEC-Kompatibilität)

Webhook-Limits und Best Practices

Anfragelimits

Limit Wert
Maximale Anfragengröße 4 MB
Maximale Abfragen pro Sekunde 15.000
Zeitlimit für Anfragen 30 Sekunden
Wiederholungsverhalten Automatisch mit exponentiellem Backoff

Best Practices

  • Exportstatus im Blick behalten: Überprüfen Sie regelmäßig den Datenexportstatus im DNSFilter-Dashboard, um einen kontinuierlichen Datenfluss sicherzustellen.
  • API-Schlüsselrotation: Rotieren Sie Ihren Google Cloud API-Schlüssel regelmäßig aus Sicherheitsgründen.
  • Verwaltung von geheimen Schlüsseln: Speichern Sie den geheimen Schlüssel von Google SecOps sicher und generieren Sie ihn neu, wenn er kompromittiert wurde.
  • Datenaufbewahrung: Konfigurieren Sie geeignete Datenaufbewahrungsrichtlinien sowohl in DNSFilter als auch in Google SecOps.
  • Benachrichtigungskonfiguration: Richten Sie Benachrichtigungen in Google SecOps für kritische DNS-Sicherheitsereignisse ein.

Fehlerbehebung

Verbindungstest schlägt fehl

Wenn der Test der DNSFilter-Datenexportkonfiguration fehlschlägt:

  1. Prüfen Sie, ob die HEC-URL korrekt ist und den API-Schlüsselparameter enthält.
  2. Prüfen Sie, ob der geheime Schlüssel (HEC-Token) korrekt kopiert wurde und keine zusätzlichen Leerzeichen enthält.
  3. Prüfen Sie, ob für den Google Cloud-API-Schlüssel der Chronicle API-Zugriff aktiviert ist.
  4. Prüfen Sie, ob der Google SecOps-Feed den Status Aktiv hat.
  5. Prüfen Sie die Netzwerkverbindung von DNSFilter zu Google Cloud-Endpunkten.

In Google SecOps werden keine Daten angezeigt.

Wenn die Verbindung hergestellt wird, aber keine Daten angezeigt werden:

  1. Prüfen Sie, ob in Ihrer DNSFilter-Bereitstellung DNS-Abfragen generiert werden.
  2. Prüfen Sie das DNSFilter-Abfragelog, um zu bestätigen, dass der Traffic verarbeitet wird.
  3. Suchen Sie in Google SecOps nach metadata.log_type = "DNSFILTER", um die Aufnahme zu überprüfen.
  4. Prüfen Sie den Messwert Logs Ingested (Aufgenommene Logs) im Feed in Google SecOps.
  5. Prüfen Sie die Fehlerprotokolle des Feeds auf Fehler bei der Aufnahme.

Fehlermeldung beim Datenexport

Häufige Fehlerursachen:

  • Ungültige Anmeldedaten: Der API-Schlüssel oder der geheime Schlüssel ist falsch oder abgelaufen.
  • Falsche Region: Die Region der Google SecOps-Endpunkt-URL stimmt nicht mit Ihrer Instanz überein.
  • Berechtigungen: Für den API-Schlüssel ist kein Zugriff auf die Chronicle API aktiviert.
  • Netzwerkprobleme: Firewall oder Proxy blockieren ausgehende HTTPS-Verbindungen.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
Zeit metadata.collected_timestamp Konvertiert mit dem Datumsformat: JJJJ-MM-TT HH:mm:ss Z UTC
metadata.event_type Auf „STATUS_UPDATE“ gesetzt, wenn „principal_ip_present“, „principal_hostname_present“ oder „principal_mac_present“ auf „true“ gesetzt ist, andernfalls „GENERIC_EVENT“
question_type network.dns.questions „question_type“ wurde mithilfe der DNS-Eintragstypzuordnung in „question.type“ konvertiert und dann in das Array zusammengeführt.
Code network.dns.response_code Konvertiert mithilfe der Zuordnung von DNS-Antwortcodes
Protokoll network.ip_protocol Konvertiert mithilfe der IP-Protokollzuordnung
Client principal.hostname Wert direkt kopiert
request_address, ip4, ip6, source_addresses principal.ip Zusammengeführt aus „request_address“ (extrahierte IP), „ip4“ (extrahierte IP), „ip6“ (extrahierte IP) und aus dem Array „source_addresses“ extrahierten IPs
Region principal.location.country_or_region Wert direkt kopiert
clientMac principal.mac Wert wird direkt kopiert, wenn er mit dem MAC-Regex übereinstimmt
clientID principal.resource.product_object_id Wert direkt kopiert
Nutzername principal.user.user_display_name Wert direkt kopiert
user_id principal.user.userid Wert direkt kopiert
code, original_code, clientType, collection, network_name, networkID, collectionID, policy, policyID, scheduled_policy, scheduled_policyID, sec_cats, sec_allow_cats, block_cats, block_allow_cats, threat, allowed, method, organization, organizationID, applicationID, application_name, application_categoryID, application_category_name security_result.detection_fields Zusammengeführte Labels aus verschiedenen Quellfeldern als Schlüssel/Wert-Paare
Domain target.administrative_domain Wert direkt kopiert
fqdn target.domain.name Wert direkt kopiert
metadata.product_name Auf „DNSFILTER“ festgelegt
metadata.vendor_name Auf „DNSFILTER“ festgelegt

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten