Microsoft Threat Modeling Toolを使ってみた

”Microsoft Threat Modeling Tool”を使ってみたので使用方法等をまとめました。

はじめに

セキュリティ専門家でもない限り、セキュリティの問題を網羅的に見つけるのは困難です。

Microsoft Threat Modeling Toolは、その課題を解決してくれるツールとして使えるのでは?と考えて使用してみました。

Microsoft Threat Modeling Toolとは

何ができるツールかを簡単にまとめると次の内容になります。

  • 簡単に脅威をモデリング
  • 実績ある手法を使用して設計を分析、軽減策を提案
  • 脅威を視覚化

詳細は以下のマイクロソフトのドキュメントを参照してください。

docs.microsoft.com

このフレーズを読むと定型化・定量化を前提にしていることがうかがえます。

このツールを使用すると、だれでも次の作業を行うことができます。

  • システムのセキュリティ設計に関して連絡する
  • 実績ある手法を使用して、潜在的なセキュリティの問題に関して、これらの設計を分析する
  • セキュリティの問題の軽減策を提案および管理する

インストール

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を担当。

執筆記事一覧