Платформа автоматизированной эмуляции противника от MITRE. Строится на базе фреймворка ATT&CK и используется для автоматизации red-team сценариев, тестирования обнаружения и реагирования на инциденты в рамках авторизованного пентеста.
Открытый мультиагентный оркестратор для наступательной безопасности, координирующий несколько AI-агентов через восьмиэтапную цепочку операций для автономной разведки, …
Фреймворк для описания, автоматизации и выполнения тактик и техник, согласованных с MITRE ATT&CK.
Python-инструментарий для выполнения плейбуков, сопоставленных с MITRE ATT&CK, для симуляции тактик злоумышленников в контролируемых окружениях, с …
Автономные AI-агенты для пентестинга, которые динамически запускают код, находят уязвимости и подтверждают их работающими proof-of-concept эксплойтами, …
git clone https://github.com/apache/caldera.git --recursive cd caldera pip3 install -r requirements.txt python3 server.py --insecure --build
Caldera™ — это платформа для кибербезопасности, предназначенная для простой автоматизации эмуляции действий противника, поддержки ручных красно-командных операций и автоматизации реагирования на инциденты.
Она построена на базе фреймворка MITRE ATT&CK™ и является активным исследовательским проектом MITRE.
Фреймворк состоит из двух компонентов:
1) Основная система. Это код фреймворка, доступный в данном репозитории. Включает асинхронный сервер команд и управления (C2) с REST API и веб-интерфейсом. 2) Плагины. Эти репозитории расширяют возможности основного фреймворка и предоставляют дополнительную функциональность. Примеры включают агентов, отчёты, коллекции TTP и многое другое.
:star: Создайте свой собственный плагин! Генератор плагинов: Skeleton :star:
Эти плагины поддерживаются и сопровождаются командой Caldera. - Access (инструменты и техники первоначального доступа для красной команды) - Atomic (TTP проекта Atomic Red Team) - Builder (динамическая компиляция полезных нагрузок) - Caldera for OT (возможности для ICS/OT в Caldera) - Compass (визуализации ATT&CK) - Debrief (аналитика операций) - Emu (планы эмуляции CTID) - Fieldmanual (документация) - GameBoard (визуализация совместных операций красной и синей команд) - Human (создание симулированного шума на конечной точке) - Magma (VueJS UI для Caldera v5) - Manx (функциональность оболочки и полезные нагрузки для обратной оболочки) - Response (реагирование на инциденты) - Sandcat (агент по умолчанию) - SSL (включение HTTPS для Caldera) - Stockpile (хранилище техник и профилей) - Training (сертификация и учебные курсы)
Эти плагины готовы к использованию, но не включены по умолчанию и не поддерживаются командой Caldera. - Arsenal (техники и профили MITRE ATLAS) - BountyHunter (The Bounty Hunter) - CalTack (встроенный сайт ATT&CK) - SAML (аутентификация SAML)
Эти требования относятся к компьютеру, на котором запускается основной фреймворк:
git clone https://github.com/apache/caldera.git --recursive
cd caldera
pip3 install -r requirements.txt
python3 server.py --insecure --build
Примечание: мы НАСТОЯТЕЛЬНО рекомендуем устанавливать Caldera в виртуальной среде Python, чтобы избежать проблем с пакетами pip. Вы можете использовать существующую среду или создать новую с нуля:
python3 -m venv .calderavenv
source .calderavenv/bin/activate
Краткие шаги установки:
git clone https://github.com/apache/caldera.git --recursive
cd caldera
pip3 install -r requirements.txt
python3 server.py --insecure --build
Полные шаги: Начните с рекурсивного клонирования этого репозитория, указав желаемую версию/релиз в формате x.x.x. Это подтянет все доступные плагины.
git clone https://github.com/apache/caldera.git --recursive --tag x.x.x
Далее установите зависимости pip:
pip3 install -r requirements.txt
Наконец, запустите сервер.
python3 server.py --insecure --build
Флаг --build автоматически устанавливает зависимости VueJS для интерфейса, собирает интерфейс в каталог dist и обслуживается сервером Caldera. Вам потребуется повторно использовать флаг --build только в случае добавления плагинов или внесения изменений в интерфейс. После запуска войдите на http://localhost:8888, используя стандартные учётные данные red/admin. Затем перейдите в раздел Плагины -> Обучение и пройдите обучающий курс в стиле capture-the-flag, чтобы научиться пользоваться Caldera.
Если вы предпочитаете не использовать новый интерфейс на VueJS, вернитесь к версии Caldera v4.2.0. Соответственно, не используйте флаг --build для более ранних версий, так как он не требуется.
Кроме того, обратите внимание на рекомендации по безопасности при развёртывании Caldera.
Локальная сборка:
git clone https://github.com/apache/caldera.git --recursive
cd caldera
docker build --build-arg VARIANT=full -t caldera .
docker run -it -p 8888:8888 caldera
При необходимости настройте проброс портов (-p) и аргументы сборки (--build-arg), чтобы сделать порты доступными или изменить вариант Caldera. Порты, которые вы открываете, зависят от того, какие контакты вы планируете использовать (см. Dockerfile и docker-compose.yml для справки).
Заранее собранный образ (из GitHub Container Registry):
docker run -p 8888:8888 ghcr.io/apache/caldera:latest
Этот контейнер может быть немного устаревшим, мы рекомендуем собирать контейнер самостоятельно.
Для корректного завершения работы Docker-контейнера выполните следующее:
# Find the container ID for your docker container running Caldera
docker ps
# Stop the container
docker stop <container ID>
Доступны два варианта: full и slim. Вариант slim не включает файлы, необходимые для плагинов emu и atomic, которые будут загружены по требованию, если плагины когда-либо будут включены. Вариант full подходит для работы в средах без доступа к интернету. Образы slim в GHCR имеют префикс "slim".
Примечания к Docker-контейнеру
- Контейнер Caldera автоматически генерирует ключи/имена пользователей/пароли при первом запуске.
- Если вы хотите переопределить конфигурацию по умолчанию или избежать автоматической генерации ключей/паролей, рассмотрите возможность монтирования собственного файла конфигурации с помощью флага -v <ваш_путь>/conf.yml:/usr/src/app/conf/local.yml.
- Данные, сохраняемые Caldera, по умолчанию являются эфемерными. Если вы хотите сделать их постоянными, используйте Docker-тома и/или привязки (-v <путь_к_вашим_данным_или_имя_тома>:/usr/src/app/data/). Убедитесь, что структура каталогов совпадает со структурой в каталоге data/ на GitHub, так как Caldera откажется создавать эти подкаталоги, если они отсутствуют. Наконец, убедитесь, что файл конфигурации также сделан постоянным, чтобы избежать проблем с ключами шифрования.
- Плагин builder не будет работать внутри Docker.
- Если вы хотите изменить данные, используемые плагином atomic, клонируйте репозиторий Atomic Red Team за пределами контейнера, внесите изменения и примонтируйте его (-v) к /usr/src/app/plugins/atomic/data/atomic-red-team внутри контейнера.
- Если вы хотите изменить данные, используемые плагином emu, клонируйте репозиторий adversary_emulation_library локально и примонтируйте его (-v) к /usr/src/app/plugins/emu/data/adversary-emulation-plans.
Кроме того, обратите внимание на рекомендации по безопасности при развёртывании Caldera.
Если вы будете заниматься разработкой интерфейса, потребуется выполнить несколько дополнительных шагов установки.
Требования * NodeJS (рекомендуется v16+)
Настройка
git submodule add https://github.com/mitre/magmacd plugins/magma && npm install && cd ..python3 server.py --uidev localhostВаш сервер Caldera будет доступен по адресу http://localhost:8888, как обычно, но теперь также будет работать сервер разработки с горячей перезагрузкой для фронтенда на VueJS по адресу http://localhost:3000. Логи как сервера, так и фронтенда будут отображаться в терминале, из которого вы запустили сервер.
Команда Caldera настоятельно рекомендует развёртывать сервер Caldera в защищённой среде/сети и не выставлять его в интернет. Веб-интерфейс сервера Caldera не имеет усиленной и тщательно протестированной на проникновение защиты, а включает только базовую аутентификацию и функции безопасности. Как MITRE, так и спонсоры MITRE из правительства США практически всегда используют Caldera только в защищённых средах и не полагаются на собственные протоколы безопасности Caldera для обеспечения должного уровня кибербезопасности.
Ознакомьтесь с нашей документацией по раскрытию уязвимостей для отправки сообщений об ошибках.
🚨Уведомление о безопасности🚨: (17 фев 2025 10:00 EST) Пожалуйста, обновитесь до версии v5.1.0+ для установки недавнего исправления безопасности для CVE-2025-27364. Обновите свой экземпляр Caldera, особенно если вы размещаете Caldera в общедоступной сети. Описание уязвимости.
Ознакомьтесь с нашей документацией для контрибьюторов.
Если вы заинтересованы в партнёрстве для поддержки, развития и расширения возможностей MITRE Caldera™ с открытым исходным кодом, свяжитесь с нами по адресу caldera@mitre.org.