GCP - Logging Enum

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Basic Information

Αυτή η υπηρεσία επιτρέπει στους χρήστες να αποθηκεύουν, να αναζητούν, να αναλύουν, να παρακολουθούν και να ειδοποιούν για δεδομένα και γεγονότα καταγραφής από το GCP.

Το Cloud Logging είναι πλήρως ενσωματωμένο με άλλες υπηρεσίες GCP, παρέχοντας μια κεντρική αποθήκη για τα αρχεία καταγραφής από όλους τους πόρους GCP σας. Συλλέγει αυτόματα αρχεία καταγραφής από διάφορες υπηρεσίες GCP όπως το App Engine, το Compute Engine και το Cloud Functions. Μπορείτε επίσης να χρησιμοποιήσετε το Cloud Logging για εφαρμογές που εκτελούνται τοπικά ή σε άλλες υποδομές cloud χρησιμοποιώντας τον πράκτορα Cloud Logging ή το API.

Key Features:

  • Κεντρικοποίηση Δεδομένων Καταγραφής: Συγκεντρώστε δεδομένα καταγραφής από διάφορες πηγές, προσφέροντας μια ολιστική εικόνα των εφαρμογών και της υποδομής σας.

  • Διαχείριση Αρχείων Καταγραφής σε Πραγματικό Χρόνο: Ροή αρχείων καταγραφής σε πραγματικό χρόνο για άμεση ανάλυση και αντίδραση.

  • Δυνατή Ανάλυση Δεδομένων: Χρησιμοποιήστε προηγμένες δυνατότητες φιλτραρίσματος και αναζήτησης για να διαχωρίσετε γρήγορα μεγάλους όγκους δεδομένων καταγραφής.

  • Ενσωμάτωση με BigQuery: Εξάγετε αρχεία καταγραφής στο BigQuery για λεπτομερή ανάλυση και ερωτήματα.

  • Μετρικές Βασισμένες σε Αρχεία Καταγραφής: Δημιουργήστε προσαρμοσμένες μετρικές από τα δεδομένα καταγραφής σας για παρακολούθηση και ειδοποίηση.

Logs flow

Βασικά, οι υποδοχές και οι μετρικές βασισμένες σε αρχεία καταγραφής θα καθορίσουν πού θα αποθηκευτεί ένα αρχείο καταγραφής.

Configurations Supported by GCP Logging

Το Cloud Logging είναι πολύ παραμετροποιήσιμο για να καλύψει τις διάφορες επιχειρησιακές ανάγκες:

  1. Log Buckets (Αποθήκευση αρχείων καταγραφής στο διαδίκτυο): Ορίστε κάδους στο Cloud Logging για να διαχειριστείτε τη διατήρηση αρχείων καταγραφής, παρέχοντας έλεγχο σχετικά με το πόσο καιρό διατηρούνται οι καταχωρίσεις αρχείων καταγραφής σας.

  • Από προεπιλογή, οι κάδοι _Default και _Required δημιουργούνται (ο ένας καταγράφει ό,τι δεν καταγράφει ο άλλος).

  • _Required είναι:

```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")
```
  • Η περίοδος διατήρησης των δεδομένων ρυθμίζεται ανά κάδο και πρέπει να είναι τουλάχιστον 1 ημέρα. Ωστόσο, η περίοδος διατήρησης του _Required είναι 400 ημέρες και δεν μπορεί να τροποποιηθεί.

  • Σημειώστε ότι οι Log Buckets είναι μη ορατοί στο Cloud Storage.

  1. Log Sinks (Δρομολογητής καταγραφών στο διαδίκτυο): Δημιουργήστε sinks για εξαγωγή καταγραφών σε διάφορους προορισμούς όπως Pub/Sub, BigQuery ή Cloud Storage με βάση ένα φίλτρο.

  • Από προεπιλογή δημιουργούνται sinks για τους κάδους _Default και _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")

