
تقييم بأسلوب الصندوق الأبيض للأذونات الفعّالة لكائنات S3، لتحديد الملفات المتاحة للوصول العام.
تقييم الصندوق الأبيض (Whitebox) للأذونات الفعلية لكائنات S3، من أجل تحديد الكائنات المتاحة للعموم.
يتيح تحديد الكائنات المتاحة للعموم، بالإضافة إلى الكائنات المتاحة لمجموعة AuthenticatedUsers (باستخدام ملف تعريف ثانوي).
يوجد عدد من الأدوات التي تفحص الأذونات على الدلاء (Buckets)، ولكن نظراً لتعقيد سياسات موارد IAM وتوليفات ACL، غالباً ما يكون من الصعب تقييم الأذونات الفعلية على كائنات محددة.
تعمل الأداة بسرعة لأنها تستخدم asyncio وaiobotocore.
تستخدم الأداة ملفَي تعريف مُسمّيين:
WHITEBOX_PROFILE - يجب أن يملك هذا الملف حق الوصول للقراءة إلى خدمة S3. سيتم استخدامه لسرد الدلاء والكائنات، والتي ستحاول الأداة الوصول إليها عبر طلبات غير مصادق عليها. لا يُستخدم للوصول إلى الكائنات، فقط لسردها.BLACKBOX_PROFILE - بالإضافة إلى الطلبات غير المصادق عليها، ستستخدم الأداة هذا الملف لتحديد الكائنات المتاحة لمجموعة "Authenticated Users group" (AuthenticatedUsers). يجب ألّا يملك هذا الملف حق الوصول إلى دلاء/كائنات S3، وإلا فسيؤدي إلى نتائج إيجابية خاطئة.أنشئ بيئة افتراضية وقم بتثبيت التبعيات:
$ virtualenv -p python3 venv
$ source venv/bin/activate
$ pip -r requirements.txt
الخيارات:
$ 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
شغّل الأداة:
$ 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