Threat Modeling Tool の概要Getting started with the Threat Modeling Tool

Microsoft Threat Modeling Tool 2018 は、無料で クリックしてダウンロードできる ツールとして 2018 年 9 月に GA としてリリースされました。The Microsoft Threat Modeling Tool 2018 was released as GA in September 2018 as a free click-to-download. 配布のしくみが変わり、ユーザーがツールを開くたびに、最新の改善とバグの修正をプッシュできるようになりました。そのため、保守と使用が簡単になりました。The change in delivery mechanism allows us to push the latest improvements and bug fixes to customers each time they open the tool, making it easier to maintain and use. この記事では、Microsoft SDL 脅威モデリング アプローチの基本的なプロセスについて説明します。また、ツールを使用して、セキュリティ プロセスのバックボーンとして優れた脅威モデルを作成する方法について説明します。This article takes you through the process of getting started with the Microsoft SDL threat modeling approach and shows you how to use the tool to develop great threat models as a backbone of your security process.

この記事は、SDL の脅威モデリング アプローチの既存の知識に基づいています。This article builds on existing knowledge of the SDL threat modeling approach. 短時間で復習するには、「Web アプリケーションの脅威モデル」と、2006 年に公開されたアーカイブ版の MSDN 記事「Uncover Security Flaws Using the STRIDE Approach」(STRIDE アプローチを使用してセキュリティ上の欠陥を見つける) を参照してください。For a quick review, refer to Threat Modeling Web Applications and an archived version of Uncover Security Flaws Using the STRIDE Approach MSDN article published in 2006.

簡単にまとめると、このアプローチにはダイアグラムの作成、脅威の特定、脅威の軽減、各軽減策の検証が含まれます。To quickly summarize, the approach involves creating a diagram, identifying threats, mitigating them and validating each mitigation. このプロセスをまとめた図を次に示します。Here’s a diagram that highlights this process:

SDL プロセス

脅威のモデリング プロセスを開始するStarting the threat modeling process

Threat Modeling Tool を起動すると、次の図のようにいくつかの点に気づきます。When you launch the Threat Modeling Tool, you'll notice a few things, as seen in the picture:

空白の開始ページ

[Threat model](脅威モデル) セクションThreat model section

コンポーネントComponent 詳細Details
[Feedback, Suggestions and Issues](フィードバック、提案、問題) ボタンFeedback, Suggestions and Issues Button すべての SDL の MSDN フォーラム が表示されます。Takes you the MSDN Forum for all things SDL. 他のユーザーが実行していること、回避策、推奨事項を読むことができます。It gives you an opportunity to read through what other users are doing, along with workarounds and recommendations. 探している情報が見つからない場合は、サポート チーム (tmtextsupport@microsoft.com) に電子メールで問い合わせてください。If you still can’t find what you’re looking for, email tmtextsupport@microsoft.com for our support team to help you
Create a Model (モデルの作成)Create a Model ダイアグラムを描画できる空白のキャンバスが開きます。Opens a blank canvas for you to draw your diagram. 実際のモデルで使用したいテンプレートを選択してください。Make sure to select which template you’d like to use for your model
Template for New Models (新しいモデル用のテンプレート)Template for New Models モデルを作成する前に、テンプレートを選択する必要があります。You must select which template to use before creating a model. メインのテンプレートは Azure Threat Model Template です。Azure 固有のステンシル、脅威、軽減策が含まれています。Our main template is the Azure Threat Model Template, which contains Azure-specific stencils, threats and mitigations. 汎用的なモデルの場合は、ドロップダウン メニューから [SDL TM Knowledge Base](SDL TM ナレッジ ベース) を選択します。For generic models, select the SDL TM Knowledge Base from the drop-down menu. 独自のテンプレートを作成する場合、または全ユーザーが使用できるように新しいテンプレートを提出する場合は、Want to create your own template or submit a new one for all users? Template Repository 」(テンプレート レポジトリ) GitHub ページで詳細を確認してください。Check out our Template Repository GitHub Page to learn more
Open a Model (モデルを開く)Open a Model

以前に保存した脅威モデルを開きます。Opens previously saved threat models. [Recently Opened Models](最近開いたモデル) 機能は、最近使ったファイルを開く必要がある場合に便利です。The Recently Opened Models feature is great if you need to open your most recent files. この項目にマウスを移動すると、モデルを開く方法が 2 つ表示されます。When you hover over the selection, you’ll find 2 ways to open models:

  • [Open From this Computer](このコンピューターから開く) - ローカル記憶域を使用するファイルを開く従来の方法ですOpen From this Computer – classic way of opening a file using local storage
  • [Open from OneDrive](OneDrive から開く) - チームで OneDrive 内のフォルダーを使用して 1 個所にすべての脅威モデルを保存し、共有することで、生産性を向上し、コラボレーションに利用することができます。Open from OneDrive – teams can use folders in OneDrive to save and share all their threat models in a single location to help increase productivity and collaboration

