DNSFilter-Logs erfassen

Parserversion:1.0

Unterstützt in:

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

DNSFilter ist eine KI-gestützte DNS-Sicherheitslösung, die Bedrohungsschutz, Inhaltsfilterung und Netzwerksichtbarkeit bietet. Mit der Funktion für den Datenexport können DNS-Abfragelogdaten automatisch über die HTTP Event Collector API (HEC) an SIEM-Plattformen exportiert werden. So sind Sicherheitsmonitoring in Echtzeit und Compliance-Berichte möglich.

Hinweis

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 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 (optional): Lassen Sie das Feld leer, da jede HEC-Anfrage korrekt formatierte Ereignisse enthält.
    • Asset-Namespace: Der Asset-Namespace
    • Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll
  9. Klicken Sie auf Weiter.
  10. Prüfen Sie die Konfiguration des neuen Feeds 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 Secret-Schlüssel für die Authentifizierung generieren:

  1. Klicken Sie auf der Feed-Detailseite auf Secret-Schlüssel generieren.
  2. In einem Dialogfeld wird der Secret-Schlüssel angezeigt.
  3. Kopieren und speichern Sie den Secret-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://{region}-chronicle.googleapis.com/v1/{parent}/logs:import
    

    Dabei ist {region} die Region Ihrer Google SecOps-Instanz (z. B. us, europe oder asia-southeast1) und {parent} der Ressourcenpfad im Format projects/<PROJECT_ID>/locations/<LOCATION>/instances/<INSTANCE_ID>/logTypes/<LOG_TYPE>.

  4. Speichern Sie diese URL für die nächsten Schritte.

  5. Klicken Sie auf Fertig.

Google Cloud API-Schlüssel erstellen

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

API-Schlüssel erstellen

  1. Rufen Sie in der Google Cloud Console die Seite „Anmeldedaten“ 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 API-Schlüssel-Einstellungen so vor: Name: Geben Sie einen beschreibenden 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 diese 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 Data Export 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://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=AIzaSyD...
    

Datenexport in DNSFilter konfigurieren

  1. Melden Sie sich im DNSFilter-Dashboard an.
  2. Rufen Sie Tools > Datenexport auf.
  3. Wählen Sie im Abschnitt Exportziel die Option HTTP Event Collector (HEC) aus.
  4. Geben Sie im Abschnitt HEC-Konfiguration Folgendes ein:
    • HTTP Event Collector URL: Fügen Sie die vollständige Endpunkt-URL mit dem API-Schlüssel aus dem vorherigen Schritt ein.
    • Aktives Event Collector-Token: Fügen Sie den Secret-Schlüssel ein, der bei der Erstellung 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 die Option Tools > Datenexport auf.
  2. Prüfen Sie, ob der Status als Aktiv oder Verbunden angezeigt wird.
  3. Rufen Sie in der Google SecOps-Konsole die SIEM-Einstellungen > Feeds auf.
  4. Suchen Sie nach Ihrem 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 Aufgenommene Logs , um zu bestätigen, dass Daten übertragen werden.
  7. Wenn Sie nach DNSFilter-Ereignissen suchen möchten, rufen Sie die Suche 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 Secret-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 Logs an Google SecOps gesendet werden, verwenden Sie diese Methode, 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.
    • Höhere Sicherheit (Header werden nicht in den Zugriffsprotokollen des Webservers 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 (Groß-/Kleinschreibung wird nicht berücksichtigt)
  • Für Secret-Schlüssel :

    • x-chronicle-auth (empfohlen)
    • X-Chronicle-Auth (Groß-/Kleinschreibung wird nicht berücksichtigt)
    • Authorization: Splunk <TOKEN> (HEC-Kompatibilität)

Webhook-Limits und Best Practices

Anfragelimits

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

Best Practices

  • Exportstatus überwachen: Prüfen Sie regelmäßig den Status des Datenexports im DNSFilter-Dashboard, um einen kontinuierlichen Datenfluss zu gewährleisten.
  • API-Schlüsselrotation: Rotieren Sie Ihren Google Cloud API-Schlüssel regelmäßig aus Sicherheitsgründen.
  • Secret-Schlüssel verwalten: Speichern Sie den Google SecOps-Secret-Schlüssel sicher und generieren Sie ihn neu, wenn er kompromittiert wurde.
  • Datenaufbewahrung: Konfigurieren Sie sowohl in DNSFilter als auch in Google SecOps entsprechende Richtlinien zur Datenaufbewahrung.
  • Benachrichtigungen konfigurieren: Richten Sie in Google SecOps Benachrichtigungen für kritische DNS-Sicherheitsereignisse ein.

Fehlerbehebung

Verbindungstest schlägt fehl

Wenn der Test der DNSFilter Data Export-Konfiguration fehlschlägt, gehen Sie so vor:

  1. Prüfen Sie, ob die HEC-URL korrekt ist und den API-Schlüsselparameter enthält.
  2. Prüfen Sie, ob der Secret-Schlüssel (HEC-Token) korrekt kopiert wurde und keine zusätzlichen Leerzeichen enthält.
  3. Prüfen Sie, ob der Zugriff auf die Chronicle API für den Google Cloud API-Schlüssel 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.

Keine Daten in Google SecOps

Wenn die Verbindung hergestellt wurde, aber keine Daten angezeigt werden, gehen Sie so vor:

  1. Prüfen Sie, ob in Ihrer DNSFilter-Bereitstellung DNS-Abfragen generiert werden.
  2. Prüfen Sie im DNSFilter-Abfragelog, ob Traffic verarbeitet wird.
  3. Suchen Sie in Google SecOps nach metadata.log_type = "DNSFILTER", um die Aufnahme zu prüfen.
  4. Prüfen Sie den Messwert Aufgenommene Logs des Feeds in Google SecOps.
  5. Prüfen Sie die Fehlerprotokolle des Feeds auf Aufnahmefehler.

Datenexport gibt Fehlermeldung zurück

Häufige Fehlerursachen:

  • Ungültige Anmeldedaten: Der API-Schlüssel oder Secret-Schlüssel ist falsch oder abgelaufen.
  • Regionskonflikt: Die Region der Google SecOps-Endpunkt-URL stimmt nicht mit Ihrer Instanz überein.
  • Berechtigungen: Für den API-Schlüssel ist der Zugriff auf die Chronicle API nicht 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“ festgelegt, wenn „principal_ip_present“, „principal_hostname_present“ oder „principal_mac_present“ „true“ ist, andernfalls „GENERIC_EVENT“
question_type network.dns.questions „question_type“ mit der Zuordnung des DNS-Eintragstyps in „question.type“ konvertiert und dann in ein Array zusammengeführt
Code network.dns.response_code Mit der Zuordnung des DNS-Antwortcodes konvertiert
Protokoll network.ip_protocol Mit der Zuordnung des IP-Protokolls konvertiert
Client principal.hostname Wert direkt kopiert
request_address, ip4, ip6, source_addresses principal.ip Aus „request_address“ (extrahierte IP), „ip4“ (extrahierte IP), „ip6“ (extrahierte IP) und aus dem Array „source_addresses“ extrahierten IPs zusammengeführt
Region principal.location.country_or_region Wert direkt kopiert
clientMac principal.mac Wert direkt kopiert, wenn er mit dem MAC-regulären Ausdruck ü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 Labels aus verschiedenen Quellfeldern als Schlüssel/Wert-Paare zusammengeführt
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

Änderungsprotokoll

Änderungsprotokoll für diesen Parser ansehen

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