脅威モデリングとは?
脅威モデリングとは、システムが導入される前に、そのシステムに対する既知の脅威や対策について検討し、特定し、文書化するプロセスです。脅威モデリングは、すべてのシステムが導入前、導入中、導入後にさまざまな脅威に直面することを認識しており、セキュリティ専門家がそれらの脅威が発生する前に特定し、軽減するのに役立ちます。
脅威モデリングとセキュリティ
脅威モデリングは、以下の点を通じてアプリケーションのセキュリティを最適化します:
- 目的の特定
- アーキテクチャのモデリング
- 脅威の特定
- システムに対する脅威の影響を防止または軽減するための対策を定義する
- 防止または軽減されなかった脅威に関するリスク登録簿の維持
- 実装された対策が有効であったことを検証する
脅威モデリングは、システムの脅威に対処するための予防的なプロセスである
なぜ脅威モデリングを行うのか?
脅威モデリングは、セキュリティ態勢やサイバー攻撃のリスクについて、十分な情報に基づいた意思決定を行うのに役立ちます。システムに対して複数のセキュリティスキャンツールを実行したり、サードパーティによるペネトレーションテストを個別に実施したりすることも可能ですが、これらはソフトウェア開発ライフサイクルの後半で行われるため、その時点で脅威を軽減するためのコストははるかに高くなってしまいます。
脅威モデリングのメリット
アプリケーションにおける脅威モデリングのメリットは、次のように要約できます。
コストの削減
脅威モデリングは設計段階で実施されるため、ソフトウェア開発ライフサイクルの早い段階で脅威に対処することができ、対策コストを削減できます。
セキュリティの向上
アプリケーションのセキュリティアーキテクチャを文書化し、脅威モデルを作成することは、アプリケーションがセキュリティ保証を維持し、外部の脅威から自らを守れるようにするための重要なステップです。
許容可能なリスクレベル
脅威モデルを活用することで、アプリケーションのセキュリティレベルを体系的に評価し、リスクの優先順位付けを行い、リスク軽減のための対策を講じることで、許容可能なリスクレベル内に収まるセキュリティ保証の状態を実現することができます。
脅威モデリングのアプローチ
脅威モデリングのプロセスは単純ですが、規律と注意を払って取り組む必要があります。どのシステムにおいても、技術の進歩に伴い攻撃対象領域は変化し、新たな脅威も絶えず出現しているため、現代のシステムについて「知っていること」と「知らないこと、あるいは知り得ないこと」を正しく理解し、認識しておく必要があります。
一般的に、脅威モデリングには、「ソフトウェア中心」、「攻撃者中心」、「資産中心」という3つの基本的なアプローチがあります。
ソフトウェア中心のアプローチ
ソフトウェアに焦点を当てたリスク軽減:
- モデリング対象のアプリケーションを評価する
- リスクを特定する
- 軽減のための対策を特定する
- 対象となるアプリケーションおよびそれが稼働するシステムについて、十分な理解が必要
攻撃者中心のアプローチ
攻撃者に焦点を当てたアプローチ:
- ユーザーに攻撃者の視点を持たせる
- 最もリスクの高い箇所を特定する
- ハッキングの概念を理解する必要がある
- ハッカーとしてのスキルセットを備えている必要がある
資産中心のアプローチ
資産に焦点を当てたこのアプローチでは:
- 保護すべき資産を特定する
- データの機密性や潜在的な価値に基づいて資産を分類する
- 「許容可能なリスク」レベルを決定する
- セキュリティ監査プロセスを満たすにあたり、サイバーリスク管理の観点を取り入れる
脅威モデリングの手法
一般的に、脅威モデリングの手法では、攻撃者の戦術や手法、および攻撃フレームワークに関連する潜在的な脅威のカタログを作成します。可能な限り、技術的な詳細は抽象化されます。特定された脅威を適切なセキュリティ対策によって解決または軽減することで、システムのセキュリティ態勢が確立されます。以下を含む、さまざまな手法が利用可能です:
STRIDE
マイクロソフトで開発されたこの種の脅威モデルは、ソフトウェア中心(開発者重視)であり、頭字語「STRIDE」を用いて脅威を次のように分類します:
| 脅威のカテゴリ | 侵害されたプロパティ | 脅威の説明 |
|---|---|---|
| なりすまし(Spoofing) | 認証 | 不正アクセスを行い、その後、ユーザー名やパスワードなど、他のユーザーの認証情報を悪用すること |
| 改ざん(Tampering) | 完全性 | データの悪意ある改ざん |
| 否認(Repudiation) | 説明責任(監査) | ある行為の実行を否定するユーザに関係。他者が証明する術を持たない |
| 情報漏えい(Information Disclosure) | 機密性 | 情報へのアクセス権限を持たない個人への情報の漏洩 |
| サービス妨害(DoS) | 可用性 | 正当なユーザーへのサービス提供を妨害する攻撃 |
| 特権の昇格(Elevation of Privileges) | 認可 | 権限のないユーザーが特権アクセスを取得し、システム全体を侵害または破壊するのに十分なアクセス権を得る状態 |
STRIDE手法では、アプリケーションのユースケースを分解してシステムエンティティ、イベント、および境界を特定し、データフロー図を作成します。その後、脅威カテゴリを用いて、既知の脅威の一般的なセットをシステムに適用し、これらの脅威に対する緩和策についてシステムを評価します。
PASTA
PASTA(Process for Attack Simulation and Threat Analysis)は、アプリケーションに対する脅威を特定する際に攻撃者中心のアプローチを採用する、リスクベースの脅威モデリング手法です。この手法は、左の図に示す7段階のプロセスに従って行います。
PASTAは攻撃者中心のアプローチを採用しているため、「攻撃ツリー」を用いて、システムに対する潜在的な攻撃をツリー形式の図で表現します。ツリーの根は攻撃の目標を象徴し、葉はその目標を達成する方法を示しています。攻撃ツリーを用いる脅威モデリング手法を活用するには、攻撃者の思考様式や能力について熟知している必要があります。
VAST
Visual, Agile, Simple Threat Modeling(VAST)は、ThreatModeler製品の開発者によって考案された脅威モデリング手法です。その目的は、ソフトウェア開発ライフサイクル(SDLC)全体に統合することで、エンタープライズレベルの拡張性におけるギャップを解消することにあります。VASTは、拡張性のある脅威モデリングソリューションを支えるために、以下の3つの柱を取り入れています:
自動化
- 脅威モデリングにおける反復的な作業を排除
- 継続的な脅威モデリングを実現
- 企業全体を網羅するよう拡張可能
統合
- SDLC全般にわたるツールと統合
- アジャイルなDevOpsをサポート
コラボレーション
- 主要なステークホルダーとのコラボレーション:
- アプリ開発者
- システムアーキテクト
- セキュリティチーム
- 経営幹部
ここで留意すべき重要な点は、VASTは、自動化ツール「ThreatModeler」が企業による大規模な脅威モデリングを可能にする方法を定義するために開発されたものであるということです。したがって、この方法論の各段階に関する詳細な説明は、ここでは関係ありません。
セキュリティ・カード
「セキュリティ・カード」は、シアトルのワシントン大学にあるセキュリティ・プライバシー研究ラボ(CSE)およびバリュー・センシティブ・デザイン研究ラボ(iSchool)によって開発された脅威モデリング手法です。その目的は、特定のシステムに対する潜在的なセキュリティ脅威の探索を促進することであり、より広くは、セキュリティ意識を醸成することにあります。この手法は、構造化されたモデリングアプローチではなく、ブレインストーミングや創造的思考に基づいています。
脅威モデリングのベストプラクティス
アプリケーションに対するすべての脅威を完全に排除することは決してできないという事実を認識することが、ベストプラクティスです。場合によっては、特定できない脅威も存在します。将来開発される技術によって、現在存在しない新たな脅威がアプリケーションに生じる可能性もあります。
脅威モデルの作成はセキュリティ専門家の指導のもとで行うこともできますが、この作業はセキュリティ専門家やセキュリティチームだけの役割ではありません。完全な脅威モデルを作成するには、システムのアーキテクチャ、設計上の決定事項、実装、およびエンジニアリング上の決定事項を包括的に理解することが重要であり、不可欠です。これは通常、チーム全体の専門家を巻き込み、システムの全体像を把握することで、すべての脅威、脆弱性、および緩和策を特定できるようにすることを意味します。
タイミング
脅威モデリングは、開発フェーズの終盤、つまりデプロイの直前に実施されることが多すぎます。これは手遅れです。脅威モデリングは、システムの設計段階のできるだけ早い時期から開始し、設計および開発の全過程を通じて継続すべきです。脅威を早期に特定することで、セキュリティ上の問題を引き起こすような設計上の決定を回避し、開発チームが設計を変更してより安全なシステム体制を構築するための時間を確保することができます。
Wind Riverのアプローチ
Wind River Simics
最新のツールを使えば、システム環境をテストし、適切なセキュリティを確保できるため、チームは日中は効率的に業務に取り組み、夜は安心して眠ることができます。
Wind River® Simics® は、スクリプトを使用して仮想プロトタイプを定義、リンク、実行する、高速なフルシステムシミュレーションプラットフォームです。Python で公開されている、あるいは社内の脆弱性実証(PoV)を再利用することで、攻撃を自動的に実行することができます。さらに、シミュレーションをいつでも再生して、決定論的な詳細なソースコードレベルの分析を行うことができ、脅威モデリングや文書化に極めて貴重な知見を提供します。
Wind Riverのプロフェッショナルサービスおよび製品は、システムへの脅威の特定と軽減を支援します
Wind River プロフェッショナル・サービス
Wind Riverプロフェッショナルサービスは、脅威モデリングのトレーニング支援や、お客様のアプリケーションの脅威モデル作成を行い、脅威の特定と緩和策の策定を代行する専門家チームです。
脅威モデリングに関するFAQ
- STRIDE:各段階は組織によって定義されますが、概ね次のように分類できます:
- セキュリティ要件の特定
- アプリケーションの分解
- アプリケーション内でのデータの流れを示す図を作成する
- 脅威とその緩和策を特定する
- 緩和策の検証
- 軽減された脅威および許容された脅威を文書化する
- PASTA:攻撃者中心のアプローチに基づき、以下のことを行います:
- アプリケーションのビジネスコンテキストを定義する
- 技術要素を列挙する
- アプリケーションを分解する
- 脅威を分析する
- 弱点や脆弱性を特定する
- 攻撃をシミュレートする
- 残存リスクを分析する
- Trike:現在、スプレッドシートを使用して以下の作業を行っている:
- 要件モデルを構築するための体系を定義する
- CRUDを用いたリスク評価:
- 作成
- 読み取り
- 更新
- 削除
- データフロー図(DFD)を作成する
- リスク値の割り当て
- VAST:段階を定義するのではなく、ソフトウェア開発ライフサイクル(SDLC)全体に統合されている
- Security Cards:非構造化的なアプローチを採用しているため、その方法論の段階は定義されていない
- ソフトウェア中心型
- 攻撃者中心
- 資産中心型
- システムのセキュリティ設計について意思疎通を行う
- 実証済みの方法論を用いて、その設計を分析し、潜在的なセキュリティ上の問題を特定する
- セキュリティ問題に対する緩和策を提案・管理する
- 現在、どのような作業を行っているか?
- 何が問題になり得るか?
- それに対してどのような対策を講じるのか?
- 対策は十分だったか?
- Microsoft Threat Modeling Tool(オープンソース)
- OWASP Threat Dragon(オープンソース)
- ThreatModeler(商用)
- CAIRIS(オープンソース)
- IriusRisk(商用)
- securiCAD(オープンソース、商用)
- Threagile(オープンソース)
- 現在、どのような作業を行っているのか?
- 何が問題になり得るか?
- それに対してどのような対策を講じるのか?
- 平均ランク付け、すなわち (D+R+E+A+DI)/5。これは以下の項目の平均を算出します:
- 損害
- 再現性
- 悪用可能性
- 影響を受けるユーザー数
- 発見可能性
- 確率 × 影響度 (PxI) ランキング:
- P = (R + E + DI)
- I = (D + A)
- デルファイ法
- この手法は、専門家(この場合はセキュリティ専門家)の判断を順次集約していく、集団による意思決定および予測を行う方法です。



