자동화된 적대적 행위자 모의 플랫폼
Caldera™는 적대자 에뮬레이션을 손쉽게 자동화하고, 수동 레드팀을 지원하며, 사고 대응을 자동화하도록 설계된 사이버 보안 플랫폼입니다.
이는 MITRE ATT&CK™ 프레임워크를 기반으로 구축되었으며 MITRE의 활발한 연구 프로젝트입니다.
이 프레임워크는 두 가지 구성 요소로 이루어져 있습니다:
⭐ 나만의 플러그인을 만드세요! 플러그인 생성기: Skeleton ⭐
이 플러그인들은 Caldera 팀이 지원하고 유지 관리합니다.
이 플러그인들은 바로 사용할 수 있지만 기본적으로 포함되지 않으며 Caldera 팀이 유지 관리하지 않습니다.
이 요구 사항은 핵심 프레임워크를 실행하는 컴퓨터에 대한 것입니다:
참고: pip 패키지 관련 문제를 피하기 위해 Caldera를 Python 가상 환경에 설치할 것을 강력히 권장합니다. 원하는 경우 기존 환경을 사용하거나 처음부터 새로 만들 수 있습니다:
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으로 이동하여 capture-the-flag 스타일의 교육 과정을 완료하여 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 변형을 변경하세요. 노출하는 포트는 사용할 계획인 contacts에 따라 달라집니다(참고로 Dockerfile과 docker-compose.yml을 확인하세요).
사전 빌드된 이미지(GitHub Container Registry에서 제공):
docker run -p 8888:8888 ghcr.io/apache/caldera:latest
이 컨테이너는 다소 오래되었을 수 있으므로, 컨테이너를 직접 빌드할 것을 권장합니다.
도커 컨테이너를 정상적으로 종료하려면 다음을 수행하십시오:
# 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/)를 사용하십시오. Caldera는 하위 디렉터리가 없으면 해당 디렉터리 생성을 거부하므로, 디렉터리 구조가 GitHub의 data/ 디렉터리와 동일한지 확인하십시오. 마지막으로, 암호화 키 관련 문제를 방지하기 위해 구성 파일도 영구적으로 유지되도록 하십시오.builder 플러그인은 Docker 내에서 작동하지 않습니다.atomic 플러그인이 사용하는 데이터를 수정하려면 컨테이너 외부에서 Atomic Red Team 저장소를 복제하고, 수정 사항을 적용한 뒤 컨테이너 내의 /usr/src/app/plugins/atomic/data/atomic-red-team에 바인드 마운트(-v)하십시오.emu가 사용하는 데이터를 수정하려면 adversary_emulation_library 저장소를 로컬에 복제하고 /usr/src/app/plugins/emu/data/adversary-emulation-plans에 바인드 마운트(-v)하십시오.또한 Caldera 배포 시 보안 권장 사항을 참고하십시오.
UI를 개발할 예정이라면 추가 설치 단계가 몇 가지 더 있습니다.
요구 사항
설정
git submodule add https://github.com/mitre/magmacd plugins/magma && npm install && cd ..python3 server.py --uidev localhostCaldera 서버는 평소와 같이 http://localhost:8888 에서 사용할 수 있지만, 이제 http://localhost:3000 에서 VueJS 프런트엔드용 핫 리로딩 개발 서버를 사용할 수 있습니다. 서버와 프런트엔드의 로그는 모두 서버를 실행한 터미널에 표시됩니다.
Caldera 팀은 Caldera 서버를 안전한 환경/네트워크에 구축하고 인터넷에 노출하지 않을 것을 강력히 권장합니다. Caldera 서버는 강화되고 철저히 침투 테스트를 거친 웹 애플리케이션 인터페이스를 갖추고 있지 않으며, 기본적인 인증 및 보안 기능만 제공합니다. MITRE와 MITRE의 미국 정부 후원 기관은 거의 전적으로 안전한 환경에서만 Caldera를 사용하며, 적절한 사이버 보안을 위해 Caldera 자체의 보안 프로토콜에 의존하지 않습니다.
버그 제출에 대해서는 취약점 공개 문서를 참고하십시오.
🚨보안 공지🚨: (2025년 2월 17일 10:00 EST) CVE-2025-27364에 대한 최근 보안 패치를 위해 v5.1.0+를 풀(pull)하십시오. 특히 Caldera를 공개적으로 접근 가능한 네트워크에 호스팅하는 경우 Caldera 인스턴스를 업데이트하십시오. 취약점 상세 설명.
기여자 문서를 참고하십시오.
MITRE Caldera™의 오픈 소스 역량을 지원, 유지 및 발전시키기 위한 파트너십에 관심이 있으시면 [email protected]로 문의하십시오.