脅威モデリングとは?

脅威モデリングとは、アプリケーションのアーキテクチャに起こりうる脆弱性を事前に特定する手法のことです。これには、アプリケーションを図式化し、セキュリティ上の欠陥を特定し、その欠陥を軽減することが含まれます。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • 脅威のモデリングの定義
  • 脅威モデリングの4つの主要なステップを説明する
  • 一般的な脅威のモデルリング方法論の比較

関連コンテンツ


さらに詳しく知りたいとお考えですか?

是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!

当社がお客様の個人データをどのように収集し処理するかについては、Cloudflareのプライバシーポリシーをご確認ください。

記事のリンクをコピーする

脅威モデリングとは?

脅威モデリングとは、アプリケーションとその環境のセキュリティホールを見つけるための手法です。脅威モデリングでは、アプリケーションのすべての構成要素を含んだ表現を作成し、その中で脆弱な箇所を特定します。開発者とセキュリティエンジニアは、アプリケーションが公開された後ではなく公開される前にソフトウェアの開発プロセス全体で脅威モデリングを行うことが理想です。脅威モデリングは、アプリケーションを通常よりもはるかに安全にするのに役立ちますが、完全に攻撃を受けない状態にすることを期待するべきではありません。

強盗映画では、主要キャラクターたちはしばしば強奪する施設の設計図を調べ、建物への侵入経路やセキュリティカメラの盲点など、入手できる情報を利用して弱点を見つけ出し、計画を立てます。同様に、脅威のモデリングは、与えられたアプリケーションの「設計図」を調査するようなものです。違いは、脅威モデリングは強奪を企む者ではなく、アプリケーションの安全を願う人によって行われることです。

脅威モデリングでは、チームがアプリケーションの完全なビューを作成する必要があります。そして、そのアプリケーションを侵害しようとする人の視点で考えることも必要です。攻撃者はどうするのでしょうか?脆弱性のあるAPIセキュリティを利用するのでしょうか?サプライチェーン攻撃を使って、統合システムライブラリに感染させるのでしょうか?すべての攻撃を予測できるわけではありませんが、脅威モデリングによって、攻撃を未然に防ぐことができるものもあります。

脅威モデリングのステップは?

脅威のモデル化にはさまざまなアプローチが考えられ、1つの方法がすべての状況に適用できるわけではありません。しかし、一般的には主に次の4つのステップを踏むことになります:

1. アプリケーションの評価と図式化

脅威モデリングの実施者は、脅威の特定と描写を試みます:

  • データベースサーバー、ウェブサーバー、ゲートウェイ、ライブラリ、ユーザーインターフェイスなどのアプリケーションを構成する要素
  • これらのコンポーネントの接続方法。例えば、データの交換に使用されるプロトコルや、転送中のデータを保護する暗号化など

例えば、テリー氏が風船の写真を表示する簡単なアプリケーションを作成した場合、アプリケーションの図は次のようになります:

脅威モデリングの簡単な例:アプリケーションインターフェース、ゲートウェイ、Webサーバー、データベース、および接続図

注意:これは非常に単純化された例であり、実際の脅威モデリングのアプリケーション図はもっと複雑になる可能性があります。

2. アプリケーションの構築におけるセキュリティ上の欠陥を特定する

このようにアプリケーションのレイアウトを見ることで、欠陥を見つけやすくなります。例として、テリー氏が気球の写真のデータベースとWebサーバー間の通信にTransport Layer Security(TLS)を使用していないことに気付くかもしれません。つまり、どちらのサーバーもデジタル署名によって相手の身元を確認していないため、攻撃者がデータベースサーバーになりすまし、Webサーバーに悪意のあるコンテンツを送ることが可能な状態になっています。

脅威のモデル化の簡単な例:Webサーバとデータベース間の接続が暗号化されていない

3. 発見した欠陥を修正するための変更を行う

脅威モデリングは開発プロセス全体を通じて行われるため、欠陥の緩和には、アプリケーションのアーキテクチャの計画を変更するか、進行中のアプリケーションのビルドに修正プログラムを導入する必要があります。

特定した脅威を軽減するために、テリー氏はデータベースサーバーとWebサーバーの接続にTLSを使用するように再設定することができます。さらに、mutual TLS(mTLS)を使用して、相互に検証するようにすると尚良いでしょう。

脅威のモデル化の簡単な例:Webサーバーとデータベース間の接続がセキュリティで保護された

