脅威のモデリングとは?
脅威のモデリングとは?

脅威のモデリングとは?

サイバーセキュリティにおける脅威のモデリングの目的を理解し、STRIDE、PASTA、VASTなどのモデリング手法について学びましょう。

脅威モデリングとは?

脅威モデリングとは、システムが導入される前に、そのシステムに対する既知の脅威や対策について検討し、特定し、文書化するプロセスです。脅威モデリングは、すべてのシステムが導入前、導入中、導入後にさまざまな脅威に直面することを認識しており、セキュリティ専門家がそれらの脅威が発生する前に特定し、軽減するのに役立ちます。

脅威モデリングとセキュリティ

脅威モデリングは、以下の点を通じてアプリケーションのセキュリティを最適化します:

  • 目的の特定
  • アーキテクチャのモデリング
  • 脅威の特定
  • システムに対する脅威の影響を防止または軽減するための対策を定義する
  • 防止または軽減されなかった脅威に関するリスク登録簿の維持
  • 実装された対策が有効であったことを検証する
Threat modeling

脅威モデリングは、システムの脅威に対処するための予防的なプロセスである

なぜ脅威モデリングを行うのか?

脅威モデリングは、セキュリティ態勢やサイバー攻撃のリスクについて、十分な情報に基づいた意思決定を行うのに役立ちます。システムに対して複数のセキュリティスキャンツールを実行したり、サードパーティによるペネトレーションテストを個別に実施したりすることも可能ですが、これらはソフトウェア開発ライフサイクルの後半で行われるため、その時点で脅威を軽減するためのコストははるかに高くなってしまいます。

脅威モデリングのメリット

アプリケーションにおける脅威モデリングのメリットは、次のように要約できます。

コストの削減

脅威モデリングは設計段階で実施されるため、ソフトウェア開発ライフサイクルの早い段階で脅威に対処することができ、対策コストを削減できます。

セキュリティの向上

アプリケーションのセキュリティアーキテクチャを文書化し、脅威モデルを作成することは、アプリケーションがセキュリティ保証を維持し、外部の脅威から自らを守れるようにするための重要なステップです。

許容可能なリスクレベル

脅威モデルを活用することで、アプリケーションのセキュリティレベルを体系的に評価し、リスクの優先順位付けを行い、リスク軽減のための対策を講じることで、許容可能なリスクレベル内に収まるセキュリティ保証の状態を実現することができます。

脅威モデリングのアプローチ

脅威モデリングのプロセスは単純ですが、規律と注意を払って取り組む必要があります。どのシステムにおいても、技術の進歩に伴い攻撃対象領域は変化し、新たな脅威も絶えず出現しているため、現代のシステムについて「知っていること」と「知らないこと、あるいは知り得ないこと」を正しく理解し、認識しておく必要があります。

一般的に、脅威モデリングには、「ソフトウェア中心」、「攻撃者中心」、「資産中心」という3つの基本的なアプローチがあります。

ソフトウェア中心のアプローチ

ソフトウェアに焦点を当てたリスク軽減:

  • モデリング対象のアプリケーションを評価する
  • リスクを特定する
  • 軽減のための対策を特定する
  • 対象となるアプリケーションおよびそれが稼働するシステムについて、十分な理解が必要

攻撃者中心のアプローチ

攻撃者に焦点を当てたアプローチ:

  • ユーザーに攻撃者の視点を持たせる
  • 最もリスクの高い箇所を特定する
  • ハッキングの概念を理解する必要がある
  • ハッカーとしてのスキルセットを備えている必要がある

資産中心のアプローチ

資産に焦点を当てたこのアプローチでは:

  • 保護すべき資産を特定する
  • データの機密性や潜在的な価値に基づいて資産を分類する
  • 「許容可能なリスク」レベルを決定する
  • セキュリティ監査プロセスを満たすにあたり、サイバーリスク管理の観点を取り入れる

脅威モデリングの手法

一般的に、脅威モデリングの手法では、攻撃者の戦術や手法、および攻撃フレームワークに関連する潜在的な脅威のカタログを作成します。可能な限り、技術的な詳細は抽象化されます。特定された脅威を適切なセキュリティ対策によって解決または軽減することで、システムのセキュリティ態勢が確立されます。以下を含む、さまざまな手法が利用可能です:

