
OWASPが提供するオープンソースの脅威モデリングツール
OWASP Threat Dragon は、無料のオープンソースでクロスプラットフォームの脅威モデリングアプリケーションです。 脅威モデリング図を描画し、図中の要素に対する脅威を一覧化するために使用されます。 Mike Goodwin が、直感的でアクセスしやすい方法で脅威をモデリングできるオープンソースコミュニティプロジェクトとして Threat Dragon を作成しました。
Threat Dragon は、柔軟性とシンプルさを重視し、さまざまな種類のチームが利用しやすいように設計されています。 このプロジェクトは OWASP Production status を持ち、threat modeling manifesto の価値観と原則に従っています。
このプログラムはフリーソフトウェアです。Apache 2.0 License の条件に従って、再配布および/または改変することができます。
デモウェブサイト で Threat Dragon の最新バージョンにアクセスし、ドキュメントページ を参照してください。
また、OWASP Spotlight シリーズで提供されている動画もぜひご覧ください。
github リリースエリア には、Threat Dragon のバージョン 1.3 から最新の 2.x バージョンまでが含まれています。 以前のリリースは、Mike Goodwin の 元のリポジトリ にあります。
OWASP による 脅威モデリングとリスク評価 の優れた概要があり、これは Threat Dragon プロジェクトが目指す内容をさらに詳しく説明しています。
Mike Goodwin はこのプロジェクトの創設者かつ作成者であり、このリポジトリは Mike Goodwin の 元のリポジトリ から移行されました。元のリポジトリには 2015 年 10 月から 2020 年 6 月までのイシューとプルリクエストがあります。
Threat Dragon は 主にウェブアプリケーションです。 ウェブアプリケーションは脅威モデルファイルをローカルファイルシステムに保存できます。さらに、次のアクセスを設定できます。
Threat Dragon の デスクトップ版 は、脅威モデルファイルをローカルファイルシステムに保存し、外部リポジトリにはアクセスしません。 Windows、MacOS、Linux 用の インストーラーをダウンロード できます。
エンドユーザー向けヘルプは、最新の バージョン 2.x と以前の バージョン 1.x の両方で利用できます。
Threat Dragon は当初 AngularJS バージョン 1.x を使用して書かれましたが、このバージョンの Angular はサポート終了に達しました。 つまり、Threat Dragon のバージョン 1.x はもはや積極的にメンテナンスされておらず、バージョン 2.x は Vue.js を使用するように書き直されています。
バージョン 1.x のビルド/実行の詳細については、legacy-v1.x ブランチ を参照してください。
git と、node パッケージマネージャー npm を含む node.js をインストールします
次のコマンドでリポジトリをクローンします: git clone https://github.com/owasp/threat-dragon.git
これによりコードが threat-dragon ディレクトリにダウンロードされ、アプリケーションコードは 2 つのサブフォルダに分かれています。
1 つはバックエンドアプリケーション (td.server) 用、もう 1 つはフロントエンド (td.vue) 用です。
プロジェクトの最上位ディレクトリから次のコマンドでインストールします: npm install
Threat Dragon の Web アプリケーション版にはいくつかの環境変数が必要です。 これらの変数の設定方法についてはドキュメントに従ってください。
Bitbucket / GitHub / GitLab など、外部リポジトリへのアクセスが必要な場合は、 リポジトリのアカウントに移動してアプリケーションを登録する必要があります。 これを行うための手順ガイドが Bitbucket、GitHub、GitLab 向けに用意されています。
Windows で実行する場合、および開発中は、フロントエンドとサーバーバックエンドを
"watch" モードで別々に起動できます。コマンドは npm run dev:server と npm run dev:vue です。
あるいは、Linux または MacOS で実行する場合は、最上位ディレクトリから
バックエンドサーバーとフロントエンドアプリケーションの両方を次のコマンドで起動します: npm start。
フロントエンドとバックエンドの両方が実行されている状態で、ブラウザから http://localhost:8080/ にアクセスします
npm start を使用している場合は、最上位ディレクトリからコマンド npm stop で
バックエンドサーバーとフロントエンドアプリケーションの両方を停止します。それ以外の場合は、サーバーと vue フロントエンドの両方から抜けます。
Threat Dragon は Dockerhub 上の OWASP 組織エリア内で docker イメージを管理しています。
各リリースは v{major}.{minor}.{patch}、例えば v2.2.0 としてタグ付けされます:
docker pull owasp/threat-dragon:v2.2.0latest タグ (これがデフォルトです) は開発版である可能性が高いため、
常に最新の公式リリースとなる stable タグを使用してください:
docker pull threatdragon/owasp-threat-dragon:stabledocker run -it --rm -p 8080:3000 -v $(pwd)/.env:/app/.env threatdragon/owasp-threat-dragon:v2.2.0docker run -it --rm -p 8080:3000 -v %CD%/.env:/app/.env threatdragon/owasp-threat-dragon:v2.2.0http ポート 8080 を使用し、http://localhost:8080/ で Threat Dragon にアクセスすることを前提としています。
ローカルでビルドされた docker コンテナで Threat Dragon を実行するには、 まず dotenv を使用して環境を設定し、プロジェクトの最上位ディレクトリから実行します:
docker build -t owasp-threat-dragon:dev .docker run -it --rm -p 8080:3000 -v $(pwd)/.env:/app/.env owasp-threat-dragon:devdocker run -it --rm -p 8080:3000 -v %CD%/.env:/app/.env owasp-threat-dragon:devhttp ポート 8080 を使用し、http://localhost:8080/ で Threat Dragon にアクセスします。
プルリクエスト、機能リクエスト、バグ報告、その他あらゆる種類のフィードバックを歓迎します。 コントリビューターのページを参照してください。
このプロジェクトを始めるのに役立つ開発者向けノートがあります。 テストカバレッジを比較的高く保つよう努めているので、プルリクエストにはテストを含めてください。
Threat Dragon コミュニティに連絡する最も簡単な方法は、 OWASP google group にメールを送ることです。 OWASP Slack チャンネル #project-threat-dragon は情報源として優れていますが、 まず登録が必要かもしれません。
Threat Dragon は Bluesky でフォローできます。
このプロジェクトに脆弱性を見つけた場合は、できるだけ早くお知らせください。優先的に対応いたします。 安全な開示については、セキュリティポリシーをご覧ください。
Threat Dragon: 脅威モデリングの敷居を下げる