GCP - Logging Enum

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

Temel Bilgiler

Bu hizmet, kullanıcıların GCP’den log verilerini ve olaylarını depolamasına, aramasına, analiz etmesine, izlemesine ve uyarı vermesine olanak tanır.

Cloud Logging, tüm GCP kaynaklarınızdan gelen loglar için merkezi bir depo sağlayarak diğer GCP hizmetleriyle tamamen entegre edilmiştir. Farklı GCP hizmetlerinden logları otomatik olarak toplar; App Engine, Compute Engine ve Cloud Functions gibi. Ayrıca, Cloud Logging ajanı veya API’sini kullanarak yerel veya diğer bulutlarda çalışan uygulamalar için de Cloud Logging’i kullanabilirsiniz.

Ana Özellikler:

  • Log Verisi Merkezileştirme: Çeşitli kaynaklardan log verilerini bir araya getirerek uygulamalarınız ve altyapınız hakkında bütünsel bir görünüm sunar.
  • Gerçek Zamanlı Log Yönetimi: Hızlı analiz ve yanıt için logları gerçek zamanlı olarak akıtarak.
  • Güçlü Veri Analizi: Büyük hacimlerdeki log verilerini hızlıca süzmek için gelişmiş filtreleme ve arama yeteneklerini kullanın.
  • BigQuery ile Entegrasyon: Detaylı analiz ve sorgulama için logları BigQuery’ye aktarın.
  • Log Tabanlı Metrikler: İzleme ve uyarı için log verilerinizden özel metrikler oluşturun.

Log Akışı

https://betterstack.com/community/guides/logging/gcp-logging/

Temelde, sink’ler ve log tabanlı metrikler, bir logun nerede saklanması gerektiğini belirleyecektir.

GCP Logging Tarafından Desteklenen Yapılandırmalar

Cloud Logging, çeşitli operasyonel ihtiyaçlara uyacak şekilde yüksek derecede yapılandırılabilir:

  1. Log Kovalari (Web’de log depolama): Log saklama süresini yönetmek için Cloud Logging’de kovalara tanım yapın, log girişlerinizin ne kadar süreyle saklanacağı üzerinde kontrol sağlar.
  • Varsayılan olarak _Default ve _Required kovalari oluşturulur (biri diğerinin ne olduğunu kaydeder).
  • _Required şudur:
```bash
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")
```

  • Verilerin saklama süresi her bir bucket için yapılandırılır ve en az 1 gün olmalıdır. Ancak _Required saklama süresi 400 gündür ve değiştirilemez.
  • Log Buckets’ın Cloud Storage’da görünmediğini unutmayın.
  1. Log Sinks (Web’deki Log yönlendirici): Log girişlerini çıkarmak için Pub/Sub, BigQuery veya Cloud Storage gibi çeşitli hedeflere filtreye dayalı olarak oluşturun.
  • Varsayılan olarak _Default ve _Required bucket’lar için sink’ler oluşturulur:

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

- **Hariç Tutma Filtreleri:** Belirli log girişlerinin **alınmasını önlemek için hariç tutmalar** ayarlamak mümkündür, bu da maliyetleri tasarruf ettirir ve gereksiz gürültüyü azaltır.
3. **Log Tabanlı Metrikler:** Logların içeriğine dayalı **özel metrikler** yapılandırarak log verilerine dayalı olarak uyarı ve izleme yapılmasını sağlar.
4. **Log Görünümleri:** Log görünümleri, log bucket'larınız içindeki loglara kimin erişimi olduğunu **gelişmiş ve ayrıntılı bir şekilde kontrol etmenizi** sağlar.
- Cloud Logging, her bucket için otomatik olarak `_AllLogs` görünümünü oluşturur; bu görünüm tüm logları gösterir. Cloud Logging ayrıca `_Default` bucket için `_Default` adında bir görünüm oluşturur. `_Default` bucket için `_Default` görünümü, Data Access denetim logları hariç tüm logları gösterir. `_AllLogs` ve `_Default` görünümleri düzenlenemez.

Bir ilkenin **sadece belirli bir Log görünümünü kullanmasına** izin vermek mümkündür:
```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
}

Varsayılan Günlükler

Varsayılan olarak Admin Write işlemleri (Admin Activity denetim günlükleri olarak da adlandırılır) kaydedilir (meta verileri veya yapılandırma bilgilerini yazma) ve devre dışı bırakılamaz.

Daha sonra, kullanıcı Data Access denetim günlüklerini etkinleştirebilir, bunlar Admin Read, Data Write ve Data Write’dır.

Her bir günlük türü hakkında daha fazla bilgi için belgeleri inceleyebilirsiniz: https://cloud.google.com/iam/docs/audit-logging

Ancak, bu durumun varsayılan olarak GetIamPolicy eylemleri ve diğer okuma eylemlerinin kaydedilmediği anlamına geldiğini unutmayın. Yani, varsayılan olarak bir saldırgan ortamı listelemeye çalışıyorsa, sistem yöneticisi daha fazla günlük oluşturmak için yapılandırmadıysa yakalanmayacaktır.

Konsolda daha fazla günlük etkinleştirmek için sistem yöneticisinin https://console.cloud.google.com/iam-admin/audit adresine gitmesi ve bunları etkinleştirmesi gerekir. İki farklı seçenek vardır:

  • Varsayılan Yapılandırma: Varsayılan bir yapılandırma oluşturmak ve tüm Admin Read ve/veya Data Read ve/veya Data Write günlüklerini kaydetmek ve hatta muaf tutulan ilkeleri eklemek mümkündür:
  • Hizmetleri Seçin: Ya da sadece günlük oluşturmak istediğiniz hizmetleri ve günlük türünü ve o belirli hizmet için muaf tutulan ilkeleri seçebilirsiniz.

Ayrıca, varsayılan olarak yalnızca bu günlüklerin oluşturulduğunu unutmayın çünkü daha fazla günlük oluşturmak maliyetleri artıracaktır.

Listeleme

gcloud komut satırı aracı, GCP ekosisteminin ayrılmaz bir parçasıdır ve kaynaklarınızı ve hizmetlerinizi yönetmenizi sağlar. İşte gcloud’u günlük yapılandırmalarınızı yönetmek ve günlükleri erişmek için nasıl kullanabileceğiniz.

# 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

cloudresourcemanager (izinleri BF için kullanılan) günlüklerini kontrol etme örneği: 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

testIamPermissions için günlük yok:

Post Exploitation

GCP - Logging Post Exploitation

Persistence

GCP - Logging Persistence

References

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin