公開日:2007年9月26日
独立行政法人情報処理推進機構
セキュリティセンター
本ページの情報は2007年9月時点のものです。
記載の資料は資料公開当時のもので、現在は公開されていないものも含みます。
脅威モデリングは、開発対象のソフトウェアがどのようなセキュリティ脅威にさらされており、攻略される可能性を持ちうるかを洗い出す活動である。潜在するセキュリティ脆弱性を上流工程で見つけ出すことによって、より効果的に脆弱性を排除することを狙う。
脅威モデリングは、ソフトウェアの設計段階の比較的初期に行う。より具体的には、設計の概要がある程度落ち着いて、次の事項の見通しがはっきりしてきた時点で行う。
脅威モデリングは次の手順で行う。
対象ソフトウェアシステムの構造を大まかな図にする。
具体的なオペレーションのシナリオをとりあげ、そのときのデータの流れの線をシステム構造図の上に描く。多くの場合シナリオはひとつのみでないと考えられるので、通常は複数のデータフローラインがあり得る。ただし、いちどにはひとつのラインを描く。
データフローラインに沿って、データの入力、検査、伝達、保管、読み出し等のライフサイクルをシミュレートする。
データフローラインがシステム構成要素と要素のつなぎ目を通る際、そのインタフェースに近寄り得る人物が次のことを行う手順の想定を試みる。
侵害手順1. 不正なデータを入力しコンピュータ内で任意のマシンコードを実行させる手順
侵害手順2. 情報の漏洩・改ざんを起こす手順
侵害手順3. 業務の継続を妨害する手順
上記の侵害手順が存在する場合、そこで起こる侵害をこのソフトウェアシステムに対する脅威として取り上げ「脅威リスト」に記載する。
データフローラインを引き、脅威を洗い出し、評価する作業を、オペレーションのシナリオの数ぶん繰り返す。
多くの脅威が見いだされた場合、脅威のランク付けをし、優先的に対策すべきものを選び出す。
ランク付けの方法の例として、上記で洗い出した脅威のひとつひとつに関し、次の5つの尺度のそれぞれにおおまかな評価を下し(大、中、小)、この5項目の総合評価をその脅威のランクとして割り当てる方法がある。
クライアントサーバシステムにおいては、脅威としてクライアントマシンのユーザがサーバコンピュータを攻撃することや、その逆の想定が必要である。ネットワークを介した関係にかかわる脅威の例には次のようなものがある。
例