GCP - Storage Enum
Speicher
Google Cloud Platform (GCP) Storage ist eine cloud-basierte Speicherlösung, die hochdauerhaften und verfügbaren Objektspeicher für unstrukturierte Daten bietet. Es bietet verschiedene Speicherklassen basierend auf Leistung, Verfügbarkeit und Kosten, einschließlich Standard, Nearline, Coldline und Archive. GCP Storage bietet auch erweiterte Funktionen wie Lebenszyklusrichtlinien, Versionierung und Zugriffskontrolle, um Daten effektiv zu verwalten und zu sichern.
Der Bucket kann in einer Region, in 2 Regionen oder Multi-Region (Standard) gespeichert werden.
Speichertypen
Standard-Speicher: Dies ist die Standard-Speicheroption, die einen leistungsstarken, latenzarmen Zugriff auf häufig abgerufene Daten bietet. Er eignet sich für eine Vielzahl von Anwendungsfällen, einschließlich Bereitstellung von Website-Inhalten, Streaming-Medien und Hosting von Datenanalyse-Pipelines.
Nearline-Speicher: Diese Speicherkategorie bietet niedrigere Speicherkosten und etwas höhere Zugriffskosten als Standard-Speicher. Er ist optimiert für selten abgerufene Daten, mit einer minimalen Speicherdauer von 30 Tagen. Er eignet sich ideal für Backup- und Archivierungszwecke.
Coldline-Speicher: Diese Speicherkategorie ist optimiert für Langzeitspeicherung selten abgerufener Daten, mit einer minimalen Speicherdauer von 90 Tagen. Er bietet niedrigere Speicherkosten als Nearline-Speicher, aber mit höheren Zugriffskosten.
Archive-Speicher: Diese Speicherkategorie ist für kalte Daten konzipiert, die sehr selten abgerufen werden, mit einer minimalen Speicherdauer von 365 Tagen. Er bietet die niedrigsten Speicherkosten aller GCP-Speicheroptionen, aber mit den höchsten Zugriffskosten. Er eignet sich für die langfristige Aufbewahrung von Daten, die aus Compliance- oder regulatorischen Gründen gespeichert werden müssen.
Autoklasse: Wenn Sie nicht wissen, wie oft Sie auf die Daten zugreifen werden, können Sie Autoklasse auswählen und GCP wird automatisch den Speichertyp ändern, um Kosten zu minimieren.
Zugriffskontrolle
Es wird standardmäßig empfohlen, den Zugriff über IAM zu steuern, aber es ist auch möglich, die Verwendung von ACLs zu aktivieren. Wenn Sie sich dafür entscheiden, nur IAM zu verwenden (Standard) und 90 Tage vergangen sind, können Sie ACLs nicht für den Bucket aktivieren.
Versionierung
Es ist möglich, die Versionierung zu aktivieren, dies wird alte Versionen der Datei im Bucket speichern. Es ist möglich, die Anzahl der Versionen, die Sie behalten möchten, zu konfigurieren und sogar wie lange Sie möchten, dass nicht aktuelle Versionen (alte Versionen) bestehen bleiben. Empfohlen sind 7 Tage für den Standardtyp.
Die Metadaten einer nicht aktuellen Version werden beibehalten. Darüber hinaus werden auch ACLs nicht aktueller Versionen beibehalten, sodass ältere Versionen möglicherweise unterschiedliche ACLs als die aktuelle Version haben.
Erfahren Sie mehr in der Dokumentation.
Aufbewahrungspolitik
Geben Sie an, wie lange Sie die Löschung von Objekten im Bucket verbieten möchten (sehr nützlich für die Compliance mindestens). Nur eine der Versionierung oder Aufbewahrungspolitik kann gleichzeitig aktiviert sein.
Verschlüsselung
Standardmäßig werden Objekte mit von Google verwalteten Schlüsseln verschlüsselt, aber Sie könnten auch einen Schlüssel von KMS verwenden.
Öffentlicher Zugriff
Es ist möglich, externen Benutzern (angemeldet bei GCP oder nicht) Zugriff auf den Inhalt von Buckets zu gewähren. Standardmäßig wird ein Bucket, wenn er erstellt wird, die Option, den Bucket öffentlich freizugeben, deaktiviert haben, aber mit ausreichenden Berechtigungen kann dies geändert werden.
Das Format einer URL zum Zugriff auf einen Bucket lautet https://storage.googleapis.com/<bucket-name>
oder https://<bucket_name>.storage.googleapis.com
(beide sind gültig).
HMAC-Schlüssel
Ein HMAC-Schlüssel ist ein Typ von Anmeldeinformation und kann mit einem Dienstkonto oder einem Benutzerkonto in Cloud Storage verknüpft werden. Sie verwenden einen HMAC-Schlüssel, um Signaturen zu erstellen, die dann in Anfragen an Cloud Storage enthalten sind. Signaturen zeigen, dass eine bestimmte Anfrage vom Benutzer oder Dienstkonto autorisiert ist.
HMAC-Schlüssel haben zwei Hauptbestandteile, eine Zugriffs-ID und ein Geheimnis.
Zugriffs-ID: Eine alphanumerische Zeichenfolge, die mit einem bestimmten Dienst- oder Benutzerkonto verknüpft ist. Wenn sie mit einem Dienstkonto verknüpft ist, beträgt die Zeichenfolge 61 Zeichen, und wenn sie mit einem Benutzerkonto verknüpft ist, beträgt die Zeichenfolge 24 Zeichen. Im Folgenden wird ein Beispiel für eine Zugriffs-ID gezeigt:
GOOGTS7C7FUP3AIRVJTE2BCDKINBTES3HC2GY5CBFJDCQ2SYHV6A6XXVTJFSA
Geheimnis: Eine 40 Zeichen lange Base-64-codierte Zeichenfolge, die mit einer bestimmten Zugriffs-ID verknüpft ist. Ein Geheimnis ist ein vorab freigegebener Schlüssel, den nur Sie und Cloud Storage kennen. Sie verwenden Ihr Geheimnis, um Signaturen im Rahmen des Authentifizierungsprozesses zu erstellen. Im Folgenden wird ein Beispiel für ein Geheimnis gezeigt:
bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ
Sowohl die Zugriffs-ID als auch das Geheimnis identifizieren eindeutig einen HMAC-Schlüssel, aber das Geheimnis ist sensiblere Information, da es verwendet wird, um Signaturen zu erstellen.
Enumeration
Wenn Sie einen Berechtigungsfehler beim Auflisten von Buckets erhalten, haben Sie möglicherweise immer noch Zugriff auf den Inhalt. Jetzt, da Sie über die Namenskonvention der Buckets Bescheid wissen, können Sie eine Liste möglicher Namen generieren und versuchen, darauf zuzugreifen:
Mit den Berechtigungen storage.objects.list
und storage.objects.get
sollten Sie in der Lage sein, alle Ordner und Dateien aus dem Eimer aufzulisten, um sie herunterzuladen. Dies kann mit diesem Python-Skript erreicht werden:
Privilege Escalation
Auf der folgenden Seite können Sie nachschauen, wie Sie Speicherberechtigungen missbrauchen, um Privilegien zu eskalieren:
GCP - Storage PrivescUnauthenticated Enum
GCP - Storage Unauthenticated EnumPost Exploitation
GCP - Storage Post ExploitationPersistence
GCP - Storage PersistenceLast updated