サイバーセキュリティ・フレームワーク「MITRE CALDERA」紹介、機能概要・動作環境構築編

2025年4月25日： MITRE CALDERA 5.3.0 が公開されました。
https://github.com/mitre/caldera/releases/tag/5.3.0
2025年3月04日： MITRE CALDERA 5.2.0 が公開されました。
https://github.com/mitre/caldera/releases/tag/5.2.0
2025年2月26日： MITRE CALDERA 5.1.0 が公開されました。
https://github.com/mitre/caldera/releases/tag/5.1.0
2024年2月15日： MITRE CALDERA 5.0.0 が公開されました。
https://github.com/mitre/caldera/releases/tag/5.0.0
2023年6月20日： MITRE CALDERA 4.2.0 が公開されました。
https://github.com/mitre/caldera/releases/tag/4.2.0
2022年9月20日： MITRE CALDERA 4.1.0 が公開されました。
https://github.com/mitre/caldera/releases/tag/4.1.0
2022年6月15日： MITRE CALDERA 4.0.0 が公開されました。
https://github.com/mitre/caldera/releases/tag/4.0.0
2021年10月7日： MITRE CALDERA 4.0.0 Alpha が公開されました。
https://github.com/mitre/caldera/releases/tag/4.0.0-alpha
2021年9月6日: Kali Linux にツール登録されました。
https://www.kali.org/tools/caldera/
2021年4月13日： MITRE CALDERA 3.1.0 が公開されました。
https://github.com/mitre/caldera
<font color="red">**※注意※** 当初の記事は MITRE CALDERA バージョン 2.6.6 での記事でしたが、本日時点の最新バージョン 2.9.0 の環境構築手順に変更しました。
他の3つの記事は バージョン2.6.6 の画面を使用しています。</font>

# サイバーセキュリティ・フレームワーク「MITRE CALDERA」紹介：機能概要・動作環境構築編

![MITRE_CALDERA_red.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/29070/0494cf96-938b-db47-4e3f-6a2ef4cc1a48.png)

※ 上記画像はMITRE CALDERA バージョン 2.9.0 のWebブラウザ画面

## はじめに

### 趣旨

私の仕事はサイバーセキュリティの研究で、特に人材育成に関して興味・関心があります。
研究の中で「MITRE CALDERA」という OSS（オープンソース・ソフトウェア）に出会い、人材育成にも使える将来性のあるツールでしたので、皆さんにも知って・使って・作っていただきたく、この記事を書いています。

### 構成

紹介内容が多いため、以下の4記事に分けて紹介します。