ファースト ステップ ガイドGetting Started Guide Microsoft Threat Modeling Tool のメイン ページを開きますOpens the Microsoft Threat Modeling Tool main page

[Template](テンプレート) セクションTemplate section

コンポーネントComponent 詳細Details
Create New Template (新しいテンプレートの作成)Create New Template 基礎となる空白のテンプレートが開きます。Opens a blank template for you to build on. テンプレートをゼロから構築できる豊富な知識を持っていなければ、既存のテンプレートから作成することをお勧めしますUnless you have extensive knowledge in building templates from scratch, we recommend you to build from existing ones
Open Template (テンプレートを開く)Open Template 変更を加えることができる既存のテンプレートを開きますOpens existing templates for you to make changes to

Threat Modeling Tool チームはツールの機能と操作性を改善するために常に取り組んでいます。The Threat Modeling Tool team is constantly working to improve tool functionality and experience. その過程で軽微な変更がいくつか加えられる可能性がありますが、重大な変更の場合は必ずこのガイドが改訂されます。A few minor changes might take place over the course of the year, but all major changes require rewrites in the guide. 最新のお知らせを確認するために、ガイドを頻繁に確認してください。Refer to it often to ensure you get the latest announcements.

モデルの構築Building a model

ここでは、次の 3 人を例にして説明します。In this section, we follow:

  • 佐藤さん (開発者)Cristina (a developer)
  • 高橋さん (プログラム マネージャー)Ricardo (a program manager) and
  • 山本さん (テスト担当者)Ashish (a tester)

3 人は 1 つ目の脅威モデルの開発プロセスを実行しています。They are going through the process of developing their first threat model.

高橋:佐藤さん、脅威モデル ダイアグラムを編集しているところなのだが、詳細な部分が正しいことを確認したい。Ricardo: Hi Cristina, I worked on the threat model diagram and wanted to make sure we got the details right. 確認を手伝ってもらえないだろうか。Can you help me look it over? 佐藤:そして、Cristina: Absolutely. 見せてください。Let’s take a look. 高橋さんがツールを開き、画面を佐藤さんと共有します。Ricardo opens the tool and shares his screen with Cristina.

基本的な脅威モデル

佐藤:単純に見えますが、簡単に説明していただけますか。Cristina: Ok, looks straightforward, but can you walk me through it? 高橋:もちろんです。Ricardo: Sure! 内訳を説明する。Here is the breakdown:

  • 人間のユーザーは外部エンティティ (四角形) で描画されているOur human user is drawn as an outside entity—a square
  • ユーザーはコマンドを会社の Web サーバー (丸) に送信するThey’re sending commands to our Web server—the circle
  • Web サーバーはデータベースに問い合わせる (2 本の並列の線)The Web server is consulting a database (two parallel lines)

高橋さんが佐藤さんに表示しているものは DFD です。DFDは Data Flow Diagram (データ フロー ダイアグラム) の短縮形です。What Ricardo just showed Cristina is a DFD, short for Data Flow Diagram. ユーザーは Threat Modeling Tool を使用して、異なるエンティティが管理されている場所を示す信頼の境界 (赤の点線) を指定できます。The Threat Modeling Tool allows users to specify trust boundaries, indicated by the red dotted lines, to show where different entities are in control. たとえば、IT 管理者は、認証目的で Active Directory システムを必要としているため、Active Directory は管理の範囲外です。For example, IT administrators require an Active Directory system for authentication purposes, so the Active Directory is outside of their control.

佐藤:適切な内容だと思います。Cristina: Looks right to me. 脅威はどうですか。What about the threats? 高橋:説明しよう。Ricardo: Let me show you.

脅威の分析Analyzing threats

高橋さんがアイコン メニュー項目から分析ビュー (ファイルと虫眼鏡のアイコン) をクリックすると、既定のテンプレートに基づいて Threat Modeling Tool が検出し、生成した脅威の一覧が表示されます。このテンプレートでは、STRIDE (スプーフィング、改ざん、情報漏えい、否認、サービス拒否、特権の昇格) という SDL アプローチを使用しています。Once he clicks on the analysis view from the icon menu selection (file with magnifying glass), he is taken to a list of generated threats the Threat Modeling Tool found based on the default template, which uses the SDL approach called STRIDE (Spoofing, Tampering, Info Disclosure, Repudiation, Denial of Service and Elevation of Privilege). STRIDE は、予測可能な特定の組み合わせ脅威をソフトウェアが受け、脅威はこれら 6 つのカテゴリを使用して検出できる、という考えです。The idea is that software comes under a predictable set of threats, which can be found using these 6 categories.

