
BadZure автоматизирует развертывание намеренно неправильно настроенных клиентов Entra ID и подписок Azure, наполняя их разнообразными сущностями и настраиваемыми, проходимыми путями атак.
BadZure — это Python-инструмент, который автоматизирует создание некорректно настроенных сред Azure, позволяя командам безопасности моделировать методы злоумышленников, разрабатывать и тестировать средства обнаружения, а также проводить упражнения purple team в инфраструктуре Entra ID и Azure. Он использует Terraform для заполнения тенантов Entra ID и подписок Azure сущностями и преднамеренными некорректными конфигурациями, создавая полные цепочки атак, охватывающие уровни идентификации и облачной инфраструктуры.
BadZure автоматизирует создание пользователей, групп, регистраций приложений, субъектов-служб, административных единиц и ресурсов Azure, таких как Key Vaults, Storage Accounts, Virtual Machines, Logic Apps, Automation Accounts, Function Apps, Cosmos DB Accounts и Resource Groups. Для имитации реалистичного тенанта он случайным образом назначает роли Entra ID, разрешения Graph и разрешения на доступ к ресурсам Azure выбранным субъектам безопасности, имитируя органическое разрастание разрешений, встречающееся в реальных средах. Поверх этого реалистичного базового уровня BadZure добавляет преднамеренные некорректные конфигурации через настраиваемые цепочки атак, создавая эксплуатируемые цепочки повышения привилегий для моделирования действий злоумышленника.
Ключевое преимущество BadZure — это возможность быстро заполнять и очищать тенанты с конфигурациями, предварительно настроенным начальным доступом и преднамеренными цепочками атак, что способствует непрерывной и итеративной симуляции действий злоумышленников и разработке средств обнаружения. Он предназначен для специалистов по безопасности, заинтересованных в изучении и понимании безопасности Entra ID и Azure, некорректных конфигураций облачных ресурсов и современных облачных методов атак.
BadZure изначально был написан для проведения воркшопа Azure AD Battle School: Hands-on Attack and Defense на X33fcon 2023.
Среда Azure, заполненная с помощью BadZure, теперь позволяет red и blue командам:
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
# Create a virtual environment
python -m venv venv
# Activate the virtual environment
# On Windows
venv\Scripts\activate
# On Unix or MacOS
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
Вы должны быть авторизованы как Global Administrator в Entra ID и иметь роль Owner RBAC в подписке Azure:
az login
# Display the help menu
python badzure.py --help
# Populate a tenant and configure all attack paths using the default badzure.yml config file
python badzure.py build
# Populate a tenant and configure all attack paths with a different config file
python badzure.py build --config config.yml
# Show the created resources in Entra ID tenant
python badzure.py show
# Destroy all created identities with verbose logging
python badzure.py destroy --verbose
Полная документация доступна на www.badzure.com, включая руководство Начало работы, Справочник по конфигурации и подробные описания Цепочек атак.
Этот проект лицензирован в соответствии с лицензией Apache 2.0 — см. файл LICENSE для получения подробной информации.