自动化对手模拟平台
Caldera™ 是一个网络安全平台,旨在轻松实现对手模拟自动化、协助人工红队行动,并自动化事件响应。
它构建于 MITRE ATT&CK™ 框架之上,是 MITRE 的一个活跃研究项目。
该框架由两个组件构成:
⭐ 创建你自己的插件!插件生成器:Skeleton ⭐
这些插件由 Caldera 团队支持与维护。
这些插件可直接使用,但不包含在默认配置中,且不由 Caldera 团队维护。
以下要求适用于运行核心框架的计算机:
注意:我们强烈建议在 Python 虚拟环境中安装 Caldera,以避免 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 UI 依赖,将 UI 打包到 dist 目录,并由 Caldera 服务器提供服务。只有在添加插件或对 UI 进行任何更改时,才需要再次使用 --build 标志。启动后,使用默认凭据 red/admin 登录 http://localhost:8888。然后进入 Plugins -> Training,完成夺旗风格的培训课程,以学习如何使用 Caldera。
如果你不想使用新的 VueJS UI,请回退到 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 变体。你开放的端口取决于你计划使用哪些 contact(参见 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 变体适合在没有互联网连接的环境中运行。GHCR 上的 slim 镜像带有 "slim" 前缀。
Docker 容器说明
-v <your_path>/conf.yml:/usr/src/app/conf/local.yml 标志绑定挂载您自己的配置文件。-v <path_to_your_data_or_volume_name>:/usr/src/app/data/)。确保目录结构与 GitHub 上的 data/ 目录相同,因为如果这些子目录缺失,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 的安全建议。
如果您要开发 UI,还有几个额外的安装步骤。
要求
设置
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 服务器没有经过加固和全面渗透测试的 Web 应用程序接口,只有基本的身份验证和安全功能。MITRE 和 MITRE 的美国政府赞助方几乎只会在安全环境中使用 Caldera,并且不依赖 Caldera 自身的安全协议来实现适当的网络安全。
请参阅我们的漏洞披露文档以提交错误。
🚨安全通知🚨:(2025 年 2 月 17 日 10:00 EST)请拉取 v5.1.0+ 以获取针对 CVE-2025-27364 的近期安全补丁。请更新您的 Caldera 实例,尤其是当您在可公开访问的网络上托管 Caldera 时。漏洞演练。
请参阅我们的贡献者文档。
如果您有兴趣合作支持、维持和发展 MITRE Caldera™ 的开源能力,请通过 [email protected] 与我们联系。