* 機能概要・動作環境構築編（本記事）
* [使用方法：レッドチーム編](https://qiita.com/shiracamus/items/e1bbdaaeff312e9bd09e)
* [使用方法：ブルーチーム編](https://qiita.com/shiracamus/items/d2ec398ff6918297ed51)
* [使用方法：トレーニング編](https://qiita.com/shiracamus/items/9c27b08214956b334311)


用語説明：

* レッドチーム： サイバー攻撃を模擬再現するチーム
* ブルーチーム： サイバー攻撃に対処（インシデント＆レスポンス）するチーム

### 対象者

* サイバーセキュリティに興味・関心のある人
* サイバーセキュリティ人材育成に興味・関心のある人
* プラグインプログラミングに興味・関心のある人

### 注意・免責事項

本記事には、サイバー攻撃を模擬再現する方法が含まれています。
これは、サイバー攻撃されることによってどんな事象が発生するのか、どう対処すれば良いのかを確認・検討・改善したり、サイバーセキュリティ人材育成に活用することが目的です。
他のシステムやネットワークに影響を与えないように、閉じたネットワーク環境を作って実施してください。
許可を得ていない相手に対して実施した場合、不正アクセス禁止法などの法律に抵触しますので、絶対にやめてください。

本記事の内容は私個人の見解であり、所属する組織の公式見解ではありません。
本記事に書いてあることを試して、利用者および第三者に何らかのトラブル・被害・損害が発生しても、筆者および所属組織では一切責任を負いません。

## 概要紹介

### MITRE CALDERA とは

MITRE CALDERA は、様々な機能がプラグインとして提供される「サイバーセキュリティ・フレームワーク」です。
実際に使用されたサイバー攻撃技術や攻撃シナリオを使ってサイバー攻撃を模擬再現（エミュレーション）するのが特徴となっているツールです。
米国MITRE社がApacheライセンスでOSS公開しています。
提供されている主な機能を以下に示します。

* サイバー攻撃を模擬再現する
* サイバー攻撃により発生する事象を観察し、対処方法を検討して対処する
* サイバー攻撃を自動検知できるか確認し、自動検知・自動対処できるように改善する

事前に用意したシナリオに基づいて、上記機能を自動実行することもできます。
以下のような作業ループで、セキュリティ向上と人材育成を支援します。

![活用サイクル](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/29070/602c6dff-514a-c57a-1571-977ac7c304de.png)


### MITRE CALDERA 関連プロジェクト

MITRE社は米国の非営利組織(NPO)で、米国政府が資金提供する研究開発センター(FFRDC)の運用と民間パートナーシップを通じて、産業界や学会の公共の利益や革新的なアイデアを生み出す様々なプロジェクトがあります。
詳細についてはMITRE社のホームページをご覧ください。
https://www.mitre.org/about/corporate-overview

MITRE CALDERA を使用する上で知っておくべき関連プロジェクトを以下に示します。

* [MITRE ATT&CK](https://attack.mitre.org/): サイバー攻撃技術のナレッジベース
* [MITRE ATT&CK NAVIGATOR](https://mitre-attack.github.io/attack-navigator/enterprise/): MITRE ATTACK の情報を可視化・抽出するツール

## 機能概要

MITRE CALDERA 本体は、プラグインを組み込んでWebサービスを提供するPythonスクリプトです。
MITRE CALDERA の基本機能はプラグインとして提供されます。プラグインもPythonスクリプトです。
MITRE CALDERA は 2017年に始まったプロジェクトですが、ここ最近は頻繁に更新されており、新機能プラグインの追加も活発です。
他のプロジェクトが作成したプラグインも組み込めます。([コメント欄](https://qiita.com/shiracamus/items/658ea3e5b28fa5ae3245#comment-51188959a3e28c8c2ec3)参照)
インストール直後に無効になっているプラグインもありますが、Configureメニューから有効にできます。

### 基本プラグイン機能

2020年03月20日 に公開された MITRE CALDERA バージョン 2.6.6 のプラグイン一覧を以下に示します。

| プラグイン名 |  標準有効 | 説明 |
|---|:---:|---|
| sandcat    | ◯ | エージェント、RAT/BOT |
| stockpile | ◯ | 攻撃者模擬プラン（基本シナリオ） |
| atomic | ◯ | 攻撃テクニック集（Atomic Red Canary 提供） |
| response | ◯ | 防御者模擬プラン（インシデント・レスポンスシナリオ） |
| compass | ◯ | Att&CK Navigator による攻撃者模擬プラン確認・作成 |
| debrief | ◯ | 攻撃者模擬行動確認、レポート作成 |
| gameboard | ◯ | レッドチーム 対 ブルーチーム スコア表示 |
| terminal | ◯ | リバースシェル端末 |
| mock | × | 疑似エージェント |
| ssl | × | HTTPSプロキシ |
| access | × | リモートアクセス設定 |

### MITRE CALDERA エージェント

  MITRE CALDERA でサイバー攻撃を模擬再現するとき、端末に侵入された状態から開始します。脆弱性を探して侵入する行為は行いません。
  端末に侵入された状態を作るのが MITRE CALDERA エージェントです。俗に RAT (Remote Access Trojan) と呼ばれるプログラムです。
  MITRE CALDERA サーバにアクセスすると、いくつかのエージェントプログラムをダウンロードできます。OSや目的に応じて適切なエージェントを選んでダウンロードするなりスクリプトをコピー＆ペーストしてエージェントを実行しておきます。
  エージェントは MITRE CALDERAサーバに接続し、サーバから指示された遠隔操作コマンドを実行します。

## 動作環境構築

[GitHubリポジトリ](https://github.com/mitre/caldera)にある README.md ファイルに書いてあるとおりに行えばいいのですが、分かりにくい箇所もあるので説明します。

### 必要環境・ツール

#### OS

* Linux または MacOS

筆者が使用している MacOSX Catalina にインストールしてみたところ、インストールシェルスクリプトがエラー終了してしまい、インストールできませんでした。
VirtualBoxなどの仮想環境に Linux をインストールして、その仮想環境上で動作させることをお勧めします。
仮想環境の構築方法については、他の方々の記事を参考にしてください。

#### 必要ツール

* gitコマンド
* Python Version 3.6.1 以降
* Google Chrome Webブラウザ（現在は Google Chrome のみ動作保証）

各ツールのインストール方法については、他の方々の記事を参考にしてください。

### インストール手順

シェル端末で以下のコマンドを実行します。

```console
$ git clone https://github.com/mitre/caldera.git --recursive --branch v2.9.0
$ cd caldera
$ python3 -m pip install -r requirements.txt
$ python3 server.py --insecure
```

install.sh の実行途中に、Python仮想環境と、必要なPythonモジュールが仮想環境内にインストールされます。
メッセージの最後に、次の手順でWebサービスを開始できると表示されます。

### Webサービス起動手順

```console
$ python3 server.py --insecure
```

Webサーバが起動して、Webブラウザからのアクセス待ち状態になります。

### Webログイン手順

Webサービスを起動したホストで Google Chrome Webブラウザを起動し、URL欄に `http://localhost:8888/` を入力して MITRE CALDERA サーバにアクセスします。
他のホストからアクセスする場合は、`localhost` の部分をWebサービスを立ち上げたホストのIPアドレスに変更してください。

ログインアカウントが2種類用意されています。
用途に応じてユーザ名を選んでください。

| ユーザ名 | パスワード |  用途 |
|---|---|---|
| red | admin | レッドチーム用<br>攻撃シナリオ実行。攻撃検知や対処方法の確認を行う |
| blue | admin | ブルーチーム用<br>防御シナリオ実行。インシデント＆レスポンスを行う |

ユーザ名に応じて、本記事先頭画像のように背景画像やツール名が変化します。
（MITRE CALDERA バージョン2.6.64で、ウィンドウフレームの色の違いだけになりました）
メニューから各種機能を使用できます。

### 終了方法

MITRE CALDERA サーバの pythonスクリプトを起動している端末で `CTRL+C` を入力し、でPythonスクリプトを終了させます。

### アンインストール手順

git clone したディレクトリ配下をすべて削除してください。
Python仮想環境も一緒に削除されます。

## さいごに

機能概要・動作環境構築編は以上です。
興味をお持ちになられた方は是非、インストールして触ってみてください。
使用方法について、レッドチーム編、ブルーチーム編、トレーニング編を公開予定です。楽しみにしていただけましたら幸いです。

## 参考資料

### 公式サイト

* [GitHubリポジトリ](https://github.com/mitre/caldera)
* [ドキュメント](https://caldera.readthedocs.io/en/latest/)
* [チュートリアル動画 (MITRE CALDERA 2.6.2)](https://www.youtube.com/watch?v=_mVGjqu03fg)
* [MITRE CALDERA 紹介](https://www.mitre.org/research/technology-transfer/open-source-software/caldera)
* [MITRE CALDERA プロジェクト紹介 (2019年10月版)](https://www.mitre.org/publications/project-stories/testing-your-network-defenses-by-imitating-malicious-adversaries)

### セキュリティカンファレンス発表資料・映像

* [Black Hat Europe 2017: CALDERA: Automating Adversary Emulation (PDF)](https://www.blackhat.com/docs/eu-17/materials/eu-17-Miller-CALDERA-Automating-Adversary-Emulation.pdf)
* [Black Hat Europe 2017: CALDERA: Automating Adversary Emulation (映像)](https://www.youtube.com/watch?v=fx3635hLewg)
* [2018.01.03 CALDERA automated cyber adversary emulation system - mitrecorp](https://www.youtube.com/watch?v=xjDrWStR68E)
* [2019.03.06 Live Adversary Simulation: Red and Blue Team Tactics - RSA Conference](https://www.youtube.com/watch?v=zZ3nuYZKBwk)
* [2019.06.19 BSides London: The Imitation Game: Emulating Attackers - Wietze Beukema](https://www.youtube.com/watch?v=-jCYMygWbhg)
* [2019.10.10 BruCON 0x0B: Automated adversary emulation using Caldera - Erik Van Buggenhout](https://www.youtube.com/watch?v=lyWJJRnTbI0)
* [2019.11.04 MITRE Tech Talks: CALDERA](https://www.youtube.com/watch?v=EOD7qsSWpCg)

### その他

* [MITRE CALDERA の歴史](https://feed.prelude.org/p/a-history-lesson)

### 外部プラグイン

* ATT&CK Evaluations Round 1: [APT3攻撃シナリオ](https://github.com/mitre-attack/evals_caldera)
* ATT&CK Evaluations Round 2: [APT29攻撃シナリオ](https://github.com/mitre-attack/attack-arsenal/tree/master/adversary_emulation/APT29/CALDERA_DIY/evals)
* The Center for Threat Informed Defense Adversary Emulation Plans (FIN6, APT29, menuPass) を取り込むプラグイン: https://github.com/mitre/emu