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 est une solution de stockage basée sur le cloud qui fournit un stockage d'objets hautement durable et disponible pour des données non structurées. Il offre différentes classes de stockage basées sur la performance, la disponibilité et le coût, y compris Standard, Nearline, Coldline et Archive. GCP Storage fournit également des fonctionnalités avancées telles que des politiques de cycle de vie, la gestion des versions et le contrôle d'accès pour gérer et sécuriser les données efficacement.
Le bucket peut être stocké dans une région, dans 2 régions ou multi-région (par défaut).
Stockage standard : C'est l'option de stockage par défaut qui offre un accès à haute performance et faible latence aux données fréquemment consultées. Il convient à un large éventail de cas d'utilisation, y compris la diffusion de contenu de site Web, le streaming de médias et l'hébergement de pipelines d'analyse de données.
Stockage Nearline : Cette classe de stockage offre des coûts de stockage inférieurs et des coûts d'accès légèrement plus élevés que le stockage standard. Il est optimisé pour les données rarement consultées, avec une durée de stockage minimale de 30 jours. Il est idéal pour les sauvegardes et les archives.
Stockage Coldline : Cette classe de stockage est optimisée pour le stockage à long terme de données rarement consultées, avec une durée de stockage minimale de 90 jours. Il offre des coûts de stockage inférieurs à ceux du stockage Nearline, mais avec des coûts d'accès plus élevés.
Stockage Archive : Cette classe de stockage est conçue pour les données froides qui sont consultées très rarement, avec une durée de stockage minimale de 365 jours. Elle offre les coûts de stockage les plus bas de toutes les options de stockage GCP, mais avec les coûts d'accès les plus élevés. Elle convient à la conservation à long terme des données qui doivent être stockées pour des raisons de conformité ou réglementaires.
Autoclass : Si vous ne savez pas combien de fois vous allez accéder aux données, vous pouvez sélectionner Autoclass et GCP changera automatiquement le type de stockage pour vous afin de minimiser les coûts.
Par défaut, il est recommandé de contrôler l'accès via IAM, mais il est également possible d'activer l'utilisation des ACL. Si vous choisissez d'utiliser uniquement IAM (par défaut) et que 90 jours passent, vous ne pourrez pas activer les ACL pour le bucket.
Il est possible d'activer la gestion des versions, cela sauvera les anciennes versions du fichier à l'intérieur du bucket. Il est possible de configurer le nombre de versions que vous souhaitez conserver et même combien de temps vous souhaitez que les versions non courantes (anciennes versions) vivent. Il est recommandé de 7 jours pour le type Standard.
Les métadonnées d'une version non courante sont conservées. De plus, les ACL des versions non courantes sont également conservées, donc les anciennes versions peuvent avoir des ACL différentes de la version actuelle.
En savoir plus dans la documentation.
Indiquez combien de temps vous souhaitez interdire la suppression des objets à l'intérieur du bucket (très utile pour la conformité au moins). Seule l'une des versions ou de la politique de conservation peut être activée en même temps.
Par défaut, les objets sont chiffrés à l'aide de clés gérées par Google, mais vous pouvez également utiliser une clé de KMS.
Il est possible de donner accès aux utilisateurs externes (connectés à GCP ou non) au contenu des buckets. Par défaut, lorsqu'un bucket est créé, il aura désactivé l'option d'exposition publique du bucket, mais avec suffisamment de permissions, cela peut être changé.
Le format d'une URL pour accéder à un bucket est https://storage.googleapis.com/<bucket-name>
ou https://<bucket_name>.storage.googleapis.com
(les deux sont valides).
Une clé HMAC est un type de credential et peut être associée à un compte de service ou à un compte utilisateur dans Cloud Storage. Vous utilisez une clé HMAC pour créer des signatures qui sont ensuite incluses dans les requêtes à Cloud Storage. Les signatures montrent qu'une demande donnée est autorisée par l'utilisateur ou le compte de service.
Les clés HMAC ont deux éléments principaux, un ID d'accès et un secret.
ID d'accès : Une chaîne alphanumérique liée à un compte de service ou utilisateur spécifique. Lorsqu'elle est liée à un compte de service, la chaîne fait 61 caractères de long, et lorsqu'elle est liée à un compte utilisateur, la chaîne fait 24 caractères de long. Voici un exemple d'un ID d'accès :
GOOGTS7C7FUP3AIRVJTE2BCDKINBTES3HC2GY5CBFJDCQ2SYHV6A6XXVTJFSA
Secret : Une chaîne de 40 caractères encodée en Base-64 qui est liée à un ID d'accès spécifique. Un secret est une clé prépartagée que vous et Cloud Storage connaissez uniquement. Vous utilisez votre secret pour créer des signatures dans le cadre du processus d'authentification. Voici un exemple d'un secret :
bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ
À la fois l'ID d'accès et le secret identifient de manière unique une clé HMAC, mais le secret est une information beaucoup plus sensible, car il est utilisé pour créer des signatures.
Si vous obtenez une erreur de permission refusée lors de la liste des buckets, vous pouvez toujours avoir accès au contenu. Donc, maintenant que vous connaissez la convention de nommage des buckets, vous pouvez générer une liste de noms possibles et essayer d'y accéder :
Avec les permissions storage.objects.list
et storage.objects.get
, vous devriez être en mesure d'énumérer tous les dossiers et fichiers du bucket afin de les télécharger. Vous pouvez y parvenir avec ce script Python :
Dans la page suivante, vous pouvez vérifier comment abuser des permissions de stockage pour escalader les privilèges :
GCP - Storage PrivescApprenez et pratiquez le Hacking AWS :HackTricks Training AWS Red Team Expert (ARTE) Apprenez et pratiquez le Hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)