DNSFilter-Logs erfassen
Parserversion:1.0
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
- Rufen Sie die SIEM-Einstellungen > Feeds auf.
- Klicken Sie auf Neuen Feed hinzufügen.
- Klicken Sie auf der nächsten Seite auf Einzelnen Feed konfigurieren.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B.
DNSFilter HEC Feed. - Wählen Sie Webhook als Quelltyp aus.
- Wählen Sie DNSFILTER als Logtyp aus.
- Klicken Sie auf Weiter.
- 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
- Klicken Sie auf Weiter.
- 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:
- Klicken Sie auf der Feed-Detailseite auf Secret-Schlüssel generieren.
- In einem Dialogfeld wird der Secret-Schlüssel angezeigt.
Kopieren und speichern Sie den Secret-Schlüssel sicher.
Feed-Endpunkt-URL abrufen
- Rufen Sie den Tab Details des Feeds auf.
- Kopieren Sie im Abschnitt Endpunktinformationen die Feed-Endpunkt-URL.
Das URL-Format lautet:
https://{region}-chronicle.googleapis.com/v1/{parent}/logs:importDabei ist
{region}die Region Ihrer Google SecOps-Instanz (z. B.us,europeoderasia-southeast1) und{parent}der Ressourcenpfad im Formatprojects/<PROJECT_ID>/locations/<LOCATION>/instances/<INSTANCE_ID>/logTypes/<LOG_TYPE>.Speichern Sie diese URL für die nächsten Schritte.
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
- Rufen Sie in der Google Cloud Console die Seite „Anmeldedaten“ auf.
- Wählen Sie Ihr Projekt aus (das Projekt, das mit Ihrer Google SecOps-Instanz verknüpft ist).
- Klicken Sie auf Anmeldedaten erstellen > API-Schlüssel.
- Ein API-Schlüssel wird erstellt und in einem Dialogfeld angezeigt.
- Klicken Sie auf API-Schlüssel bearbeiten , um den Schlüssel einzuschränken.
API-Schlüssel einschränken
- 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. - Gehen Sie unter API-Einschränkungen so vor:
- Wählen Sie Schlüssel einschränken aus.
- Suchen Sie im Drop-down-Menü APIs auswählen nach Google SecOps API (oder Chronicle API) und wählen Sie diese aus.
- Klicken Sie auf Speichern.
- Kopieren Sie den API-Schlüsselwert aus dem Feld API-Schlüssel oben auf der Seite.
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
- Melden Sie sich im DNSFilter-Dashboard an.
- Rufen Sie Tools > Datenexport auf.
- Wählen Sie im Abschnitt Exportziel die Option HTTP Event Collector (HEC) aus.
- 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.
- Klicken Sie auf Konfiguration speichern.
DNSFilter testet die Verbindung und zeigt eine Erfolgsmeldung an, wenn die Konfiguration korrekt ist.
Datenaufnahme prüfen
- Rufen Sie im DNSFilter-Dashboard die Option Tools > Datenexport auf.
- Prüfen Sie, ob der Status als Aktiv oder Verbunden angezeigt wird.
- Rufen Sie in der Google SecOps-Konsole die SIEM-Einstellungen > Feeds auf.
- Suchen Sie nach Ihrem DNSFilter-Feed und prüfen Sie, ob der Status als Aktiv angezeigt wird.
- Klicken Sie auf den Feednamen, um Details aufzurufen.
- Prüfen Sie den Messwert Aufgenommene Logs , um zu bestätigen, dass Daten übertragen werden.
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:
- Prüfen Sie, ob die HEC-URL korrekt ist und den API-Schlüsselparameter enthält.
- Prüfen Sie, ob der Secret-Schlüssel (HEC-Token) korrekt kopiert wurde und keine zusätzlichen Leerzeichen enthält.
- Prüfen Sie, ob der Zugriff auf die Chronicle API für den Google Cloud API-Schlüssel aktiviert ist.
- Prüfen Sie, ob der Google SecOps-Feed den Status Aktiv hat.
- 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:
- Prüfen Sie, ob in Ihrer DNSFilter-Bereitstellung DNS-Abfragen generiert werden.
- Prüfen Sie im DNSFilter-Abfragelog, ob Traffic verarbeitet wird.
- Suchen Sie in Google SecOps nach
metadata.log_type = "DNSFILTER", um die Aufnahme zu prüfen. - Prüfen Sie den Messwert Aufgenommene Logs des Feeds in Google SecOps.
- 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