Analisi dei log di sicurezza in Google Cloud

Last reviewed 2024-05-21 UTC

Questa guida mostra ai professionisti della sicurezza come eseguire l'onboarding di Google Cloud log da usare nell'analisi della sicurezza. Eseguendo analisi di sicurezza, aiutano la tua azienda a prevenire, rilevare e rispondere a minacce come malware, phishing, ransomware e asset non configurati correttamente.

Questa guida illustra come:

Le informazioni contenute in questa guida fanno parte di Autonomic Security Operations di Google Cloud, che include la trasformazione delle pratiche di rilevamento e risposta e dell'analisi della sicurezza guidata dall'ingegneria per migliorare le funzionalità di rilevamento delle minacce.

In questa guida, i log forniscono l'origine dati da analizzare. Tuttavia, puoi applica i concetti di questa guida all'analisi di altri Dati correlati alla sicurezza di Google Cloud, ad esempio i risultati relativi alla sicurezza da Security Command Center. Security Command Center Premium fornisce un elenco di rilevatori gestiti aggiornati regolarmente progettati per identificare minacce, vulnerabilità e configurazioni errate all'interno dei sistemi quasi in tempo reale. Analizzando questi indicatori di Security Command Center e correlandoli con i log importati nello strumento di analisi della sicurezza, come descritto in questa guida, puoi ottenere una prospettiva più ampia delle potenziali minacce alla sicurezza.

Il seguente diagramma mostra come interagiscono le origini dati di sicurezza, gli strumenti di analisi della sicurezza e le query CSA.

Strumenti e contenuti di analisi della sicurezza.

Il diagramma inizia con le seguenti origini dati di sicurezza: log da Cloud Logging, modifiche agli asset da Cloud Asset Inventory e risultati sulla sicurezza da Security Command Center. Il diagramma quindi mostra che queste origini dati di sicurezza instradato allo strumento di analisi della sicurezza di tua scelta: Analisi dei log in Cloud Logging, BigQuery, Google Security Operations o una piattaforma SIEM di terze parti. Infine, Diagramma mostra l'utilizzo di query di annunci associati alla ricerca personalizzata con lo strumento di analisi per analizzare le query dati sulla sicurezza.

Flusso di lavoro di analisi dei log di sicurezza

Questa sezione descrive i passaggi per configurare l'analisi dei log di sicurezza in Google Cloud. Il flusso di lavoro è costituito dai tre passaggi mostrati nel seguente diagramma e descritti nei paragrafi che seguono:

I tre passaggi per configurare l'analisi dei log di sicurezza: (1) abilitare i log, (2) instradare i log e (3) analizzare i log.

  • Attiva i log: sono disponibili molti log di sicurezza in in Google Cloud. Ogni log contiene informazioni diverse che possono essere utili a specifici quesiti di sicurezza. Alcuni log, come gli audit log per le attività di amministrazione, sono abilitati per impostazione predefinita; altri devono essere abilitati manualmente perché comportano costi di importazione aggiuntivi in Cloud Logging. Pertanto, il primo passaggio del flusso di lavoro dare priorità ai log di sicurezza più pertinenti le esigenze di analisi della sicurezza e abilitare i log specifici.

    Per aiutarti a valutare i log in termini di visibilità e copertura del rilevamento delle minacce, questa guida include uno strumento di definizione dell'ambito dei log. Questo strumento mappa ogni log alle tattiche e alle tecniche di minaccia pertinenti nella matrice MITRE ATT&CK® per le aziende. Lo strumento mappa anche Rilevamento delle minacce di eventi in Security Command Center ai log su cui si basano. Puoi utilizzare lo strumento di definizione dell'ambito dei log per valutare i log indipendentemente dallo strumento di analisi che utilizzi.

  • Indirizza i log: dopo aver identificato e attivato i log da analizzare, il passaggio successivo consiste nell'indirizzare e aggregare i log della tua organizzazione, incluse eventuali cartelle, progetti e account di fatturazione contenuti. La modalità di inoltro dei log dipende dallo strumento di analisi che utilizzi.

    Questa guida descrive le destinazioni di routing dei log più comuni e mostra come utilizzare un sink aggregato di Cloud Logging per instradare i log a livello di organizzazione in un bucket di log di Cloud Logging o in un set di dati BigQuery, a seconda se scegli di usare Analisi dei log o BigQuery per l'analisi.

  • Analizza i log:dopo aver eseguito il routing dei log a uno strumento di analisi, viene è eseguire un'analisi di questi log per identificare e potenziali minacce alla sicurezza. Il modo in cui analizzi i log dipende di analisi che usi. Se usi Analisi dei log o BigQuery, puoi analizzare i log usando query SQL. Se usi Google Security Operations, devi analizzare i log utilizzando le regole YARA-L. Se utilizzi uno strumento SIEM di terze parti, utilizza il linguaggio di query specificato dallo strumento.

    In questa guida troverai le query SQL che puoi utilizzare per analizzare i log in Log Analytics o BigQuery. Le query SQL In questa guida provengono dal sito web Community Security Analytics (CSA) progetto. CSA è un insieme open source di analisi della sicurezza di base progettato per fornirti una linea di base di query e regole predefinite che puoi riutilizzare per iniziare ad analizzare i log di Google Cloud.

Le sezioni seguenti forniscono informazioni dettagliate su come configurare e applicare ogni passaggio del flusso di lavoro di analisi dei log di sicurezza.

Attiva log

Il processo di abilitazione dei log prevede i seguenti passaggi:

  1. Identifica i log necessari utilizzando lo strumento di definizione dell'ambito dei log di questa guida.
  2. Registrare il filtro di log generato dallo strumento di definizione dell'ambito dei log per utilizzarlo in un secondo momento. durante la configurazione del sink di log.
  3. Attiva il logging per ogni tipo di log o servizio Google Cloud identificato. A seconda del servizio, potrebbe essere necessario abilitare anche Audit log degli accessi ai dati, come descritto più avanti in questa sezione.

Identifica i log utilizzando lo strumento di definizione dell'ambito dei log

Per aiutarti a identificare i log che soddisfano le tue esigenze di sicurezza e conformità, puoi utilizzare lo strumento di definizione dell'ambito dei log mostrato in questa sezione. Questo strumento fornisce tabella interattiva che elenca log importanti per la sicurezza Google Cloud, inclusi Cloud Audit Logs, log di Access Transparency, log di rete, e diversi log della piattaforma. Questo strumento mappa ogni tipo di log alle seguenti aree:

Lo strumento di definizione dell'ambito dei log genera anche un filtro di log che viene visualizzato subito dopo nella tabella. Man mano che identifichi i log di cui hai bisogno, selezionali nello strumento per aggiornare automaticamente il filtro dei log.

Le seguenti brevi procedure spiegano come utilizzare lo strumento di definizione dell'ambito dei log:

  • Per selezionare o rimuovere un log nello strumento di definizione dell'ambito dei log, fai clic sul pulsante di attivazione/disattivazione Avanti al nome del log.
  • Per selezionare o rimuovere tutti i log, fai clic sul pulsante di attivazione/disattivazione accanto all'intestazione Tipo di log.
  • Per vedere quali tecniche MITRE ATT&CK possono essere monitorate da ogni tipo di log, fai clic su accanto all'intestazione Tattiche e tecniche MITRE ATT&CK.

Strumento di definizione dell'ambito dei log

Registra il filtro di log

Il filtro dei log generato automaticamente dallo strumento di definizione dell'ambito dei log contiene tutti i log selezionati nello strumento. Puoi utilizzare il filtro così com'è o perfezionarlo ulteriormente in base alle tue esigenze. Per Ad esempio, puoi includere (o escludere) le risorse solo in una o più risorse in modo programmatico a gestire i progetti. Dopo aver impostato un filtro di log che soddisfa i requisiti di log, salvare il filtro per utilizzarlo durante il routing dei log. Ad esempio, puoi salvare il filtro in un editor di testo o in una variabile di ambiente come segue:

  1. Nella sezione "Filtro log generato automaticamente" che segue lo strumento, copia il codice per il filtro log.
  2. (Facoltativo) Modifica il codice copiato per perfezionare il filtro.
  3. In Cloud Shell, crea una variabile salva il filtro di log:

    export LOG_FILTER='LOG_FILTER'
    

    Sostituisci LOG_FILTER con il codice del filtro di log.

Abilita i log della piattaforma specifici per il servizio

Per ogni log della piattaforma selezionato nello strumento di definizione dell'ambito dei log, i log devono essere abilitati (in genere a livello di risorsa) base. Ad esempio, i log di Cloud DNS sono abilitati a livello di rete VPC. Allo stesso modo, i log di flusso VPC sono abilitati a livello di subnet per tutte le VM e i log del logging delle regole firewall sono abilitati a livello di singola regola firewall.

Ogni log della piattaforma ha le proprie istruzioni su come attivare la registrazione. Tuttavia, puoi utilizzare lo strumento di definizione dell'ambito dei log per aprire rapidamente le istruzioni pertinenti per di ciascun log della piattaforma.

Per scoprire come attivare il logging per un log della piattaforma specifico:

  1. Nello strumento di definizione dell'ambito dei log, individua il log della piattaforma da attivare.
  2. Nella colonna Abilitata per impostazione predefinita, fai clic sul link Abilita che corrisponde a quel log. Il link ti reindirizza a istruzioni dettagliate su come attivare la registrazione per quel servizio.

Abilita gli audit log di accesso ai dati

