GCP - Logging Enum

Impara l'hacking su AWS da zero a eroe con htARTE (Esperto Red Team di HackTricks su AWS)!

Altri modi per supportare HackTricks:

Informazioni di Base

Questo servizio consente agli utenti di archiviare, cercare, analizzare, monitorare e ricevere avvisi su dati di log ed eventi da GCP.

Cloud Logging è completamente integrato con altri servizi GCP, fornendo un repository centralizzato per i log di tutte le risorse GCP. Raccoglie automaticamente i log da vari servizi GCP come App Engine, Compute Engine e Cloud Functions. È anche possibile utilizzare Cloud Logging per le applicazioni in esecuzione in locale o in altri cloud utilizzando l'agente o l'API di Cloud Logging.

Caratteristiche Principali:

  • Centralizzazione dei Dati di Log: Aggrega i dati di log da varie fonti, offrendo una visione olistica delle tue applicazioni e infrastrutture.

  • Gestione dei Log in Tempo Reale: Trasmetti i log in tempo reale per un'analisi e una risposta immediate.

  • Potente Analisi dei Dati: Utilizza capacità avanzate di filtraggio e ricerca per setacciare rapidamente grandi volumi di dati di log.

  • Integrazione con BigQuery: Esporta i log in BigQuery per un'analisi dettagliata e interrogazioni.

  • Metriche Basate sui Log: Crea metriche personalizzate dai tuoi dati di log per il monitoraggio e gli avvisi.

Flusso dei Log

Fondamentalmente i sink e le metriche basate sui log determineranno dove un log dovrebbe essere archiviato.

Configurazioni Supportate da GCP Logging

