GCP - Logging Enum

Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile!

HackTricks'ı desteklemenin diğer yolları:

  • Şirketinizi HackTricks'te reklam görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız [ABONELİK PLANLARI]'na (https://github.com/sponsors/carlospolop) göz atın!

  • [Resmi PEASS & HackTricks ürünleri]'ni (https://peass.creator-spring.com) edinin

  • [PEASS Ailesi]'ni (https://opensea.io/collection/the-peass-family) keşfedin, özel [NFT'lerimiz]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuz

  • Katılın 💬 Discord grubuna veya telegram grubuna veya beni Twitter 🐦 @carlospolopm** takip edin.**

  • Hacking püf noktalarınızı paylaşarak PR'lar göndererek HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.

Temel Bilgiler

Bu hizmet, kullanıcıların GCP'den günlük verileri ve olayları depolamalarına, aramalarına, analiz etmelerine, izlemelerine ve uyarı almalarına olanak tanır.

Cloud Logging, diğer GCP hizmetleriyle tam entegredir ve tüm GCP kaynaklarından günlükleri toplamak için merkezi bir depo sağlar. App Engine, Compute Engine ve Cloud Functions gibi çeşitli GCP hizmetlerinden günlükleri otomatik olarak toplar. Cloud Logging ayrıca, Cloud Logging ajanını veya API'sını kullanarak yerinde veya diğer bulutlarda çalışan uygulamalar için de Cloud Logging'i kullanabilirsiniz.

Ana Özellikler:

  • Günlük Verilerinin Merkezileştirilmesi: Çeşitli kaynaklardan günlük verilerini toplayarak uygulamalarınızın ve altyapınızın bütünsel bir görünümünü sunar.

  • Gerçek Zamanlı Günlük Yönetimi: Gerçek zamanlı olarak günlükleri akıtarak hızlı analiz ve yanıt için.

  • Güçlü Veri Analizi: Büyük miktardaki günlük verilerini hızlı bir şekilde süzmek için gelişmiş filtreleme ve arama yeteneklerini kullanın.

  • BigQuery ile Entegrasyon: Günlükleri ayrıntılı analiz ve sorgulama için BigQuery'e aktarın.

  • Günlük Tabanlı Metrikler: Günlük verilerinizden özel metrikler oluşturarak izleme ve uyarılar için.

Günlük Akışı

Temelde, sızıntılar ve günlük tabanlı metrikler bir günlüğün nerede depolanacağını belirler.

GCP Logging Tarafından Desteklenen Yapılandırmalar

Cloud Logging, çeşitli işletme ihtiyaçlarına uyacak şekilde yüksek düzeyde yapılandırılabilir:

  1. Günlük Kovaları (Web'de günlük depolama): Günlük saklama için Cloud Logging'de kovalar tanımlayın ve günlük girişlerinizin ne kadar süreyle saklanacağı konusunda kontrol sağlayın.

  • Varsayılan olarak _Default ve _Required adlı kovalar oluşturulur (bir tanesi diğerinin ne yaptığını kaydeder).

  • _Required şudur:

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 kovaya göre yapılandırılır ve en az 1 gün olmalıdır. Ancak _Required'ın saklama süresi 400 gün ve değiştirilemez.

  • Günlük Kovalarının Cloud Storage'da görünür olmadığını unutmayın.

  1. Günlük Sızıntıları (Web'de günlük yönlendirici): Filtreye dayalı olarak günlük girişlerini Pub/Sub, BigQuery veya Cloud Storage gibi çeşitli hedeflere aktarmak için sızıntılar oluşturun.

  • Varsayılan olarak _Default ve _Required kovalar için sızıntılar 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")

* **Dışlama Filtreleri:** Belirli günlük girişlerinin alınmasını önlemek için **dışlamaları yapılandırmak mümkündür**, böylece maliyetleri azaltabilir ve gereksiz gürültüyü azaltabilirsiniz.
3. **Günlük Tabanlı Metrikler:** Günlük içeriğine dayalı olarak **özel metrikler** yapılandırarak günlük verilerine dayalı uyarılar ve izleme sağlayın.
4. **Günlük görünümleri:** Günlük görünümleri, günlük kovalarınız içinde kimin günlüklere erişimi olduğu konusunda ileri düzeyde ve **aşırı kontrol sağlar.**
* Cloud Logging, her kova için **otomatik olarak `_AllLogs` görünümünü oluşturur**, bu görünüm tüm günlükleri gösterir. Cloud Logging ayrıca `_Default` kovası için `_Default` adında bir görünüm oluşturur. `_Default` kovası için `_Default` görünümü, Veri Erişim denetim günlükleri hariç tüm günlükleri gösterir. `_AllLogs` ve `_Default` görünümleri düzenlenemez.

Belirli bir Günlük görünümünü kullanmasına izin vermek için bir IAM politikası ile bir prensibe **yalnızca belirli bir Günlük görünümünü kullanmasına izin vermek mümkündür**:

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

Varsayılan Günlükler

Varsayılan olarak Yönetici Yazma işlemleri (ayrıca Yönetici Etkinlik denetim günlükleri olarak da adlandırılır) kaydedilen işlemlerdir (meta veri yazma veya yapılandırma bilgileri) ve devre dışı bırakılamazlar.

Daha sonra, kullanıcı Veri Erişimi denetim günlüklerini etkinleştirebilir, bunlar Yönetici Okuma, Veri Yazma ve Veri Yazma işlemlerini içerir.

Her günlük türü hakkında daha fazla bilgiyi belgelerde bulabilirsiniz: https://cloud.google.com/iam/docs/audit-logging

Ancak, bunun anlamı varsayılan olarak GetIamPolicy eylemleri ve diğer okuma eylemlerinin kaydedilmediğidir. Bu nedenle, varsayılan olarak bir saldırganın ortamı numaralandırmaya çalışması durumunda, sistem yöneticisi daha fazla günlük oluşturacak şekilde yapılandırmadıysa yakalanmayacaktır.

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

  • Varsayılan Yapılandırma: Varsayılan bir yapılandırma oluşturmak ve tüm Yönetici Okuma ve/veya Veri Okuma ve/veya Veri Yazma günlüklerini ve hatta muaf tutulan prensipleri kaydetmek mümkündür:

  • Hizmetleri Seçin: Veya sadece günlük oluşturmak istediğiniz hizmetleri ve günlük türlerini ve belirli hizmet için muaf tutulan prensipleri seçin.

Ayrıca, varsayılan olarak yalnızca bu günlükler oluşturulur çünkü daha fazla günlük oluşturmak maliyetleri artırır.

Numaralandırma

gcloud komut satırı aracı, kaynaklarınızı ve hizmetlerinizi yönetmenize olanak tanıyan GCP ekosisteminin ayrılmaz bir parçasıdır. İşte gcloud'u günlük yapılandırmalarınızı ve erişim günlüklerinizi yönetmek 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

Örnek olarak cloudresourcemanager'ın günlüklerini kontrol etmek için (izinleri BF için kullanılan): 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'ın günlükleri bulunmamaktadır:

Sonrası Sızma

pageGCP - Logging Post Exploitation

Kalıcılık

pageGCP - Logging Persistence

Referanslar

Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'i desteklemenin diğer yolları:

Last updated