Come puoi vedere nello strumento di definizione dell'ambito dei log, gli audit log di accesso ai dati di Cloud Audit Logs offrono una copertura ampia per il rilevamento delle minacce. Tuttavia, può essere molto grande. L'attivazione di questi log di controllo dell'accesso ai dati potrebbe quindi comportare costi aggiuntivi relativi all'importazione, allo stoccaggio, all'esportazione e all'elaborazione di questi log. Questa sezione spiega come abilitare questi log e presenta alcune best practice per aiutarti a trovare un compromesso tra valore e costi aggiuntivi.

Gli audit log per l'accesso ai dati, tranne quelli di BigQuery, sono disabilitati per impostazione predefinita. Per configurare gli audit log per l'accesso ai dati per servizi Google Cloud diversi da BigQuery, devi abilitarli esplicitamente utilizzando la console Google Cloud o utilizzando l'interfaccia a riga di comando Google Cloud per modificare gli oggetti dei criteri Identity and Access Management (IAM). Quando si abilita l'accesso ai dati gli audit log, puoi anche configurare i tipi di operazioni da registrare. Esistono tre tipi di audit log di accesso ai dati:

  • ADMIN_READ: registra le operazioni che leggono i metadati o la configurazione informazioni.
  • DATA_READ: registra le operazioni che leggono i dati forniti dall'utente.
  • DATA_WRITE: registra le operazioni che scrivono i dati forniti dall'utente.

Tieni presente che non puoi configurare la registrazione delle operazioni ADMIN_WRITE, ovvero quelle che scrivono metadati o informazioni di configurazione. ADMIN_WRITE le operazioni sono incluse negli audit log delle attività di amministrazione di Cloud Audit Logs e pertanto non può essere disattivato.

Gestire il volume degli audit log di accesso ai dati

Quando abiliti gli audit log di accesso ai dati, l'obiettivo è massimizzare il loro valore della sicurezza, limitandone al contempo i costi e la gestione overhead. Per raggiungere questo obiettivo, ti consigliamo di eseguire le seguenti operazioni: per filtrare i log di scarso valore e con volumi elevati:

  • Assegna la priorità ai servizi pertinenti, ad esempio quelli che ospitano carichi di lavoro, chiavi e dati sensibili. Per esempi specifici di servizi che potresti se vuoi dare la priorità ad altri, consulta la configurazione degli audit log di accesso ai dati di esempio.
  • Dai la priorità ai progetti pertinenti, ad esempio quelli che ospitano carichi di lavoro di produzione, rispetto a quelli che ospitano ambienti di sviluppo e di gestione temporanea. Per filtrare tutti i log di un determinato progetto, aggiungi la seguente espressione al filtro dei log del sink. Sostituisci PROJECT_ID con l'ID di il progetto da cui vuoi filtrare tutti i log:

    Progetto Espressione di filtro di log
    Escludi tutti i log di un determinato progetto
    NOT logName =~ "^projects/PROJECT_ID"
        
  • Assegna la priorità a un sottoinsieme di operazioni di accesso ai dati, ad esempio ADMIN_READ, DATA_READ o DATA_WRITE, per un insieme minimo di operazioni registrate. Per Ad esempio, alcuni servizi come Cloud DNS scrivono tutti e tre i tipi di operazioni, ma puoi abilitare il logging solo per le operazioni di ADMIN_READ. Dopo aver configurato uno o più di questi tre tipi di operazioni di accesso ai dati, potresti voler escludere operazioni specifiche con volumi particolarmente elevati. Puoi escludere queste operazioni ad alto volume modificando il log del sink filtro. Ad esempio, decidi di attivare la registrazione completa degli audit log di accesso ai dati, incluse le operazioni DATA_READ su alcuni servizi di archiviazione critici. Per escludere operazioni di lettura di dati ad alto traffico specifiche in questa situazione, puoi aggiungere le seguenti espressioni di filtro dei log consigliate al filtro dei log del tuo sink:

    Servizio Espressione di filtro di log
    Escludere i log ad alto volume da Cloud Storage
    NOT (resource.type="gcs_bucket" AND
        (protoPayload.methodName="storage.buckets.get" OR
        protoPayload.methodName="storage.buckets.list")) 
    Escludere i log ad alto volume da Cloud SQL
    NOT (resource.type="cloudsql_database" AND
        protoPayload.request.cmd="select") 
  • Dai la priorità alle risorse pertinenti, ad esempio quelle che ospitano i tuoi carichi di lavoro e dati sensibili. Puoi classificare le risorse in base al valore dei dati che elaborano e al rischio per la sicurezza, ad esempio se sono accessibili dall'esterno o meno. Sebbene gli audit log di accesso ai dati siano attivati per servizio, puoi escludere risorse o tipi di risorse specifici tramite il filtro dei log.

  • Escludi entità specifiche dal fatto che i loro accessi ai dati vengano registrati. Ad esempio, puoi esentare i tuoi account di test interno dalla registrazione delle operazioni. Per saperne di più, consulta Impostare le esenzioni in Accesso ai dati documentazione degli audit log.

