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 è una soluzione di archiviazione basata su cloud che fornisce un'archiviazione di oggetti altamente durevole e disponibile per dati non strutturati. Offre diverse classi di archiviazione basate su prestazioni, disponibilità e costi, tra cui Standard, Nearline, Coldline e Archive. GCP Storage fornisce anche funzionalità avanzate come politiche di ciclo di vita, versioning e controllo degli accessi per gestire e proteggere i dati in modo efficace.
Il bucket può essere archiviato in una regione, in 2 regioni o multi-regione (predefinito).
Standard Storage: Questa è l'opzione di archiviazione predefinita che offre accesso ad alta prestazione e bassa latenza ai dati frequentemente accessibili. È adatta per una vasta gamma di casi d'uso, tra cui la fornitura di contenuti web, lo streaming di media e l'hosting di pipeline di analisi dei dati.
Nearline Storage: Questa classe di archiviazione offre costi di archiviazione inferiori e costi di accesso leggermente superiori rispetto a Standard Storage. È ottimizzata per dati accessibili raramente, con una durata minima di archiviazione di 30 giorni. È ideale per scopi di backup e archiviazione.
Coldline Storage: Questa classe di archiviazione è ottimizzata per l'archiviazione a lungo termine di dati accessibili raramente, con una durata minima di archiviazione di 90 giorni. Offre costi di archiviazione inferiori rispetto a Nearline Storage, ma con costi di accesso superiori.
Archive Storage: Questa classe di archiviazione è progettata per dati freddi che vengono accessibili molto raramente, con una durata minima di archiviazione di 365 giorni. Offre i costi di archiviazione più bassi di tutte le opzioni di archiviazione GCP, ma con i costi di accesso più elevati. È adatta per la conservazione a lungo termine di dati che devono essere archiviati per motivi di conformità o regolamentari.
Autoclass: Se non sai quanto accederai ai dati, puoi selezionare Autoclass e GCP cambierà automaticamente il tipo di archiviazione per te per minimizzare i costi.
Per default è raccomandato controllare l'accesso tramite IAM, ma è anche possibile abilitare l'uso di ACL. Se scegli di utilizzare solo IAM (predefinito) e passano 90 giorni, non potrai abilitare le ACL per il bucket.
È possibile abilitare il versioning, questo salverà le vecchie versioni del file all'interno del bucket. È possibile configurare il numero di versioni che si desidera mantenere e anche per quanto tempo si desidera che le versioni non correnti (versioni vecchie) vivano. Si raccomanda 7 giorni per il tipo Standard.
I metadati di una versione non corrente vengono mantenuti. Inoltre, le ACL delle versioni non correnti vengono anch'esse mantenute, quindi le versioni più vecchie potrebbero avere ACL diverse rispetto alla versione corrente.
Learn more in the docs.
Indica per quanto tempo desideri vietare la cancellazione degli oggetti all'interno del bucket (molto utile per la conformità almeno). Solo una tra versioning o retention policy può essere abilitata contemporaneamente.
Per impostazione predefinita, gli oggetti sono crittografati utilizzando chiavi gestite da Google, ma puoi anche utilizzare una chiave da KMS.
È possibile dare accesso a utenti esterni (registrati in GCP o meno) ai contenuti dei bucket. Per impostazione predefinita, quando viene creato un bucket, avrà disabilitata l'opzione di esposizione pubblica del bucket, ma con permessi sufficienti può essere modificata.
Il formato di un URL per accedere a un bucket è https://storage.googleapis.com/<bucket-name>
o https://<bucket_name>.storage.googleapis.com
(entrambi sono validi).
Una chiave HMAC è un tipo di credential e può essere associata a un account di servizio o a un account utente in Cloud Storage. Utilizzi una chiave HMAC per creare signature che vengono poi incluse nelle richieste a Cloud Storage. Le firme mostrano che una data richiesta è autorizzata dall'utente o dall'account di servizio.
Le chiavi HMAC hanno due componenti principali, un access ID e un secret.
Access ID: Una stringa alfanumerica collegata a un account di servizio o utente specifico. Quando è collegata a un account di servizio, la stringa è lunga 61 caratteri, e quando è collegata a un account utente, la stringa è lunga 24 caratteri. Di seguito è mostrato un esempio di un access ID:
GOOGTS7C7FUP3AIRVJTE2BCDKINBTES3HC2GY5CBFJDCQ2SYHV6A6XXVTJFSA
Secret: Una stringa codificata in Base-64 di 40 caratteri che è collegata a un access ID specifico. Un secret è una chiave precondivisa che solo tu e Cloud Storage conoscete. Utilizzi il tuo secret per creare firme come parte del processo di autenticazione. Di seguito è mostrato un esempio di un secret:
bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ
Sia l'access ID che il secret identificano univocamente una chiave HMAC, ma il secret è un'informazione molto più sensibile, perché viene utilizzato per creare firme.
Se ricevi un errore di permesso negato durante l'elenco dei bucket, potresti comunque avere accesso al contenuto. Quindi, ora che conosci la convenzione dei nomi dei bucket, puoi generare un elenco di nomi possibili e provare ad accedervi:
Con i permessi storage.objects.list
e storage.objects.get
, dovresti essere in grado di enumerare tutte le cartelle e i file dal bucket per poterli scaricare. Puoi ottenere ciò con questo script Python:
Nella pagina seguente puoi controllare come abuse storage permissions to escalate privileges:
GCP - Storage PrivescLearn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)