Paintでアーキテクチャを描くのはもう古い:OWASP Threat Dragon紹介
最後にセキュリティチームから「脅威モデルを作成してください」と言われたのことを思い出してみてください。ほとんどの場合、MiroやDraw.ioを開いて、四角と矢印で適当に図を描き、STRIDEの頭字法を必死に思い出していたでしょう。結果は很好看な図ですが、リリースから1週間後には時代遅れになり、企業のWikiで埃を年被ることになりました。
OWASPの開発者たちはこの問題を早くから見抜しており、Threat Dragonを作成しました。これはデータフロー図を描き、アーキテクチャ要素に直接リスクを紐付けできるオープンソースツールです。
Threat Dragonでできること
このプロジェクトは2015年にMike Goodwinさんによって設立され、現在は正式なOWASP Productionステータスを持っています。つまり、このユーティリティは最初のコミット之后就放置されるのではなく、活発にメンテナンスされているということです。
このツールのポイントは、専用のセキュリティアーキテクチャ専門家だけでなく、通常の開発チームにも脅威モデリングを身近なものにするということです。
注目すべき主な機能は次のとおりです:
- データフロー図(DFD)の作成。キャンバス上にプロセス、データストア、外部アクター、信頼境界を描画できます。
- 脅威の生成と説明。图の要素に基づいて、潜在的なリスクのリストをすばやく作成し、特定の修正手順を紐付けできます。
- Gitリポジトリ統合。Web版はGitHub、GitLab、Bitbucketで認証でき、脅威モデルをJSONファイルとしてプロジェクトコードに直接保存できます。
- オフライン対応。企業ポリシーによりアーキテクチャ図を外部サービスに送信できない場合、スタンドアロンのデスクトップビルドが利用可能です。
内部構造
最初のバージョンはフロントエンドがAngularJS 1.xで書かれていたため、使いにくいものでした。フレームワークが時代遅れになったため、作者たちはプロジェクトを完全に書き直すという論理的な決断をしました。
Threat Dragonのバージョン2は新鮮なスタックで構築されています:ユーザーインターフェースにはVue.js、バックエンドにはNode.jsを使用しています。リポジトリは明確に2つのディレクトリ(td.serverとtd.vue)に分かれています。独自のカスタムルールを追加したり、ニーズに合わせてインターフェースを調整したい場合は、構造を理解するのは難しくありません。
クイックスタート
ローカルでツールを試す最も簡単な方法は、完成されたDockerコンテナを実行することです。実質的に1つのコマンドで完了します:
docker pull threatdragon/owasp-threat-dragon:stable
docker run -it --rm -p 8080:3000 threatdragon/owasp-threat-dragon:stable
その後、Webインターフェースはhttp://localhost:8080/でアクセス可能になります。
традиционную установку из исходного кода предпочитаете, процессы также просты:
ソースからの伝統的なビルドを好む場合、手順も同様にシンプルです:
git clone https://github.com/owasp/threat-dragon.git
cd threat-dragon
npm install
npm start
GitHubまたはGitLabを含むWeb版の完全な機能には、バージョン管理システムの設定でOAuthアプリケーションを登録し、変数を介してキーを渡す必要があります。.envファイルへ。リポジトリには各一般的なサービスの手順が詳しく記載されています。
このプロジェクトが役立つ人
Threat Dragonは本格的なセキュリティ監査に代わるものではありません。また、インターフェースは比較的シンプルに見えます。しかし、チームが設計段階の早い段階でDevSecOpsの実践を導入する必要がある場合、大型有料システム優れた代替手段となります。
このツールはプロジェクトリポジトリ内でアーキテクチャ上の決定を文書化するのに最適です。すべての図はコードと一緒に保存されるため、リファクタリング中に更新しやすく、計画的なアーキテクチャレビュー中に新鮮な状態に保つことができます。
関連プロジェクト