Raccogli i log DNS passivi

Supportato in:

Questo documento spiega come importare i log DNS passivi in Google Security Operations utilizzando Google Cloud Storage V2.

Il DNS passivo è un'origine dati di intelligence DNS che acquisisce i record di risoluzione DNS storici per l'analisi delle minacce e l'indagine sui domini. Poiché i dati vengono in genere raccolti e archiviati come file, devi caricarli in un bucket Google Cloud Storage (GCS) e poi configurare un feed Google SecOps per importarli.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Un'istanza Google SecOps.
  • Un progetto Google Cloud con l'API Cloud Storage abilitata.
  • Autorizzazioni per creare e gestire bucket GCS.
  • Autorizzazioni per gestire le policy IAM nei bucket GCS.
  • Accesso ai file di dati DNS passivi (ad esempio DNSDB, Farsight o un altro provider DNS passivo).
  • Dati DNS passivi esportati in un formato supportato (ad esempio JSON o CSV).

Crea un bucket Google Cloud Storage

  1. Vai alla console Google Cloud.
  2. Seleziona il tuo progetto o creane uno nuovo.
  3. Nel menu di navigazione, vai a Cloud Storage > Bucket.
  4. Fai clic su Crea bucket.
  5. Fornisci i seguenti dettagli di configurazione:

    Impostazione Valore
    Assegna un nome al bucket Inserisci un nome univoco globale (ad esempio passive-dns-logs).
    Tipo di località Scegli in base alle tue esigenze (regione singola, a due regioni, multiregionale)
    Località Seleziona la località più vicina alla tua istanza Google SecOps (ad esempio us-central1).
    Classe di archiviazione Standard (consigliato per i log a cui si accede di frequente)
    Controllo dell'accesso Uniforme (consigliato)
    Strumenti di protezione (Facoltativo) Attivare il controllo delle versioni degli oggetti o la policy di conservazione
  6. Fai clic su Crea.

Configura l'esportazione automatica dei dati DNS passivi in GCS

I dati DNS passivi sono in genere disponibili come file esportati da un fornitore di intelligence DNS (ad esempio Farsight DNSDB, DomainTools o Cisco Umbrella Investigate). Per mantenere aggiornati i dati in GCS, configura una pipeline di esportazione automatizzata utilizzando uno dei seguenti approcci.

