脅威モデリング(きょういモデリング、)とは、構造的な脆弱性や適切な保護対策の欠如といった潜在的な脅威を特定し、列挙して、対策や制御の優先順位を決定するためのプロセスである。脅威モデリングは、システムの性質、想定される攻撃者のプロファイル、最も可能性の高い攻撃ベクトル、攻撃者から最も狙われやすい資産を考慮したうえで、どのような制御や防御を含めるべきかについて、防御側に体系的な分析を提供する。「どこが最も攻撃に対して脆弱か」「最も関連性の高い脅威は何か」「これらの脅威から保護するために何をすべきか」といった問いに対する答えを導き出す。

脅威モデリングと同様に、リスクアセスメントや脅威攻撃モデリングは、いじめなどのリスクに対処するための日常生活において非公式に使用されたり、古代からの軍事的な防衛準備の優先順位付けなどにも利用されている。

技術中心の脅威モデリングの進化

1960年代初頭に共有コンピューティングが登場して間もなく、人々は個人的な利益のためにセキュリティの脆弱性を悪用する方法を探り始めた。その結果、エンジニアや計算機科学者たちはすぐに、情報技術(IT)システム向けの脅威モデリングの概念を開発し始めた。

初期の技術中心の脅威モデリング手法は、1977年にクリストファー・アレグザンダーによって初めて提唱されたアーキテクチャパターンの概念に基づいていた。1988年、ロバート・バーナード(Robert Barnard)はITシステム攻撃者のための最初のプロファイルを開発し、その適用に成功した。

1994年、エドワード・G・アモロッソは著書『Fundamentals of Computer Security Technology』の中で「脅威ツリー」の概念を提唱した。脅威ツリーの概念は、決定木図に基づいている。脅威ツリーは、ITシステムに対する潜在的な脅威がどのように悪用される可能性があるかをグラフィカルに表現するものである。

これとは独立して、アメリカ国家安全保障局(NSA)と国防高等研究計画局(DARPA)でも、ITシステムに対する特定の攻撃がどのように実行されるかを構造化したグラフィカルな表現に関する同様の研究が行われていた。その結果として得られた表現はアタックツリーと呼ばれた。1998年、ブルース・シュナイアーは「Toward a Secure System Engineering Methodology」と題した論文の中で、アタックツリーを利用したサイバーリスクの分析を発表した。この論文は、ITシステムの脅威モデリングの進化において画期的な貢献となった。シュナイアーの分析では、攻撃者の目標を「ルートノード」とし、その目標に到達するための潜在的な手段を「リーフノード」として表現している。このようにアタックツリーを活用することで、サイバーセキュリティの専門家は、定義されたターゲットに対する複数の攻撃ベクトルを体系的に検討できるようになった。

1999年、マイクロソフトのサイバーセキュリティ専門家であるローレン・コーンフェルダーとプラエリット・ガルグ(Praerit Garg)は、Microsoft Windows開発環境に関連する攻撃を検討するためのモデルとしてSTRIDEを開発した。これは、なりすまし(Spoofing identity)、改ざん(Tampering with data)、否認(Repudiation)、情報漏えい(Information disclosure)、サービス拒否(Denial of service)、特権昇格(Elevation of privilege)の頭文字をとった折句である。

2003年には、組織のリスク管理に焦点を当てた運用中心の脅威モデリング手法であるOCTAVE(Operationally Critical Threat, Asset, and Vulnerability Evaluation)手法が導入された。

2004年、フランク・スウィデルスキ(Frank Swiderski)とウィンドウ・スナイダーは、マイクロソフトプレスから出版された著書『Threat Modeling』を執筆した。この中で彼らは、安全なアプリケーションを開発するために脅威モデルを使用するという概念を展開した。

2014年、ライアン・スティリオンズ(Ryan Stillions)は、脅威は異なるセマンティックレベルで表現されるべきであるという考えを示し、DML(Detection Maturity Level:検知成熟度レベル)モデルを提案した。攻撃とは、特定の目標を念頭に置いた特定の攻撃者と、その目標に到達するための戦略によって引き起こされる脅威シナリオのインスタンス化である。目標と戦略は、DMLモデルの最も高いセマンティックレベルを表す。これに続くのが、中間的なセマンティックレベルを表すTTP(戦術、技術、手順)である。DMLモデルの最も低いセマンティックレベルは、攻撃者が使用するツール、ホストや観察されたネットワークアーティファクト(パケットやペイロードなど)、そして最も低いセマンティックレベルであるIPアドレスなどの原子性のある指標である。現在のSIEMツールは、通常、最も低いセマンティックレベルでの指標しか提供しない。したがって、より高いセマンティックレベルで脅威指標を提供できるSIEMツールを開発する必要がある。

