
OWASPが提供するオープンソースの脅威モデリングツール
OWASP Threat Dragon は、無料でオープンソースのクロスプラットフォームな脅威モデリングアプリケーションです。 脅威モデリングの図を作成し、図の要素に対する脅威を列挙するために使用されます。 Mike Goodwin は、脅威をモデリングするための直感的でアクセスしやすい方法を提供するオープンソースコミュニティプロジェクトとして Threat Dragon を創設しました。
Threat Dragon は、柔軟性とシンプルさを重視し、さまざまなタイプのチームが利用しやすいように設計されています。 このプロジェクトは OWASP Production ステータス を取得しており、脅威モデリングマニフェスト の価値観と原則に従っています。
このプログラムはフリーソフトウェアです。Apache 2.0 License の条件に基づいて、再頒布および変更が可能です。
最新版の Threat Dragon は デモウェブサイト からアクセスでき、ドキュメントページ も参照してください。
OWASP Spotlight シリーズが提供するビデオもぜひご覧ください。
github のリリース領域 には、バージョン 1.3 から最新の 2.x までの Threat Dragon が含まれています。 それ以前のリリースは Mike Goodwin の 元のリポジトリ にあります。
OWASP による 脅威モデリングとリスク評価 の優れた概要があります。 このプロジェクトが目指しているのは、次のような点です。
Mike Goodwin はこのプロジェクトの創設者であり作成者です。 このリポジトリは、2015年10月から2020年6月までの issue と pull request を含む Mike Goodwin の オリジナル から移行されました。
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 のウェブアプリケーション版では、いくつかの環境変数が必要です。 これらの変数の設定方法については ドキュメント に従ってください。
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 グループ にメールを送ることです。 OWASP Slack チャンネル #project-threat-dragon は良い情報源ですが、最初に登録が必要な場合があります。
Threat Dragon は Bluesky でフォローできます。
このプロジェクトに脆弱性を発見した場合は、できるだけ早くお知らせください。優先的に対処します。 安全な開示については、セキュリティポリシー を参照してください。
Threat Dragon: 脅威モデリングをより親しみやすく