
يقوم BadZure بأتمتة نشر مستأجرين من Entra ID واشتراكات Azure مُهيَّأة بشكل خاطئ عن قصد، وملؤها بكيانات متنوعة ومسارات هجوم قابلة للتكوين والتنقل.
BadZure هي أداة Python تقوم بأتمتة إنشاء بيئات Azure غير مُهيأة بشكل صحيح، مما يمكّن فرق الأمن من محاكاة تقنيات الخصوم، وتطوير واختبار ضوابط الكشف، وإجراء تمارين الفريق الأرجواني عبر بنية Entra ID وAzure. تستخدم Terraform لتزويد مستأجري Entra ID واشتراكات Azure بالكيانات والتكوينات الخاطئة المتعمدة، مما ينتج مسارات هجوم كاملة تمتد عبر طبقات الهوية والبنية التحتية السحابية.
تعمل BadZure على أتمتة إنشاء المستخدمين والمجموعات وتسجيلات التطبيقات ومبادئ الخدمة والوحدات الإدارية وموارد Azure مثل Key Vaults وStorage Accounts وVirtual Machines وLogic Apps وAutomation Accounts وFunction Apps وCosmos DB Accounts ومجموعات الموارد. لمحاكاة مستأجر واقعي، تقوم بتعيين أدوار Entra ID وأذونات Graph وأذونات الوصول إلى موارد Azure بشكل عشوائي لمبادئ أمنية محددة، مما يحاكي الانتشار العضوي للأذونات الموجود في البيئات الحقيقية. فوق هذا الأساس الواقعي، تضيف BadZure طبقات من التكوينات الخاطئة المتعمدة من خلال مسارات هجوم قابلة للتكوين، مما ينتج سلاسل تصعيد امتيازات قابلة للاستغلال لمحاكاة الخصم.
الميزة الرئيسية لـ BadZure هي قدرتها على ملء المستأجرين وتنظيفهم بسرعة بالتكوينات والوصول الأولي المُهيأ مسبقًا ومسارات الهجوم المتعمدة، مما يسهل محاكاة الخصم المستمرة والمتكررة وتطوير الكشف. صُممت لممارسي الأمن المهتمين باستكشاف وفهم أمن Entra ID وAzure، والتكوينات الخاطئة للموارد السحابية، وتقنيات الهجوم السحابية الحديثة.
كُتبت BadZure في البداية لاستضافة ورشة عمل Azure AD Battle School: Hands-on Attack and Defense في مؤتمر X33fcon 2023.
تمكن بيئة Azure المملوءة بـ BadZure الآن الفرق الحمراء والزرقاء من:
تنشئ BadZure مسارات هجوم تفترض أن هوية الوصول الأولي قد تم اختراقها بالفعل. يبدأ كل مسار هجوم بحساب مستخدم مخترق أو مبدأ خدمة، مما يحاكي سيناريوهات العالم الحقيقي حيث حصل المهاجم على وصول من خلال سرقة بيانات الاعتماد، أو التصيد، أو هجوم الوسيط، أو تقنيات الوصول الأولي الأخرى.
توفر BadZure بيانات الاعتماد لهذه الهويات المخترقة، مما يسمح لممارسي الأمن بالبدء فورًا في استكشاف مسارات تصعيد الامتيازات دون الحاجة إلى محاكاة الاختراق الأولي. يمكّن هذا النهج الفرق من التركيز على فهم والدفاع ضد تقنيات الهجوم بعد الاختراق في بيئات Azure و Entra ID.
تدعم BadZure سبعة مسارات هجوم متميزة لتصعيد الامتيازات تُدخل تكوينات خاطئة عبر كل من طبقات هوية Entra ID والبنية التحتية السحابية لـ Azure:
يمكن تكوين كل مسار هجوم بتعيينات أدوار محددة أو عشوائية ويدعم أنواعًا مختلفة من المبادئ حسب الأسلوب. لمزيد من خيارات التكوين التفصيلية ووصف مسارات الهجوم، راجع التوثيق.
يظهر أدناه رسم بياني تم إنشاؤه بواسطة BloodHound يعرض مسارات الهجوم التي يمكن لـ BadZure إنشاؤها.
إنشاء اشتراك Azure سيمنحك أيضًا مستأجر Entra ID.
ملاحظة: تستخدم BadZure فقط ميزات الطبقة المجانية من Entra ID ولن تترتب عليها تكاليف ترخيص إضافية، على الرغم من أن موارد Azure مثل Virtual Machines و Function Apps ستترتب عليها رسوم حوسبة قياسية.
git clone https://github.com/mvelazc0/BadZure
cd BadZure
# إنشاء بيئة افتراضية
python -m venv venv
# تفعيل البيئة الافتراضية
# على Windows
venv\Scripts\activate
# على Unix أو MacOS
source venv/bin/activate
# تثبيت التبعيات
pip install -r requirements.txt
يجب أن تكون مسجلاً للدخول كـ مسؤول عام في Entra ID ولديك دور المالك (Owner) في RBAC على اشتراك Azure:
az login
# عرض قائمة المساعدة
python badzure.py --help
# ملء مستأجر وتكوين جميع مسارات الهجوم باستخدام ملف التكوين الافتراضي badzure.yml
python badzure.py build
# ملء مستأجر وتكوين جميع مسارات الهجوم باستخدام ملف تكوين مختلف
python badzure.py build --config config.yml
# عرض الموارد المنشأة في مستأجر Entra ID
python badzure.py show
# تدمير جميع الهويات المنشأة مع تسجيل مفصل
python badzure.py destroy --verbose
التوثيق الكامل متاح على www.badzure.com، بما في ذلك دليل البدء، ومرجع التكوين، ووصف مفصل لـ مسارات الهجوم.
هذا المشروع مرخص بموجب رخصة Apache 2.0 - راجع ملف LICENSE للحصول على التفاصيل.