Integra Cloud Logging con Google SecOps

Questo documento spiega come integrare Cloud Logging con Google Security Operations.

Casi d'uso

L'integrazione Cloud Logging utilizza le funzionalità di Google SecOps per supportare i seguenti casi d'uso:

  • Recupero dei log forensici: esegui query avanzate per trovare eventi di sicurezza specifici nel tuo ambiente durante un'indagine. Google Cloud

  • Ricerca automatica delle minacce: utilizza i playbook per eseguire periodicamente query sui log per indicatori di compromissione (IoC) noti o pattern sospetti.

Prima di iniziare

Prima di configurare l'integrazione Cloud Logging in Google SecOps, completa i seguenti passaggi preliminari:

  1. Crea un account di servizio e concedigli i ruoli necessari.

  2. Scegli e configura uno dei seguenti metodi di autenticazione:

    • Opzione 1: Workload Identity (consigliata): questo metodo utilizza token di accesso temporanei di breve durata tramite la rappresentazione dell'account di servizio, quindi non è necessario archiviare i secret.

    • Opzione 2: chiave JSON dell'account di servizio: questo metodo si basa su un file di chiavi secret statico e di lunga durata. Utilizza questo metodo solo se l'autenticazione Workload Identity non è disponibile nel tuo ambiente.

Crea un account di servizio

Per creare un account di servizio per l'integrazione, completa i seguenti passaggi:

  1. Nella Google Cloud console, vai a IAM e amministrazione > Account di servizio.

    Vai a Service account

  2. Fai clic su addCrea account di servizio.

  3. Fornisci un nome (ad es. "Integrazione di Cloud Logging con SecOps") e una descrizione, quindi fai clic su Crea e continua.

  4. Nel passaggio Concedi a questo account di servizio l'accesso al progetto, aggiungi il ruolo Visualizzatore log (roles/logging.viewer).

  5. Fai clic su Fine. L'indirizzo email di questo account di servizio viene utilizzato durante la configurazione.

Configura le credenziali di Workload Identity

Scegli questo metodo o il metodo della chiave JSON per autenticare l'integrazione. L'utilizzo di Workload Identity è l'approccio consigliato perché utilizza

token di accesso temporanei di breve durata tramite la simulazione dell'identità dei account di servizio.

Identifica l'identità univoca dell'istanza

La concessione all'istanza Google SecOps dell'autorizzazione a rappresentare il tuo account di servizio è l'ultimo passaggio per proteggere l'accesso.

  1. In Google SecOps, vai a Content Hub > Integrazioni di risposta.

  2. Cerca e seleziona l'integrazione Cloud Logging e inserisci l'indirizzo email del tuo account di servizio in Email di Workload Identity.

  3. Inserisci un ID progetto valido in ID progetto quota.

  4. Fai clic su Salva > Test. È previsto che il test non vada a buon fine.

  5. Fai clic sul pulsante close_small accanto a Test e individua l'indirizzo email dell'identità che inizia con gke-init-python@... o soar-python@....

    Copia questo indirizzo email univoco e incollalo in Workload Identity Email durante la configurazione dell'integrazione.

Autorizza l'identità dell'istanza in Google Cloud

L'autorizzazione dell'identità univoca recuperata consente la simulazione dell'identità dei account di servizio, consentendo alla piattaforma di agire per tuo conto senza chiavi statiche.

  1. Nella Google Cloud console, vai a IAM e amministrazione > Account di servizio.

    Vai a Service account

  2. Seleziona l'account di servizio di destinazione e vai a Autorizzazioni > Concedi accesso.

  3. Incolla l'indirizzo email univoco nel campo Nuove entità.

  4. Assegna il ruolo Creatore token account di servizio (roles/iam.serviceAccountTokenCreator).

Concedi l'accesso al progetto quota

L'autenticazione con Workload Identity richiede un Quota Project ID per monitorare l'utilizzo e la fatturazione dell'API.

  1. Nella Google Cloud console, vai a IAM e amministrazione > IAM e seleziona il progetto utilizzato per l'ID progetto quota.

    Vai a IAM

  2. Individua il tuo account di servizio e fai clic su Modifica entità.

  3. Fai clic su Aggiungi un altro ruolo e seleziona Service Usage Consumer (roles/serviceusage.serviceUsageConsumer).

  4. Fai clic su Salva.

Configura una chiave JSON

I file di chiavi secret statici e di lunga durata richiedono la gestione manuale. Questo metodo deve essere utilizzato solo se le credenziali di Workload Identity non sono disponibili.

  1. Nella Google Cloud console, vai a IAM e amministrazione > Account di servizio e seleziona il tuo account di servizio.

    Vai a Service account

  2. Vai alla scheda Chiavi e fai clic su Aggiungi chiave > Crea nuova chiave.

  3. Seleziona JSON come tipo di chiave e fai clic su Crea.

  4. Copia l'intero contenuto del file scaricato e incollalo in User's Service Account durante la configurazione.

Parametri di integrazione

L'integrazione Cloud Logging richiede i seguenti parametri:

Parametro Descrizione
API Root

Facoltativo.

L'URL di base per l'API Cloud Logging (ad es. https://logging.googleapis.com).

User's Service Account

Facoltativo.

L'intero contenuto del file JSON della chiave dell'account di servizio.

Utilizza questo parametro solo se esegui l'autenticazione utilizzando una chiave JSON.

Workload Identity Email

Facoltativo.

L'indirizzo email del client del tuo account di servizio.

Utilizza questo parametro solo se esegui l'autenticazione utilizzando le credenziali di Workload Identity

Project ID

Facoltativo.

L'ID progetto da utilizzare nell'integrazione.

Se non viene fornito alcun valore, l'integrazione recupera l'ID dalle credenziali del account di servizio.

Quota Project ID

Facoltativo.

L'ID progetto utilizzato per l'utilizzo e la fatturazione dell'API.

Questo parametro è obbligatorio quando si esegue l'autenticazione utilizzando le credenziali di Workload Identity.

Organization ID

Facoltativo.

L'ID organizzazione utilizzato per definire l'ambito delle query.

Verify SSL

Facoltativo.

Se selezionata, l'integrazione convalida il certificato SSL quando si connette al server di Cloud Logging.

Abilitato per impostazione predefinita.

Per istruzioni su come configurare un'integrazione in Google SecOps, consulta Configurare le integrazioni.

Se necessario, puoi apportare modifiche in un secondo momento. Dopo aver configurato un'istanza di integrazione, puoi utilizzarla nei playbook. Per saperne di più su come configurare e supportare più istanze, consulta Supportare più istanze.

Azioni

Per saperne di più sulle azioni, consulta Rispondere alle azioni in attesa dalla tua scrivania e Eseguire un' azione manuale.

Esegui query

Utilizza l'azione Esegui query per eseguire query personalizzate in Cloud Logging.

Questa azione non viene eseguita sulle entità Google SecOps.

Input azione

L'azione Esegui query richiede i seguenti parametri:

Parametro Descrizione
Project ID Facoltativo

L'ID progetto da utilizzare nell'integrazione.

Se non imposti un valore per questo parametro, l'integrazione recupera l'ID progetto dal tuo Google Cloud account di servizio.

Organization ID Facoltativo

L'ID organizzazione da utilizzare nell'integrazione.

Se non imposti un valore per questo parametro, l'integrazione recupera l'ID progetto dal tuo Google Cloud account di servizio.

Query Obbligatorio

Una query per trovare i log.

Time Frame Facoltativo

Un periodo da cui recuperare i risultati.

Se selezioni Custom, configura anche il parametro Start Time.

I valori possibili sono i seguenti:

  • Last Hour
  • Last 6 Hours
  • Last 24 Hours
  • Last Week
  • Last Month
  • Custom
Il valore predefinito è Last Hour.
Start Time Facoltativo

L'ora di inizio per recuperare i risultati.

Questo parametro è obbligatorio se hai selezionato l'opzione Custom per il Time Frame parametro.

Per configurare questo parametro, utilizza il formato ISO 8601.

End Time Facoltativo

L'ora di fine per recuperare i risultati.

Se non imposti un valore per questo parametro e selezioni l'opzione Custom per il Time Frame parametro, l'azione utilizza l'ora corrente come ora di fine.

Per configurare questo parametro, utilizza il formato ISO 8601.

Max Results To Return Facoltativo

Il numero massimo di risultati da restituire.

Il valore predefinito è 50.

Output azione

L'azione Esegui query fornisce i seguenti output:

Tipo di output azione Disponibilità
Allegato della bacheca casi Non disponibile
Link della bacheca casi Non disponibile
Tabella della bacheca casi Non disponibile
Tabella di arricchimento Non disponibile
Risultato JSON Disponibile
Messaggi di output Disponibile
Risultato script Disponibile
Risultato JSON

L'esempio seguente descrive l'output del risultato JSON ricevuto quando si utilizza l'azione Esegui query:

[{
    "protoPayload": {
        "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
        "authenticationInfo": {
            "principalEmail": "system:clouddns"
        },
        "authorizationInfo": [
            {
                "granted": true,
                "permission": "io.k8s.coordination.v1.leases.update",
                "resource": "coordination.k8s.io/v1/namespaces/kube-system/leases/clouddns-lock"
            }
        ],
        "methodName": "io.k8s.coordination.v1.leases.update",
        "requestMetadata": {
            "callerIp": "192.0.2.6",
            "callerSuppliedUserAgent": "clouddns-leader-election"
        },
        "resourceName": "coordination.k8s.io/v1/namespaces/kube-system/leases/clouddns-lock",
        "serviceName": "k8s.io",
        "status": {
            "code": 0
        }
    },
    "insertId": "ID",
    "resource": {
        "type": "k8s_cluster",
        "labels": {
            "cluster_name": "CLUSTER_NAME",
            "project_id": "PROJECT_ID",
            "location": "us-central1"
        }
    },
    "timestamp": "2024-09-18T09:46:38.647428Z",
    "labels": {
        "authorization.k8s.io/reason": "RBAC: allowed by ClusterRoleBinding \"system:clouddns\" of ClusterRole \"system:clouddns-role\" to User \"system:clouddns\"",
        "authorization.k8s.io/decision": "allow"
    },
    "logName": "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity",
    "operation": {
        "id": "ID",
        "producer": "k8s.io",
        "first": true,
        "last": true
    },
    "receiveTimestamp": "2024-09-18T09:46:39.063264993Z"
}]
Messaggi di output

L'azione Esegui query fornisce i seguenti messaggi di output:

Messaggio di output Descrizione del messaggio

Successfully executed query "QUERY" in Cloud Logging.

No results were found for the provided query.

L'azione è riuscita.
Error executing action "Execute Query". Reason: ERROR_REASON

L'azione non è riuscita.

Controlla la connessione al server, i parametri di input o le credenziali.

Risultato script

La tabella seguente descrive i valori per l'output del risultato dello script quando si utilizza l'azione Esegui query:

Nome del risultato dello script Valore
is_success True o False

Dindin

Utilizza l'azione Dindin per testare la connettività a Cloud Logging.

Questa azione non viene eseguita sulle entità Google SecOps.

Input azione

Nessuno.

Output azione

L'azione Dindin fornisce i seguenti output:

Tipo di output azione Disponibilità
Allegato della bacheca casi Non disponibile
Link della bacheca casi Non disponibile
Tabella della bacheca casi Non disponibile
Tabella di arricchimento Non disponibile
Risultato JSON Non disponibile
Messaggi di output Disponibile
Risultato script Disponibile
Messaggi di output

L'azione Dindin fornisce i seguenti messaggi di output:

Messaggio di output Descrizione del messaggio
Successfully connected to the Cloud Logging server with the provided connection parameters! L'azione è riuscita.
Failed to connect to the Cloud Logging server! Error is ERROR_REASON

L'azione non è riuscita.

Controlla la connessione al server, i parametri di input o le credenziali.

Risultato script

La tabella seguente descrive i valori per l'output del risultato dello script quando si utilizza l'azione Dindin:

Nome del risultato dello script Valore
is_success True o False

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