本年度は、昨年度に引き続き、クラウドのリモート管理を行う際のクラウド管理者による情報漏洩の防止に取り組んだ。キーボード入力が特権VM上にいる管理者に漏洩しないようにするのに加え、管理ソフトウェアに送られる画面情報の漏洩も防げるようにした。ユーザVM内のゲストOSへの変更を加えずに済ませるために、画面情報を保持するフレームバッファを二重化した。ユーザVMには既存のフレームバッファを提供する一方、特権VMには暗号化したフレームバッファを提供する。これにより、ゲストOSは従来通りにフレームバッファに画面情報を書き込むことができるが、特権VMからは画面上に表示された機密情報を盗むことができない。これら二つのフレームバッファは画面が更新されるたびに同期をとる。同期にかかるオーバヘッドを削減するために、リモート管理ソフトウェアから画面情報を要求された時にだけ同期を行うようにした。また、変更された画面領域を検出することで、同期をとる領域を最小限に抑えることができるようにした。 さらに、これまでは仮想化専用OSを動作させる準仮想化環境を想定して開発を行ってきたが、汎用OSをそのまま動作させる完全仮想化環境にも対応した。キーボード入力については、準仮想化環境では特権VMがユーザVM内のバッファに直接書き込むのに対して、完全仮想化環境ではゲストOSの命令をエミュレーションする際に読み出される。そこで、命令エミュレーションの際にキーボード入力の復号化を行うようにした。一方、画面情報については、完全仮想化環境でもフレームバッファの二重化で対応できたが、異なるタイミングで同期をとる必要があった。具体的には、管理VMが更新領域を特定するために仮想マシンモニタに問い合わせる際に行う。実際にWindowsを動作させて、リモート管理の入出力が安全に暗号化されることを確認した。
|