EN

NRIセキュア ブログ

脅威モデリングとは|実施手順と成功のためのポイントを解説

目次

     

    脅威モデリングとは|脅威モデリングの概要と実現ポイント

    昨今、ビジネス環境の急激な変化に対応するために、ビジネスを支えるシステムの開発・リリースを短期間で実施することが求められています。多くの企業がDevOpsの概念やアジャイル開発などの開発手法を取り入れてリリーススピードの向上に取り組んでいます。

     

    一方、従来のセキュリティ診断やセキュリティ機能・運用のテストで発見された脆弱性の修正を実施する場合、多くの手戻りが発生するため、ビジネスに求められるリリーススピードの向上と相容れなくなってきています。

     

    そのため、システムのリリースを優先した結果、脆弱性を見逃してしまうことや、発見された脆弱性の修正が不十分になってしまうことが多く、従来のセキュリティ対策のプロセスではセキュリティ対策が十分にできない可能性が高まっています。

    また、昨今のWebサービスはSNSIDなど外部のサービスと連携し、インターネットに公開されることが増えており、外部からの攻撃を受けやすい状態になっています。そのため、セキュリティ対策が不十分である場合、セキュリティインシデントが発生するリスクが大きくなっています。

     

    システム開発のスピードを維持しつつ、セキュリティインシデントを未然に防ぐためにはソフトウェア開発ライフサイクル(SDLC)全体でセキュリティ対策を行うことが有効です。

     

    従来のセキュリティ診断やセキュリティ機能・運用のテストだけではなく、要件定義や設計の段階からセキュリティ対策を組み込み、ライフサイクルの初期段階から運用までセキュリティ確保に努めることが重要です。Secセキュリティチーム

    本ブログでは、SDLC全体で潜在的な脅威を特定し分析するプロセスである脅威モデリングについて取り上げ、その実施方法やセキュリティリスクの低減に繋げるためのポイントを解説します。

     

    脅威モデリングとは?

    脅威モデリングは、要件定義や設計の段階でシステムに対する潜在的な脅威を明らかにし、実装・テスト・運用時に実施すべきセキュリティ対策を明確化してセキュリティリスクを軽減するためのプロセスです。

     

    システム開発のスピードを維持しつつ、セキュリティインシデントを未然に防ぐことに対して、後述する効果が得られるため脅威モデリングは有用です。

     

    なお、セキュリティ対策フレームワークのCIS Critical Security Controls v8やOWASP SAMMでも脅威モデリングの実施について言及されており、フレームワークへの準拠を企図しているシステム開発者は脅威モデリングにいずれ取り組むこととなります。CIS Critical Security Controls v8

    OWASP SAMM

    脅威モデリングを実施により得られる効果は主に次の3点です。

    1.セキュリティリスクの継続的な検出、および、迅速な対処ができる

    脅威モデリングではシステムの構成と、構成を鑑みて特定した脅威をモデル化した図(以下脅威モデルとする。図参照)を作成します。脅威モデルを作成するタイミングは主に開発の上流工程ですが、開発工程の進行や反復に合わせたアップデートを通じ、脅威を継続的に把握・対応することで、適切なリスク管理につなげることができます。

     

    • <脅威モデルのアップデートを行うタイミングの例>
    • ・設計フェーズでWebサーバやDBサーバ採用するOSS(オープンソースソフトウェア)が決定したため、要件定義で作成した脅威モデルをアップデートし、OSSの脆弱性に関するリスクや対策を追加する
    • ・新機能のリリースによりシステム構成が変更になり、新たに外部との通信を行うコンポーネントが増えたため、新機能開発の上流工程で脅威モデルをアップデートし、追加したコンポーネントを侵入経路とした新たな脅威を追加する

    2.従来のテストやレビューでは発見しづらい設計上のセキュリティリスクを発見できる

    脅威モデリングは攻撃者の目的や攻撃の経路、脆弱性の利用を考慮してリスクを洗い出す、リスクベースの評価を実施します。従来のセキュリティテストは特定のインタフェースや構成要素に関する静的なセキュリティリスクの検出に有効ですが、システムを横断するようなリスクを取り除くことは難しく、システムの構成要素・要素間の一連の通信に起因するような脅威を洗い出す脅威モデリングによって設計上のセキュリティリスクを検出できるようになります。

    3.SDLCの早い段階で脅威を特定し、根拠に基づくリスク対策を適正なコストで実施できる

    セキュリティ対策がシステム開発の後工程や運用開始後になると、手戻りが多く発生し、セキュリティ対策にかかるコストが増えてしまいます。脅威モデリングにより要件定義や設計の段階で網羅的に想定脅威を洗い出し、セキュリティ要件・仕様の具体化や優先度の設定に活用します。定めた要件・仕様とプロジェクトのQCDの目標値を照らし合わせ、実装方式やテスト項目の意思決定がスムーズに行えるようになります。設計時のセキュリティ対策コスト

    脅威モデリングの実施方法

    ここでは、脅威モデリングのステップに沿って実施方法を解説します。脅威モデリングのステップ

    1.システムの可視化

    始めに守るべきシステムを把握するために、システム化構想やRFP、システム要求仕様書などをインプットにシステムの可視化を行います。システムを構成するアプリケーションやOS、ミドルウェア、通信の経路、連携する社内外のサービスを抽出し、モデル化したシステム構成図を作成します。

    2.脅威の特定

    守るべきシステムを把握できたら、システムに対する脅威を明確にするために、1.で作成した構成図から脅威一覧を作成します。脅威の洗い出しはフレームワークを利用して洗い出すのが一般的です。フレームワークには以下のようなものがあります。

     

    • STRIDE
      マイクロソフトが開発した方法論。「Spoofing(なりすまし)、Tampering(改ざん)、Repudiation(否認)、Information disclosure(情報漏洩)、Denial of service(サービス妨害)、Elevation of Privilege(特権の昇格)」の観点で脅威を抽出する。
    • PASTA(Process for Attack Simulation and Threat Analysis)
      攻撃者中心のアプローチにより脅威を特定する手法。
    • 制御システムのリスク分析ガイド(IPA)
      事業被害とそのレベル、事業被害を引き起こす攻撃ツリーの発生可能性、攻撃に対する脆弱性の3つを指標として評価する分析手法。

     

    フレームワークにより洗い出した脅威をモデル上にプロットして可視化します。洗い出した脅威はリスト化しておくと管理しやすくなります。また、フレームワーク毎に特徴が異なるため、システムの種類や脅威の特定のニーズに合ったフレームワークを選定することが重要です。

    3.リスクの洗い出し

    1.で作成した構成図と2.で特定した脅威をもとに、システム上のリスクを洗い出します。実装技術が決定している工程で行う場合は実装技術の脆弱性も考慮しリスクとなり得る箇所を特定します。

    4.対応策と優先順位の決定

    3.で洗い出したリスク毎に実施すべき対応策を検討します。また、攻撃難易度や資産の重要度から各リスクを評価し、リスクに対応する優先順位を決定します。

     

    脅威モデルと脅威一覧の例脅威モデルと脅威一覧の例

    脅威モデリング成功のポイント

    SDLCに脅威モデリングを組み込み、継続してセキュリティリスク低減の効果を得るために、成功要因(KSF)として3つのポイントが挙げられます。

    ①知識:システムとセキュリティ双方に対する深い理解

    脅威モデリングはシステムの構成要素間の繋がりを整理し、全体を俯瞰して分析する必要があるため、システムの構成要素や様々な技術について理解していることが重要です。

     

    また、脅威モデリングはモデル化したシステム全体に対し、脅威を網羅的に洗い出すことや、利用している技術特性を考慮して脅威を特定することが求められます。特に、近年はローコード開発やパブリッククラウドの利活用など、システム開発に利用されている技術領域が広がっており、これらの技術特有の脅威も考慮しなければなりません。

     

    このように、脅威モデリングはシステムとセキュリティ両方の知識が必要となります。

    ②手法:フレームワークの活用とドキュメント品質の向上

    脅威を網羅的かつ効率的に特定し、適切な対策を立案するためには、フレームワークを活用すること、ドキュメントの品質を向上することが重要です。

     

    前述したように、脅威抽出のフレームワークにSTRIDEやPASTAなどがあります。例えばSTRIDEは6つの観点で脅威を洗い出す手法ですが、フレームワークに沿って脅威を特定することで網羅的に洗い出すことができます。

     

    また、フレームワークを効果的に活用し、適切なセキュリティ対策の実施に繋ぐためには、フレームワークを適用する構成図(インプット)や作成した成果物(アウトプット)の品質も重要になります。

     

    フレームワークにより適切に脅威を洗い出せるかどうかは、モデル化したシステム構成図の品質に依存します。関係する構成要素や関連を正確に、漏れなく可視化することで脅威の見落としを低減することができます。

     

    また、検討した対策が実際に実行可能なのかを精査する必要がありますが、組織の制約(IT環境・構成・運用体制など)や開発の制約(品質目標・コストなど)を考慮していなければ、対策を実装することができません。制約への適合性をレビューして対策の妥当性を検証し、作成したドキュメントの品質を高めることが重要になります。

    ③体制:脅威モデリングを推進する仕組みづくり

    脅威モデリングは、一度実施したら完了ではなく、システム開発のライフサイクル内に組み込む必要があります。アジャイル開発やウォーターフォール型などの開発手法に応じて、脅威モデリングを継続的に実施できる体制や手順の整備が必要になります。

     

    例えば、脅威の特定と対策案の検討はセキュリティコンサルタントなどの専門家に委託し、実際の対策の推進は自社のIT部門が主体となって開発ベンダと連携しつつ実施するなど、自社の持つリソースやスキルセットを考慮して役割分担や進め方を検討します。

     

    役割分担を検討するための各タスクの実施ポイント

    #

    タスク

    実施のポイント

    備考

    1

    システムの可視化

    ・対象システムのデータフロー、データベース定義書など、対象システムのドキュメントを入手し、システム構成やコンポーネント、データの流れを明確に示す

    ・後続のステップで脅威が発生しうるポイントが明示できるように、抜けもれなく、正確に理解して図式化する

    各タスクにおいて左記を満たす体制を構築することが重要

    2

    脅威の特定

    ・対象のシステムやサービスに適したフレームワークを選択する。汎用的な”STRIDE”や制御システムに有効な”制御システムのリスク分析ガイド(IPA)”など、特徴を理解して適用する

    ・フレームワークの使い方、活用方法を理解して適用する。例えばSTRIDEでは構成要素から脅威を洗い出す方法と、信頼境界上の脅威を洗い出す方法があり、どちらがより適切かを判断して適用する

    3

    リスクの洗い出し

    ・具体的にどのような攻撃が行われるかを想定し、攻撃が成立するまでどのようなステップがあるかを明らかにする

    ・一つの脅威に対し複数の攻撃手法が考えられるものは、それぞれの攻撃手法に対して分析する

    4

    対応策と優先順位の決定

    ・システム外でのセキュリティ対策状況、監視や運用による対策など、リスクが成立しやすいかどうかをふまえてリスクに対する優先度を判断する

    ・対策についても同様に、対象のシステムに対する技術的な対策だけではなく観点を広げて考え、運用面の代替策なども検討する

     

    まとめ

    今回は脅威モデリングの実施手順や成功のポイントについて解説しました。

    脅威モデリングを継続的に実施するためには、知見と推進する仕組みの両方が必要となります。

     

    NRIセキュアでは脅威の特定および対策案の検討、体制整備のご支援を実施するサービスを提供しております。

    脅威モデリングなど脅威の特定やサイバーセキュリティ対策でお悩みに直面されているのであれば、一度弊社にご相談ください。