前回取り上げたCommon Criteriaもセキュリティの定量評価に繋がる側面が無いわけではない。本質的には定性的な評価の積み上げによって、ランク付けを行う性質が強い。セキュリティの強度やリスクを、もっと根本的に定量化できる指標は無いものだろうか。このような課題に対して、つい最近、非常に興味深い文書が公開された。日本ネットワークセキュリティ協会(JNSA)の「脆弱性定量化に向けての検討WG」が今年3月1日付で発表した、「脆弱性定量化に向けての検討報告書」がそれだ。

JNSAはネットワークセキュリティに関する啓発や教育、調査研究等を目的とするNPO法人で、200社を越える企業が参加している極めてアクティブな組織だ。「脆弱性定量化に向けての検討報告書」は、参加企業から多数の専門家を集めたワーキンググループによって議論された成果をまとめたものである。これは主に「脆弱性」が見つかった場合に、どのように対策を行うべきかの「判断基準」となる定量的な指標として、新たに「トリアージ値」というものを定義している。今回はこのトリアージ値について、その概要を順を追って述べていく。

まず報告書では基本的な考え方として、「脆弱性」に対する「パッチ適用」そのもののリスクについて「無視できない立場を保つ」ことを強調している。これは筆者も耳が痛いのだが、最近、一般ユーザだけでなくサーバ管理者の中にも「とりあえずメーカやディストリビュータから提供されるパッチをそのまま全部適用しとけば安心」といった空気があることは否めない。「Windows Updateを実行しておけば大丈夫、apt-get upgradeを実行しとけば平気」といった感覚である。

しかし、メーカが提供するものといえど、人間がプログラミングおよびテストを行っていることに変わりはない。どうしてもミスはゼロにはならないし、些細な環境の違いによる障害の可能性も無くならないだろう。コンシューマが使うPCならばWindows Updateで十分対処できるかもしれないが、クリティカルなサービスを提供するサーバまで同じように無思慮にパッチを適用することは、実はとても危険なことなのだ。

無思慮にパッチを適用してはイカン!! …つまり、きちんと考えてからパッチを当てましょうということであれば、考えるための材料が必要になる。漠然と「脆弱性が見つかった」と言うのではなく、「脆弱性」を構成する様々な要素を明らかにし、各要素の定量化を行うことでパッチ適用の「優先度」を表現するわけだ。

「トリアージ値」という名前は、患者の重症度や緊急性から決定される処置の優先順位を表す医療用語から命名されたものである。つまり病気になったサーバの処置の優先度を表す指標、というわけだ。なお報告書には、トリアージ値を決めるためのモデルの構成要素として、以下の12項目が挙げられている。

用語
定義
脆弱性 ソフトウェア及びハードウェアに存在するものであり通常期待されている安全性を損なっている要因
フィックス 脆弱性を除去するもの/こと
パッチ ソフトウェアでフィックスするもの
ワークアラウンド 副作用のあるフィックス
対象ハードウェア/ソフトウェア 脆弱性の保持者
開発ベンダ 対象となるハードウェア、ソフトウェアを開発した人または組織
ホワイトハット 開発ベンダ以外で、フィックスやフィックスに関する情報を提供する人または組織
ブラックハット 攻撃者に手段や手段に関する情報を提供する人または組織(ウイルス作成者も含む)
社会情勢 攻撃行為の動機に影響を与える事象一般
スキル 攻撃を実行するために必要となる知識及び技術(習得に時間を要するもの)
ツール 攻撃の実行を容易にするための情報、ハードウェア及びソフトウェア
ウイルス等 攻撃者のうち自己の意思をもたないもの(ワーム、ボットなども含む)

報告書の後半では、これらの各要素の複雑な相関関係を考慮した上で、トリアージ値の定義に向けた定量化が試みられている。それについては、次回に述べることにしよう。