脅威モデリングとは、アプリケーションのアーキテクチャに起こりうる脆弱性を事前に特定する手法のことです。 脅威モデリングの実践的な手法は、とてもシンプルです。それはシステムアーキテクチャを図に書くことです。システムの中でデータがどのような動きをしているのかは、アプリケーションを開発した人や、実際に運用している人でないと意外と分かっていません。その上、言葉で説明するとかなり分かりにくいものが多いです。例えば、「本アプリケーションは、WEBブラウザからアクセスすると、そのセッションに紐づいた情報をデータベースから引き出し、画面に整形し、ブラウザに返却します。そのアクセス記録は、アクセス管理サーバーに送付され、リアルタイムに管理できます。」と言われても、本当に言いたいことと合っているのか不安になります。そこで、図示してあげると一目瞭然です。そうすると、セッションが推測される可能性があるのではないか、データベースに外からアクセスされる可能性はないか、大量にアクセスが来た時にアクセス管理サーバーのリアルタイム性が失くなってしまうのではないかといった脅威が浮かび安くなります。ここから、システム担当者はセッションハイジャックやデータベースの最新パッチ、DDoS攻撃の動向を追うようになります。「分かりにくいから絵に描こう」というと、子供のようですが、同じ仕事に慣れてきて口頭での説明に自信がついてきてしまうとやりがちです。手法としてやる必要があることを理解しておきましょう。
ここからは構成図を描くことに加えて、方法論としてまとめられている脅威分析の方法について説明していきます。まずは、STRIDEです。STRIDEとは、多くのシステム製品に見られる代表的な6つの脅威の頭文字です。他人になりすますこと、データを改ざんすること、自分の実施した内容をさかのぼって否認すること、情報漏洩、サービスが停止し利用不能になること、事前に割り当てられた権限よりも昇格することは、どのシステムでも見られる脅威です。
次に、構成図を描いたり、ニュースを見たり、STRIDEから脅威を特定したら、各脅威に対して評価していきましょう。評価するにあたっては、DREAD(ドレッド)評価システムを用いて行うことができます。DREAD評価システムとは、ある脅威が自身にとって本当に脅威となるかを判断するための評価項目です。本当の脅威という言い方を少し変えると、量子コンピューターによる暗号の解読などの脅威はあるけれども実現するのが極めて難しいものや、クレーマーのような自分の顧客に影響を及ぼさない脅威におびえても仕方ありませんので、そういった脅威は本当の脅威にはならないと考えます。DREAD評価システムは脅威の評価方法であり、5つの評価項目があります。被害の可能性は、自身の資産への被害の可能性を示します。再現可能性は、攻撃方法のシミュレーション、実証の可能性を示します。攻撃利用の可能性は、実際の攻撃に転じる可能性を示します。ユーザー影響は、顧客に対して影響が出る可能性を示します。発見の可能性は、攻撃された場合にそれを発見できる可能性を示します。5つの可能性を明確にすることで、本当の脅威の度合いを知ることができます。
また、シミュレーションを行うことでより現実的な脅威分析を測ることも可能です。それが、PASTAです。PASTAでは、STRIDEやDREAD評価システムのような脅威分析に加えて、脅威を想定した攻撃のシミュレーションを行う手順を提案しています。これにより、どれほど現実的で、実施する容易さがあるのかを徹底的に調べることになります。
脅威に対する評価が完了したら、脅威に対応するための技術やプロセスを検討し、そのコストと有効性とを重み付けをしていきます。これにより、最も効率の良い方法を合理的に決めていくことになります。