Passive DNS-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Passive DNS-Logs mit Google Cloud Storage V2 in Google Security Operations aufnehmen.

Passive DNS ist eine DNS-Informationsquelle, in der historische DNS-Auflösungsdatensätze für die Bedrohungsanalyse und Domainuntersuchung erfasst werden. Da die Daten in der Regel als Dateien erfasst und gespeichert werden, müssen Sie diese Dateien in einen Google Cloud Storage-Bucket hochladen und dann einen Google SecOps-Feed konfigurieren, um sie aufzunehmen.

Hinweis

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

  • Eine Google SecOps-Instanz.
  • Ein Google Cloud-Projekt mit aktivierter Cloud Storage API.
  • Berechtigungen zum Erstellen und Verwalten von GCS-Buckets.
  • Berechtigungen zum Verwalten von IAM-Richtlinien für GCS-Buckets.
  • Zugriff auf Passive DNS-Datendateien (z. B. DNSDB, Farsight oder ein anderer Passive DNS-Anbieter).
  • Passive DNS-Daten, die in einem unterstützten Format (z. B. JSON oder CSV) exportiert wurden.

Google Cloud Storage-Bucket erstellen

  1. Gehen Sie zur Google Cloud Console.
  2. Wählen Sie Ihr Projekt aus oder erstellen Sie ein neues.
  3. Rufen Sie im Navigationsmenü Cloud Storage > Buckets auf.
  4. Klicken Sie auf Bucket erstellen.
  5. Geben Sie die folgenden Konfigurationsdetails an:

    Einstellung Wert
    Bucket benennen Geben Sie einen global eindeutigen Namen ein, z. B. passive-dns-logs.
    Standorttyp Wählen Sie die Option aus, die am besten zu Ihren Anforderungen passt (Region, Dual-Region, Multi-Region).
    Standort Wählen Sie den Standort aus, der Ihrer Google SecOps-Instanz am nächsten ist (z. B. us-central1).
    Speicherklasse Standard (empfohlen für Logs, auf die häufig zugegriffen wird)
    Zugriffskontrolle Einheitlich (empfohlen)
    Schutzmaßnahmen Optional: Objektversionsverwaltung oder Aufbewahrungsrichtlinie aktivieren
  6. Klicken Sie auf Erstellen.

Automatischen Export von passiven DNS-Daten nach GCS konfigurieren

Passive DNS-Daten sind in der Regel als exportierte Dateien von einem DNS-Intelligence-Anbieter verfügbar (z. B. Farsight DNSDB, DomainTools oder Cisco Umbrella Investigate). Wenn Sie die Daten in GCS auf dem neuesten Stand halten möchten, konfigurieren Sie eine automatisierte Export-Pipeline mit einer der folgenden Methoden.

Mit Cloud Build, das von Cloud Scheduler ausgelöst wird, können Sie einen containerisierten Job ausführen, der passive DNS-Daten von Ihrem Anbieter abruft und in GCS schreibt.

  1. Dienstkonto für den Exportjob erstellen:

    1. Wechseln Sie in der GCP Console zu IAM & Verwaltung > Dienstkonten.
    2. Klicken Sie auf Dienstkonto erstellen.
    3. Geben Sie die folgenden Konfigurationsdetails an:
      • Name des Dienstkontos: Geben Sie passive-dns-export-sa ein.
      • Beschreibung des Dienstkontos: Geben Sie Service account for automated Passive DNS data export to GCS ein.
    4. Klicken Sie auf Erstellen und fortfahren.
    5. Fügen Sie die folgenden Rollen hinzu:
      • Storage-Objekt-Administrator (zum Schreiben von Dateien in GCS)
      • Cloud Build-Bearbeiter (zum Ausführen von Cloud Build-Jobs)
    6. Klicken Sie auf Fertig.
  2. Erstellen Sie eine Cloud Build-Konfigurationsdatei (cloudbuild.yaml):

    steps:
      - name: 'gcr.io/cloud-builders/gcloud'
        entrypoint: 'bash'
        args:
          - '-c'
          - |
            apt-get update && apt-get install -y curl jq
            # Fetch Passive DNS data from your provider
            # Replace with the actual API call for your provider
            # Example for Farsight DNSDB:
            TIMESTAMP=$(date -u +%Y%m%d_%H%M%S)
            curl -s -H "X-API-Key: $${PDNS_API_KEY}" \
              "https://api.dnsdb.info/dnsdb/v2/lookup/rrset/name/*.example.com" \
              -o /workspace/passive_dns_$${TIMESTAMP}.json
            # Upload to GCS
            gcloud storage cp /workspace/passive_dns_$${TIMESTAMP}.json \
              gs://${_BUCKET_NAME}/passive-dns/
    substitutions:
      _BUCKET_NAME: 'passive-dns-logs'
    
  3. Speichern Sie den API-Schlüssel als Secret Manager-Secret:

    1. Wechseln Sie in der GCP Console zu Sicherheit > Secret Manager.
    2. Klicken Sie auf Secret erstellen.
    3. Geben Sie pdns-api-key als Namen des Secrets ein.
    4. Geben Sie den API-Schlüssel Ihres Passive DNS-Anbieters als geheimen Wert ein.
    5. Klicken Sie auf Erstellen.
  4. Cloud Scheduler-Job erstellen, um den Build auszulösen:

    1. Rufen Sie in der GCP Console Cloud Scheduler auf.
    2. Klicken Sie auf Job erstellen.
    3. Geben Sie die folgenden Konfigurationsdetails an:

      Einstellung Wert
      Name passive-dns-export-daily
      Region Wählen Sie dieselbe Region wie für Ihren GCS-Bucket aus.
      Frequenz 0 3 * * * (täglich um 3:00 Uhr UTC)
      Zeitzone UTC (empfohlen)
      Zieltyp HTTP
      URL https://cloudbuild.googleapis.com/v1/projects/YOUR_PROJECT_ID/builds
      HTTP-Methode POST
      Auth-Header OAuth-Token hinzufügen
      Dienstkonto passive-dns-export-sa@YOUR_PROJECT_ID.iam.gserviceaccount.com
    4. Klicken Sie auf Erstellen.

