脅威のモデル化とは何ですか?

脅威のモデル化とは、システムをデプロイする前に、システム
に対する既知の脅威とその緩和策を熟慮し、特定し、文書化す
るプロセスです。脅威のモデル化は、すべてのシステムのデプ
ロイメントの前、その最中、完了後にさまざまな脅威に直面す
ることを認識し、セキュリティ専門家がこれらの脅威を事前に
識別して緩和するのに役立ちます。

脅威のモデル化とセキュリティ

脅威のモデル化は、次のような方法でアプリケーションの
セキュリティを最適化します。

  • 目標の特定
  • アーキテクチャのモデル化
  • 脅威の特定
  • システムへの脅威の影響を防止または緩和するための抑制策の定義
  • 防止または緩和されない脅威に対するリスク登録の維持
  • 実装された抑制策の有効性の検証
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 を使って企業が大規模な脅威モデルを作成する方法を定義するために開発されたものであるということです。したがって、VASTの各段階についての詳しい説明はここでは省略しています。

セキュリティカード

Security Cards は、ワシントン大学シアトル校の Security and Privacy Research Lab (CSE) と Value Sensitive Design Research Lab (iSchool) が開発した脅威のモデル化手法です。その目的は、特定のシステムに対する潜在的なセキュリティ脅威の探索を容易にすること、より広義には、セキュリティについてのマインドセットを開発することです。構造化されたモデリング手法ではなく、ブレーンストーミングと創造的な思考に基づいた手法です。

セキュリティカードツールキットは、4つの次元(またはトランプ)に分類された42枚セットのカードを提供します。

  • 人的影響
  • 敵の動機
  • 敵のリソース
  • 敵の手法

各カードの内容

  • カードのトピック
  • カードの次元
  • 思考を明確にし、活性化させるための質問
  • 理解を助けるための実例
Example security card

セキュリティカードの見本

脅威のモデル化のベストプラクティス

アプリケーションに対するすべての脅威を完全に緩和することができないと認識することは、ベストプラクティスです。場合によっては、特定が不可能な脅威があるかもしれません。将来的に開発される技術によって、現在存在しない脅威がアプリケーションに追加される可能性もあります。

脅威モデルは、セキュリティの専門家の指導の元に作成することができますが、この作業は、セキュリティの専門家やセキュリティチ ームだけに関係するのではありません。完全な脅威モデルを作成するには、システムのアーキテクチャ、設計上の決定、実装、および、エンジニアリング上の決定を包括的に理解することが重要であり不可欠です。これは通常、システムの全体像を作成するためにチーム全体から専門家を集結させ、すべての脅威、脆弱性、緩和策を特定するということです。

タイミング

脅威のモデル化は、開発フェーズの終盤に向け、デプロイメントの直前に行われることが多すぎますが、それでは手遅れです。脅威のモデル化は、システム設計のできるだけ早い段階で開始し、設計と開発の全期間を通じて継続することが可能であり、また、そうすべきなのです。早期に脅威を特定することで、セキュリティに問題のある設計上の決定を回避し、開発チームに、より安全なシステム体制に設計を変更する時間を与えることができます。

ウインドリバーのアプローチ

Wind River Simics

最新のツールは、システム環境をテストし、適切にセキュリ
ティ保護されていることを確認し、日中は知的に働き夜は安
らかに眠れるという自信をチームに与えてくれます。

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

» 詳細はこちら

ウインドリバーは、システムへの脅威の特定と軽減を支援します。

ウインドリバーのプロフェッショナルサービスおよび製品は、システムへの脅威の特定と緩和を支援します。

Wind River Professional Services

ウインドリバーのプロフェッショナルサービスはお客様の支援を行うエキスパートチームです。脅威のモデル化のトレーニングや、お客様に代わってアプリケーションの脅威モデルを実施し、脅威と緩和策を特定します。

» 詳細はこちら

脅威のモデル化に関するFAQ

