Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
4 of 120 committers (3.3%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.8%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Automated Adversary Emulation Platform
Basic Info
- Host: GitHub
- Owner: mitre
- License: apache-2.0
- Language: Python
- Default Branch: master
- Homepage: https://caldera.mitre.org
- Size: 25.3 MB
Statistics
- Stars: 6,372
- Watchers: 179
- Forks: 1,213
- Open Issues: 80
- Releases: 34
Topics
Metadata Files
README.md
MITRE Caldera™
MITRE Caldera™ is a cyber security platform designed to easily automate adversary emulation, assist manual red-teams, and automate incident response.
It is built on the MITRE ATT&CK™ framework and is an active research project at MITRE.
The framework consists of two components:
1) The core system. This is the framework code, consisting of what is available in this repository. Included is an asynchronous command-and-control (C2) server with a REST API and a web interface. 2) Plugins. These repositories expand the core framework capabilities and providing additional functionality. Examples include agents, reporting, collections of TTPs and more.
Resources & Socials
User Survey
It is always incredibly helpful for our team to hear from users about their Caldera use cases and the value that Caldera provides for their learning, research, or cyber security work. If you or your team uses Caldera significantly, we would greatly appreciate hearing from you.
📋 Survey - https://forms.office.com/g/ByBWxYTf8e
Plugins
:star: Create your own plugin! Plugin generator: Skeleton :star:
Default
These plugins are supported and maintained by the Caldera team. - Access (red team initial access tools and techniques) - Atomic (Atomic Red Team project TTPs) - Builder (dynamically compile payloads) - Caldera for OT (ICS/OT capabilities for Caldera) - Compass (ATT&CK visualizations) - Debrief (operations insights) - Emu (CTID emulation plans) - Fieldmanual (documentation) - GameBoard (visualize joint red and blue operations) - Human (create simulated noise on an endpoint) - Magma (VueJS UI for Caldera v5) - Manx (shell functionality and reverse shell payloads) - Response (incident response) - Sandcat (default agent) - SSL (enable https for caldera) - Stockpile (technique and profile storehouse) - Training (certification and training course)
More
These plugins are ready to use but are not included by default and are not maintained by the Caldera team. - Arsenal (MITRE ATLAS techniques and profiles) - BountyHunter (The Bounty Hunter) - CalTack (embedded ATT&CK website) - SAML (SAML authentication)
Requirements
These requirements are for the computer running the core framework:
- Any Linux or MacOS
- Python 3.9+ (with Pip3)
- Recommended hardware to run on is 8GB+ RAM and 2+ CPUs
- Recommended: GoLang 1.17+ to dynamically compile GoLang-based agents.
- NodeJS (v16+ recommended for v5 VueJS UI)
Installation
Concise installation steps:
Bash
git clone https://github.com/mitre/caldera.git --recursive
cd caldera
pip3 install -r requirements.txt
python3 server.py --insecure --build
Full steps:
Start by cloning this repository recursively, passing the desired version/release in x.x.x format. This will pull in all available plugins.
Bash
git clone https://github.com/mitre/caldera.git --recursive --tag x.x.x
Next, install the PIP requirements:
Bash
pip3 install -r requirements.txt
Super-power your Caldera server installation! Install GoLang (1.19+)
Finally, start the server.
Bash
python3 server.py --insecure --build
The --build flag automatically installs any VueJS UI dependencies, bundles the UI into a dist directory and is served by the Caldera server. You will only have to use the --build flag again if you add any plugins or make any changes to the UI. Once started, log into http://localhost:8888 using the default credentials red/admin. Then go into Plugins -> Training and complete the capture-the-flag style training course to learn how to use Caldera.
If you prefer to not use the new VueJS UI, revert to Caldera v4.2.0. Correspondingly, do not use the --build flag for earlier versions as not required.
Additionally, please note security recommendations for deploying Caldera.
Docker Installation
Local build:
sh
git clone https://github.com/mitre/caldera.git --recursive
cd caldera
docker build --build-arg VARIANT=full -t caldera .
docker run -it -p 8888:8888 caldera
Adjust the port forwarding (-p) and build args (--build-arg) as desired to make ports accessible or change the Caldera variant. The ports that you expose depend on which contacts you plan on using (see Dockerfile and docker-compose.yml for reference).
Pre-Built Image (from GitHub Container Registry):
sh
docker run -p 8888:8888 ghcr.io/mitre/caldera:latest
This container may be slightly outdated, we recommend building the container yourself.
To gracefully terminate your docker container, do the following: ```sh
Find the container ID for your docker container running Caldera
docker ps
Stop the container
docker stop
There are two variants available, full and slim. The slim variant doesn't include files necessary for the emu and atomic plugins, which will be downloaded on-demand if the plugins are ever enabled. The full variant is suitable for operation in environments without an internet connection. Slim images on GHCR are prefixed with "slim".
Docker Container Notes
- The Caldera container will automatically generate keys/usernames/password on first start.
- If you wish to override the default configuration or avoid automatically generated keys/passwords, consider bind-mounting your own configuration file with the -v <your_path>/conf.yml:/usr/src/app/conf/local.yml flag.
- Data stored by Caldera is ephemeral by default. If you wish to make it persistent, use docker volumes and/or bind mounts (-v <path_to_your_data_or_volume_name>:/usr/src/app/data/). Ensure that the directory structure is the same as in the data/ directory on GitHub, as Caldera will refuse to create these sub-directories if they are missing. Lastly, make sure that the configuration file is also made persistent to prevent issues with encryption keys.
- The builder plugin will not work within Docker.
- If you wish to modify data used by the atomic plugin, clone the Atomic Red Team repository outside the container, apply your modifications and bind-mount it (-v) to /usr/src/app/plugins/atomic/data/atomic-red-team within the container.
- If you wish to modify data used by emu, clone the adversary_emulation_library repository locally and bind-mount it (-v) to /usr/src/app/plugins/emu/data/adversary-emulation-plans.
Additionally, please note security recommendations for deploying Caldera.
User Interface Development
If you'll be developing the UI, there are a few more additional installation steps.
Requirements
* NodeJS (v16+ recommended)
Setup
- Add the Magma submodule if you haven't already:
git submodule add https://github.com/mitre/magma - Install NodeJS dependencies:
cd plugins/magma && npm install && cd .. - Start the Caldera server with an additional flag:
python3 server.py --uidev localhost
Your Caldera server is available at http://localhost:8888 as usual, but there will now be a hot-reloading development server for the VueJS front-end available at http://localhost:3000. Both logs from the server and the front-end will display in the terminal you launched the server from.
Security
The Caldera team highly reccommends standing up the Caldera server on a secure environment/network, and not exposing it to the internet. The Caldera server does not have a hardened and thoroughly pentested web application interface, but only basic authentication and security features. Both MITRE and MITRE's US Government sponsors nearly exclusively only use Caldera on secure environments and do not rely on Caldera's own security protocols for proper cyber security.
Vulnerability Disclosures
Refer to our Vulnerability Disclosure Documentation for submitting bugs.
Recent Vulnerability Disclosures
🚨Security Notice🚨: (17 Feb 2025 10:00 EST) Please pull v5.1.0+ for a recent security patch for CVE-2025-27364. Please update your Caldera instance, especially if you host Caldera on a publicly accessible network. Vulnerability walkthrough.
Contributing
Refer to our contributor documentation.
Licensing
To discuss licensing opportunities, please reach out to caldera@mitre.org or directly to MITRE's Technology Transfer Office.
Caldera Benefactor Program
If you are interested in partnering to support, sustain, and evolve MITRE Caldera™'s open source capabilities, please contact us at caldera@mitre.org.
Owner
- Name: The MITRE Corporation
- Login: mitre
- Kind: organization
- Email: opensource@mitre.org
- Location: United States of America
- Website: http://mitre.github.io
- Repositories: 445
- Profile: https://github.com/mitre
Open Source Software from the MITRE Corporation
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - name: "MITRE Corporation" title: "MITRE Caldera: A Scalable, Automated Adversary Emulation Platform" version: 5.0.0 date-released: 2024-02-14 url: "https://github.com/mitre/caldera"
GitHub Events
Total
- Create event: 34
- Release event: 4
- Issues event: 85
- Watch event: 710
- Delete event: 25
- Issue comment event: 436
- Push event: 73
- Pull request review comment event: 17
- Pull request review event: 57
- Pull request event: 93
- Fork event: 139
Last Year
- Create event: 34
- Release event: 4
- Issues event: 85
- Watch event: 710
- Delete event: 25
- Issue comment event: 436
- Push event: 73
- Pull request review comment event: 17
- Pull request review event: 57
- Pull request event: 93
- Fork event: 139
Committers
Last synced: 9 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| david | 4****y | 747 |
| blee | b****e@m****g | 261 |
| wbooth | 1****h | 261 |
| Anna Lin | a****n@m****g | 176 |
| elegantmoose | m****6@g****m | 174 |
| Daniel Kim | k****d@m****g | 140 |
| Adam Gaudreau | a****u@m****g | 140 |
| david | d****t@m****g | 137 |
| Bryan Worrell | b****l@m****g | 101 |
| Mitch Kucia | m****a@m****g | 99 |
| Alex | 4****e | 98 |
| Chris Lenk | c****k@m****g | 91 |
| Caleb R Little | C****E@M****G | 75 |
| Brian Edmonds | b****s@m****g | 58 |
| Christopher Tran | c****t | 44 |
| Henry Foster | 3****y | 44 |
| Fred | 5****m | 39 |
| Govardhen Arunagiri | g****i@m****g | 37 |
| Caleb Little | 5****e | 32 |
| Melanie Chan | 6****3 | 32 |
| Henry Foster | h****r@m****g | 31 |
| djlawren | d****n@u****u | 31 |
| Tran, Chris | c****t@n****m | 27 |
| Cassandra Diaz | c****z@m****g | 27 |
| jean-baptiste-perez-bib | j****t@m****m | 26 |
| JamieScottC | s****s@g****m | 25 |
| Mitch Kucia | 2****s | 20 |
| garunagiri | 5****i | 19 |
| Mitch Kucia | 2****r | 17 |
| dm-mitre | d****r@m****g | 15 |
| and 90 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 142
- Total pull requests: 99
- Average time to close issues: 4 months
- Average time to close pull requests: 28 days
- Total issue authors: 114
- Total pull request authors: 37
- Average comments per issue: 4.87
- Average comments per pull request: 1.63
- Merged pull requests: 62
- Bot issues: 0
- Bot pull requests: 8
Past Year
- Issues: 48
- Pull requests: 76
- Average time to close issues: 2 months
- Average time to close pull requests: 17 days
- Issue authors: 44
- Pull request authors: 21
- Average comments per issue: 3.44
- Average comments per pull request: 1.84
- Merged pull requests: 47
- Bot issues: 0
- Bot pull requests: 8
Top Authors
Issue Authors
- timbrigham-oc (6)
- trallgorm (6)
- J4son (5)
- guillaume-duong-bib (4)
- notmarshmllow (4)
- Guil33 (4)
- korgull (3)
- Pablo-offsec (3)
- xaviermccaig (3)
- koncentrat11 (3)
- omergunal (3)
- bjeffries (3)
- Christopherhausner (3)
- SpaceAether (3)
- s1nglethr3ad (2)
Pull Request Authors
- elegantmoose (46)
- dependabot[bot] (21)
- uruwhy (9)
- daw1012345 (6)
- ghost (6)
- Alphena-EK (6)
- jbaptperez (5)
- TomGoedeme (4)
- rfulwell (4)
- sasirven (3)
- guillaume-duong-bib (3)
- b1tst0rm (2)
- peterborcsok (2)
- Blipblopblopblop (2)
- zestysoft (2)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/first-interaction 1d8459ca65b335265f1285568221e229d45a995e composite
- actions/checkout c85c95e3d7251135ab7dc9ce3241c5835cc595a9 composite
- docker/build-push-action 2eb1c1961a95fc15694676618e422e8ba1d63825 composite
- docker/login-action 465a07811f14bebb1938fbed4728c6a1ff8901fc composite
- docker/metadata-action 818d4b7b91585d195f67373fd9cb0332e31a7175 composite
- SonarSource/sonarcloud-github-action 5875562561d22a34be0c657405578705a169af6c composite
- actions/checkout c85c95e3d7251135ab7dc9ce3241c5835cc595a9 composite
- actions/setup-python 3542bca2639a428e1796aaa6a2ffef0c0f575566 composite
- actions/checkout c85c95e3d7251135ab7dc9ce3241c5835cc595a9 composite
- actions/setup-python 3542bca2639a428e1796aaa6a2ffef0c0f575566 composite
- actions/stale a20b814fb01b71def3bd6f56e7494d667ddf28da composite
- ubuntu latest build
- caldera latest
- 289 dependencies
- eslint ^8.8.0 development
- eslint-config-airbnb-base ^15.0.0 development
- eslint-plugin-html ^6.2.0 development
- eslint-plugin-import ^2.25.4 development
- eslint-plugin-jinja2 ^0.1.0 development
- stylelint ^14.3.0 development
- stylelint-config-standard ^24.0.0 development
- bandit * development
- coverage * development
- dnspython ==2.1.0 development
- pre-commit * development
- pytest * development
- pytest-aiohttp ==1.0.3 development
- safety * development
- tox * development
- Markdown ==3.3.3
- Sphinx ==5.1.1
- aioftp *
- aiohttp ==3.8.4
- aiohttp-apispec ==2.2.3
- aiohttp-jinja2 ==1.5.0
- aiohttp-security ==0.4.0
- aiohttp_session ==2.9.0
- asyncssh ==2.11.0
- cryptography >=3.2
- dirhash ==0.2.0
- dnspython ==2.1.0
- docker ==4.2.0
- donut-shellcode ==0.9.2
- jinja2 ==3.0.3
- ldap3 ==2.8.1
- lxml *
- marshmallow ==3.5.1
- marshmallow-enum ==1.5.1
- myst-parser ==0.18.0
- pyyaml >=5.1
- reportlab ==4.0.4
- sphinx_rtd_theme ==0.4.3
- svglib ==1.0.1
- websockets >=10.3