- AWS a introduit une nouvelle protection d’espace de noms basée sur le compte pour résoudre le problème de bucketsquatting sur S3
- Le nouvel espace de noms suit le format
<prefix>-<accountid>-<region>-an, et seul le même compte peut créer un bucket portant ce nom
- Si un autre compte tente d’utiliser le même nom, une erreur
InvalidBucketNamespace se produit ; la même erreur est également renvoyée si la région indiquée est incorrecte
- L’utilisation de cet espace de noms est recommandée par défaut, et son application peut être imposée via une politique d’organisation (SCP) avec la clé de condition
s3:x-amz-bucket-namespace
- Cela ne s’applique pas rétroactivement aux buckets existants, mais offre une protection forte aux nouveaux buckets, ce qui représente une amélioration fondamentale de l’architecture de sécurité de S3
Vue d’ensemble du problème de bucketsquatting
- Le bucketsquatting (ou bucketsniping) est une forme d’attaque qui exploite le fait que les noms de buckets AWS S3 sont globalement uniques
- Lorsqu’un bucket est supprimé, son nom redevient disponible, ce qui permet à un attaquant d’enregistrer un nouveau bucket avec le même nom
- Cela peut entraîner des risques d’accès à des données sensibles ou d’interruption de service
- Les organisations utilisent souvent des règles de nommage prévisibles comme
myapp-us-east-1, ce qui augmente leur exposition à ce type d’attaque
- Les équipes internes d’AWS ont également été touchées par ce problème, et ont travaillé avec l’équipe sécurité d’AWS pendant près de 10 ans pour trouver une solution
Introduction du nouvel espace de noms S3
- Pour résoudre ce problème, AWS a introduit le concept d’espace de noms par compte (account namespace)
- Format :
<prefix>-<accountid>-<region>-an
- Exemple :
myapp-123456789012-us-west-2-an
- Cet espace de noms limite la création d’un bucket portant ce nom au seul compte concerné
- Si un autre compte tente de créer le même nom, une erreur
InvalidBucketNamespace se produit
- La même erreur est également renvoyée si la région du nom de bucket ne correspond pas à la région réelle
- AWS recommande d’utiliser cet espace de noms par défaut pour tous les nouveaux buckets
- Contrairement aux espaces de noms existants (
.mrap, --x-s3, -s3alias), celui-ci est introduit comme un espace de noms destiné aux utilisateurs généraux à des fins de sécurité
Application des politiques et gestion
- Les responsables sécurité peuvent utiliser la clé de condition
s3:x-amz-bucket-namespace pour imposer l’usage de cet espace de noms via une politique d’organisation globale (SCP)
- Cela ne s’applique pas automatiquement aux buckets existants ni aux templates sans espace de noms
- Pour protéger les buckets existants, il faut créer un bucket au nouveau format d’espace de noms et migrer les données
- Grâce à cette mesure, le bucketsquatting est en pratique « en train de disparaître », avec une protection complète pour les nouveaux buckets
Approche des autres fournisseurs cloud
- Google Cloud Storage (GCS) utilise déjà un espace de noms basé sur la vérification du nom de domaine
- Les buckets au format domaine comme
myapp.com ne peuvent être créés que par le propriétaire du domaine
- Les buckets qui ne sont pas au format domaine restent exposés au risque de bucketsquatting
- Azure Blob Storage utilise une structure nom de compte de stockage + nom de conteneur
- Avec une limite maximale de 24 caractères, l’espace de noms est plus restreint, ce qui peut le rendre plus vulnérable au même problème
Conclusion (tl;dr)
- AWS S3 introduit un nouvel espace de noms compte-région
- Cet espace de noms empêche les attaques de bucketsquatting et il est fortement recommandé de l’utiliser à chaque création de nouveau bucket
- Les buckets existants ne sont pas protégés automatiquement ; si nécessaire, une migration des données est requise pour renforcer la protection
Aucun commentaire pour le moment.