GCP - Storage Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Google Cloud Platform (GCP) Storage to rozwiązanie do przechowywania w chmurze, które zapewnia wysoce trwałe i dostępne przechowywanie obiektów dla danych niestrukturalnych. Oferuje różne klasy przechowywania w zależności od wydajności, dostępności i kosztów, w tym Standard, Nearline, Coldline i Archive. GCP Storage zapewnia również zaawansowane funkcje, takie jak polityki cyklu życia, wersjonowanie i kontrola dostępu, aby skutecznie zarządzać i zabezpieczać dane.
Bucket może być przechowywany w regionie, w 2 regionach lub w wielu regionach (domyślnie).
Standard Storage: To domyślna opcja przechowywania, która oferuje wysoką wydajność i niską latencję dostępu do często używanych danych. Nadaje się do szerokiego zakresu zastosowań, w tym do serwowania treści internetowych, strumieniowania mediów i hostowania potoków analitycznych danych.
Nearline Storage: Ta klasa przechowywania oferuje niższe koszty przechowywania i nieco wyższe koszty dostępu niż Standard Storage. Jest zoptymalizowana do rzadko używanych danych, z minimalnym czasem przechowywania wynoszącym 30 dni. Idealna do celów kopii zapasowych i archiwizacji.
Coldline Storage: Ta klasa przechowywania jest zoptymalizowana do długoterminowego przechowywania rzadko używanych danych, z minimalnym czasem przechowywania wynoszącym 90 dni. Oferuje niższe koszty przechowywania niż Nearline Storage, ale z wyższymi kosztami dostępu.
Archive Storage: Ta klasa przechowywania jest zaprojektowana dla zimnych danych, które są dostępne bardzo rzadko, z minimalnym czasem przechowywania wynoszącym 365 dni. Oferuje najniższe koszty przechowywania ze wszystkich opcji GCP, ale z najwyższymi kosztami dostępu. Nadaje się do długoterminowego przechowywania danych, które muszą być przechowywane w celach zgodności lub regulacyjnych.
Autoclass: Jeśli nie wiesz, jak często będziesz uzyskiwać dostęp do danych, możesz wybrać Autoclass, a GCP automatycznie zmieni typ przechowywania, aby zminimalizować koszty.
Z domyślnie zaleca się kontrolowanie dostępu za pomocą IAM, ale możliwe jest również włączenie użycia ACL. Jeśli wybierzesz tylko użycie IAM (domyślnie) i minie 90 dni, nie będziesz mógł włączyć ACL dla bucketu.
Możliwe jest włączenie wersjonowania, co zapisze stare wersje pliku w bucket. Możliwe jest skonfigurowanie liczby wersji, które chcesz zachować i nawet jak długo chcesz, aby wersje nieaktualne (stare wersje) były przechowywane. Zalecane jest 7 dni dla typu Standard.
Metadane wersji nieaktualnej są przechowywane. Ponadto ACL wersji nieaktualnych są również przechowywane, więc starsze wersje mogą mieć różne ACL od wersji aktualnej.
Dowiedz się więcej w dokumentacji.
Wskaź, jak długo chcesz zabronić usuwania obiektów w bucket (bardzo przydatne przynajmniej dla zgodności). Tylko jedna z wersjonowania lub polityki przechowywania może być włączona w tym samym czasie.
Z domyślnie obiekty są szyfrowane za pomocą kluczy zarządzanych przez Google, ale możesz również użyć klucza z KMS.
Możliwe jest nadanie zewnętrznym użytkownikom (zalogowanym w GCP lub nie) dostępu do zawartości bucketu. Z domyślnie, gdy bucket jest tworzony, będzie miał wyłączoną opcję publicznego udostępniania bucketu, ale przy wystarczających uprawnieniach można to zmienić.
Format URL do uzyskania dostępu do bucketu to https://storage.googleapis.com/<bucket-name>
lub https://<bucket_name>.storage.googleapis.com
(oba są ważne).
Klucz HMAC to rodzaj poświadczenia i może być powiązany z kontem usługi lub kontem użytkownika w Cloud Storage. Używasz klucza HMAC do tworzenia podpisów, które są następnie dołączane do żądań do Cloud Storage. Podpisy pokazują, że dane żądanie jest autoryzowane przez użytkownika lub konto usługi.
Klucze HMAC mają dwa główne elementy, identyfikator dostępu i sekret.
Access ID: Alfanumeryczny ciąg powiązany z określoną usługą lub kontem użytkownika. Gdy jest powiązany z kontem usługi, ciąg ma długość 61 znaków, a gdy jest powiązany z kontem użytkownika, ciąg ma długość 24 znaków. Poniżej przedstawiono przykład identyfikatora dostępu:
GOOGTS7C7FUP3AIRVJTE2BCDKINBTES3HC2GY5CBFJDCQ2SYHV6A6XXVTJFSA
Secret: 40-znakowy ciąg zakodowany w Base-64, który jest powiązany z określonym identyfikatorem dostępu. Sekret to klucz wstępnie udostępniony, który znają tylko Ty i Cloud Storage. Używasz swojego sekretu do tworzenia podpisów jako część procesu uwierzytelniania. Poniżej przedstawiono przykład sekretu:
bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ
Zarówno identyfikator dostępu, jak i sekret unikalnie identyfikują klucz HMAC, ale sekret jest znacznie bardziej wrażliwą informacją, ponieważ jest używany do tworzenia podpisów.
Jeśli otrzymasz błąd odmowy dostępu podczas wyświetlania koszyków, możesz nadal mieć dostęp do ich zawartości. Teraz, gdy znasz konwencję nazewnictwa koszyków, możesz wygenerować listę możliwych nazw i spróbować uzyskać do nich dostęp:
Z uprawnieniami storage.objects.list
i storage.objects.get
powinieneś być w stanie wylistować wszystkie foldery i pliki z koszyka, aby je pobrać. Możesz to osiągnąć za pomocą tego skryptu Pythona:
Na następnej stronie możesz sprawdzić, jak nadużywać uprawnień do przechowywania, aby eskalować uprawnienia:
GCP - Storage PrivescUcz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)