脅威モデル分析
脅威モデル分析 (TMA) は、製品、アプリケーション、ネットワーク、環境にもたらされるセキュリティのリスクを判断し、どのように攻撃が発生するかを認識するのに役立ちます。 この分析は、緩和が必要な脅威とその緩和方法を決定することを目標とします。
このセクションでは、TMA プロセスに関する概要について説明します。 詳細については、「 セキュリティで保護されたコードの記述の第 4 章、第 2 版、Michael Howard および David LeBlanc」を参照してください。
TMA にはさまざまなメリットがあります。
アプリケーションの理解を深めることができる。
バグを見つけやすい。
新しいチーム メンバがアプリケーションを詳しく理解するのに役立つ。
アプリケーションに基づいて作業する他のチームに関する重要な情報が含まれている。
テスタが役立てることができる。
TMA を実行する手順の概要は次のとおりです。
手順 1. 背景情報の収集
手順 2. 脅威モデルを作成して分析する
手順 3. 脅威を確認する
手順 4. 軽減策の手法とテクノロジを特定する
手順 5. ドキュメント セキュリティ モデルと展開に関する考慮事項
手順 6. 軽減策の実装とテスト
手順 7. 脅威モデルを設計と同期する
手順 1. 背景情報の収集
TMA を成功させる準備として、背景情報を収集する必要があります。 対象となる環境 (アプリケーション、プログラム、インフラストラクチャ全体) は次のように分析すると便利です。
ユースケース シナリオを特定します。 対象となる環境の各ユースケース シナリオで、その環境が会社でどのように使用されるかという点と、その環境の制限を特定します。 この情報は、脅威モデルのスコープを定義するのに役立ち、資産 (データやコンピュータなど会社にとっての何らかの価値) に対する指針とエントリ ポイントを提供します。
各シナリオのデータ フロー ダイアグラム (DFD) を作成します。 脅威を十分に理解できる深さまで作成してください。
対象となる環境の境界とスコープを判断します。
信頼されたコンポーネントと信頼されていないコンポーネントの境界を理解します。
各コンポーネントの構成および管理モデルを理解します。
外部依存関係の一覧を作成します。
各コンポーネントが依存する他のコンポーネントについて前提の一覧を作成します。 この一覧は、コンポーネント間の前提、アクション項目、他のチームとのフォローアップ項目などを検証するのに役立ちます。
手順 2. 脅威モデルを作成して分析する
背景情報を収集したら、脅威モデルについてのミーティングを行います。 各開発分野 (プログラム マネージャ、開発者、テスタなど) から少なくとも 1 人のメンバが参加するようにします。 参加者に、ミーティングの目標は脅威を見つけることであって、脅威を解決することではないことを確認します。 脅威モデルのミーティングでは次の手順を実行します。
各ユースケースの DFD を調べます。 各ユースケースについて、次の要素を特定します。
エントリ ポイント
信頼の境界
エントリ ポイントから最後の配置場所までのデータ フロー (往復)
関連する資産を書き留めます。
各 DFD について説明し、DFD 内のすべてのエントリに対する脅威を探します。 Spoofing identify、 Tampering with data、 Repudiation、 Information disclosure、 Denial of service、および Elevation of privileges。
特定された脅威の一覧を作成します。 この一覧には、タイトル、簡単な説明 (脅威ツリーを含む)、資産、影響、リスク、緩和方法、緩和状態、バグ番号などを含めることをお勧めします。
Note
リスク、緩和方法、緩和状態などは、脅威を確認しながら追加することができます。 脅威モデルのミーティング中は、あまりこれらの項目に時間をかけないでください。
手順 3. 脅威を確認する
環境に対する脅威を特定したら、各脅威のリスクにランクを付け、各脅威への対応方法を決定する必要があります。 これは別にチーム ミーティングを開くか電子メールを使用して行うことができます。 リスクの露出を計算するには、次の効果カテゴリを使用できます。 Damage potential、 Reproducibility、 Exploitability、 Affected users、 Discoverability。
対象となる環境への脅威をリスクごとに優先順位を付けて一覧を作成したら、各脅威への対応方法を決定する必要があります。 対応として、何もしない (ほとんどの場合お勧めできません)、問題の可能性についてユーザーに警告する、問題を除去する、問題を解決するという選択肢があります。
手順 4. 軽減策の手法とテクノロジを特定する
解決する脅威を特定したら、各脅威に使用可能な緩和方法と各脅威の影響を軽減するのに最も適したテクノロジを決定する必要があります。
たとえば、対象となる環境の詳細によっては、認証技術を使用することによってデータ改ざんの脅威の影響を軽減することができます。 その場合、使用に適した認証技術 (随意アクセス制御リスト (DACL)、アクセス許可、IP の制限など) を決定する必要があります。
重要
緩和方法と使用するテクノロジを評価する際は、会社にとっての採算や、緩和方法によって影響を受ける可能性がある会社のポリシーについても考慮する必要があります。
TMA を完了した後、次の処理を行います。
セキュリティ モデルと展開に関する考慮事項の文書化
緩和の実装とテスト
脅威モデルとデザインとの同期の維持
手順 5. ドキュメント セキュリティ モデルと展開に関する考慮事項
TMA で見つかった事柄と、対象とする環境への脅威の影響を軽減するために決定した事柄を文書化しておくことが重要です。 このドキュメントは、品質保証 (QA)、テスト、サポート、運用担当者などに役立ちます。 対象となる環境とのやり取りやインターフェイスの機能を持つ他のアプリケーションに関する情報や、ファイアウォールやトポロジに関する推奨事項と要件も記載します。
手順 6. 軽減策の実装とテスト
TMA で特定された脅威を解決する準備ができたら、新しい脅威の侵入を最小限に抑えるための安全規約と展開基準に従えるように、開発用チェック リストと展開用チェック リストを使用します。
緩和策を実装したら、テストを行い、その脅威に対して望ましい保護レベルが実現されていることを確認します。
手順 7. 脅威モデルを設計と同期する
新しいアプリケーション、サーバー、その他の要素を環境に追加する場合は、脅威モデル分析の調査結果を見直し、新しい機能に対する TMA を行います。