Caldera

Exploitation v5.3.0 · 24.04.2025 активный

Платформа автоматизированной эмуляции противника от MITRE. Строится на базе фреймворка ATT&CK и используется для автоматизации red-team сценариев, тестирования обнаружения и реагирования на инциденты в рамках авторизованного пентеста.

v5.3.0
24.04.2025 current

Установка
git clone https://github.com/apache/caldera.git --recursive
cd caldera
pip3 install -r requirements.txt
python3 server.py --insecure --build
показать оригинал переведено ИИ

Release Testing Status Security Status codecov Documentation Status

Caldera™

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)

Требования

Эти требования относятся к компьютеру, на котором запускается основной фреймворк:

  • Любая ОС Linux или MacOS
    • Python 3.10+ (с Pip3)
  • Рекомендуемое оборудование: 8GB+ ОЗУ и 2+ процессорных ядра
  • Рекомендуется: GoLang 1.24+ для динамической компиляции агентов на Go.
  • NodeJS (рекомендуется v16+ для VueJS UI v5)

Установка

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.

Установка с использованием Docker

Локальная сборка:

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+)

Настройка

  1. Добавьте субмодуль Magma, если вы этого ещё не сделали: git submodule add https://github.com/mitre/magma
  2. Установите зависимости NodeJS: cd plugins/magma && npm install && cd ..
  3. Запустите сервер Caldera с дополнительным флагом: 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 в общедоступной сети. Описание уязвимости.

Участие в разработке

Ознакомьтесь с нашей документацией для контрибьюторов.

Программа спонсоров Caldera

Если вы заинтересованы в партнёрстве для поддержки, развития и расширения возможностей MITRE Caldera™ с открытым исходным кодом, свяжитесь с нами по адресу caldera@mitre.org.

Войдите, чтобы оставить комментарий