Esempio di configurazione degli audit log di accesso ai dati

La tabella seguente fornisce una configurazione di base del log di controllo di accesso ai dati che puoi utilizzare per i progetti Google Cloud per limitare i volumi dei log e allo stesso tempo ottenere una visibilità sulla sicurezza preziosa:

Livello Servizi Tipi di audit log di accesso ai dati Tattiche MITRE ATT&CK
Autenticazione e servizi di autorizzazione IAM
Identity-Aware Proxy (IAP)1
Cloud KMS
Secret Manager
Resource Manager
ADMIN_READ
DATA_READ
Accesso alle credenziali

Escalation dei privilegi di Discovery
Servizi di archiviazione BigQuery (attivato per impostazione predefinita)
Cloud Storage1, 2
DATA_READ
DATA_WRITE
Esfiltrazione
della raccolta
Servizi di infrastruttura Compute Engine
Criterio dell'organizzazione
ADMIN_READ Discovery

1 Abilitazione degli audit log di accesso ai dati per IAP Cloud Storage può generare grandi volumi di log in caso di traffico elevato. alle risorse web protette da IAP o a Cloud Storage di oggetti strutturati.

2 L'abilitazione degli audit log di accesso ai dati per Cloud Storage potrebbe interrompere l'uso dei download da browser autenticati per contenuti di oggetti strutturati. Per ulteriori dettagli e soluzioni alternative suggerite per questo problema, consulta la guida alla risoluzione dei problemi di Cloud Storage.

Nella configurazione di esempio, vedrai come i servizi vengono raggruppati in livelli di sensibilità in base ai dati, ai metadati o alla configurazione sottostanti. Questi i livelli dimostrano la seguente granularità consigliata per il controllo di accesso ai dati logging:

  • Servizi di autenticazione e autorizzazione: per questo livello di servizi, consigliamo di eseguire il controllo di tutte le operazioni di accesso ai dati. Questo livello di controllo consente puoi monitorare l'accesso a chiavi, secret e IAM criteri. Il monitoraggio di questo accesso potrebbe aiutarti a rilevare le tattiche MITRE ATT&CK come Discovery, Accesso alle credenziali e Escalation dei privilegi.
  • Servizi di archiviazione: per questo livello di servizi, consigliamo di eseguire il controllo delle operazioni di accesso ai dati che coinvolgono i dati forniti dagli utenti. Questo livello di controllo ti aiuta a monitorare l'accesso ai tuoi dati importanti e sensibili. Il monitoraggio di questo accesso potrebbe aiutarti a rilevare tattiche MITRE ATT&CK come Raccolta ed Esfiltrazione nei confronti dei tuoi dati.
  • Servizi di infrastruttura: per questo livello di servizi, consigliamo di eseguire l'audit delle operazioni di accesso ai dati che coinvolgono metadati o informazioni di configurazione. Questo livello di controllo ti consente di monitorare la scansione della configurazione dell'infrastruttura. Il monitoraggio di questo accesso potrebbe aiutarti a rilevare tattiche MITRE ATT&CK come la scoperta nei confronti dei tuoi carichi di lavoro.

Log delle route

Dopo aver identificato e abilitato i log, il passaggio successivo consiste nell'instradarli a una singola destinazione. La destinazione, il percorso e la complessità del routing variano a seconda sugli strumenti di analisi che utilizzi, come illustrato nel seguente diagramma.

I modi per instradare i log: in BigQuery e Log Analytics utilizzando un'area di destinazione dei log, in un SIEM di terze parti utilizzando un'area di destinazione dei log e Pub/Sub e in Google Security Operations utilizzando l'importazione diretta.

Il diagramma mostra le seguenti opzioni di routing:

  • Se utilizzi Analisi dei log, ti serve un sink aggregato per aggregare i log della tua organizzazione Google Cloud in un unico bucket Cloud Logging.

  • Se utilizzi BigQuery, hai bisogno di un sink aggregato per aggregare i log della tua organizzazione Google Cloud in un unico set di dati BigQuery.

  • Se utilizzi Google Security Operations e questo sottoinsieme di log predefinito soddisfa le tue esigenze di analisi della sicurezza, puoi aggregare automaticamente questi log al tuo account Google Security Operations utilizzando la piattaforma integrata Google Security Operations importare. Puoi anche visualizzare questo insieme di log predefiniti consultando la colonna Esportabile direttamente in Google Security Operations dello strumento di definizione dell'ambito dei log. Per ulteriori informazioni sull'esportazione di questi log predefiniti, consulta Importare i log di Google Cloud in Google Security Operations.

  • Se utilizzi BigQuery o una piattaforma SIEM di terze parti o vuoi esportare un di log ampliato in Google Security Operations, il diagramma mostra che è necessario un passaggio aggiuntivo tra l'abilitazione dei log e l'analisi. Questo il passaggio aggiuntivo consiste nella configurazione di un sink aggregato che instrada i log selezionati in modo appropriato. Se utilizzi BigQuery, questo sink è tutto quello di cui hai bisogno per instradare i log a BigQuery. Se utilizzi un SIEM di terze parti, devi fare in modo che il sink aggrega i log selezionati in Pub/Sub o Cloud Storage prima di poter eseguire il pull dei log il tuo strumento di analisi.

