GCP - Logging Enum

Erlernen Sie das Hacken von AWS von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Grundlegende Informationen

Dieser Dienst ermöglicht es Benutzern, Protokolldaten und Ereignisse von GCP zu speichern, zu durchsuchen, zu analysieren, zu überwachen und Alarme zu setzen.

Cloud Logging ist vollständig in andere GCP-Dienste integriert und bietet ein zentrales Repository für Protokolle von all Ihren GCP-Ressourcen. Es sammelt automatisch Protokolle von verschiedenen GCP-Diensten wie App Engine, Compute Engine und Cloud Functions. Sie können Cloud Logging auch für Anwendungen verwenden, die lokal oder in anderen Clouds ausgeführt werden, indem Sie den Cloud Logging-Agent oder die API verwenden.

Hauptfunktionen:

  • Zentralisierung von Protokolldaten: Aggregieren Sie Protokolldaten aus verschiedenen Quellen und bieten Sie einen ganzheitlichen Überblick über Ihre Anwendungen und Infrastruktur.

  • Echtzeit-Protokollverwaltung: Streamen Sie Protokolle in Echtzeit für sofortige Analyse und Reaktion.

  • Leistungsstarke Datenanalyse: Verwenden Sie erweiterte Filter- und Suchfunktionen, um schnell durch große Mengen von Protokolldaten zu navigieren.

  • Integration mit BigQuery: Exportieren Sie Protokolle nach BigQuery für detaillierte Analyse und Abfrage.

  • Protokollbasierte Metriken: Erstellen Sie benutzerdefinierte Metriken aus Ihren Protokolldaten für Überwachung und Alarmierung.

Protokollfluss

Grundsätzlich legen die Sinks und protokollbasierten Metriken fest, wo ein Protokoll gespeichert werden soll.

Von GCP Logging unterstützte Konfigurationen

Cloud Logging ist hoch konfigurierbar, um unterschiedlichen betrieblichen Anforderungen gerecht zu werden:

  1. Protokoll-Buckets (Protokollspeicher im Web): Definieren Sie Buckets in Cloud Logging, um die Protokollaufbewahrung zu verwalten und die Kontrolle darüber zu haben, wie lange Ihre Protokolleinträge aufbewahrt werden.

  • Standardmäßig werden die Buckets _Default und _Required erstellt (einer protokolliert, was der andere nicht tut).

  • _Required ist:

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 Aufbewahrungsfrist der Daten wird pro Bucket konfiguriert und muss mindestens 1 Tag betragen. Die Aufbewahrungsfrist von _Required beträgt jedoch 400 Tage und kann nicht geändert werden.

  • Beachten Sie, dass Protokoll-Buckets in Cloud Storage nicht sichtbar sind.

  1. Protokoll-Sinks (Protokollrouter im Web): Erstellen Sie Sinks, um Protokolleinträge an verschiedene Ziele wie Pub/Sub, BigQuery oder Cloud Storage basierend auf einem Filter zu exportieren.

  • Standardmäßig werden Sinks für die Buckets _Default und _Required erstellt:

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

* **Ausschlussfilter:** Es ist möglich, **Ausschlüsse einzurichten, um zu verhindern, dass bestimmte Protokolleinträge** erfasst werden, um Kosten zu sparen und unnötigen Lärm zu reduzieren.
3. **Protokollbasierte Metriken:** Konfigurieren Sie **benutzerdefinierte Metriken** basierend auf dem Inhalt von Protokollen, um Alarme und Überwachung basierend auf Protokolldaten zu ermöglichen.
4. **Protokollansichten:** Protokollansichten bieten eine erweiterte und **granulare Kontrolle darüber, wer auf die Protokolle in Ihren Protokoll-Buckets zugreifen kann**. 
* Cloud Logging **erstellt automatisch die Ansicht `_AllLogs` für jeden Bucket**, die alle Protokolle anzeigt. Cloud Logging erstellt auch eine Ansicht für den Bucket `_Default` namens `_Default`. Die Ansichten `_AllLogs` und `_Default` sind nicht bearbeitbar.

Es ist möglich, einem Prinzipal zu erlauben, **nur eine bestimmte Protokollansicht** mit einer IAM-Richtlinie zu verwenden, wie:

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

Standardprotokolle

Standardmäßig werden Admin Write-Operationen (auch als Admin-Aktivitätsprüfprotokolle bezeichnet) protokolliert (Metadaten oder Konfigurationsinformationen schreiben) und können nicht deaktiviert werden.

Anschließend kann der Benutzer Data Access Audit-Logs aktivieren, diese umfassen Admin Read, Data Write und Data Write.

Weitere Informationen zu jedem Protokolltyp finden Sie in der Dokumentation: https://cloud.google.com/iam/docs/audit-logging

Es sei jedoch darauf hingewiesen, dass dies bedeutet, dass standardmäßig GetIamPolicy-Aktionen und andere Leseaktionen nicht protokolliert werden. Ein Angreifer, der standardmäßig versucht, die Umgebung aufzulisten, wird also nicht erfasst, wenn der Systemadministrator nicht konfiguriert hat, um mehr Protokolle zu generieren.

Um mehr Protokolle in der Konsole zu aktivieren, muss der Systemadministrator zu https://console.cloud.google.com/iam-admin/audit gehen und sie aktivieren. Es gibt 2 verschiedene Optionen:

  • Standardkonfiguration: Es ist möglich, eine Standardkonfiguration zu erstellen und alle Admin Read- und/oder Data Read- und/oder Data Write-Protokolle zu protokollieren und sogar ausgenommene Prinzipale hinzuzufügen:

  • Dienste auswählen: Oder einfach die Dienste auswählen, für die Sie Protokolle generieren möchten, sowie den Protokolltyp und den ausgenommenen Prinzipal für diesen spezifischen Dienst.

Bitte beachten Sie auch, dass standardmäßig nur diese Protokolle generiert werden, da das Generieren weiterer Protokolle die Kosten erhöhen wird.

Aufzählung

Das gcloud-Befehlszeilentool ist ein integraler Bestandteil des GCP-Ökosystems und ermöglicht es Ihnen, Ihre Ressourcen und Dienste zu verwalten. Hier erfahren Sie, wie Sie gcloud verwenden können, um Ihre Protokollkonfigurationen und Zugriffsprotokolle zu verwalten.

# 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

Beispiel zum Überprüfen der Protokolle von cloudresourcemanager (der zur BF-Berechtigung verwendet wird): 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

Es gibt keine Protokolle von testIamPermissions:

Post-Exploitation

pageGCP - Logging Post Exploitation

Persistenz

pageGCP - Logging Persistence

Referenzen

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated