
Évaluation en boîte blanche des permissions effectives des objets S3, pour identifier les fichiers accessibles publiquement.
Évaluation whitebox des permissions effectives des objets S3, afin d'identifier les objets accessibles publiquement.
Permet d'identifier les objets accessibles publiquement, ainsi que les objets accessibles aux AuthenticatedUsers (en utilisant un profil secondaire).
Un certain nombre d'outils existent pour vérifier les permissions sur les buckets, mais en raison de la complexité des politiques de ressources IAM et des combinaisons d'ACL, les permissions effectives sur des objets spécifiques sont souvent difficiles à évaluer.
L'outil s'exécute rapidement car il utilise asyncio et aiobotocore.
L'outil exploite deux profils nommés :
WHITEBOX_PROFILE - ce profil doit avoir un accès en lecture au service S3. Il sera utilisé pour lister les buckets et les objets, que l'outil tentera ensuite d'atteindre via des requêtes non authentifiées. Il n'est pas utilisé pour accéder aux objets, seulement pour les lister.BLACKBOX_PROFILE - en plus des requêtes non authentifiées, l'outil utilisera ce profil pour identifier les objets accessibles au « groupe Authenticated Users » (AuthenticatedUsers). Ce profil ne doit pas avoir accès aux buckets/objets S3, sinon il générera des faux positifs.Créez un environnement virtuel et installez les dépendances :
$ virtualenv -p python3 venv
$ source venv/bin/activate
$ pip -r requirements.txt
Options :
$ python s3-objects-check.py -h
usage: s3-objects-check.py [-h] -p WHITEBOX_PROFILE -e BLACKBOX_PROFILE [-d]
Whitebox evaluation of effective S3 object permissions, to identify publicly
accessible files.
optional arguments:
-h, --help show this help message and exit
-p WHITEBOX_PROFILE, --profile WHITEBOX_PROFILE
The profile with access to the desired AWS account and
buckets
-e BLACKBOX_PROFILE, --profile-external BLACKBOX_PROFILE
An "external" profile to test for 'AuthenticatedUsers'
permissions. This principal should not have
permissions to read bucket objects.
-d, --debug Verbose output. Will also create a log file
Exécutez l'outil :
$ python s3-objects-check.py -p whitebox-profile -e blackbox-profile
2020-11-24 11:19:56 host object-check[371] INFO Starting
2020-11-24 11:20:08 host object-check[371] WARNING Found https://<bucket>.s3.us-east-1.amazonaws.com/<object> allowing "AllUsers"
2020-11-24 11:20:09 host object-check[371] WARNING Found https://<bucket>.s3.eu-west-2.amazonaws.com/<object> allowing "AuthenticatedUsers"
2020-11-24 11:21:34 host object-check[371] INFO Done