脅威モデリングとは、システム、アプリケーション、または組織に対する潜在的な脅威を特定し、分析するプロセスです。また、脆弱性が悪用される前にそれを特定し、リスクを軽減してセキュリティを向上させるための積極的な対策を講じることを可能にするため、重要な役割を果たします。
各段階は使用する方法論によって異なります。
  • STRIDE: 段階は組織によって定義されますが、一般的には次のようなものです。
    • セキュリティ要件を特定する
    • アプリケーションを分解する
    • データがアプリケーション内をどのように流れるかを示す図を作成する
    • 脅威と緩和策を特定する
    • 緩和策を検証する
    • 緩和された脅威と受け入れられた脅威を文書化する
  • PASTA: 攻撃者中心のアプローチに従っています。
    • アプリケーションの持つビジネス面の背景を定義する
    • 技術を列挙する
    • アプリケーションを分解する
    • 脅威を分析する
    • 弱点と脆弱性を特定する
    • 攻撃をシミュレーションする
    • 残存リスクを分析する
  • Trike: 現在は、スプレッドシートの機能を利用して、次のことを行います。
    • 要求モデルを開発するためのシステム定義
    • CRUDを使ったリスク評価
      • 作成
      • 読む
      • 更新
      • 削除
    • データフローダイアグラム(DFD)の作成
    • リスク値の割り当て
  • VAST: ステージを定義するのではなく、ソフトウェア開発ライフサイクル(SDLC)全体に統合されます。
  • セキュリティカード: 非構造的なアプローチを使用するため、この手法の段階は定義していません。
  • ソフトウェア中心のアプローチ
  • 攻撃者中心のアプローチ
  • 資産中心のアプローチ
Microsoft Threat Modeling Tool(MSTMT)は、ソフトウェア設計者が潜在的なセキュリティ問題を比較的容易で費用対効果の高い時期に特定し、軽減することを可能にします。その結果、開発の総コストを大幅に削減することができます。このツールは、セキュリティの専門家でなくても使えるように設計されており、脅威モデルの作成と分析に関する明確なガイダンスを提供することで、すべての開発者が脅威モデルを容易に作成できるようになっています。 このツールを使うと、誰でも次のことができるようになります。
  • システムのセキュリティ設計に関するコミュニケーション
  • 実績のある方法論を使用して、潜在的に存在するセキュリティ設計の問題を分析
  • セキュリティ問題の緩和策を提案して管理
何を脅威モデル化するかに関わらず、目的は常に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 で、次の項目の平均をとる
    • Damage(損害額)
    • Reproducibility(再現性)
    • Exploitability(悪用される可能性)
    • Affected users(影響を受けるユーザ)
    • Discoverability(発見可能性)
  • 確率×影響度(PxI)ランキング
    • P = (R+E+DI)
    • I = (D+A)
  • Delphi
    • セキュリティの専門家の判断を逐次集約していく、集団意思決定・予測手法です。
開発、運用、セキュリティ、ビジネスなどの分野の代表者を含む、クロスファンクショナルチームをつくる必要があります。これにより、すべての利害関係者がプロセスに対して発言権を持ち、最終的なアウトプットが組織のリスクアペタイトとリスク許容度を反映していることが保証されます。
脅威のモデル化を行う最も効果的かつ効率的なタイミングは、ソフトウェア開発ライフサイクルの設計段階です。ライフサイクルの右側にずれるほど、特定された脅威に対する緩和策を実施するためのコストが高くなります。
ソフトウェア開発ライフサイクル(SDLC)の一環として定期的に実施し、システムが潜在的な脅威と脆弱性について継続的に評価されるようにする必要があります。実施頻度は、システムの複雑さと組織のリスクアペタイトに左右されます。
通常、潜在的な脅威のリスト、脅威の重大性と発生可能性に基づいて優先順位をつけたリスクマトリックス、各脅威を緩和するための推奨事項が含まれます。
最新のシステムの複雑さ、専門知識とツールの必要性、脅威の状況の動的な性質などがあります。さらに、脅威モデリングには時間とリソースがかかるため、リソースや予算が限られている組織にとっては困難な作業となる可能性があります。