GCP - Logging Enum

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Osnovne informacije

Ova usluga omogućava korisnicima da skladište, pretražuju, analiziraju, nadgledaju i šalju podatke o logovanju i događajima sa GCP-a.

Cloud Logging je potpuno integrisan sa drugim GCP uslugama, pružajući centralizovano skladište za logove sa svih vaših GCP resursa. Automatski prikuplja logove iz različitih GCP usluga kao što su App Engine, Compute Engine i Cloud Functions. Takođe možete koristiti Cloud Logging za aplikacije koje se izvršavaju lokalno ili na drugim oblakama korišćenjem Cloud Logging agenta ili API-ja.

Ključne funkcije:

  • Centralizacija podataka o logovanju: Agregacija podataka o logovanju iz različitih izvora, pružajući holistički prikaz vaših aplikacija i infrastrukture.

  • Upravljanje logovima u realnom vremenu: Strimovanje logova u realnom vremenu za trenutnu analizu i odgovor.

  • Moćna analiza podataka: Koristite napredne mogućnosti filtriranja i pretrage za brzo pretraživanje velikih količina podataka o logovanju.

  • Integracija sa BigQuery-om: Izvozite logove u BigQuery radi detaljne analize i upita.

  • Metrike zasnovane na logovima: Kreirajte prilagođene metrike na osnovu podataka o logovanju za praćenje i slanje obaveštenja.

Tok logova

U osnovi, slivovi i metrike zasnovane na logovima će odrediti gde će log biti smešten.

Konfiguracije podržane od strane GCP Logovanja

Cloud Logging je visoko konfigurabilan kako bi odgovarao različitim operativnim potrebama:

  1. Kante za logove (Skladištenje logova na vebu): Definišite kante u Cloud Logging-u za upravljanje zadržavanjem logova, pružajući kontrolu nad tim koliko dugo se vaši unosi logova zadržavaju.

  • Podrazumevano su kreirane kante _Default i _Required (jedna beleži ono što druga ne beleži).

  • _Required je:

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")
  • Period zadržavanja podataka je konfigurisan po kanti i mora biti najmanje 1 dan. Međutim, period zadržavanja za _Required je 400 dana i ne može se menjati.

  • Napomena da kante za logove nisu vidljive u Cloud Storage-u.

  1. Slefovi za logove (Rutiranje logova na vebu): Kreirajte slefove za izvoz unosa logova ka različitim odredištima kao što su Pub/Sub, BigQuery ili Cloud Storage na osnovu filtera.

  • Podrazumevano su kreirani slefovi za kante _Default i _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")

* **Filteri isključenja:** Moguće je postaviti **isključenja kako bi se sprečilo unošenje određenih unosa logova**, čime se štedi trošak i smanjuje nepotrebna buka.
3. **Metrike zasnovane na logovima:** Konfigurišite **prilagođene metrike** na osnovu sadržaja logova, omogućavajući slanje obaveštenja i praćenje na osnovu podataka o logovanju.
4. **Prikazi logova:** Prikazi logova pružaju naprednu i **granularnu kontrolu nad tim ko ima pristup** logovima unutar vaših kanti za logove. 
* Cloud Logging **automatski kreira pogled `_AllLogs` za svaku kantu**, koji prikazuje sve logove. Cloud Logging takođe kreira pogled za kantu `_Default` nazvan `_Default`. Pogled `_Default` za kantu `_Default` prikazuje sve logove osim logova za praćenje pristupa podacima. Prikazi `_AllLogs` i `_Default` nisu izmenjivi.

Moguće je dozvoliti principalu **samo korišćenje određenog Prikaza logova** sa IAM politikom poput:

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

Podrazumevani zapisi

Podrazumevano se beleže operacije Admin Write (takođe nazvane Admin Activity audit logs) (upisivanje metapodataka ili konfiguracionih informacija) i ne mogu biti onemogućene.

Zatim, korisnik može omogućiti Data Access audit logs, koji obuhvataju Admin Read, Data Write i Data Write.

Više informacija o svakom tipu zapisa možete pronaći u dokumentaciji: https://cloud.google.com/iam/docs/audit-logging

Međutim, imajte na umu da to znači da podrazumevano GetIamPolicy radnje i ostale čitanje radnje nisu beležene. Dakle, podrazumevano napadač koji pokušava da enumeriše okruženje neće biti uhvaćen ako sistem administrator nije konfigurisao generisanje više zapisa.

Da biste omogućili više zapisa u konzoli, sistem administrator mora da ode na https://console.cloud.google.com/iam-admin/audit i omogući ih. Postoje 2 različite opcije:

  • Podrazumevana konfiguracija: Moguće je kreirati podrazumevanu konfiguraciju i beležiti sve Admin Read i/ili Data Read i/ili Data Write zapise i čak dodati izuzete principe:

  • Izaberite usluge: Ili jednostavno izaberite usluge za koje želite da generišete zapise i tip zapisa i izuzetog principala za tu određenu uslugu.

Takođe imajte na umu da se podrazumevano generišu samo ti zapisi jer generisanje više zapisa povećava troškove.

Enumeracija

gcloud alat komandne linije je integralni deo GCP ekosistema, omogućavajući vam upravljanje resursima i uslugama. Evo kako možete koristiti gcloud za upravljanje vašim konfiguracijama beležaka i pristupom beleškama.

# 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

Primer za proveru logova cloudresourcemanager (onaj koji se koristi za BF dozvole): 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

Nema logova za testIamPermissions:

Post Eksploatacija

pageGCP - Logging Post Exploitation

Upornost

pageGCP - Logging Persistence

Reference

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated