現在、技術者の経験を主とするセキュリティ設計、セキュリティ運用手法の利用により、手作業での脆弱性影響判断の確認が頻繁に行われています。そのような状況の中、米国ではSCAP(Security Content Automation Protocol)と呼ばれる、情報セキュリティの技術面での自動化と標準化を規定した技術仕様の策定が進められています。SCAPは6つの標準仕様で構成されており、その中にはソフトウェアの脆弱性情報や、脆弱性レベルなどの標準仕様が含まれています。

しかし、ネットワークシステムにおいて脆弱性の影響範囲を特定し対策の判断を行うためには、脆弱性情報だけでなく、システムの構成要素がどのように存在するか、また攻撃が対象に到達可能であるかといった情報が必要になります。そこで、モデルと脆弱性情報の対応付けを行うことで、自動的に脆弱性影響度の評価を行う手法を提案しました。

脆弱性情報

脆弱性による影響を数値化する代表的な手法として、SCAPの標準仕様の1つであるCVSS(Common Vulnerability Scoreing System)があげられます。CVSSは基本評価基準、現状評価基準、環境評価基準の3つの評価基準により評価を行います。基本評価基準は脆弱性そのものの特性として攻撃経路情報、認証の必要性、攻撃の複雑さ、機密性、可用性、完全性に対する影響を評価します。現状評価基準は攻撃コードの有無や脆弱性への対応状況による深刻度を、環境評価基準は実際に攻撃を受けるシステムへの影響度を評価します。これらの基準のうち、環境評価基準はユーザの環境に応じてユーザが判断するため、結果として値が定量的に定まらないものとなっています。

また、このCVSSを含む脆弱性情報がNVD(National Vulnerability Database)という脆弱性情報提供サービスによって提供されています。NVDは脆弱性情報のXML Schemaを持ち、脆弱性情報はHTMLのほかにXMLファイルでも提供されます。しかしWebブラウザでの閲覧を前提としたインタフェースであるため、システムが自動的にデータを利用するというよりも、人による利用が主となっています。

脆弱性影響度の定量化

ネットワークシステムにおける脆弱性の影響を評価するためには攻撃そのものの情報と、攻撃を受けるネットワークシステムの情報が必要であり、ネットワークシステムの構成要素と脆弱性情報の構成要素が比較可能なデータモデルとなっていることが望ましいと言えます。それを実現するため、モデルを拡張し、攻撃の到達性を考慮した上での攻撃対象ノード数の総和が全体ノード数の何割にあたるかを計算することで定量化を行いました。

脆弱性情報とモデルの関連付け

モデル上で脆弱性情報を扱うため、以下のようにシステム構成情報の各要素を通信層に分類し、モデルのノードに対してモデル拡張を行いました。

Layer attribute
5 Application Data flow
4 Application name / Version
3 OS name / Version
2 -
1 Product name / Vendor

さらに、NVDが提供している脆弱性情報のXML Schemaと拡張したモデルの構成情報を対応付けを行いました。ファイアウォールを挟んだ2台のサーバが通信を行う場合のモデルへのマッピング例は以下のようになります。

攻撃到達性の評価

ファイアウォール等によりアクセス制御が行われている場合、脆弱性が存在したとしても、攻撃が該当機器まで到達せず、脆弱性の影響を受けない可能性があります。そのため、単純に脆弱性のあるアプリケーションがネットワークシステム内部に存在するというだけでは影響を判断できず、通信の到達性を評価する必要があります。パス探索等により通信経路を調べる手法では経路探索の計算コストが高く規模の大きなシステムでは適用が困難ですが、モデルでは各通信層でアクセス可能なノードが接続されるため、到達性に関しては攻撃の起点と攻撃対象が接続されているかどうかで判断が可能です。よって、そのモデル特性をそのまま到達性の確認要件としました。

被害範囲と影響度の定義

ネットワークシステムが何らかの攻撃を受けた場合、攻撃の対象となったノードが直接的な被害を受ける以外に、ネッワークシステム内部の近隣ノードに二次被害が発生する可能性があります。機密性、完全性に関する攻撃の二次被害と可用性に関する攻撃の二次被害とでは被害範囲が異なることが考えられますが、以下のように被害対象範囲を定義することとしました。

  • 一次被害対象

脆弱性情報の基本評価基準で機密性・可用性・完全性のいずれかに全面的な脅威が1つ以上含まれる場合、攻撃を受けるノードを含む機器全体が一次被害を受けるとする。つまり、攻撃対象ノードが含まれるモジュール全体が一次被害対象となる。全面的な脅威が存在しない場合は、攻撃対象となったノードのみを一次被害の対象とする。

  • 二次被害対象

二次被害対象は一次被害で対象となったノードに隣接しているノードすべてとする。ただし、L5は直接の通信を行うレイヤではないため、L5ノードから他モジュールのL5ノードへの二次被害はないものとする。不正侵入等によりノードの制御が攻撃者によって奪われた場合、二次被害がどのような攻撃方法で発生するか不明である。よって、一次被害を起こした攻撃の種類とは関係なく隣接ノードすべてに危険性があると想定した。

右図にて、18と書かれたL3ノードが攻撃対象とします。攻撃対象となるノードのもつ脆弱性が、機密性・可用性・完全性のいずれかに全面的な脅威を持たない場合、18のノードが一次被害対象(赤円)となり、隣接するノードが二次被害対象(青円)となります。全面的な脅威を持つ場合には、18のノードが属するモジュール全体が一次被害対象となるため、16~20のすべてのノードが一次被害対象(赤丸)となります。そしてそれら一次被害対象に隣接するノードすべて(L5を除く)が二次被害対象(青円)となります。この図から、脆弱性の種類による影響範囲の変化が視覚的に把握できます。

一次被害対象ノード数をDn、二次被害対象ノード数をDm、インターネットを除くすべてのノード数をDs、被害対象となるノード数の全体ノード数に占める割合を影響度(I)とし、以下のとおり定義しました。1に近いほど攻撃による影響が大きいことを示します。

CVSSの適用

CVSSの定義と照らし合わせ、一次被害対象をTarget Distribution(TD)、二次被害対象をCollateral Damage Pontential(CDP)として関連付けを行いました。CDPは4段階に分類されていますが、数値の基準が明示されていないため、下の表のように値を対応させることとしました。

影響度(I) TD CDP
I=0 なし なし
0<I<0.25 小規模 軽微
0.25≦I<0.5 中規模 中程度
0.5≦I<0.75 中規模 重大
I>0.75 大規模 壊滅的