学位論文要旨



No 126194
著者(漢字) 尾上,浩一
著者(英字)
著者(カナ) オノウエ,コウイチ
標題(和) VMMを利用したアプリケーションプログラムの安全性を向上させるシステム
標題(洋) VMM-BASED SYSTEMS FOR ENHANCING APPLICATION SECURITY
報告番号 126194
報告番号 甲26194
学位授与日 2010.03.24
学位種別 課程博士
学位種類 博士(情報理工学)
学位記番号 博情第261号
研究科 情報理工学系研究科
専攻 コンピュータ科学専攻
論文審査委員 主査: 東京大学 教授 石川,裕
 東京大学 教授 清水,謙多郎
 東京大学 准教授 増原,英彦
 東京大学 講師 笹田,耕一
 慶應義塾大学 准教授 河野,健二
内容要旨 要旨を表示する

This thesis presents three security systems for controlling the behavior of application programs and protecting data relevant to those programs by using a virtual machine monitor (VMM), more precisely, from outside virtual machines (VMs). The goal of this work is to design and implement security systems that simultaneously meet the following two requirements: (i) providing fine-grained control and protection mechanisms, and (ii) making subversion and evasion of these mechanisms difficult.

Security systems running on the OS or application level (e.g., sandboxing systems and anti-virus tools) can control the behavior of untrusted programs and prevent attackers from leaking and tampering with security-sensitive data. However, these security systems are potentially vulnerable because they run in the same execution space as untrusted programs. If an attacker can hijack OS kernels and privileged programs, it is not hard for the attacker to compromise security systems residing in the same execution space.

A VMM virtualizes execution of separate computing environments for each VM and allows users to run any programs, including OS kernels, inside their VMs. In terms of security, a VMM has two advantages. First, it can isolate the control and protection mechanisms of security systems from untrusted VMs. Second, it can control accesses to physical resources (e.g., physical memory and disks) at a higher privilege level than that of the OS kernels and application programs running inside untrusted VMs. However, there are two key challenges in improving application program security from outside VMs. The first challenge is to identify and manipulate in-VM states in OS-level semantics from the hardware-level states that a VMM can observe. The second challenge is to enable security systems to intercept events that a VMM cannot capture.

This thesis proposes three types of VMM-based security systems with different security concerns. The proposed systems have control and protection functionalities at the application program (target program) granularity while maintaining the above two VMM security properties.

The first proposed system, ShadowVox, controls the system call execution of target programs. The security concern is to control the behavior of target programs in user mode. ShadowVox can control untrusted VMs at process and system-call granularity from outside those VMs. To overcome the first challenge noted above, all three of the proposed security systems provide a technique for obtaining OS-level states by using information on the process management and system calls of OS kernels. To overcome the second challenge, the three systems incorporate a technique for allowing a VMM to intercept an arbitrary processor instruction. Experimental evaluation demonstrated that ShadowVox could control several types of application programs on different processor architectures. In addition, the system's effectiveness against an attack from a compromised program was demonstrated, and the overhead introduced by the system was measured.

The second proposed system, Shadowall, protects memory and virtual disk data involved with target programs. The security concern is to protect target program data in the user memory space and on virtual disks. Shadowall prevents compromised OS kernels and privileged programs from divulging or corrupting such data related to target programs running in the same execution space. Experimental results demonstrated Shadowall's effectiveness against malicious operations in existing application programs, and the performance penalties incurred by the system were measured.

Finally, the third proposed system, ShadowXeck, controls the behavior of OS kernels running on VMs. The security concern is to control the behavior of target programs in kernel mode. ShadowXeck addresses three problems with existing anti-malware systems: restriction on the use of kernel extensions, bypassing of system functionalities, and significant performance degradation. ShadowXeck does not conservatively impose any restriction on kernel extensions,and it reduces the performance impact on untargeted programs. Experimental evaluation demonstrated ShadowXeck's effectiveness against attacks by actual kernel-level malware, and the runtime overhead imposed by the system was measured.

審査要旨 要旨を表示する

サンドボックスシステムや侵入検知システムのようなセキュリティシステムはアプリケーションの不正な振る舞いやデータの改竄を検出・防止することができる。しかし、セキュリティシステムは信頼できないプログラムと同一のOS上で稼働するため、攻撃者はOSカーネルや特権レベルで稼働するプログラムを乗っ取ることができれば、セキュリティシステムそのものを乗っ取ることが出来てしまう。このようなセキュリティシステムへの攻撃を防ぐためには仮想マシンモニタ(VMM)が有用である。制御対象であるOSおよびアプリケーションを動作させるVMとセキュリティシステムを動作させるVMを動作させることにより上記脅威を守ることが可能となる。しかし、制御対象プログラムをVMの外側から制御するためには2つの課題がある。ひとつは、VMMが取得可能なレジスタやメモリの値のようなハードウェアレベルの実行状態からプロセス等のOSレベルの実行状態を復元することである。もうひとつは、セキュリティシステムが制御のために必要な、VMM が検出できないイベントを捕捉できるようにすることである。

本論文では、OSとしてLinuxカーネルを想定すると共にカーネルソースプログラムが提供されている環境において、Linuxカーネルが想定しているハードウェアレジスタの使い方に注目してVMMからVM上のOS実行状況を捕捉し、OS上のプロセスを制御可能とする手法であるShadowVoxを提案している。ShadowVoxを用いることにより、セキュリティシステムと制御対象プログラムをそれぞれ別のVM上で効率良く動作させることが可能となる。ShadowVoxを異なるプロセッサアーキテクチャに実装し、サーバプログラムやセキュリティシステムに適用している。さらに、ShadowVoxがセキュリティシステム自体に対する攻撃から保護できることを確認するとともにシステムコール捕捉に伴うオーバーヘッドを測定している。

さらに、本論文では、上記提案手法を用いて、2つのセキュリティシステム、Shadowall, ShadowXeckを提案、実装し、評価している。Shadowallは、保護対象プログラムのデータの漏洩や改竄を同一OS上で稼働するOSカーネルを含む信頼できないプログラムから防ぐことができる。Shadowallの評価では、保護対象のメモリ・ディスク上のデータに関する漏洩と改竄が防げることを確認し、Shadowallにより生じる実行時のオーバーヘッドを計測した。

ShadowXeckは、VM内で稼働するOSカーネルの振舞いを制御するセキュリティシステムであり、読込み専用領域の書き換え防止および関数ポインター変数の書き換え防止に焦点を当てている。本手法により、VMMを用いた既存のアンチカーネルレベルマルウェアシステムにおける、保守的すぎる手法や適用時の実行時の性能低下に関する課題を解決している。ShadowXeckの評価では、既存のカーネルレベルマルウェアを用いたShadowXeckによるOSカーネルの振舞い制御確認や実行時オーバーヘッドの計測を行った。

本論文では、このように、従来実現されていなかったセキュリティシステムと制御対象プログラムを異なるVM上で効率良く動作させる手法を確立し、セキュリティシステムの安全性を向上させることに成功している。本手法はLinuxカーネルを想定しているが、OSカーネルソースが公開されているシステムであれば適用可能であり一般性のある手法であり、セキュリティシステム構成法の研究に顕著な貢献をしたといえる。

よって本論文は博士(情報理工学)の学位請求論文として合格と認められる。

UTokyo Repositoryリンク