”Microsoft Threat Modeling Tool”を使ってみたので使用方法等をまとめました。
はじめに
セキュリティ専門家でもない限り、セキュリティの問題を網羅的に見つけるのは困難です。
Microsoft Threat Modeling Toolは、その課題を解決してくれるツールとして使えるのでは?と考えて使用してみました。
Microsoft Threat Modeling Toolとは
何ができるツールかを簡単にまとめると次の内容になります。
- 簡単に脅威をモデリング
- 実績ある手法を使用して設計を分析、軽減策を提案
- 脅威を視覚化
詳細は以下のマイクロソフトのドキュメントを参照してください。
このフレーズを読むと定型化・定量化を前提にしていることがうかがえます。
このツールを使用すると、だれでも次の作業を行うことができます。
- システムのセキュリティ設計に関して連絡する
- 実績ある手法を使用して、潜在的なセキュリティの問題に関して、これらの設計を分析する
- セキュリティの問題の軽減策を提案および管理する
インストール
https://aka.ms/threatmodelingtool
上記URLをクリックして画面の指示に従って進めていくとインストールが完了します。
ユーザーがツールを開くたびに、最新の改善とバグの修正をプッシュ
してくれるので常に最新の状態になっているようです。(最新の脅威モデルが適用されるのはありがたいですね。)
モデルの構築
ツールを起動し、”Create A Model”をクリックします。
デフォルトではAzure用のステンシルが入ったテンプレートが選択されますが、ステンシルを自分で作成してテンプレートにすることが可能です。
このステンシルから設計に必要なリソースをドラッグしていきます。
今回は「データベースからデータを取得するアプリケーションをブラウザからアクセスする」というシナリオのため、”Azure SQL Database”、”Web Appplication”、”Browser”のリソースを配置しました。
次にステンシルの上にある、Generic Data Flowの”Request”、”Response”を、配置したリソースの通信の流れに従ってつなげていきます。
ブラウザからアプリケーションにリクエストし、そのアプリケーションがデータベースにリクエスト出します。応答はその逆になります。
リソースをクリックするとElement Propertiesにリソースに応じた設定項目が表示されるので、設定内容を選択します。
これでモデルの構築は完了です。
脅威の可視化
左から4番目の「ファイルと虫眼鏡」のアイコンをクリックします。
Threat ListにSTRIDEモデルが使用されて検出された脅威の一覧が表示され、選択することでTreat Propertiesに詳細が表示されます。
これにより、どのリソースのどの通信でどのような脅威があるのかがわかります。
詳細情報のPossible Migrationには対策が記載されているので、内容に従って対応することが可能になります。
メニューのReportsからHTML形式でのレポートの出力が可能です。
Treat PropertiesのStatusの対応状況でフィルターすることもできます。
このようなレポートが出力されます。
おわりに
セキュリティの知見がなくとも、定型的に脅威を分析できるすばらしいツールでした。教育にも利用できそうなので積極的に使っていきたいと思います。
土山 和也(日本ビジネスシステムズ株式会社)
ユーザーサポート、開発、運用、構築業務を経験し、現在はアーキテクトとして提案・プロジェクト支援に従事。専門はデータベースでDBA歴十数年。Azure/AWSを担当。
担当記事一覧