4. 変更が適用され、正しく脅威が緩和されることを検証する

この時点で、テリー氏はアプリケーションをテスト環境で実行し、1)サーバーが設定通りにTLSを使用しているか、2)Webサーバーがデータベースサーバーではなく、検証されていないサーバーからのHTTPトラフィックを受け入れるかどうかを確認することができます。また、自身が適用した他の緩和策についても同様のチェックを行います。

脅威モデルリングの方法論の種類は?

脅威モデリングの方法論は、脅威を特定するためのアプローチです。方法論は、複雑なシステムでは困難な脅威モデリングプロセスに構造を提供します。組織は、幅広い脅威モデリングの方法論の中から選択することも、独自に開発することもできます。代表的な方法論には、以下のようなものがあります:

  • STRIDE:マイクロソフト社が開発した方法論で、セキュリティ上の脅威を特定するための記憶術です。「STRIDE」の文字は、「Spoofing(なりすまし)、Tampering(改ざん)、Repudiation(否認)、Information disclosure(情報漏えい)、Denial of service(サービス妨害)、Elevation of privilege(特権の昇格)」を表しています。(ここで言う「Repudiation(否認)」は、データの出所や完全性を確認できないことを意味します)。この方法論は、アプリケーションのアーキテクチャ全体にわたって、これら6つの特定の脅威タイプを探すことを目的としています。
  • PASTA:これは「Process for Attack Simulation and Threat Analysis(攻撃のシミュレーションと脅威分析のプロセス)」の略です。PASTAは、脅威の特定、列挙、スコア付けを7段階のプロセスで行います。
  • VAST:Visual(視覚的に)、Agile(柔軟に)、Simple(簡単に)Threat(脅威)(VAST)に対応する方法論は、自動脅威モデリングソフトウェア製品であるThreatModelerと関連しています。
  • SQUARE: SQUARE(Security Quality Requirements Engineering、セキュリティ品質要求工学)方法論は、開発プロセスの早い段階でセキュリティ上の懸念事項を事前に特定するのに役立ちます。

他にも、脅威モデリングの方法論はいくつかあります。「Trike」やいくつかのハイブリッド方法論などのように、頭文字すらないものもあります。

脅威モデリングはいつ行われるのか?

脅威モデリングは、ソフトウェア開発前と開発中、アプリケーションのライフサイクル全体を通して行われることを想定しています。脅威モデリングや緩和策を行わずにアプリケーションがリリースされた場合、セキュリティチームよりも早く、ユーザー(あるいは攻撃者)がセキュリティ上の欠陥を発見してしまうことがあります。これにより、データ漏えいが発生し、ゼロデイ脅威のリスクが高まる可能性があります。

一方で、脅威モデリングはシステム内のすべてのリスクを発見するものではないため、開発者や組織はリリース後もこのプロセスを継続する必要があります。脅威モデリングに加え、次のような方法で対策を行うことができます:

  • スレットハンティング: システムに対する脅威を積極的に見つけ出すものです。スレットハンティングは、セキュリティアナリストが手動で行う調査プロセス、セキュリティツールで行う自動化プロセス、またはその両方を組み合わせたプロセスです。
  • ペネトレーションテスト:ペネトレーションテスト(ペンテスト)とは、ホワイトハッカーがコンピュータシステムの脆弱性を見つけて悪用することを試みるセキュリティ手法です。ペネトレーションテストを効果的に行うには、システムに関する予備知識を持たない人が行う必要があるため、脅威モデリングのプロセスとは完全に分けて実施する必要があります。よくあることとして、強盗映画のセキュリティ施設の設計者が、強盗団が侵入できるような欠陥を予想できないのと同じように、アプリケーションの作成者は、あまりにもそのアプリケーションに近すぎる存在であるため、すべての欠陥を特定することができません。
  • その他のアプリケーションセキュリティ対策:アプリケーションセキュリティは、複雑な学問です。どのようなシステムやアプリケーションも、完全に安全であると考えるべきではありません。Webアプリケーションファイアウォール(WAF)は、Webアプリケーションのセキュリティ確保に大きく貢献することができます。

また、Cloudflareでは、最新の脅威からお客様を守るために、脅威インテリジェンスや、運用サービスである「Cloudforce One」を提供しています。Cloudforce Oneは、世界規模のの攻撃者による妨害の対策を得意とする世界トップクラスの脅威リサーチチームが主導しています。Cloudforce Oneの詳細はこちら