Option 2: Storage Transfer Service (für lokale Datenspeicher)

Wenn Passive DNS-Daten in einem lokalen Dateisystem gespeichert sind, verwenden Sie Storage Transfer Service mit einem Transfer-Agent.

  1. Rufen Sie in der GCP Console den Storage Transfer Service auf.
  2. Klicken Sie auf Übertragung erstellen.
  3. Wählen Sie POSIX-Dateisystem als Quelle aus.
  4. Folgen Sie der Anleitung, um den Storage Transfer Agent auf einem Computer mit Zugriff auf die passiven DNS-Datendateien zu installieren.
  5. Konfigurieren Sie den Übertragungsjob:

    Einstellung Wert
    Quellverzeichnis Pfad zum Verzeichnis mit den Passiven DNS-Datendateien
    Ziel-Bucket passive-dns-logs
    Zielpfad passive-dns/
    Planen Wiederkehrenden Zeitplan festlegen (z. B. täglich)
  6. Klicken Sie auf Erstellen.

Google SecOps-Dienstkonto abrufen

  1. Rufen Sie die SIEM-Einstellungen > Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Klicken Sie auf Einzelnen Feed konfigurieren.
  4. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Passive DNS Logs.
  5. Wählen Sie Google Cloud Storage V2 als Quelltyp aus.
  6. Wählen Sie Passives DNS als Logtyp aus.
  7. Klicken Sie auf Dienstkonto abrufen.
  8. Es wird eine eindeutige E-Mail-Adresse für das Dienstkonto angezeigt, z. B.:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  9. Kopieren Sie diese E-Mail-Adresse für den nächsten Schritt.

Dem Google SecOps-Dienstkonto IAM-Berechtigungen gewähren

Das Google SecOps-Dienstkonto benötigt die Rolle Storage-Objekt-Betrachter für Ihren GCS-Bucket.

  1. Rufen Sie Cloud Storage > Buckets auf.
  2. Klicken Sie auf den Namen Ihres Buckets, z. B. passive-dns-logs.
  3. Wechseln Sie zum Tab Berechtigungen.
  4. Klicken Sie auf Zugriff erlauben.
  5. Geben Sie die folgenden Konfigurationsdetails an:
    • Hauptkonten hinzufügen: Fügen Sie die E-Mail-Adresse des Google SecOps-Dienstkontos ein (z. B. chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com).
    • Rollen zuweisen: Wählen Sie Storage-Objekt-Betrachter aus.
  6. Klicken Sie auf Speichern.

Google SecOps-Feed konfigurieren

  1. Rufen Sie die SIEM-Einstellungen > Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Klicken Sie auf Einzelnen Feed konfigurieren.
  4. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Passive DNS Logs.
  5. Wählen Sie Google Cloud Storage V2 als Quelltyp aus.
  6. Wählen Sie Passives DNS als Logtyp aus.
  7. Klicken Sie auf Weiter.
  8. Geben Sie Werte für die folgenden Eingabeparameter an:

    • Storage-Bucket-URL: Geben Sie den GCS-Bucket-URI ein:

      gs://passive-dns-logs/passive-dns/
      
      • Ersetzen Sie passive-dns-logs durch den Namen Ihres GCS-Buckets.
      • Ersetzen Sie passive-dns durch den konfigurierten Präfixpfad.
    • Option zum Löschen der Quelle: Wählen Sie die gewünschte Option zum Löschen aus:

      • Nie: Es werden niemals Dateien nach Übertragungen gelöscht (empfohlen für Tests).
      • Übertragene Dateien löschen: Löscht Dateien nach der erfolgreichen Übertragung.
      • Übertragene Dateien und leere Verzeichnisse löschen: Dateien und leere Verzeichnisse werden nach der erfolgreichen Übertragung gelöscht.

    • Höchstalter von Dateien: Dateien einschließen, die in den letzten Tagen geändert wurden (Standardwert: 180 Tage).

    • 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 neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
Hostname intermediary.hostname Wert direkt kopiert
timestamp_s metadata.event_timestamp Als UNIX-Zeitstempel geparst
metadata.event_type Auf „NETWORK_DNS“ festlegen
network.application_protocol Auf „DNS“ festgelegt
Annehmen network.dns.answers.data Wert aus der Antwort nach dem Entfernen des nachgestellten Punkts
ttl network.dns.answers.ttl In Ganzzahl konvertiert
Klasse network.dns.questions.class Numerischer Wert (1 für IN, 3 für CH, 4 für HS)
Abfrage network.dns.questions.name Wert aus der Anfrage nach dem Entfernen des nachgestellten Punkts
Typ network.dns.questions.type Über die DNS-Typzuordnung vom Typ (in Großbuchstaben) zum numerischen Wert zugeordnet
Client principal.ip Wert direkt kopiert
Server target.ip Wert direkt kopiert
metadata.product_name Auf „Passives DNS“ festgelegt

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