脅威モデリング宣言

脅威モデリング宣言(Threat Modeling Manifesto)は、すべての脅威モデラーが知っておくべき、そして従うべき中核的な価値観と原則を明確に示すために、脅威モデリングの権威たちによって2020年に公開された文書である。

2024年、同じ著者グループは宣言に続いて「Threat Modeling Capabilities」という文書を発表した。これは「脅威モデリングの実践から価値を生み出すための機能のカタログを提供する」ものである。

脅威モデリングフレームワーク

概念的には、脅威モデリングの実践は特定の方法論から導き出される。実装に利用できる脅威モデリング手法は数多く存在する。一般的に、脅威モデリングは、資産中心、攻撃者中心、ソフトウェア中心、価値および利害関係者中心、ハイブリッドの5つのアプローチのいずれかを独立して使用することで実装されてきた。オンラインで公開されているコンテンツの量に基づくと、以下で議論されている方法論が最もよく知られている。

STRIDE

STRIDE(なりすまし、改ざん、否認、情報漏えい、サービス拒否、特権昇格)は、シンプルなプロンプトやチェックリストとして使用することも、要素ごとのSTRIDEのようなより構造化されたアプローチで使用することもできる。STRIDE、パターンと実践(Patterns and Practices)、および資産/エントリポイントのアプローチは、マイクロソフトによって開発・公開された脅威モデリング手法の1つである。「マイクロソフトの手法」への言及は、一般的にSTRIDEとデータフロー図(DFD)を意味する。

PASTA

攻撃シミュレーションと脅威分析のためのプロセス(PASTA:Process for Attack Simulation and Threat Analysis)は、7つのステップからなるリスク中心の方法論である。ビジネス目標と技術的要件を整合させるための7段階のプロセスを提供し、コンプライアンス問題やビジネスアナリシスを考慮に入れている。この手法の目的は、動的な脅威の特定、列挙、およびスコアリングのプロセスを提供することである。脅威モデルが完成すると、セキュリティの専門家が特定された脅威の詳細な分析を行う。最後に、適切なセキュリティ制御を列挙できる。この手法は、防御側が資産中心の緩和戦略を策定できるように、アプリケーションとインフラストラクチャに対する攻撃者中心の視点を提供することを目的としている。

「ハイブリッド」脅威モデリング手法

研究者たちは、異なる方法論の優れた要素を組み合わせるためにこの手法を作成した。この手法は、SQUAREやSecurity Cards、Personae Non Grataeなど、複数の異なる手法を組み合わせている。

一般的に受け入れられている技術的脅威モデリングプロセス

ITに関連するすべての脅威モデリングプロセスは、分析対象となるアプリケーション、インフラストラクチャ、またはその両方の視覚的な表現を作成することから始まる。分析を支援するために、アプリケーションやインフラストラクチャはさまざまな要素に分解される。完成後、その視覚的表現を使用して潜在的な脅威を特定し、列挙する。特定された脅威に関連するリスクに関するモデルのさらなる分析、脅威の優先順位付け、および適切な緩和策の列挙は、使用されている脅威モデルプロセスの方法論的基盤に依存する。脅威モデリングのアプローチは、使用中のシステム、攻撃者、または資産に焦点を当てることができる。

データフロー図に基づく視覚的表現

alt=データフロー図 – オンラインバンキングアプリケーション|thumb|データフロー図 – オンラインバンキングアプリケーション ほとんどの脅威モデリングアプローチは、データフロー図(DFD)を使用する。DFDは1970年代に、アプリケーションがその実行基盤となるインフラストラクチャによってデータをどのように流し、保存し、操作するかをハイレベルで伝達するためのシステムエンジニア向けのツールとして開発された。従来、DFDはデータフロー、データストア、プロセス、インタラクタ(外部エンティティ)の4つの固有の記号のみを使用していた。2000年代初頭には、脅威モデリングにおけるDFDの有用性を高めるために、信頼境界(trust boundaries)という記号が追加された。

