著者
石井 玲真 深井 貴明 品川 高廣
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2023-OS-159, no.12, pp.1-10, 2023-05-09

近年の IaaS 型クラウドでは,ユーザーが独自のハイパーバイザを実行できるネステッド仮想化がサポートされるようになってきた.ネステッド仮想化では,クラウド事業者のハイパーバイザが,CPU のハードウェア仮想化支援機能をエミュレートすることにより,ユーザーのハイパーバイザを実行可能にするが,仮想化支援機能は非常に複雑であるため,ネステッド仮想化の実装にもしばしば脆弱性が発見されている.脆弱性を発見する手法としてはファジングが有効であることが知られているが,ネステッド仮想化に単純にファジングを適用すると,(1) 入力として特殊な CPU 命令列が必要,(2) 仮想マシンの状態空間が膨大,(3) CPU 機能の有無による挙動変化,といった問題によりカバレッジを向上させることが難しい.本研究では,ネステッド仮想化のファジングにおけるカバレッジ向上に向けて,(1) 異なる特権レベルで指定した命令列を実行できる特殊な小型ハーネスの導入,(2) 適切な仮想マシンの状態を生成できる有効状態判定器の導入,(3) ハイパーバイザの起動時パラメータのミューテーション,といった手法により,正しい状態と不正な状態の境界領域を効率的にファジングすることでカバレッジを向上させる手法を提案する.実験により,提案手法は syzkaller と比べてネステッド仮想化のコードカバレッジを 17.9% 向上させることができることを確認した.また,提案手法を用いて KVM をファジングしたところ,ネステッド仮想化における未知の脆弱性を発見し CVE ID が割り当てられた.