Cloud Logging è altamente configurabile per soddisfare diverse esigenze operative:

  1. Secchi di Log (Archiviazione dei Log sul web): Definisci secchi in Cloud Logging per gestire la retention dei log, fornendo controllo su quanto tempo vengono conservate le voci di log.

  • Per impostazione predefinita vengono creati i secchi _Default e _Required (uno registra ciò che l'altro non fa).

  • _Required è:

LOG_ID("cloudaudit.googleapis.com/activity") OR LOG_ID("externalaudit.googleapis.com/activity") OR LOG_ID("cloudaudit.googleapis.com/system_event") OR LOG_ID("externalaudit.googleapis.com/system_event") OR LOG_ID("cloudaudit.googleapis.com/access_transparency") OR LOG_ID("externalaudit.googleapis.com/access_transparency")
  • Il periodo di retention dei dati è configurato per secchio e deve essere almeno di 1 giorno. Tuttavia il periodo di retention di _Required è di 400 giorni e non può essere modificato.

  • Nota che i Secchi di Log non sono visibili in Cloud Storage.

  1. Sink di Log (Router di Log sul web): Crea sink per esportare le voci di log verso varie destinazioni come Pub/Sub, BigQuery o Cloud Storage in base a un filtro.

  • Per impostazione predefinita vengono creati sink per i secchi _Default e _Required:

_Required logging.googleapis.com/projects//locations/global/buckets/_Required LOG_ID("cloudaudit.googleapis.com/activity") OR LOG_ID("externalaudit.googleapis.com/activity") OR LOG_ID("cloudaudit.googleapis.com/system_event") OR LOG_ID("externalaudit.googleapis.com/system_event") OR LOG_ID("cloudaudit.googleapis.com/access_transparency") OR LOG_ID("externalaudit.googleapis.com/access_transparency") _Default logging.googleapis.com/projects//locations/global/buckets/_Default NOT LOG_ID("cloudaudit.googleapis.com/activity") AND NOT LOG_ID("externalaudit.googleapis.com/activity") AND NOT LOG_ID("cloudaudit.googleapis.com/system_event") AND NOT LOG_ID("externalaudit.googleapis.com/system_event") AND NOT LOG_ID("cloudaudit.googleapis.com/access_transparency") AND NOT LOG_ID("externalaudit.googleapis.com/access_transparency")

* **Filtri di Esclusione:** È possibile impostare **esclusioni per evitare che voci di log specifiche** vengano inglobate, risparmiando costi e riducendo rumore inutile.
3. **Metriche Basate sui Log:** Configura **metriche personalizzate** basate sul contenuto dei log, consentendo il monitoraggio e gli avvisi basati sui dati di log.
4. **Viste dei Log:** Le viste dei log offrono un controllo avanzato e **granulare su chi ha accesso** ai log all'interno dei tuoi secchi di log. 
* Cloud Logging **crea automaticamente la vista `_AllLogs` per ogni secchio**, che mostra tutti i log. Cloud Logging crea anche una vista per il secchio `_Default` chiamata `_Default`. La vista `_Default` per il secchio `_Default` mostra tutti i log tranne i log di accesso ai dati. Le viste `_AllLogs` e `_Default` non sono modificabili.

È possibile consentire a un principale **di utilizzare solo una specifica vista dei log** con una policy IAM come:

<div data-gb-custom-block data-tag="code" data-overflow='wrap'>

```json
{
"bindings": [
{
"members": [
"user:username@gmail.com"
],
"role": "roles/logging.viewAccessor",
"condition": {
"title": "Bucket reader condition example",
"description": "Grants logging.viewAccessor role to user username@gmail.com for the VIEW_ID log view.",
"expression":
"resource.name == \"projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID\""
}
}
],
"etag": "BwWd_6eERR4=",
"version": 3
}

Registri predefiniti

Per impostazione predefinita, le operazioni di scrittura di amministrazione (chiamate anche registri di attività di amministrazione) sono quelle registrate (scrivono metadati o informazioni di configurazione) e non possono essere disabilitate.

Successivamente, l'utente può abilitare i registri di accesso ai dati, che includono lettura di amministrazione, scrittura di dati e scrittura di dati.

È possibile trovare ulteriori informazioni su ciascun tipo di registro nella documentazione: https://cloud.google.com/iam/docs/audit-logging

Tuttavia, si noti che ciò significa che per impostazione predefinita le azioni GetIamPolicy e altre azioni di lettura non vengono registrate. Quindi, per impostazione predefinita, un attaccante che cerca di enumerare l'ambiente non verrà individuato se l'amministratore di sistema non ha configurato la generazione di più registri.

Per abilitare più registri nella console, l'amministratore di sistema deve andare su https://console.cloud.google.com/iam-admin/audit e abilitarli. Ci sono 2 opzioni diverse:

  • Configurazione predefinita: È possibile creare una configurazione predefinita e registrare tutti i registri di lettura di amministrazione e/o di lettura di dati e/o di scrittura di dati e persino aggiungere principali esenti:

  • Selezionare i servizi: Oppure semplicemente selezionare i servizi di cui si desidera generare registri e il tipo di registri e il principale esente per quel servizio specifico.

Si noti inoltre che per impostazione predefinita vengono generati solo quei registri perché la generazione di più registri aumenterà i costi.

Enumerazione

Lo strumento a riga di comando gcloud è parte integrante dell'ecosistema GCP, che consente di gestire le risorse e i servizi. Ecco come è possibile utilizzare gcloud per gestire le configurazioni di registrazione e accedere ai registri.

# List buckets
gcloud logging buckets list
gcloud logging buckets describe <bucket-name> --location <location>

# List log entries: only logs that contain log entries are listed.
gcloud logging logs list

# Get log metrics
gcloud logging metrics list
gcloud logging metrics describe <metric-name>

# Get log sinks
gcloud logging sinks list
gcloud logging sinks describe <sink-name>

# Get log views
gcloud logging views list --bucket <bucket> --location global
gcloud logging views describe --bucket <bucket> --location global <view-id> # view-id is usually the same as the bucket name

# Get log links
gcloud logging links list --bucket _Default --location global
gcloud logging links describe <link-id> --bucket _Default --location global

Esempio per controllare i log di cloudresourcemanager (quello usato per BF permissions): https://console.cloud.google.com/logs/query;query=protoPayload.serviceName%3D%22cloudresourcemanager.googleapis.com%22;summaryFields=:false:32:beginning;cursorTimestamp=2024-01-20T00:07:14.482809Z;startTime=2024-01-01T11:12:26.062Z;endTime=2024-02-02T17:12:26.062Z?authuser=2&project=digital-bonfire-410512

Non ci sono log di testIamPermissions:

Post Esploitation

pageGCP - Logging Post Exploitation

Persistenza

pageGCP - Logging Persistence

Riferimenti

Impara l'hacking su AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Last updated