Utilizza Cloud Build attivato da Cloud Scheduler per eseguire un job in container che recupera i dati DNS passivi dal tuo provider e li scrive in GCS.

  1. Crea un account di servizio per il job di esportazione:

    1. Nella console Google Cloud, vai a IAM e amministrazione > Service account.
    2. Fai clic su Crea account di servizio.
    3. Fornisci i seguenti dettagli di configurazione:
      • Nome del service account: inserisci passive-dns-export-sa
      • Descrizione service account: inserisci Service account for automated Passive DNS data export to GCS
    4. Fai clic su Crea e continua.
    5. Aggiungi i seguenti ruoli:
      • Storage Object Admin (per scrivere file in GCS)
      • Editor Cloud Build (per eseguire i job Cloud Build)
    6. Fai clic su Fine.
  2. Crea un file di configurazione di Cloud Build (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. Archivia la chiave API come secret di Secret Manager:

    1. Nella console Google Cloud, vai a Sicurezza > Secret Manager.
    2. Fai clic su Crea secret.
    3. Inserisci pdns-api-key come nome del secret.
    4. Inserisci la chiave API del provider DNS passivo come valore del secret.
    5. Fai clic su Crea.
  4. Crea un job Cloud Scheduler per attivare la build:

    1. Nella console di GCP, vai a Cloud Scheduler.
    2. Fai clic su Crea job.
    3. Fornisci i seguenti dettagli di configurazione:

      Impostazione Valore
      Nome passive-dns-export-daily
      Regione Seleziona la stessa regione del bucket GCS
      Frequenza 0 3 * * * (ogni giorno alle ore 03:00 UTC)
      Fuso orario UTC (consigliato)
      Tipo di target HTTP
      URL https://cloudbuild.googleapis.com/v1/projects/YOUR_PROJECT_ID/builds
      Metodo HTTP POST
      Auth header Aggiungi un token OAuth
      Service account passive-dns-export-sa@YOUR_PROJECT_ID.iam.gserviceaccount.com
    4. Fai clic su Crea.

Opzione 2: Storage Transfer Service (per i datastore on-premise)

Se i dati DNS passivi sono archiviati in un file system on-premise, utilizza Storage Transfer Service con un agente di trasferimento.

  1. Nella console di GCP, vai a Storage Transfer Service.
  2. Fai clic su Crea job di trasferimento.
  3. Seleziona File system POSIX come origine.
  4. Segui le istruzioni per installare l'agente di trasferimento di Storage su una macchina con accesso ai file di dati DNS passivi.
  5. Configura il job di trasferimento:

    Impostazione Valore
    Directory di origine Percorso della directory contenente i file di dati DNS passivi
    Bucket di destinazione passive-dns-logs
    Percorso di destinazione passive-dns/
    Programmazione Impostare una programmazione ricorrente (ad esempio, giornaliera)
  6. Fai clic su Crea.

Recuperare il account di servizio Google SecOps

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo feed.
  3. Fai clic su Configura un singolo feed.
  4. Nel campo Nome feed, inserisci un nome per il feed (ad esempio, Passive DNS Logs).
  5. Seleziona Google Cloud Storage V2 come Tipo di origine.
  6. Seleziona DNS passivo come Tipo di log.
  7. Fai clic su Ottieni service account.
  8. Verrà visualizzata un'email dell'account di servizio univoca, ad esempio:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  9. Copia questo indirizzo email per utilizzarlo nel passaggio successivo.

Concedi le autorizzazioni IAM al account di servizio Google SecOps

Il account di servizio Google SecOps deve avere il ruolo Visualizzatore oggetti Storage nel bucket GCS.

  1. Vai a Cloud Storage > Bucket.
  2. Fai clic sul nome del bucket (ad esempio passive-dns-logs).
  3. Vai alla scheda Autorizzazioni.
  4. Fai clic su Concedi l'accesso.
  5. Fornisci i seguenti dettagli di configurazione:
    • Aggiungi service account: incolla l'email del account di servizio Google SecOps (ad esempio, chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com).
    • Assegna ruoli: seleziona Visualizzatore oggetti Storage.
  6. Fai clic su Salva.

Configurare il feed Google SecOps

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo feed.
  3. Fai clic su Configura un singolo feed.
  4. Nel campo Nome feed, inserisci un nome per il feed (ad esempio, Passive DNS Logs).
  5. Seleziona Google Cloud Storage V2 come Tipo di origine.
  6. Seleziona DNS passivo come Tipo di log.
  7. Fai clic su Avanti.
  8. Specifica i valori per i seguenti parametri di input:

    • URL bucket di archiviazione: inserisci l'URI del bucket GCS:

      gs://passive-dns-logs/passive-dns/
      
      • Sostituisci passive-dns-logs con il nome del tuo bucket GCS.
      • Sostituisci passive-dns con il percorso del prefisso configurato.
    • Opzione di eliminazione della fonte: seleziona l'opzione di eliminazione in base alle tue preferenze:

      • Mai: non elimina mai i file dopo i trasferimenti (opzione consigliata per i test).
      • Elimina file trasferiti: elimina i file dopo il trasferimento riuscito.
      • Elimina file trasferiti e directory vuote: elimina i file e le directory vuote dopo il trasferimento riuscito.

    • Età massima file: includi i file modificati nell'ultimo numero di giorni (il valore predefinito è 180 giorni).

    • Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.

    • Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.

  9. Fai clic su Avanti.

  10. Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
nome host intermediary.hostname Valore copiato direttamente
timestamp_s metadata.event_timestamp Analizzato come timestamp UNIX
metadata.event_type Imposta su "NETWORK_DNS"
network.application_protocol Impostato su "DNS"
rispondi network.dns.answers.data Valore della risposta dopo la rimozione del punto finale
ttl network.dns.answers.ttl Convertito in numero intero
classe network.dns.questions.class Mappato al valore numerico (1 per IN, 3 per CH, 4 per HS)
query network.dns.questions.name Valore della query dopo la rimozione del punto finale
tipo network.dns.questions.type Mappato dal tipo (in maiuscolo) al valore numerico utilizzando la mappatura dei tipi DNS
client principal.ip Valore copiato direttamente
server target.ip Valore copiato direttamente
metadata.product_name Imposta su "DNS passivo"

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.