STRIDE

マイクロソフトで開発されたこの種の脅威モデルは、ソフトウェア中心(開発者重視)であり、頭字語「STRIDE」を用いて脅威を次のように分類します:

脅威のカテゴリ 侵害されたプロパティ 脅威の説明
なりすまし(Spoofing) 認証 不正アクセスを行い、その後、ユーザー名やパスワードなど、他のユーザーの認証情報を悪用すること
改ざん(Tampering) 完全性 データの悪意ある改ざん
否認(Repudiation) 説明責任(監査) ある行為の実行を否定するユーザに関係。他者が証明する術を持たない
情報漏えい(Information Disclosure) 機密性 情報へのアクセス権限を持たない個人への情報の漏洩
サービス妨害(DoS) 可用性 正当なユーザーへのサービス提供を妨害する攻撃
特権の昇格(Elevation of Privileges) 認可 権限のないユーザーが特権アクセスを取得し、システム全体を侵害または破壊するのに十分なアクセス権を得る状態

STRIDE手法では、アプリケーションのユースケースを分解してシステムエンティティ、イベント、および境界を特定し、データフロー図を作成します。その後、脅威カテゴリを用いて、既知の脅威の一般的なセットをシステムに適用し、これらの脅威に対する緩和策についてシステムを評価します。

data-flow diagram

データフロー図の例

The seven stages of PASTA

PASTAの7つの段階

PASTA

PASTA(Process for Attack Simulation and Threat Analysis)は、アプリケーションに対する脅威を特定する際に攻撃者中心のアプローチを採用する、リスクベースの脅威モデリング手法です。この手法は、左の図に示す7段階のプロセスに従って行います。

PASTAは攻撃者中心のアプローチを採用しているため、「攻撃ツリー」を用いて、システムに対する潜在的な攻撃をツリー形式の図で表現します。ツリーの根は攻撃の目標を象徴し、葉はその目標を達成する方法を示しています。攻撃ツリーを用いる脅威モデリング手法を活用するには、攻撃者の思考様式や能力について熟知している必要があります。

Trike

Trike手法は、脅威モデルをリスク管理ツールとして活用するオープンソースプロジェクトで、もともと既存の脅威モデリング手法の効率性と有効性を向上させるために考案されました。当初はプログラミング言語Smalltalkを用いたツールとして実装されましたが、現在はスプレッドシートを通じて実装されています。

Trike stages

Trikeの段階

VAST

Visual, Agile, Simple Threat Modeling(VAST)は、ThreatModeler製品の開発者によって考案された脅威モデリング手法です。その目的は、ソフトウェア開発ライフサイクル(SDLC)全体に統合することで、エンタープライズレベルの拡張性におけるギャップを解消することにあります。VASTは、拡張性のある脅威モデリングソリューションを支えるために、以下の3つの柱を取り入れています:

自動化
  • 脅威モデリングにおける反復的な作業を排除
  • 継続的な脅威モデリングを実現
  • 企業全体を網羅するよう拡張可能
統合
  • SDLC全般にわたるツールと統合
  • アジャイルなDevOpsをサポート
コラボレーション
  • 主要なステークホルダーとのコラボレーション:
    • アプリ開発者
    • システムアーキテクト
    • セキュリティチーム
    • 経営幹部

ここで留意すべき重要な点は、VASTは、自動化ツール「ThreatModeler」が企業による大規模な脅威モデリングを可能にする方法を定義するために開発されたものであるということです。したがって、この方法論の各段階に関する詳細な説明は、ここでは関係ありません。

セキュリティ・カード

「セキュリティ・カード」は、シアトルのワシントン大学にあるセキュリティ・プライバシー研究ラボ(CSE)およびバリュー・センシティブ・デザイン研究ラボ(iSchool)によって開発された脅威モデリング手法です。その目的は、特定のシステムに対する潜在的なセキュリティ脅威の探索を促進することであり、より広くは、セキュリティ意識を醸成することにあります。この手法は、構造化されたモデリングアプローチではなく、ブレインストーミングや創造的思考に基づいています。

「セキュリティ・カード」ツールキットは、4つの次元(またはスート)に分類された42枚のカードで構成されています:

  • 人間への影響
  • 攻撃者の動機
  • 攻撃者のリソース
  • 攻撃者の手法

