GCP - Logging Enum

Leer AWS hak vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Basiese Inligting

Hierdie diens maak dit vir gebruikers moontlik om logdata en gebeure van GCP te stoor, soek, analiseer, monitor, en waarsku.

Cloud Logging is ten volle geïntegreer met ander GCP-diens, wat 'n gesentraliseerde bewaarplek vir logboeke van al jou GCP-hulpbronne bied. Dit versamel outomaties logboeke van verskeie GCP-diens soos App Engine, Compute Engine, en Cloud Functions. Jy kan ook Cloud Logging gebruik vir toepassings wat op perseel of in ander wolke hardloop deur die Cloud Logging-agent of API te gebruik.

Kernkenmerke:

  • Logdata-sentralisasie: Aggregeer logdata van verskeie bronne, wat 'n holistiese siening van jou toepassings en infrastruktuur bied.

  • Reële-tyd Logbestuur: Stroom logboeke in reële tyd vir onmiddellike analise en reaksie.

  • Kragtige Data-analise: Gebruik gevorderde filter- en soekvermoëns om deur groot volumes logdata vinnig te sif.

  • Integrasie met BigQuery: Voer logboeke uit na BigQuery vir gedetailleerde analise en navrae.

  • Loggebaseerde Metriek: Skep aangepaste metrieke van jou logdata vir monitering en waarskuwing.

Logvloei

Basies sal die opvangs en loggebaseerde metrieke bepaal waar 'n log gestoor moet word.

Konfigurasies Ondersteun deur GCP Logging

Cloud Logging is hoogs konfigureerbaar om uiteenlopende operasionele behoeftes te pas:

  1. Logemmers (Logbewaring in die web): Definieer emmers in Cloud Logging om logretensie te bestuur, wat beheer bied oor hoe lank jou loginskrywings behou word.

  • Standaard word die emmers _Default en _Required geskep (een log wat wat die ander nie is nie).

  • _Required is:

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")
  • Die retensieperiode van die data word per emmer gekonfigureer en moet minstens 1 dag wees. Die retensieperiode van _Required is egter 400 dae en kan nie gewysig word nie.

  • Let daarop dat Logemmers nie sigbaar is in Cloud Storage nie.

  1. Logopvangs (Logroeteerder in die web): Skep opvangs om loginskrywings uit te voer na verskeie bestemmings soos Pub/Sub, BigQuery, of Cloud Storage gebaseer op 'n filter.

  • Standaard word opvangs vir die emmers _Default en _Required geskep:

_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")

* **Uitsluitingsfilters:** Dit is moontlik om **uitsluitings op te stel om te voorkom dat spesifieke loginskrywings** ingesluk word, wat koste bespaar en onnodige geraas verminder.
3. **Loggebaseerde Metrieke:** Konfigureer **aangepaste metrieke** gebaseer op die inhoud van logboeke, wat waarskuwings en monitering gebaseer op logdata moontlik maak.
4. **Logaansigte:** Logaansigte gee gevorderde en **fynbeheer oor wie toegang het** tot die logboeke binne jou logemmers. 
* Cloud Logging **skep outomaties die `_AllLogs`-aansig vir elke emmer**, wat alle logboeke wys. Cloud Logging skep ook 'n aansig vir die `_Default`-emmer genaamd `_Default`. Die `_Default`-aansig vir die `_Default`-emmer wys alle logboeke behalwe Data Toegang-auditlogboeke. Die `_AllLogs`- en `_Default`-aansigte is nie wysigbaar nie.

Dit is moontlik om 'n hoof **slegs toe te laat om 'n spesifieke Logaansig** te gebruik met 'n IAM-beleid soos:

<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
}

Standaard Logs

Standaard word Admin Write-operasies (ook bekend as Admin-aktiwiteitsouditlogs) gelog (skryf metadata of konfigurasie-inligting) en kan nie uitgeskakel word nie.

Daarna kan die gebruiker Data Access audit logs aktiveer, dit is Admin Read, Data Write en Data Write.

Meer inligting oor elke tipe log is beskikbaar in die dokumentasie: https://cloud.google.com/iam/docs/audit-logging

Let egter daarop dat dit beteken dat standaard GetIamPolicy-aksies en ander leesaksies nie gelog word nie. Dus, standaard sal 'n aanvaller wat probeer om die omgewing te ondersoek nie betraps word as die stelseladministrateur nie ingestel het om meer logs te genereer nie.

Om meer logs in die konsole te aktiveer, moet die stelseladministrateur na https://console.cloud.google.com/iam-admin/audit gaan en hulle aktiveer. Daar is 2 verskillende opsies:

  • Standaardkonfigurasie: Dit is moontlik om 'n standaardkonfigurasie te skep en al die Admin Read en/of Data Read en/of Data Write-logs te log en selfs vrygestelde hoofde by te voeg:

  • Kies die dienste: Of net kies die dienste waarvoor jy wil hê dat logs gegenereer word en die tipe logs en die vrygestelde hoof vir daardie spesifieke diens.

Let ook daarop dat slegs daardie logs standaard gegenereer word omdat die generering van meer logs die koste sal verhoog.

Enumerasie

Die gcloud-opdraglynwerktuig is 'n integrale deel van die GCP-ekosisteem wat jou in staat stel om jou bronne en dienste te bestuur. Hier is hoe jy gcloud kan gebruik om jou logkonfigurasies en toegangslogs te bestuur.

# 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

Voorbeeld om die logboeke van cloudresourcemanager te kontroleer (die een wat gebruik word vir BF-toestemmings): 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

Daar is nie logboeke van testIamPermissions nie:

Post Exploitation

pageGCP - Logging Post Exploitation

Volharding

pageGCP - Logging Persistence

Verwysings

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated