脅威モデリングとは、アプリケーションのアーキテクチャに起こりうる脆弱性を事前に特定する手法のことです。これには、アプリケーションを図式化し、セキュリティ上の欠陥を特定し、その欠陥を軽減することが含まれます。
この記事を読み終えると、以下のことができるようになります。
関連コンテンツ
是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!
記事のリンクをコピーする
脅威モデリングとは、アプリケーションとその環境のセキュリティホールを見つけるための手法です。脅威モデリングでは、アプリケーションのすべての構成要素を含んだ表現を作成し、その中で脆弱な箇所を特定します。開発者とセキュリティエンジニアは、アプリケーションが公開された後ではなく公開される前にソフトウェアの開発プロセス全体で脅威モデリングを行うことが理想です。脅威モデリングは、アプリケーションを通常よりもはるかに安全にするのに役立ちますが、完全に攻撃を受けない状態にすることを期待するべきではありません。
強盗映画では、主要キャラクターたちはしばしば強奪する施設の設計図を調べ、建物への侵入経路やセキュリティカメラの盲点など、入手できる情報を利用して弱点を見つけ出し、計画を立てます。同様に、脅威のモデリングは、与えられたアプリケーションの「設計図」を調査するようなものです。違いは、脅威モデリングは強奪を企む者ではなく、アプリケーションの安全を願う人によって行われることです。
脅威モデリングでは、チームがアプリケーションの完全なビューを作成する必要があります。そして、そのアプリケーションを侵害しようとする人の視点で考えることも必要です。攻撃者はどうするのでしょうか?脆弱性のあるAPIセキュリティを利用するのでしょうか?サプライチェーン攻撃を使って、統合システムライブラリに感染させるのでしょうか?すべての攻撃を予測できるわけではありませんが、脅威モデリングによって、攻撃を未然に防ぐことができるものもあります。
脅威のモデル化にはさまざまなアプローチが考えられ、1つの方法がすべての状況に適用できるわけではありません。しかし、一般的には主に次の4つのステップを踏むことになります:
脅威モデリングの実施者は、脅威の特定と描写を試みます:
例えば、テリー氏が風船の写真を表示する簡単なアプリケーションを作成した場合、アプリケーションの図は次のようになります:
注意:これは非常に単純化された例であり、実際の脅威モデリングのアプリケーション図はもっと複雑になる可能性があります。
このようにアプリケーションのレイアウトを見ることで、欠陥を見つけやすくなります。例として、テリー氏が気球の写真のデータベースとWebサーバー間の通信にTransport Layer Security(TLS)を使用していないことに気付くかもしれません。つまり、どちらのサーバーもデジタル署名によって相手の身元を確認していないため、攻撃者がデータベースサーバーになりすまし、Webサーバーに悪意のあるコンテンツを送ることが可能な状態になっています。
脅威モデリングは開発プロセス全体を通じて行われるため、欠陥の緩和には、アプリケーションのアーキテクチャの計画を変更するか、進行中のアプリケーションのビルドに修正プログラムを導入する必要があります。
特定した脅威を軽減するために、テリー氏はデータベースサーバーとWebサーバーの接続にTLSを使用するように再設定することができます。さらに、mutual TLS(mTLS)を使用して、相互に検証するようにすると尚良いでしょう。
この時点で、テリー氏はアプリケーションをテスト環境で実行し、1)サーバーが設定通りにTLSを使用しているか、2)Webサーバーがデータベースサーバーではなく、検証されていないサーバーからのHTTPトラフィックを受け入れるかどうかを確認することができます。また、自身が適用した他の緩和策についても同様のチェックを行います。
脅威モデリングの方法論は、脅威を特定するためのアプローチです。方法論は、複雑なシステムでは困難な脅威モデリングプロセスに構造を提供します。組織は、幅広い脅威モデリングの方法論の中から選択することも、独自に開発することもできます。代表的な方法論には、以下のようなものがあります:
他にも、脅威モデリングの方法論はいくつかあります。「Trike」やいくつかのハイブリッド方法論などのように、頭文字すらないものもあります。
脅威モデリングは、ソフトウェア開発前と開発中、アプリケーションのライフサイクル全体を通して行われることを想定しています。脅威モデリングや緩和策を行わずにアプリケーションがリリースされた場合、セキュリティチームよりも早く、ユーザー(あるいは攻撃者)がセキュリティ上の欠陥を発見してしまうことがあります。これにより、データ漏えいが発生し、ゼロデイ脅威のリスクが高まる可能性があります。
一方で、脅威モデリングはシステム内のすべてのリスクを発見するものではないため、開発者や組織はリリース後もこのプロセスを継続する必要があります。脅威モデリングに加え、次のような方法で対策を行うことができます:
また、Cloudflareでは、最新の脅威からお客様を守るために、脅威インテリジェンスや、運用サービスである「Cloudforce One」を提供しています。Cloudforce Oneは、世界規模のの攻撃者による妨害の対策を得意とする世界トップクラスの脅威リサーチチームが主導しています。Cloudforce Oneの詳細はこちら。
利用開始
Webアプリケーションセキュリティについて
一般的な脅威
VPNリソース
セキュリティ用語集