Le opzioni di instradamento a Google Security Operations e a un SIEM di terze parti non sono coperte in questa guida. Tuttavia, le sezioni seguenti forniscono i passaggi dettagliati per eseguire il routing dei log ad Analisi dei log o BigQuery:

  1. Configura un'unica destinazione
  2. Crea un sink di log aggregato.
  3. Concedi l'accesso al sink.
  4. Configura l'accesso in lettura alla destinazione.
  5. Verifica che i log siano instradati alla destinazione.

Configura un'unica destinazione

Analisi dei log

  1. Apri la console Google Cloud nel progetto Google Cloud che vuoi e aggregare i log.

    Vai alla console Google Cloud

  2. In un terminale Cloud Shell, esegui seguente comando gcloud per creare un bucket di log:

    gcloud logging buckets create BUCKET_NAME \
      --location=BUCKET_LOCATION \
      --project=PROJECT_ID
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto Google Cloud in cui verranno archiviati i log aggregati.
    • BUCKET_NAME: il nome del nuovo bucket di logging.
    • BUCKET_LOCATION: la posizione geografica del nel nuovo bucket Logging. Le località supportate sono global, us o eu. Per saperne di più su queste regioni di archiviazione, consulta Regioni supportate. Se non specifichi una località, viene utilizzata la regione global, che significa che i log possono trovarsi fisicamente in una qualsiasi delle regioni.

  3. Verifica che il bucket sia stato creato:

    gcloud logging buckets list --project=PROJECT_ID
    
  4. (Facoltativo) Imposta il periodo di conservazione dei log nel bucket. La nell'esempio seguente estende la conservazione dei log archiviati nel bucket 365 giorni:

    gcloud logging buckets update BUCKET_NAME \
      --location=BUCKET_LOCATION \
      --project=PROJECT_ID \
      --retention-days=365
    
  5. Esegui l'upgrade del nuovo bucket per utilizzare Analisi dei log seguendo questa procedura.

BigQuery

  1. Apri la console Google Cloud nel progetto Google Cloud in cui vuoi aggregare i log.

    Vai alla console Google Cloud

  2. In un terminale Cloud Shell, esegui il seguente comando bq mk per creare un set di dati:

    bq --location=DATASET_LOCATION mk \
        --dataset \
        --default_partition_expiration=PARTITION_EXPIRATION \
        PROJECT_ID:DATASET_ID
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto Google Cloud in cui verranno archiviati i log aggregati.
    • DATASET_ID: l'ID del nuovo BigQuery del set di dati.
    • DATASET_LOCATION: la posizione geografica del set di dati. Dopo aver creato un set di dati, la località non può essere modificata.

    • PARTITION_EXPIRATION: la durata predefinita (in secondi) per le partizioni nelle tabelle partizionate create dal sink di log. Configura la destinazione dei log nella sezione successiva. L'emissario di log configurato utilizza tabelle partizionate per giorno in base al timestamp della voce di log. Partizioni (incluse le voci di log associate) vengono eliminati PARTITION_EXPIRATION secondi dopo della partizione.

Crea un sink di log aggregato

Instrada i log dell'organizzazione alla destinazione creando un insieme aggregato a livello di organizzazione. Per includere tutti i log selezionati nello strumento di definizione dell'ambito dei log, configura il sink con il filtro dei log generato dallo strumento.

Analisi dei log

  1. In un terminale Cloud Shell, esegui questo comando gcloud per creare un sink aggregato nell'organizzazione livello:

    gcloud logging sinks create SINK_NAME \
      logging.googleapis.com/projects/PROJECT_ID/locations/BUCKET_LOCATION/buckets/BUCKET_NAME \
      --log-filter="LOG_FILTER" \
      --organization=ORGANIZATION_ID \
      --include-children
    

    Sostituisci quanto segue:

    • SINK_NAME: il nome della destinazione che instrada i log.
    • PROJECT_ID: l'ID del progetto Google Cloud dove verranno archiviati i log aggregati.
    • BUCKET_LOCATION: la posizione del logging del bucket che hai creato per l'archiviazione dei log.
    • BUCKET_NAME: il nome del bucket logging che hai creato per lo stoccaggio dei log.
    • LOG_FILTER: il filtro dei log salvato dallo strumento di definizione dell'ambito dei log.
    • ORGANIZATION_ID: l'ID risorsa della tua organizzazione.

    Il flag --include-children è importante affinché i log di tutti Sono inclusi anche i progetti Google Cloud all'interno della tua organizzazione. Per ulteriori informazioni, consulta la pagina Raccogliere e instradare i log a livello di organizzazione verso le destinazioni supportate.

  2. Verifica che il sink sia stato creato:

    gcloud logging sinks list --organization=ORGANIZATION_ID
    
  3. Recupera il nome dell'account di servizio associato al sink che hai appena creato:

    gcloud logging sinks describe SINK_NAME --organization=ORGANIZATION_ID
    

    L'output è simile al seguente:

    writerIdentity: serviceAccount:p1234567890-12345@logging-o1234567890.iam.gserviceaccount.com`
    
  4. Copia l'intera stringa per writerIdentity iniziando con serviceAccount:. Questo identificatore è l'account di servizio del sink. Finché non concedi l'autorizzazione accesso in scrittura dell'account di servizio al bucket di log, routing dei log da questo sink non riuscirà. Nella sezione successiva concedi l'accesso in scrittura all'identità autore del sink.

BigQuery

  1. In un terminale Cloud Shell, esegui il seguente comando gcloud per creare un'area di destinazione aggregata a livello di organizzazione:

    gcloud logging sinks create SINK_NAME \
      bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID \
      --log-filter="LOG_FILTER" \
      --organization=ORGANIZATION_ID \
      --use-partitioned-tables \
      --include-children
    

    Sostituisci quanto segue:

    • SINK_NAME: il nome della destinazione che instrada i log.
    • PROJECT_ID: l'ID del progetto Google Cloud in cui vuoi aggregare i log.
    • DATASET_ID: l'ID del set di dati BigQuery che hai creato.
    • LOG_FILTER: il filtro dei log salvato dallo strumento di definizione dell'ambito dei log.
    • ORGANIZATION_ID: l'ID risorsa della tua organizzazione.

    Il flag --include-children è importante per includere anche i log di tutti i progetti Google Cloud all'interno della tua organizzazione. Per maggiori informazioni le informazioni, vedi Facolta e instrada i log a livello di organizzazione verso le destinazioni supportate.

    Il flag --use-partitioned-tables è importante per suddividere i dati per giorno in base al campo timestamp della voce del log. In questo modo, le query sui dati vengono semplificate e i relativi costi ridotti, poiché viene ridotta la quantità di dati scansionati dalle query. Un altro vantaggio delle tabelle partizionate è che puoi impostare una scadenza predefinita per le partizioni a livello di set di dati per soddisfare i requisiti di conservazione dei log. Hai già impostato una scadenza predefinita per la partizione quando hai creato la destinazione del set di dati nella sezione precedente. Potresti scegli anche di impostare la scadenza della partizione a livello di singola tabella, consentendoti una conservazione dei dati granulare i controlli in base al tipo di log.

  2. Verifica che il sink sia stato creato:

    gcloud logging sinks list --organization=ORGANIZATION_ID
    
  3. Recupera il nome dell'account di servizio associato al sink che hai appena creato:

    gcloud logging sinks describe SINK_NAME --organization=ORGANIZATION_ID
    

    L'output è simile al seguente:

    writerIdentity: serviceAccount:p1234567890-12345@logging-o1234567890.iam.gserviceaccount.com`
    
  4. Copia l'intera stringa per writerIdentity che inizia con serviceAccount:. Questo identificatore è l'account di servizio del sink. Finché non concedi l'autorizzazione l'accesso in scrittura dell'account di servizio al set di dati BigQuery il routing dei log da questo sink non riuscirà. Nella sezione successiva concederai l'accesso in scrittura all'identità dello scrittore della destinazione.

Concedi l'accesso al canale

Dopo aver creato il sink dei log, devi concedere al sink l'accesso in scrittura alla destinazione, che si tratti del bucket Logging o del set di dati BigQuery.

Analisi dei log

Per aggiungere le autorizzazioni all'account di servizio della destinazione:

  1. Nella console Google Cloud, vai alla pagina IAM:

    Vai alla pagina IAM

  2. Assicurati di aver selezionato il progetto Google Cloud di destinazione che contiene il bucket di logging che hai creato per lo stoccaggio dei log centralizzati.

  3. Fai clic su Concedi l'accesso.

  4. Nel campo Nuove entità, inserisci l'account di servizio dell'eseguiamo senza il prefisso serviceAccount:. Ricorda che questa identità proviene il campo writerIdentity recuperato nella sezione precedente dopo ha creato il sink.

  5. Nel menu a discesa Seleziona un ruolo, seleziona Autore del bucket dei log.

  6. Fai clic su Aggiungi condizione IAM per limitare le account di servizio solo al bucket di log che hai creato.

  7. Inserisci un Titolo e una Descrizione per la condizione.

  8. Nel menu a discesa Tipo di condizione, seleziona Risorsa > Nome.

  9. Nel menu a discesa Operatore, seleziona Termina con.

  10. Nel campo Valore, inserisci la posizione e il nome del bucket come segue:

    locations/BUCKET_LOCATION/buckets/BUCKET_NAME
    
  11. Fai clic su Salva per aggiungere la condizione.

  12. Fai clic su Salva per impostare le autorizzazioni.

BigQuery

Per aggiungere le autorizzazioni all'account di servizio della destinazione:

  1. Nella console Google Cloud, vai a BigQuery:

    Vai a BigQuery

  2. Apri il set di dati BigQuery che hai creato per l'archiviazione centrale dei log.

  3. Nella scheda Informazioni set di dati, fai clic sul menu a discesa Condivisione e poi su Autorizzazioni.

  4. Nel riquadro laterale Autorizzazioni set di dati, fai clic su Aggiungi entità.

  5. Nel campo Nuove entità, inserisci l'account di servizio del sink senza il prefisso serviceAccount:. Ricorda che questa identità proviene dal campo writerIdentity recuperato nella sezione precedente dopo aver creato l'eseguitore di importazione.

  6. Nel menu a discesa Ruolo, seleziona Editor dati BigQuery.

  7. Fai clic su Salva.

Dopo aver concesso l'accesso al sink, le voci di log iniziano a compilare la destinazione del sink: il bucket di logging o il set di dati BigQuery.

Configura l'accesso in lettura alla destinazione

Ora che il sink di log instrada i log dell'intera organizzazione in un unico puoi cercare in tutti questi log. Utilizza le autorizzazioni IAM per gestire le autorizzazioni e concedere l'accesso in base alle esigenze.

Analisi dei log

Per concedere l'accesso per visualizzare ed eseguire query sui log nel nuovo bucket di log:

  1. Nella console Google Cloud, vai alla pagina IAM:

    Vai alla pagina IAM

    Assicurati di aver selezionato il progetto Google Cloud che stai utilizzando per aggregare i log.

  2. Fai clic su Aggiungi.

  3. Nel campo Nuova entità, aggiungi il tuo account email.

  4. Nel menu a discesa Seleziona un ruolo, seleziona Accesso alle viste log.

    Questo ruolo fornisce all'entità appena aggiunta l'accesso in lettura a tutte le visualizzazioni per tutti i bucket del progetto Google Cloud. Per limitare l'accesso di un utente: aggiungi una condizione che consenta all'utente di leggere solo dal nuovo bucket.

    1. Fai clic su Aggiungi condizione.

    2. Inserisci un Titolo e una Descrizione per la condizione.

    3. Nel menu a discesa Tipo di condizione, seleziona Risorsa > Nome.

    4. Nel menu a discesa Operatore, seleziona Termina con.

    5. Nel campo Valore, inserisci la posizione e il nome del bucket, nonché la visualizzazione dei log predefinita _AllLogs come segue:

      locations/BUCKET_LOCATION/buckets/BUCKET_NAME/views/_AllLogs
      
    6. Fai clic su Salva per aggiungere la condizione.

  5. Fai clic su Salva per impostare le autorizzazioni.

BigQuery

Per concedere l'accesso per visualizzare ed eseguire query sui log nel tuo set di dati BigQuery, segui i passaggi nella sezione Concedere l'accesso a un set di dati del documentazione di BigQuery.

Verifica che i log vengano instradati alla destinazione

Analisi dei log

Quando indirizzi i log a un bucket di log di cui è stato eseguito l'upgrade a Log Analytics, puoi visualizzare ed eseguire query su tutte le voci di log tramite un'unica visualizzazione dei log con uno schema unificato per tutti i tipi di log. Segui questi passaggi per verificare che i log vengano indirizzati correttamente.

  1. Nella console Google Cloud, vai alla pagina Log Analytics:

    Vai ad Analisi dei log

    Assicurati di aver selezionato il progetto Google Cloud che stai utilizzando per aggregare i log.

  2. Fai clic sulla scheda Visualizzazioni log.

  3. Espandi le visualizzazioni dei log sotto il bucket di log che hai creato, BUCKET_NAME) se non è espansa .

  4. Seleziona la visualizzazione dei log predefinita _AllLogs. Ora puoi esaminare l'intero log nel riquadro a destra, come mostrato nello screenshot seguente:

    Analisi dei log con la tabella cloudaudit_googleapis_com_data_access selezionata.

  5. Accanto a _AllLogs, fai clic su Query . Compila l'editor di query con una query SQL di esempio per recuperare le voci di log con routing recenti.

  6. Fai clic su Esegui query per visualizzare le voci di log indirizzate di recente.

A seconda del livello di attività nei progetti Google Cloud della tua organizzazione, potresti dover attendere qualche minuto prima che vengano generati dei log, quindi instradato al bucket di log.

BigQuery

Quando inoltri i log a un set di dati BigQuery, Cloud Logging crea tabelle BigQuery per contenere le voci di log, come mostrato nella seguente schermata:

Explorer di BigQuery con la tabella cloudaudit_googleapis_com_data_access selezionata.

Lo screenshot mostra come Cloud Logging assegna un nome a ogni BigQuery basata sul nome del log a cui appartiene una voce di log. Ad esempio, la tabella cloudaudit_googleapis_com_data_access selezionata nello screenshot contiene gli audit log di accesso ai dati il cui ID log è cloudaudit.googleapis.com%2Fdata_access. Oltre che sul nome basato su la voce di log corrispondente, ogni tabella è partizionata anche in base per ogni voce di log.

A seconda del livello di attività nei progetti Google Cloud della tua organizzazione, potrebbe essere necessario attendere alcuni minuti prima che alcuni log vengano generati e poi indirizzati al tuo set di dati BigQuery.

Analisi dei log

Puoi eseguire una vasta gamma di query sui log di controllo e della piattaforma. L'elenco seguente fornisce un insieme di domande di sicurezza di esempio che potresti porre ai tuoi log. Per ogni domanda in questo elenco sono disponibili due versioni della query CSA corrispondente: una per l'utilizzo con Log Analytics e una per l'utilizzo con BigQuery. Utilizza la versione della query corrispondente alla destinazione del sink configurato in precedenza.

Analisi dei log

Prima di utilizzare una delle query SQL riportate di seguito, sostituisci MY_PROJECT_ID con l'ID del progetto Google Cloud in cui hai creato il bucket dei log (ovvero PROJECT_ID)) e MY_DATASET_ID con la regione e il nome del bucket dei log (ovvero BUCKET_LOCATION.BUCKET_NAME).

Vai ad Analisi dei log

BigQuery

Prima di utilizzare una delle query SQL riportate di seguito, sostituisci MY_PROJECT_ID con l'ID del progetto Google Cloud in cui hai creato il set di dati BigQuery (ovvero PROJECT_ID)) e MY_DATASET_ID con il nome del set di dati (ovvero DATASET_ID).

Vai a BigQuery

  1. Domande su accesso e accesso
  2. Domande sulle modifiche alle autorizzazioni
  3. Domande sull'attività di provisioning
  4. Domande sull'utilizzo del carico di lavoro
  5. Domande sull'accesso ai dati
  6. Domande sulla sicurezza di rete

Domande relative ad accesso e accesso

Questi esempi di query eseguono un'analisi per rilevare tentativi di accesso sospetti o tentativi di accesso iniziali al tuo ambiente Google Cloud.

Ci sono stati tentativi di accesso sospetti segnalati da Google Workspace?

Se esegui una ricerca nei log di Cloud Identity che fanno parte del controllo degli accessi di Google Workspace, la seguente query rileva i tentativi di accesso sospetti segnalati da Google Workspace. Questi tentativi di accesso potrebbero provenire dalla console Google Cloud, dalla Console di amministrazione o dalla CLI gcloud.

Analisi dei log


SELECT
  timestamp,
  proto_payload.audit_log.authentication_info.principal_email,
  proto_payload.audit_log.request_metadata.caller_ip,
  proto_payload.audit_log.method_name, parameter
FROM `[MY_PROJECT_ID].[MY_LOG_BUCKET_REGION].[MY_LOG_BUCKET_NAME]._AllLogs`,
  UNNEST(JSON_QUERY_ARRAY(proto_payload.audit_log.metadata.event[0].parameter)) AS parameter
WHERE
  timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 60 DAY)
  AND proto_payload.audit_log IS NOT NULL
  AND proto_payload.audit_log.service_name = "login.googleapis.com"
  AND proto_payload.audit_log.method_name = "google.login.LoginService.loginSuccess"
  AND JSON_VALUE(parameter.name) = "is_suspicious"
  AND JSON_VALUE(parameter.boolValue) = "true"

BigQuery


SELECT
  timestamp,
  protopayload_auditlog.authenticationInfo.principalEmail,
  protopayload_auditlog.requestMetadata.callerIp,
  protopayload_auditlog.methodName
FROM `[MY_PROJECT_ID].[MY_DATASET_ID].cloudaudit_googleapis_com_data_access`,
  UNNEST(JSON_QUERY_ARRAY(protopayload_auditlog.metadataJson, '$.event[0].parameter')) AS parameter
WHERE
  timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 60 DAY)
  AND protopayload_auditlog.metadataJson IS NOT NULL
  AND protopayload_auditlog.serviceName = "login.googleapis.com"
  AND protopayload_auditlog.methodName = "google.login.LoginService.loginSuccess"
  AND JSON_VALUE(parameter, '$.name') = "is_suspicious"
  AND JSON_VALUE(parameter, '$.boolValue') = "true"

Si sono verificati troppi errori di accesso da qualsiasi identità utente?

Eseguendo una ricerca nei log di Cloud Identity che fanno parte Controllo degli accessi a Google Workspace la seguente query rileva gli utenti che hanno effettuato almeno tre accessi successivi errori nelle ultime 24 ore.