Raccogli i log IOC di DHS

Parser Version: 1.0

Supportato in:

Questo documento spiega come importare i log IOC del Dipartimento per la sicurezza interna (DHS) in Google Security Operations utilizzando Google Cloud Storage V2.

L'DHS distribuisce la threat intelligence tramite il programma Automated Indicator Sharing (AIS), fornendo indicatori di compromissione come indirizzi IP, domini, URL e hash di file dannosi in formato STIX/TAXII. Poiché AIS fornisce i dati IOC come bundle STIX scaricabili, devi esportare questi file 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 cloud Google Cloud con l'API Storage Cloud Storage abilitata
  • Autorizzazioni per creare e gestire bucket GCS
  • Autorizzazioni per gestire le policy IAM nei bucket GCS
  • Un account partecipante AIS DHS attivo con accesso al server TAXII o al portale AIS
  • File del certificato client e della chiave privata AIS per l'autenticazione del server TAXII

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 dhs-ioc-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 degli accessi Uniforme (consigliato)
    Strumenti di protezione (Facoltativo) Abilita il controllo delle versioni degli oggetti o la policy di conservazione
  6. Fai clic su Crea.

Configura un'esportazione automatica dei dati IOC di DHS in GCS

L'DHS distribuisce i dati IOC in formato STIX tramite il server AIS TAXII. Configura una pipeline automatizzata per estrarre gli indicatori in base a una pianificazione e scriverli direttamente in GCS.

Utilizza Cloud Build attivato da Cloud Scheduler per eseguire un job in container che recupera i bundle STIX dal server AIS TAXII e li scrive in GCS.

  1. Archivia il certificato e la chiave del client AIS in Secret Manager:

    1. Nella console Google Cloud, vai a Sicurezza > Secret Manager.
    2. Fai clic su Crea secret.
    3. Crea due secret:
      • Nome: ais-client-cert, Valore: contenuti del file PEM del certificato client AIS.
      • Nome: ais-client-key, Valore: contenuti del file PEM della chiave privata del client AIS.
  2. 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 dhs-ioc-export-sa
      • Descrizione service account: inserisci Service account for automated DHS IOC 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)
      • Secret Manager Secret Accessor (per leggere i certificati AIS)
    6. Fai clic su Fine.
  3. 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
            # Retrieve AIS certificates from Secret Manager
            gcloud secrets versions access latest --secret=ais-client-cert > /tmp/ais-cert.pem
            gcloud secrets versions access latest --secret=ais-client-key > /tmp/ais-key.pem
            # Fetch IOC data from AIS TAXII server
            TIMESTAMP=$(date -u +%Y%m%d_%H%M%S)
            FROM=$(date -u -d '-60 minutes' +"%Y-%m-%dT%H:%M:%SZ")
            curl -s --cert /tmp/ais-cert.pem --key /tmp/ais-key.pem \
              -H "Accept: application/taxii+json;version=2.1" \
              "https://ais2.cisa.dhs.gov/taxii2/ais2/collections/${_COLLECTION_ID}/objects?added_after=$${FROM}" \
              -o /workspace/dhs_ioc_$${TIMESTAMP}.json
            # Upload to GCS
            gcloud storage cp /workspace/dhs_ioc_$${TIMESTAMP}.json \
              gs://${_BUCKET_NAME}/ioc-data/
            # Clean up certificates
            rm -f /tmp/ais-cert.pem /tmp/ais-key.pem
    substitutions:
      _BUCKET_NAME: 'dhs-ioc-logs'
      _COLLECTION_ID: 'YOUR_AIS_COLLECTION_ID'
    
  4. Crea un job Cloud Scheduler per attivare la build:

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

      Impostazione Valore
      Nome dhs-ioc-export-hourly
      Regione Seleziona la stessa regione del bucket GCS
      Frequenza 0 * * * * (ogni ora)
      Fuso orario UTC (consigliato)
      Tipo di target HTTP
      URL https://cloudbuild.googleapis.com/v1/projects/YOUR_PROJECT_ID/builds
      Metodo HTTP POST
      Intestazione autorizzazione Aggiungi un token OAuth
      Service account dhs-ioc-export-sa@YOUR_PROJECT_ID.iam.gserviceaccount.com
    4. Fai clic su Crea.

Opzione 2: VM Compute Engine con cron (alternativa)

Se Cloud Build non è disponibile, utilizza una piccola VM Compute Engine con un cron job per estrarre i dati IoC e scriverli in GCS.

  1. Crea una VM di Compute Engine:

    1. Nella console GCP, vai a Compute Engine > Istanze VM.
    2. Fai clic su Crea istanza.
    3. Seleziona un tipo di macchina piccolo (ad esempio e2-micro).
    4. In Identità e accesso API, seleziona un account di servizio con il ruolo Storage Object Admin.
    5. Fai clic su Crea.
  2. Accedi tramite SSH alla VM e crea uno script di esportazione (/opt/dhs-ioc/export.sh):

    #!/usr/bin/env bash
    set -euo pipefail
    
    TAXII_URL="https://ais2.cisa.dhs.gov/taxii2"
    API_ROOT="ais2"
    COLLECTION_ID="YOUR_AIS_COLLECTION_ID"
    CERT="/etc/ais/client-cert.pem"
    KEY="/etc/ais/client-key.pem"
    BUCKET="dhs-ioc-logs"
    
    TIMESTAMP=$(date -u +%Y%m%d_%H%M%S)
    FROM=$(date -u -d '-60 minutes' +"%Y-%m-%dT%H:%M:%SZ")
    
    curl -s --cert "$CERT" --key "$KEY" \
      -H "Accept: application/taxii+json;version=2.1" \
      "${TAXII_URL}/${API_ROOT}/collections/${COLLECTION_ID}/objects?added_after=${FROM}" \
      -o "/tmp/dhs_ioc_${TIMESTAMP}.json"
    
    gcloud storage cp "/tmp/dhs_ioc_${TIMESTAMP}.json" "gs://${BUCKET}/ioc-data/"
    rm -f "/tmp/dhs_ioc_${TIMESTAMP}.json"
    
  3. Rendi eseguibile lo script e pianificalo con cron:

    chmod +x /opt/dhs-ioc/export.sh
    (crontab -l ; echo "0 * * * * /opt/dhs-ioc/export.sh >> /var/log/dhs-ioc-export.log 2>&1") | crontab -
    

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, DHS IOC Feed).
  5. Seleziona Google Cloud Storage V2 come Tipo di origine.
  6. Seleziona Department of Homeland Security come Tipo di log.
  7. Fai clic su Ottieni service account.
  8. Verrà visualizzato un indirizzo email del account di servizio univoco, 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 tuo bucket GCS.

  1. Vai a Cloud Storage > Bucket.
  2. Fai clic sul nome del bucket (ad esempio dhs-ioc-logs).
  3. Vai alla scheda Autorizzazioni.
  4. Fai clic su Concedi l'accesso.
  5. Fornisci i seguenti dettagli di configurazione:
    • Aggiungi entità: incolla l'email dell'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.

Configura 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, DHS IOC Feed).
  5. Seleziona Google Cloud Storage V2 come Tipo di origine.
  6. Seleziona Department of Homeland Security come Tipo di log.
  7. Fai clic su Avanti.
  8. Specifica i valori per i seguenti parametri di input:

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

      gs://dhs-ioc-logs/ioc-data/
      
      • Sostituisci dhs-ioc-logs con il nome del tuo bucket GCS.
      • Sostituisci ioc-data con il percorso del prefisso configurato.
    • Opzione di eliminazione dell'origine: 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 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 Logica
entity.application Nome o identificatore dell'applicazione
observable_id entity.asset.asset_id Identificatore asset
object_id entity.asset.product_object_id Identificatore dell'oggetto prodotto
hash_value entity.file.md5 Hash MD5 del file
hash_value entity.file.sha1 Hash SHA1 del file
hash_value entity.file.sha256 Hash SHA256 del file
file_size entity.file.size Dimensioni del file in byte
fuzzy_hash_value entity.file.ssdeep Hash SSDEEP del file
file_path entity.file.full_path Percorso file completo
ip_address_value entity.ip Indirizzo IP
country entity.location.country_or_region Paese o regione
administrativeArea entity.location.state Stato o provincia
porta entity.port Numero porta
file_name_label entity.resource.attribute.labels Etichette degli attributi per la risorsa
url entity.url URL
organisationInfo entity.user.department Reparto
email_address, email entity.user.email_addresses Indirizzi email
organisationName entity.user.userid ID utente
ioc.domain_and_ports.domain Nome di dominio
indicator_type, confidence_value ioc.feed_name Nome feed
ip_address_value, target_ip ioc.ip_and_ports.ip_address Indirizzo IP
porta ioc.ip_and_ports.ports Porte
description, desc1, ttp_description metadata.description Descrizione
entity_type metadata.entity_type Tipo di entità
start_time metadata.interval.start_time Ora di inizio dell'intervallo
object_id metadata.product_entity_id Identificatore entità prodotto
sightings_count_label metadata.source_labels Etichette delle origini
security_result_data, ttp_security_result metadata.threat Informazioni sulle minacce
metadata.vendor_name Nome del fornitore o dell'azienda
metadata.product_name Nome del prodotto
address_label, subject_label, file_label security_result.about.labels Etichette relative al risultato di sicurezza
indicator_type security_result_data.category_details Dettagli categoria
desc1 security_result_data.description Descrizione
confidence_value security_result_data.severity Livello di gravità
host, domain_name target.hostname Nome host di destinazione
target_ip target.ip Indirizzo IP di destinazione
domain_name target.url URL target
malware_category ttp_security_result.category_details Dettagli della categoria per TTP
ttp_id_label ttp_security_result.detection_fields Campi di rilevamento per TTP
ttp_description ttp_security_result.description Descrizione per TTP
ttp_summary ttp_security_result.summary Riepilogo per TTP

Log delle modifiche

Visualizza il log delle modifiche per questo parser

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