アプリケーションとインフラストラクチャのシステムが5つの要素に分解されると、セキュリティの専門家は、特定された各脅威のエントリポイントを既知のすべての脅威カテゴリと照らし合わせて検討する。潜在的な脅威が特定されると、緩和のためのセキュリティ制御を列挙したり、追加の分析を実行したりすることができる。

脅威モデリングツール

マイクロソフトの無料ツール「Threat Modeling Tool」(旧称:SDL Threat Modeling Tool)は、マイクロソフトの脅威モデリング手法を使用しており、DFDに基づいており、STRIDE脅威分類システムに基づいて脅威を特定する。主に一般的な用途を目的としている。 IriusRiskは、コミュニティ版と商用版の両方のツールを提供している。このツールは、SDLC全体を通じて生きた脅威モデルを作成し、維持することに焦点を当てている。完全にカスタマイズ可能なアンケートとリスクモデルライブラリを使用してプロセスを推進し、自動化を可能にするために他のいくつかの異なるツール(OWASP ZAP、BDD-Security、Threadfix)と接続する。 securiCADは、スカンジナビアの企業foreseetiが提供する脅威モデリングおよびリスク管理ツールである。CISO(最高情報セキュリティ責任者)からセキュリティエンジニア、技術者まで、企業のサイバーセキュリティ管理を対象としている。securiCADは、現在および将来のITアーキテクチャに対して自動化された攻撃シミュレーションを実行し、構造的脆弱性を含むリスクをグローバルに特定・定量化し、結果に基づいた意思決定支援を提供する。securiCADには商用版とコミュニティ版がある。 SD Elements by Security Compassは、自動化された脅威モデリング機能を備えたソフトウェアセキュリティ要件管理プラットフォームである。アプリケーションの技術的詳細やコンプライアンス要因に関する短いアンケートに回答することで、一連の脅威が生成される。対策は開発者向けの実用的なタスクという形で含まれており、SDLC全体で追跡・管理することができる。 OWASP Threat Dragonは、セキュア開発ライフサイクルの一部として脅威モデル図を作成するために使用されるモデリングツールである。Threat Dragonは、脅威モデリング宣言の価値観と原則に従っている。想定される脅威を記録し、その緩和策を決定するほか、脅威モデルのコンポーネントや脅威の対象範囲を視覚的に示すことができる。Threat Dragonは、ウェブアプリケーションまたはデスクトップアプリケーションとして動作する。STRIDE、LINDDUN、CIA、DIE、PLOT4aiをサポートし、モデリング図を提供するとともに、脅威とその緩和策を自動生成するルールエンジンを実装している。 OWASP pytmは、脅威モデリングのためのPythonフレームワークであり、最初のThreat-Model-as-Code(コードとしての脅威モデル)ツールである。システムはまず、pytmフレームワークで記述された要素とプロパティを使用してPythonで定義される。この定義に基づいて、pytmはデータフロー図(DFD)、シーケンス図、そして最も重要なシステムに対する脅威を生成することができる。

さらなる応用分野

脅威モデリングはITだけでなく、自動車、ビル、およびホームオートメーションなどの他の分野にも適用されつつある。このコンテキストでは、居住者の行動プロファイル、勤務時間、健康状態に関する情報など、セキュリティやプライバシーに対する脅威だけでなく、物理的またはネットワークベースの攻撃もモデル化される。後者は、スマートビルの機能としてますます利用可能になっているセンサー(居住者の監視など)やアクチュエータ(ドアの解錠など)を利用する可能性がある。

自動車のサイバーセキュリティ

国連規則第155号(UN R155)は、リスクアセスメントで考慮すべき自動車への攻撃ベクトルを少なくとも69個特定している。上記のいずれの脅威モデリングフレームワークも使用できるが、適合性を推定するためにISO/SAE 21434を使用することが可能である。

農業用およびオフロード機器

サイバーレジリエンス法(CRA:Cyber Resilience Act)は、デジタル要素を含む機器を製造するメーカーに対して、セキュリティを確保することを求めている。機械指令に基づいて製造された機器は、ISO/DIS 24882のガイダンスとともに、上記のいずれかの脅威モデリングフレームワークを使用して適合性を推定することができる。

脚注

関連項目 アタックツリー 脆弱性 脅威 リスク