このアプローチは、自宅を守るために、アラーム システムを追加したり、泥棒を追いかける前に、個々のドアと窓にロックのしくみを確実に持たせることに似ています。This approach is like securing your house by ensuring each door and window has a locking mechanism in place before adding an alarm system or chasing after the thief.

基本的な脅威

高橋さんは一覧の最初の項目を選択します。Ricardo begins by selecting the first item on the list. これは次のように動作します。Here’s what happens:

まず、2 つのステンシル間の相互作用が強調表示されますFirst, the interaction between the two stencils is enhanced

スクリーンショットには、2 つのステンシルと、線の太さが太い線の矢印が示されています。

次に、脅威に関する詳細情報が [Threat Properties](脅威のプロパティ) ウィンドウに表示されますSecond, additional information about the threat appears in the Threat Properties window

相互作用情報

高橋さんは生成された脅威を見て、設計の欠陥の可能性が把握できます。The generated threat helps him understand potential design flaws. STRIDE カテゴリは、攻撃ベクトルの可能性に関するヒントになります。また、詳細な説明で、問題のある点とその軽減策の案を正確に把握できます。The STRIDE categorization gives him an idea on potential attack vectors, while the additional description tells him exactly what’s wrong, along with potential ways to mitigate it. 高橋さんは編集可能なフィールドを使用して、理由の詳細にメモを書き込んだり、組織のバグ バーに基づいて優先度を変更したりすることができます。He can use editable fields to write notes in the justification details or change priority ratings depending on his organization’s bug bar.

Azure テンプレートの詳細情報には、説明、例、Azure 固有のドキュメントのハイパーリンクが追加されているので、問題のある点だけでなく、修正方法もユーザーが把握できます。Azure templates have additional details to help users understand not only what’s wrong, but also how to fix it by adding descriptions, examples and hyperlinks to Azure-specific documentation.

高橋さんはこの説明から、対応が必要な最初の脅威がわかり、ユーザーのなりすましを防ぐために認証メカニズムを追加する重要性に気づきました。The description made him realize the importance of adding an authentication mechanism to prevent users from being spoofed, revealing the first threat to be worked on. 高橋さんは佐藤さんと数分話し合い、2 人はアクセス制御とロールを実装する重要性を把握しました。A few minutes into the discussion with Cristina, they understood the importance of implementing access control and roles. 高橋さんは、確実に実装されるように簡単なメモを入力しました。Ricardo filled in some quick notes to make sure these were implemented.

高橋さんは情報漏えいの脅威を確認し、アクセス制御計画に、監査とレポート生成目的の読み取り専用アカウントがいくつか必要であることに気づきました。As Ricardo went into the threats under Information Disclosure, he realized the access control plan required some read-only accounts for audit and report generation. これを新しい脅威にするべきかどうかは迷いましたが、軽減策は同じなので、それに従って脅威についてメモしました。He wondered whether this should be a new threat, but the mitigations were the same, so he noted the threat accordingly. また、情報漏えいについても少し考え、バックアップ用のテープに暗号化が必要であることに気づきました。これは運用チームの仕事です。He also thought about information disclosure a bit more and realized that the backup tapes were going to need encryption, a job for the operations team.

既存の軽減策またはセキュリティの保証は、[Status](状態) ドロップダウンから [Not Applicable](適用不可)に変更できるため、脅威は設計に適用されません。Threats not applicable to the design due to existing mitigations or security guarantees can be changed to “Not Applicable” from the Status drop-down. 他にも 3 つの選択肢があります。[Not Started](未着手) は既定の選択です。[Needs Investigation](要調査) は項目のフォロー アップに使用されます。[Mitigated](軽減済み) は対策が完了したことを示します。There are three other choices: Not Started – default selection, Needs Investigation – used to follow up on items and Mitigated – once it’s fully worked on.

レポートと共有Reports & sharing

高橋さんは佐藤さんと一覧を検討し、重要なメモ、軽減策/理由、優先度、状態の変更を追加し、[Reports](レポート)、[Create Full Report](フル レポートの作成)、[Save Report](レポートの保存) の順に選択します。これで、同僚との検討に利用できる良質なレポートが印刷され、適切なセキュリティ対策を確実に実施することができます。Once Ricardo goes through the list with Cristina and adds important notes, mitigations/justifications, priority and status changes, he selects Reports -> Create Full Report -> Save Report, which prints out a nice report for him to go through with colleagues to ensure the proper security work is implemented.

相互作用情報

印刷するのではなく、ファイルを共有したい場合は、組織の OneDrive アカウントに保存することで簡単に共有できます。If Ricardo wants to share the file instead, he can easily do so by saving in his organization’s OneDrive account. OneDrive アカウントに保存したら、ドキュメントのリンクをコピーし、同僚と共有することもできます。Once he does that, he can copy the document link and share it with his colleagues.

脅威モデリングのミーティングThreat modeling meetings

高橋さんはOneDrive を使用して脅威モデルを同僚に送信しましたが、テスト担当者の山本さんはがっかりしました。When Ricardo sent his threat model to his colleague using OneDrive, Ashish, the tester, was underwhelmed. 高橋さんと佐藤さんは、簡単に侵入される可能性がある重要なレア ケースをいくつか見逃しているようです。Seemed like Ricardo and Cristina missed quite a few important corner cases, which could be easily compromised. 山本さんの懐疑的な見方は、脅威モデルを補完するものです。His skepticism is a complement to threat models.

このシナリオでは、山本さんが脅威モデルを引き継ぎ、2 つの脅威モデリング ミーティングの開催を呼びかけました。1 つは、プロセスについて考えを合わせ、ダイアグラムの概要を説明するミーティングです。もう 1 つは、脅威のレビューと承認のためのミーティングです。In this scenario, after Ashish took over the threat model, he called for two threat modeling meetings: one meeting to synchronize on the process and walk through the diagrams and then a second meeting for threat review and sign-off.

1 つ目のミーティングで、山本さんは SDL の脅威モデリング プロセスについて 10 分間で概要を説明しました。In the first meeting, Ashish spent 10 minutes walking everyone through the SDL threat modeling process. 次に、脅威モデル ダイアグラムを見せ、詳細な説明を始めました。He then pulled up the threat model diagram and started explaining it in detail. 5 分以内に、欠落している重要なコンポーネントが特定されました。Within five minutes, an important missing component had been identified.

さらに数分後、山本さんと高橋さんは Web サーバーの構築方法について詳細な議論を始めました。A few minutes later, Ashish and Ricardo got into an extended discussion of how the Web server was built. 理想的なミーティングの進め方ではありませんでしたが、最終的には、早期に矛盾を見つけることで、将来的に時間を節約できるということに全員が合意しました。It was not the ideal way for a meeting to proceed, but everyone eventually agreed that discovering the discrepancy early was going to save them time in the future.

2 つ目のミーティングで、チームは脅威を検証し、その対応方法についていくつか話し合い、脅威モデルを承認しました。In the second meeting, the team walked through the threats, discussed some ways to address them, and signed off on the threat model. このドキュメントはソース管理にチェックインし、作成が継続されました。They checked the document into source control and continued with development.

資産について考えるThinking about assets

脅威をモデル化したことがある場合は、この記事で資産についてまったく触れていないことに気づかれたかもしれません。Some readers who have threat modeled may notice that we haven't talked about assets at all. 多くのソフトウェア エンジニアは、自作のソフトウェアほど、資産の概念や攻撃者が興味を持つ資産の内容を理解していないことがわかっています。We've discovered that many software engineers understand their software better than they understand the concept of assets and what assets an attacker may be interested in.

家の脅威をモデル化する場合、まず家族、かけがえのない写真、貴重な芸術作品について考えるのではないでしょうか。If you're going to threat model a house, you might start by thinking about your family, irreplaceable photos or valuable artwork. 侵入者像や、現在のセキュリティ システムから考えるかもしれません。Perhaps you might start by thinking about who might break in and the current security system. または、プールや正面ポーチなど、物理的な機能の検討から始めるかもしれません。Or you might start by considering the physical features, like the pool or the front porch. これは、資産、攻撃者、またはソフトウェア設計について考える場合と似ています。These are analogous to thinking about assets, attackers, or software design. これら 3 つのアプローチのすべてが役立ちます。Any of these three approaches work.

ここで紹介した脅威モデリングのアプローチは、Microsoft が過去に実行したアプローチよりもはるかに単純です。The approach to threat modeling we've presented here is substantially simpler than what Microsoft has done in the past. ソフトウェア設計アプローチは、多くのチームに適していることがわかっています。We found that the software design approach works well for many teams. その中に皆さんも含まれることを願っています。We hope that include yours.

次の手順Next Steps

ご質問、ご意見、懸念事項は tmtextsupport@microsoft.com に送信してください。Send your questions, comments and concerns to tmtextsupport@microsoft.com. Threat Modeling Tool をダウンロード すると、すぐに使い始めることができます。Download the Threat Modeling Tool to get started.