* **Φίλτρα Εξαίρεσης:** Είναι δυνατή η ρύθμιση **εξαιρέσεων για να αποτραπεί η εισαγωγή συγκεκριμένων καταγραφών**, εξοικονομώντας κόστος και μειώνοντας τον περιττό θόρυβο.
3. **Μετρικές βάσει καταγραφών:** Ρυθμίστε **προσαρμοσμένες μετρικές** με βάση το περιεχόμενο των καταγραφών, επιτρέποντας την ειδοποίηση και την παρακολούθηση με βάση τα δεδομένα καταγραφών.
4. **Αναφορές καταγραφών:** Οι αναφορές καταγραφών παρέχουν προηγμένο και **λεπτομερή έλεγχο για το ποιος έχει πρόσβαση** στις καταγραφές εντός των κάδων καταγραφών σας.
* Το Cloud Logging **δημιουργεί αυτόματα την αναφορά `_AllLogs` για κάθε κάδο**, η οποία δείχνει όλες τις καταγραφές. Το Cloud Logging δημιουργεί επίσης μια αναφορά για τον κάδο `_Default` που ονομάζεται `_Default`. Η αναφορά `_Default` για τον κάδο `_Default` δείχνει όλες τις καταγραφές εκτός από τις καταγραφές ελέγχου πρόσβασης δεδομένων. Οι αναφορές `_AllLogs` και `_Default` δεν είναι επεξεργάσιμες.

Είναι δυνατή η παροχή δικαιώματος σε έναν κύριο **μόνο για να χρησιμοποιεί μια συγκεκριμένη αναφορά καταγραφών** με μια πολιτική IAM όπως:

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

Default Logs

Από προεπιλογή, οι Admin Write ενέργειες (γνωστές και ως Admin Activity audit logs) είναι αυτές που καταγράφονται (γράφουν μεταδεδομένα ή πληροφορίες διαμόρφωσης) και δεν μπορούν να απενεργοποιηθούν.

Στη συνέχεια, ο χρήστης μπορεί να ενεργοποιήσει τα Data Access audit logs, αυτά είναι Admin Read, Data Write και Data Write.

Μπορείτε να βρείτε περισσότερες πληροφορίες για κάθε τύπο καταγραφής στα έγγραφα: https://cloud.google.com/iam/docs/audit-logging

Ωστόσο, σημειώστε ότι αυτό σημαίνει ότι από προεπιλογή οι ενέργειες GetIamPolicy και άλλες αναγνωστικές ενέργειες δεν καταγράφονται. Έτσι, από προεπιλογή, ένας επιτιθέμενος που προσπαθεί να καταγράψει το περιβάλλον δεν θα εντοπιστεί αν ο διαχειριστής συστήματος δεν έχει ρυθμίσει τη δημιουργία περισσότερων καταγραφών.

Για να ενεργοποιήσει περισσότερες καταγραφές στην κονσόλα, ο διαχειριστής συστήματος πρέπει να μεταβεί στο https://console.cloud.google.com/iam-admin/audit και να τις ενεργοποιήσει. Υπάρχουν 2 διαφορετικές επιλογές:

  • Default Configuration: Είναι δυνατόν να δημιουργηθεί μια προεπιλεγμένη διαμόρφωση και να καταγραφούν όλες οι Admin Read και/ή Data Read και/ή Data Write καταγραφές και ακόμη και να προστεθούν εξαιρούμενοι φορείς:

  • Select the services: Ή απλά επιλέξτε τις υπηρεσίες που θα θέλατε να δημιουργήσουν καταγραφές και τον τύπο των καταγραφών και τον εξαιρούμενο φορέα για αυτήν την συγκεκριμένη υπηρεσία.

Επίσης, σημειώστε ότι από προεπιλογή μόνο αυτές οι καταγραφές δημιουργούνται, διότι η δημιουργία περισσότερων καταγραφών θα αυξήσει το κόστος.

Enumeration

Το εργαλείο γραμμής εντολών gcloud είναι αναπόσπαστο μέρος του οικοσυστήματος GCP, επιτρέποντάς σας να διαχειρίζεστε τους πόρους και τις υπηρεσίες σας. Ακολουθεί πώς μπορείτε να χρησιμοποιήσετε το gcloud για να διαχειριστείτε τις ρυθμίσεις καταγραφής σας και να αποκτήσετε πρόσβαση στις καταγραφές.

# 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

Παράδειγμα για να ελέγξετε τα logs του cloudresourcemanager (αυτό που χρησιμοποιείται για BF permissions): 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

Δεν υπάρχουν logs του testIamPermissions:

Post Exploitation

GCP - Logging Post Exploitation

Persistence

GCP - Logging Persistence

References

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Last updated