各カードには以下の内容が含まれています:

  • カードのテーマ
  • カードの規模
  • 思考を明確にし、思考のきっかけとなる質問
  • 具体例
Example security card

セキュリティカードの例

脅威モデリングのベストプラクティス

アプリケーションに対するすべての脅威を完全に排除することは決してできないという事実を認識することが、ベストプラクティスです。場合によっては、特定できない脅威も存在します。将来開発される技術によって、現在存在しない新たな脅威がアプリケーションに生じる可能性もあります。

脅威モデルの作成はセキュリティ専門家の指導のもとで行うこともできますが、この作業はセキュリティ専門家やセキュリティチームだけの役割ではありません。完全な脅威モデルを作成するには、システムのアーキテクチャ、設計上の決定事項、実装、およびエンジニアリング上の決定事項を包括的に理解することが重要であり、不可欠です。これは通常、チーム全体の専門家を巻き込み、システムの全体像を把握することで、すべての脅威、脆弱性、および緩和策を特定できるようにすることを意味します。

タイミング

脅威モデリングは、開発フェーズの終盤、つまりデプロイの直前に実施されることが多すぎます。これは手遅れです。脅威モデリングは、システムの設計段階のできるだけ早い時期から開始し、設計および開発の全過程を通じて継続すべきです。脅威を早期に特定することで、セキュリティ上の問題を引き起こすような設計上の決定を回避し、開発チームが設計を変更してより安全なシステム体制を構築するための時間を確保することができます。

Wind Riverのアプローチ

Wind River Simics

最新のツールを使えば、システム環境をテストし、適切なセキュリティを確保できるため、チームは日中は効率的に業務に取り組み、夜は安心して眠ることができます。

Wind River® Simics® は、スクリプトを使用して仮想プロトタイプを定義、リンク、実行する、高速なフルシステムシミュレーションプラットフォームです。Python で公開されている、あるいは社内の脆弱性実証(PoV)を再利用することで、攻撃を自動的に実行することができます。さらに、シミュレーションをいつでも再生して、決定論的な詳細なソースコードレベルの分析を行うことができ、脅威モデリングや文書化に極めて貴重な知見を提供します。

» 詳細はこちら

Wind River can help identify and mitigate system threats

Wind Riverのプロフェッショナルサービスおよび製品は、システムへの脅威の特定と軽減を支援します

Wind River プロフェッショナル・サービス

Wind Riverプロフェッショナルサービスは、脅威モデリングのトレーニング支援や、お客様のアプリケーションの脅威モデル作成を行い、脅威の特定と緩和策の策定を代行する専門家チームです。

» 詳細はこちら

脅威モデリングに関するFAQ

脅威モデリングとは、システム、アプリケーション、または組織に対する潜在的な脅威を特定し、分析するプロセスです。これは、脆弱性が悪用される前に特定し、組織がリスクを軽減し、セキュリティを向上させるための予防的な措置を講じることができるため、重要です。
段階は、採用する手法によって異なります:
  • STRIDE:各段階は組織によって定義されますが、概ね次のように分類できます:
    • セキュリティ要件の特定
    • アプリケーションの分解
    • アプリケーション内でのデータの流れを示す図を作成する
    • 脅威とその緩和策を特定する
    • 緩和策の検証
    • 軽減された脅威および許容された脅威を文書化する
  • PASTA:攻撃者中心のアプローチに基づき、以下のことを行います:
    • アプリケーションのビジネスコンテキストを定義する
    • 技術要素を列挙する
    • アプリケーションを分解する
    • 脅威を分析する
    • 弱点や脆弱性を特定する
    • 攻撃をシミュレートする
    • 残存リスクを分析する
  • Trike:現在、スプレッドシートを使用して以下の作業を行っている:
    • 要件モデルを構築するための体系を定義する
    • CRUDを用いたリスク評価:
      • 作成
      • 読み取り
      • 更新
      • 削除
    • データフロー図(DFD)を作成する
    • リスク値の割り当て
  • VAST:段階を定義するのではなく、ソフトウェア開発ライフサイクル(SDLC)全体に統合されている
  • Security Cards:非構造化的なアプローチを採用しているため、その方法論の段階は定義されていない
Microsoft 脅威モデリング ツール(MSTMT)を使用することで、ソフトウェアアーキテクトは、潜在的なセキュリティ問題を、解決が比較的容易で費用対効果の高い初期段階で特定し、軽減することができます。その結果、開発の総コストを大幅に削減できます。このツールは、セキュリティの専門家ではないユーザーでも利用できるよう設計されており、脅威モデルの作成と分析に関する明確なガイダンスを提供することで、すべての開発者が脅威モデリングを容易に行えるようにします。 このツールを使用することで、誰でも以下のことが可能になります:
  • システムのセキュリティ設計について意思疎通を行う
  • 実証済みの方法論を用いて、その設計を分析し、潜在的なセキュリティ上の問題を特定する
  • セキュリティ問題に対する緩和策を提案・管理する
脅威モデリングを行うための一般的な方法論には、STRIDE、DREAD、PASTA、VAST、Trikeなどがあります。各方法論にはそれぞれ長所と短所があるため、組織は自社のニーズや要件に最も適したものを選択する必要があります。
脅威モデリングの対象が何であれ、その目的は常に以下の4つの問いに答えることにあります:
  • 現在、どのような作業を行っているか?
  • 何が問題になり得るか?
  • それに対してどのような対策を講じるのか?
  • 対策は十分だったか?
  • Microsoft Threat Modeling Tool(オープンソース)
  • OWASP Threat Dragon(オープンソース)
  • ThreatModeler(商用)
  • CAIRIS(オープンソース)
  • IriusRisk(商用)
  • securiCAD(オープンソース、商用)
  • Threagile(オープンソース)
資産とは、組織にとって価値のあるものであり、その喪失により、組織が使命を達成する能力に支障をきたす可能性があるものです。
  • 現在、どのような作業を行っているのか?
  • 何が問題になり得るか?
  • それに対してどのような対策を講じるのか?
PASTA(Process for Attack Simulation and Threat Analysis)は、リスクベースの脅威モデリング手法です。これは 7 段階のプロセスに従い、「攻撃ツリー」を用いて、システムに対する潜在的な攻撃をツリー形式の図で表現します。この手法では、ユーザーが攻撃者の心理や能力を理解していることが求められます。
アプリケーションに対する脅威が特定されたら、各脅威にリスク評価手法を適用して、対策の優先順位を決定します。自社で従うべきリスク評価手法が定義されているかどうかについては、リスク管理部門に確認してください。一般的に使用される手法には、以下の3つがあります。
  • 平均ランク付け、すなわち (D+R+E+A+DI)/5。これは以下の項目の平均を算出します:
    • 損害
    • 再現性
    • 悪用可能性
    • 影響を受けるユーザー数
    • 発見可能性
  • 確率 × 影響度 (PxI) ランキング:
    • P = (R + E + DI)
    • I = (D + A)
  • デルファイ法
    • この手法は、専門家(この場合はセキュリティ専門家)の判断を順次集約していく、集団による意思決定および予測を行う方法です。
脅威モデリングには、開発、運用、セキュリティ、ビジネスなどの分野の代表者を含む、部門横断的なチームが関与すべきです。これにより、すべての利害関係者がプロセスに発言権を持ち、最終的な成果物が組織のリスク選好度と許容度を反映したものになることが保証されます。
脅威モデリングを行う上で最も効果的かつ効率的な時期は、ソフトウェア開発ライフサイクルの設計フェーズです。ライフサイクルにおいて「右へシフト」すればするほど、特定された脅威に対する緩和策の実施コストは高くなります。
システムが潜在的な脅威や脆弱性について継続的に評価されるよう、脅威モデリングは定期的に、理想的にはソフトウェア開発ライフサイクル(SDLC)の一環として実施すべきです。実施頻度は、システムの複雑さや組織のリスク許容度によって異なります。
脅威モデリングの成果物には、通常、潜在的な脅威のリスト、深刻度と発生確率に基づいて脅威の優先順位を付けたリスクマトリックス、および各脅威を軽減するための推奨策が含まれます。
脅威モデリングに関連する課題としては、現代のシステムの複雑さ、専門的な知識やツールの必要性、脅威情勢の動的な性質などが挙げられます。さらに、脅威モデリングは時間がかかり、リソースを大量に消費するため、リソースや予算が限られている組織にとっては困難となる可能性があります。