
【セキュリティ最前線】仮想マシンとセキュリティ「セキュアVM」
第3回:VMを用いたセキュリティ強化とは?
著者:東京工業大学 光来 健一
公開日:2008/1/23(水)
なぜVMを用いたセキュリティ強化が必要なのか?
従来のセキュリティ対策はパッチを適用したり、ファイアウォールやアンチウイルスソフトなどを導入したりといった方法が主流であった。より高いセキュリティを必要とする場合には、SELinuxなどのセキュアOSを導入するといった方法も取られてきた。
しかし、クライアント環境ではセキュリティ対策自体が行われていないことも多い。また、セキュアOSの設定は煩雑であるため、意図した通りのセキュリティを実現するのは容易ではない。さらには、従来のセキュリティ対策では近年増加しつつあるOSに対する攻撃に対しては無力である。
そこで、VMを用いることでシステムのセキュリティを強化しようという研究が行われている。OSをVMの中で動かし、OSのさらに下で動く仮想マシンモニタがOSの挙動を監視するというものである。
仮想マシンモニタでセキュリティ対策を行うことには「ユーザやOSに頼らないセキュリティを提供できる」「OSと仮想マシンモニタで二重のセキュリティを提供できる」というメリットがある。
そこで今回はこのような研究について紹介していこう。

図1:Livewireのシステム構成
侵入検知システム「IDS」
VMを用いた侵入検知システム(IDS:Intrusion Detection System)がいくつか提案されている。
例えば、「Livewire」は仮想マシンモニタからVM内のOSを監視することでOSに依存せずに侵入を検知するシステムである。IDSをVMの外で動作させることで、VM内に侵入した攻撃者からIDS自体を守ることができる(図1)。
仮想マシンモニタはVMのハードウェアの状態を直接監視することができるため、従来のIDSよりも低レベルな状態の監視が可能になる。しかし逆に、仮想マシンモニタからはOSの状態を直接監視することはできない。
そこで、LivewireではOSインターフェースライブラリを用意して、低レベルなハードウェアの状態からOSの状態を再構築する。例えば、VMに割り当てたメモリの内容を調べることで、OSのプロセスの状態を取得することが可能となる。
LivewireではさまざまなIDSをポリシーモジュールとして作成できる。ポリシーモジュールの一例としては、OSやプログラムの改変を検出するモジュールがある。このモジュールは、psコマンドなどの実行結果とハードウェアおよびOSの状態を直接調べた結果とを比較することでプログラムの改変を検出する。
一方、「HyperSpector」は監視対象のOSをVM内で動作させるだけでなく、IDSも「IDS VM」と呼ばれるVM内で動作させるシステムである。さらに、各マシン上のIDS VM同士は仮想プライベートネットワーク(VPN:Virtual Private Network)を使って安全に連携することができる。
HyperSpectorでは万が一IDSの欠陥を悪用してIDS VMに侵入されたとしても、攻撃者はそのIDS VMとVPNで接続された他のIDS VMの外にはアクセスすることができない。これはIDS VMが監視対象のVMや仮想マシンモニタから分離されているためである。その結果、IDSからの情報漏洩や監視対象のシステムの改ざんを防ぐことができる。
IDS VMでは従来用いられてきたIDSをそのまま動かすことができる。例えば、監視対象のVMの仮想ディスクはIDS VMに安全にマウントすることができるため、Tripwireを用いてファイルシステムの整合性を検査することができる。
次のページ