仮想化技術に関する最近の論文 金田 憲二.

Slides:



Advertisements
Similar presentations
全体ミーティング 03/04 澤崎 純也. 紹介する論文 Stealthy Malware Detection Through VMM- based "Out-of-the-Box" Semantic View Reconstruction[Xuxian Jiang et al., CCS'07]
Advertisements

Virtual Editionのご紹介 2012年12月12日.
Webプロキシサーバにおける 動的資源管理方式の提案と実装
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
榮樂 英樹 LilyVM と仮想化技術 榮樂 英樹
クラウド上の仮想マシンの安全なリモート監視機構
クラウドにおける ネストした仮想化を用いた 安全な帯域外リモート管理
Docker.
Virtual Editionのご紹介 (株)ネットジャパン 法人営業部 2012年7月18日 1.
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
中村孝介(九州工業大学) 光来健一(九州工業大学/JST CREST)
KVMにおけるIDSオフロードのための仮想マシン監視機構
SSR 論文調査 Safety and Cyber-Physical Systems
Virtualizing a Multiprocessor Machine on a Network of Computers
ファイルシステムキャッシュを 考慮した仮想マシン監視機構
メモリ暗号化による Android端末の盗難対策
App. A アセンブラ、リンカ、 SPIMシミュレータ
侵入検知システム(IDS) 停止 IDS サーバへの不正アクセスが増加している
Disco: Running Commodity Operating Systems on Scalable Multiprocessors
XenによるゲストOSの解析に 基づくパケットフィルタリング
Telnet, rlogin などの仮想端末 ftp などのファイル転送 rpc, nfs
ネストした仮想化を用いた VMの安全な帯域外リモート管理
クラウドの内部攻撃者に対する安全なリモートVM監視機構
アスペクト指向プログラミングを用いたIDSオフロード
サーバ負荷分散におけるOpenFlowを用いた省電力法
Virtual Editionのご紹介 2012年7月26日.
型付きアセンブリ言語を用いた安全なカーネル拡張
卒業論文に向けて(5) 学部4年生 島本 大輔 2004年12月14日.
踏み台攻撃だけを抑制できる VMMレベル・パケットフィルタ
“An Introduction to Virtualization” by Amit Singh
AMD64の仮想化技術を利用した 仮想マシンモニタの実装
全体ミーティング 金田憲二.
“Survey of System Virtualization Techniques” by Robert Rose のまとめ
KVMにおける仮想マシンの 内部監視機構の実装と性能評価
仮想マシン間にまたがる プロセススケジューリング
Xenによる ゲストOSの監視に基づく パケットフィルタリング
仮想計算機を用いて OSを介さずに行う安全な ファイルアクセス制御
セキュリティ機構のオフロードを考慮した 仮想マシンのスケジューリング
分散IDSの実行環境の分離 による安全性の向上
VMのメモリ暗号化によるクラウド管理者への情報漏洩の防止
VMのメモリ暗号化による クラウド管理者への情報漏洩の防止
IaaS型クラウドにおける インスタンス構成の動的最適化手法
Java Operating Systems
リモートホストの異常を検知するための GPUとの直接通信機構
実行時情報に基づく OSカーネルのコンフィグ最小化
仮想メモリを用いた VMマイグレーションの高速化
複数ホストに分割されたメモリを用いる仮想マシンの監視機構
仮想計算機を用いたサーバ統合に おける高速なリブートリカバリ
クラウドにおけるIntel SGXを用いた VMの安全な監視機構
全体ミーティング 6月6日 島本 大輔(M2) 2006年6月6日(火).
IaaS環境におけるVMのメモリ暗号化による情報漏洩の防止
クラウドにおけるVMリダイレクト攻撃を防ぐためのリモート管理機構
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
仮想マシンを用いた 既存IDSのオフロード
Intel SGXを用いた仮想マシンの 安全な監視機構
軽量な仮想マシンを用いたIoT機器の安全な監視
信頼できないクラウドにおける仮想化システムの監視機構
Virtualizing a Multiprocessor Machine on a Network of Computers
仮想環境を用いた 侵入検知システムの安全な構成法
Cell/B.E.のSPE Isolationモードを用いた監視システム
仮想マシンに対する 高いサービス可用性を実現する パケットフィルタリング
Cell/B.E. のSPE上で動作する 安全なOS監視システム
Mondriaan Memory Protection の調査
VMリダイレクト攻撃を防ぐための 安全なリモート管理機構
卒業論文に向けて(3) 学部4年生 島本 大輔 2004年11月11日.
強制パススルー機構を用いた VMの安全な帯域外リモート管理
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
Virtual Machine Introspectionを可能にするVMCryptの拡張 田所秀和 光来健一 (九州工業大学)
強制パススルー機構を用いた VMの安全な帯域外リモート管理
管理VMへの キーボード入力情報漏洩の防止
Presentation transcript:

仮想化技術に関する最近の論文 金田 憲二

本発表の内容 Argos: an Emulator for Fingerprinting Zero-Day Attacks Georgios Portokalidis, Asia Slowinska, and Herbert Bos EuroSys’06 SubVirt: Implementing Malware with Virtual Machines Samuel T. King, Peter M. Chen, Yi-Min Wang, Chad Verbowski, Helen J. Wang, and Jacob R. Lorch Symposium on Security and Privacy’06

Argos: an Emulator for Fingerprinting Zero-Day Attacks for advertised honeypots with automatic signature generation

本論文の要旨 ワームの封じ込めのためのシステムArgos ワームの侵入を検出 どういったデータが攻撃を引き起こしたのかを解析 ※ x86エミュレータを改良することで実装されている

ワームとは 自己増殖を繰り返しながら破壊活動を行なう ネットワーク経由でPCに送られてくる プログラムのバグを利用し、危険なコードを実行する 例)バッファ溢れを利用して、関数の戻りアドレスを改変 感染したPCを通して、他のPCを攻撃する Worm Worm Worm

ワームを封じ込めるためには ワームの侵入を検出する シグネチャを生成する シグネチャを他のマシンに配布する ! シグネチャ = 攻撃を引き起こすバイト列 シグネチャを他のマシンに配布する EB 10 EB 19 9F 18 F3 EB E0 FD … EB 10 EB 19 9F 18 F3 EB E0 FD … ! Worm

! ワームの侵入を検出するには? 動的テイント(taint)解析を用いる 動的にデータフローを解析する ネットワークから送られてきたデータを プログラムが実行しないか等をチェックする メモリ 汎用レジスタ ! 動的に解析するので、オーバヘッドは大きいが、false-positiveは少ない ネットワークから送られてきたデータにタグをつける タグ付けされたデータに依存するデータにもタグをつける タグ付けされたデータが実行されたときに an alert is generated (only) if and when an exploit takes place 例) when data coming from the network are executedネットワークから送られてきたデータに依存するデータが実行されたとき EIP

どういった動的テイント解析行うか どのレベルで解析を行うか? どうやって解析を実装するか? マシンレベル or プロセスレベル ソフトウェア上で実装

既存手法とその問題点 (1/2) マシンレベル + ハードウェア改良 例)Minos [J. R. Crandall et al. Microarchitecture’04] ハードウェアの改良はコストが大きい 攻撃に関する情報を収集するのが難しい 攻撃を引き起こす原因となったデータの物理アドレスのみしか得られない

既存手法とその問題点 (2/2) プロセスレベル + ソフトウェア上で実装 例)Vigliante [M. Costa et al. SOSP’05] OSカーネルを扱うのが難しい 複雑なメモリ操作(例、DMA)を扱うのが難しい

本論文の提案するシステムArgos マシンレベルの解析をソフトウェア上で実現 攻撃に関する様々な情報が収集可能 例)攻撃を引き起こす原因となったデータの仮想アドレス 例)レジスタ、メモリ 複雑なメモリ操作(DMA)をサポート ※ x86 エミュレータ(QEMU)を改良

Argosの動作の流れ 攻撃の検出 シグネチャの生成・配布 アプリ アプリ アプリ ゲストOS メモリ 汎用レジスタ アーキテクチャ図と噴出し メモリ 汎用レジスタ Argos エミュレータ Argos エミュレータ EIP

1. 攻撃の検出 ネットワークから来たデータは、汚染あつかい 汚染データが書き込まれたメモリやレジスタも、汚染あつかい アプリ アプリ ゲストOS メモリ 汎用レジスタ Argos エミュレータ EIP

1. 攻撃の検出 汚染データが制御流を変更させると、警告を出す EIPに書き込まれた値が汚染 or システムコールの引数が汚染 メモリ 汎用レジスタ メモリ 汎用レジスタ EIP EIP

2. シグネチャの生成・配布 攻撃に関する情報を取得する 汚染されたメモリブロックとレジスタをダンプする ゲストOSにコードを挿入し実行する プロセスIDや実行ファイルに関する情報を取得する シグネチャの生成 memory footprintやnetwork traceから OS-specific forensics shellcodeを挿入可能 複数のホストのシグネチャを比較して、シグネチャをrefineできる

2. シグネチャの生成・配布 シグネチャを洗練させる snortと同様の形式でシグネチャを配布する ネットワークトレースや、他のPCからの情報を利用 例)IPアドレスの違いを吸収するようなシグネチャを生成 snortと同様の形式でシグネチャを配布する

Argosの実装 攻撃の検出 シグネチャの生成・配布 どうやってメモリやレジスタの汚染を計算するか?  メモリ・レジスタに汚染を示すタグを付ける シグネチャの生成・配布 どうやって攻撃に関する情報を取得するか? エミュレータを使っているので、ほぼ自明にできる どうやってシグネチャを洗練させるか? 本発表では割愛する(詳しくは別論文を参照)

汚染タグの実装 Qemuを改良することで実現 レジスタ、メモリ、ネットワークをエミュレーションするデータ構造に改良を加える

汚染タグの実装(レジスタの場合) 個々の汎用レジスタごとに4バイト用意する 特殊なレジスタには、タグを付けない 格納中の値が、どの物理アドレスから来たかを記憶 特殊なレジスタには、タグを付けない セグメントレジスタ、MMX、FPU は重要でない EFLAGS にタグを付けると、ほとんどが汚染扱いに メモリ 汎用レジスタ EIP

汚染タグの実装(メモリの場合) 仮想マシンの物理メモリの各バイトごとに 1ビットのフラグを用意 or 1バイトのフラグを用意 ※ 計算速度とメモリ消費量のトレードオフ ビットマップ バイトマップ メモリ メモリ or

汚染タグの実装(ネットワークの場合) in/out命令によってNICから値が書き込まれたレジスタを、汚染されたとみなす

汚染タグの更新の例1 データ転送命令 mov %eax %ebx ソースオペランドのタグを、 デスティネーションオペランドに移す メモリ

汚染タグの更新の例2 ALU命令(例、add %eax %ebx) デスティネーションオペランドは、 既に汚染されている場合、汚染されたまま まだ汚染されていない場合、ソースオペランドのタグがコピーされる

タグを更新する際の注意点 レジスタに0を代入する命令の扱い DMAの扱い 例)xor %eax %eax タグをクリアする I/Oデバイスからデータの書き込まれたメモリ ブロックのタグをクリアする

Argosの性能評価 ベンチマークの実行速度 攻撃の検出精度

ベンチマークの実行速度 以下の実行性能を比較 ※全てにおいて、QEMUの最適化機能は無効 Vanilla QEMU: オリジナルのQEMU Argos-B: バイトマップ方式 Argos-B-CI: バイトマップ方式 + 攻撃検出 Argos-P: ページディレクトリによるタグ管理 ※全てにおいて、QEMUの最適化機能は無効

ベンチマークの実行速度

攻撃の検出精度 実験で試した攻撃では、false-positiveは無し 検出できた攻撃の代表例は以下の通り Windows 2000 Apache Chunked Encoding Overflow Microsoft IIS ISAPI .printer Extension Host Header Overflow Microsoft Windows WebDav ntdll.dll Overflow Microsoft FrontPage Server Extensions Debug Overflow Microsoft Windows PnP Service Remote Overflow Microsoft ASN.1 Library Bitstring Heap Overflow Microsoft Windows Message Queueing Remote Overflow Microsoft Windows RPC DCOM Interface Overflow War-FTPD 1.65 USER Overflow Linux 2.4.29 nbSMTP v0.99 remote format string exploit Custom Stack Overflow Custom Heap Corruption Overflow

結論 ワームの封じ込めのためのシステムArgos x86エミュレータQEMUを利用 実行速度はかなり遅くなるが、攻撃の検出精度は高い

SubVirt: Implementing Malware with Virtual Machines

論文の要旨 Virtual-machine based rootkit (VMBR) 検出が困難で、かつ、多様な攻撃が可能 VMMをインストールする 元のOSを仮想マシン上で実行する 検出が困難で、かつ、多様な攻撃が可能

既存のルートキットの問題点 IDSに対して、明確な優位性を持たない 複雑な機能を持つほど、検出されやすくなる 特権レベルで動くプログラム同士の「いたちごっこ」 複雑な機能を持つほど、検出されやすくなる 例)フィッシングwebサーバは、ネットワークポートやファイルなどに関する情報を残す

Virtual-Machine Based Rootkit (VMBR) 仮想マシンモニタ(VMM)を利用したルートキット VMMをインストールする 元のOSを仮想マシン上で実行する 仮想マシン 特長 攻撃を検出するのが困難 攻撃対象のOS アプリ ホストOS 仮想マシンモニタ ハードウェア

VMBRの特長 攻撃が検出されにくい 多様な攻撃を実現できる 攻撃対象のOSからVMMを隠蔽 VMMによって、攻撃対象のOSを制御 Exercises qualitatively more control than current malware Supports general-purpose functionality

以降の発表の流れ どうやってVMBRをインストールか どうやって悪意のあるサービスを実現するか どうやってVMBRのアンインストールを防ぐか

VMBRのインストール方法 ブートシークエンスを操作し、 VMBRを攻撃対象OSより先に起動させる Overwrite the disk master boot record using the Linux hard-drive block-device so that our VMBR loads at system boot

インストール方法の詳細 特権レベルでマシンにアクセス可能にする VMMを未使用のディスクスペースに置く ブートシークエンスを変更する 例)ユーザをだましてソフトウェアをインストール 例)P2P上にあるbootable CD-ROMイメージを改竄 VMMを未使用のディスクスペースに置く 例)攻撃対象OSがLinuxならば、スワップ領域に ブートシークエンスを変更する 起動時に、 VMMが最初にロードされるようにする IDSに検知されないように、マシンが停止する直前に ブートシークエンスを変更

インストール方法の詳細 マシンの再起動と共に、VMMが起動する 攻撃対象OSをゲストOSとして起動させる 仮想ディスクへのアクセスを、物理ディスク上の対応する領域へのアクセスに変換する

悪意のあるサービスの実現方法 攻撃のためのOSを別に用意する 攻撃対象OSによって攻撃が検出されにくい 既存のライブラリ・ツールを使い、攻撃を実装できる 攻撃対象のOS アプリ 悪意のある サービス ホストOS 仮想マシンモニタ ハードウェア

悪意のあるサービスの例1 ターゲットシステムには無関係の攻撃 スパムの転送 分散DoS攻撃 フィッシングWebサーバ … アプリ フィッシング Webサーバ フィッシングの場合、 ほとんどのトラフィックは、ターゲットOSに 8080番ポートへのincoming TCPリクエストのみ、 ホストOS 仮想マシンモニタ ハードウェア

悪意のあるサービスの例2 ターゲットシステムのデータ・イベントを見る攻撃 I/Oデバイスへのアクセスを捕捉して、 キーストロークやネットワークパケットを盗み見る SSLソケットのwrite呼び出しを捕捉して、 暗号化される前の平文を取得する … 攻撃対象のOS アプリ 監視アプリ ホストOS 仮想マシンモニタ ハードウェア

悪意のあるサービスの例3 ターゲットシステムの実行を書き換える攻撃 ネットワークパケットの改竄 ファイルの削除 …

VMBRのアンインストールを防ぐには VMBRがマシンを制御できない瞬間をなくしたい マシンの起動・停止を仮想化する 例)BIOSが他のメディアを起動させるのを防ぎたい マシンの起動・停止を仮想化する ACPIのスリープ状態でエミュレーションする

どうやってVMBRが インストールされたことを検出するか 安全なハードウェア(例、Intel LaGrande)や 安全なVMM(例、Terra)を利用する VMBRより上のレイヤーで検出する 実行時のオーバヘッドから類推する センシティブな非特権命令(例、sidt命令)を、 ユーザレベルで実行する 多くのVMMで、エミュレーションが実装されていない

実装 2種類のProof-of-concept VMBR 4つの悪意のあるサービス Virtual PC (Windows XP) VMware (Linux) 4つの悪意のあるサービス フィッシングWebサーバ キーストロークのスニファー パスワードファイルの検索ツール VMMを検出するプログラムredpillを回避するプログラム

結論 VMMを使った悪意のあるサービスと、 それへの防御方法 まだまだNaïveな点は多いけれど、新しい発想? 仮想化対応のハードウェアが普及してくれば、 こうした攻撃もより一般的になるはず?

その他

Executing MPI Programs on Virtual Machines in an Internet Sharing System User-mode Linuxを元にしている 通信処理を最適化している ゲストOSのソケットとホストOSのソケットを 直に対応付ける 例)ゲストOS上でsocket()を呼ぶと、ホストOS上でもsocket()が呼ばれ、ソケットが生成される ※ Linux Vserverで十分では? ファイルデスクリプタの対応付け 同期通信のブロックの扱い

A Feather-Weight Virtual Machine for Windows Applications Windows上で動くsoftware potのようなもの OSの名前空間を仮想化する ファイル、レジストリ、ネットワークアドレス、 カーネルオブジェクトの仮想化 プロセス間通信の制限 デーモンサービスの仮想化

A Feather-Weight Virtual Machine for Windows Application システムサービスの捕捉の実装 ファイル、プロセス間通信  カーネルレベルで捕捉 System Service Dispatch Table中のシステムコールの エントリポイントを変更 ウィンドウ管理など  ユーザレベルで捕捉 Import Address Table 中のライブラリ関数の エントリポイントを変更 ファイル等の資源の共有及び隔離の実装 Copy-on-write方式 …

参考資料

関連する学会 USENIX Symposium on Operating Systems Design and Implementation (OSDI) ACM Symposium on Operating Systems Principles (SOSP) USENIX Annual Technical Conference (USENIX) ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS) ACM/USENIX International Conference on Virtual Execution Environments (VEE) USENIX Symposium on Networked Systems Design and Implementation (NSDI) IEEE International Conference on Distributed Computing Systems (ICDCS) IEEE International Parallel and Distributed Processing Symposium (IPDPS) EuroSys

関連する論文 (USENIX’06) Antfarm: Tracking Processes in a Virtual Machine Environment Stephen T. Jones, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau Optimizing Network Virtualization in Xen Aravind Menon, Alan L. Cox, and Willy Zwaenepoel High Performance VMM-Bypass I/O in Virtual Machines Jiuxing Liu, Wei Huang, Bulent Abali, and Dhabaleswar K. Panda

関連する論文 (EuroSys’06) Argos: an Emulator for Fingerprinting Zero-Day Attacks Georgios Portokalidis, Asia Slowinska, and Herbert Bos

関連する論文 (VEE’06) Virtual Machine-Based Honeypot Monitoring Kurniadi Asrigo, Lionel Litty, and David Lie A Feather-Weight Virtual Machine for Windows Applications Yang Yu, Fanglu Guo, Susanta Nanda, Lap-chung Lam, and Tzi-cker Chiueh Live Updating Operating Systems Using Virtualization Haibo Chen,Rong Chen,Fengzhe Zhang,Binyu Zang, and Pen-Chung Yew

関連する論文 (NSDI’06) Ventana: A Distributed Filesystem for Virtual Machine Based Computing Environments Ben Pfaff, Tal Garfinkel, and Mendel Rosenblum

関連する論文 (IPDPS’06) Executing MPI Programs on Virtual Machines in an Internet Sharing System Z. Pan, X. Ren, R. Eigenmann, and D. Xu

関連する論文 (SACSIS’06) 仮想計算機を用いたグリッド上でのMPI実行環境 立薗 真樹, 中田 秀基, and 松岡 聡 ORE Grid: 仮想計算機を用いたグリッド実行環境の高速な配置ツール 高宮 安仁, 山形 育平, 青木 孝文, 中田 秀基, and 松岡 聡

関連する論文 (ASPLOS’04) Devirtualizable virtual machines enabling general, single-node, online maintenance David E. Lowell, Yasushi Saito, and Eileen J. Samberg

関連するプロジェクト (1/3) Xen Denali User-mode Linux Cooperative Linux http://www.cl.cam.ac.uk/Research/SRG/netos/xen/ Denali Lightweight virtual machines for distributed and networked systems http://denali.cs.washington.edu/ User-mode Linux http://user-mode-linux.sourceforge.net/ Cooperative Linux http://www.colinux.org/ FAUmachine http://www3.informatik.uni-erlangen.de/Research/FAUmachine/ L4Ka Virtual Machine Technology http://l4ka.org/projects/virtualization/

関連するプロジェクト (2/3) sHype, rHype CoVirt HyperSpector Hypervisor security architecture Research Hypervisor http://www.research.ibm.com/secure_systems_department/projects/hypervisor/ CoVirt Virtual-machine based security services http://www.eecs.umich.edu/CoVirt/ HyperSpector virtual distributed monitoring environment http://www.csg.is.titech.ac.jp/~kourai/hs.html

関連するプロジェクト (3/3) The Collective Zap, MobiDisk, THINC Virtuoso (VNET) A virtual appliance computing infrastructure http://suif.stanford.edu/collective/ Zap, MobiDisk, THINC http://www.cs.columbia.edu/~nieh/ Virtuoso (VNET) Resource management and prediction for distributed computing using virtual machines http://virtuoso.cs.northwestern.edu/ Virtualization-based system for network security and Grid Collapsar, VIOLIN, SODA http://www.cs.purdue.edu/homes/jiangx/ In-VIGO (VMPlants) Virtualization middleware for computational grids http://invigo.acis.ufl.edu/

関連する企業 VMware Microsoft Virtual Server SWSoft Virtuozzo TRANGO Real-time embedded hypervisor http://www.trango-systems.com Parallels http://www.parallels.com SVISTA http://www.serenityvirtual.com Ensim http://www.ensim.com/

Virtual machine support for distributed file system VMM introduction R. Goldberg, Survey of Virtual Machine Research, IEEE Computer, June 1974, pp 34-45. R. Goldberg, Architecture of Virtual Machines, Proceedings of the Workshop on Virtual Computer Systems, Cambridge, Mass, 1973, pp 74-112. J. E. Smith and Ravi Nair, An Overview of Virtual Machine Architectures, November 1, 2003. J. E. Smith and Ravi Nair, Virtual Machine Architectures, Implementations, and Applications, August 23, 2004. VMware VMware patent Carl A. Waldspurger, Memory Resource Management in VMware ESX Server, OSDI 2002. John Scott Robin and Cynthia E. Irvine, Analysis of the Intel Pentium's Ability to Support a Secure Virtual Machine Monitor, USENIX Security 2000. Jeremy Sugerman, Ganesh Venkitachalam, and Beng-Hong Lim, Virtualizing I/O Devices on VMware Workstation's Hosted Virtual Machine Monitor, USENIX Annual Technical Conference, 2001. OS extension for VMM Samuel T. King, George W. Dunlap, Peter M. Chen, Operating System Support for Virtual Machines, USENIX Annual Technical Conference, 2003. Linux-specific systems User-mode Linux Cooperative Linux Emulators DOSemu, WINE bochs, QEMU, PearPC Process-level virtualization FreeBSD Jail Zap: Steven Osman, Dinesh Subhraveti, Gong Su, and Jason Nieh, The Design and Implementation of Zap: A System for Migrating Computing Environments, OSDI 2002. Compute Capsule: Brian K. Schmidt, Supporting Ubiquitous Computing with Stateless Consoles and Computation Caches, Ph.D. Thesis, Computer Science Department, Stanford University, August 2000. Para-virtualization, microkernel Xen: Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, Andrew Warfield, Xen and the Art of Virtualization, SOSP 2003. Denali: Andrew Whitaker, Marianne Shaw, and Steven D. Gribble, Scale and Performance in the Denali Isolation Kernel, OSDI 2002. Exokernel: Dawson R. Engler, M. Frans Kaashoek, and James O'Toole Jr, Exokernel: an operating system architecture for application-level resource management, SOSP '95. Exokernel: Charles L. Coffing, An x86 Protected Mode Virtual Machine Monitor for the MIT Exokernel, Master's thesis, 1999. LilyVM: Hideki Eiraku and Yasushi Shinjo, Running BSD Kernels as User Processes by Partial Emulation and Rewriting of Machine Instructions, BSDCon '03. Visiting classics SimOS: Mendel Rosenblum, Edouard Bugnion, Scott Devine, and Steve Herrod, Using the SimOS Machine Simulator to Study Complex Computer Systems, ACM TOMACS Special Issue on Computer Simulation, 1997. Disco: Edouard Bugnion, Scott Devine, Mendel Rosenblum, Disco: Running Commodity Operating Systems on Scalable Multiprocessors, SOSP '97. Application to security Terra: Tal Garfinkel, Ben Pfaff, Jim Chow, Mendel Rosenblum, Dan Boneh, Terra: A Virtual-Machine Based Platform for Trusted Computing, SOSP 2003. Revirt: George W. Dunlap, Samuel T. King, Sukru Cinar, Murtaza A. Basrai, and Peter M. Chen, ReVirt: Enabling Intrusion Analysis Through Virtual-Machine Logging and Replay, OSDI 2002. Tal Garfinkel and Mendel Rosenblum, A Virtual Machine Introspection Based Architecture for Intrusion Detection, NDSS 2003. Collapsar: Xuxian Jiang, Dongyan Xu, Collapsar: A VM-Based Architecture for Network Attack Detention Center, USENIX Security Symposium 2004. Honeypot using VMware or UML honeynet project Application to Grid SODA: Xuxian Jiang, Dongyan Xu, SODA: a Service-On-Demand Architecture for Application Service Hosting Utility Platforms, HPDC-12, 2003. Virtuoso: R. Figueiredo, P. Dinda, J. Fortes, A Case for Grid Computing on Virtual Machines, ICDCS 2003, 2003. vMatrix: Amr A. Awadallah and Mendel Rosenblum, The vMatrix: Server Switching, IEEE FTDCS 2004, 2004. VMPlants: Ivan Victor Krsul, Arijit Ganguly, Jian Zhang, Jose A. B. Fortes, Renato J. Figueiredo, VMPlants: Providing and Managing Virtual Machine Execution Environments for Grid Computing, SC 2004, 2004. Migration Constantine P. Sapuntzakis, Ramesh Chandra, Ben Pfaff, Jim Chow, Monica S. Lam, and Mendel Rosenblum, Optimizing the Migration of Virtual Computers, OSDI 2002. vOS: Tom Boyd and Partha Dasgupta, Process Migration: A Generalized Approach using a Virtualizing Operating System, ICDCS 2002. Fault tolerant, dependable, and reliable VMs DARMA Intel's new architecture for virtualization Other VMMs VirtualPC Simics Ensim FAUmachine Misc M. D. Canon, D. H. Fritz, J. H. Howard, T. D. Howell, M. F. Mitoma, and J. Rodriquez-Rosell, A virtual machine emulator for performance evaluation, ACM Communications Volume 23, Issue 2, pp. 71-80, 1980. Peter M. Chen, Brian D. Noble, When Virtual Is Better Than Real, Proceedings of the 2001 Workshop on Hot Topics in Operating Systems (HotOS-VIII), 2001. Samuel T. King, George W. Dunlap, Peter M. Chen, Debugging operating systems with time-traveling virtual machines, University of Michigan CSE-TR-495-04, August 2004. Andrew Whitaker, Richard S. Cox, and Steven D. Gribble. Using Time Travel to Diagnose Computer Problems, Proceedings of the 11th ACM SIGOPS European Workshop, Leuven, Belgium, September 2004. Bin Lin and Peter Dinda, VSched: Mixing Batch and Interactive Virtual Machines Using Periodic Real-time Scheduling Virtual machine support for distributed file system GVFS DF] Distributed File System Support for Virtual Machines in Grid Computing Virtual Appliances for Deploying and Maintaining Software In Proceedings of ACM Workshop on Models, Methods and Tools for Reproducible Network Research (MoMeTools, in conjunction with ACM SIGCOMM 2003).

Virtual machine support for distributed file system VMM introduction R. Goldberg, Survey of Virtual Machine Research, IEEE Computer, June 1974, pp 34-45. R. Goldberg, Architecture of Virtual Machines, Proceedings of the Workshop on Virtual Computer Systems, Cambridge, Mass, 1973, pp 74-112. J. E. Smith and Ravi Nair, An Overview of Virtual Machine Architectures, November 1, 2003. J. E. Smith and Ravi Nair, Virtual Machine Architectures, Implementations, and Applications, August 23, 2004. VMware VMware patent Carl A. Waldspurger, Memory Resource Management in VMware ESX Server, OSDI 2002. John Scott Robin and Cynthia E. Irvine, Analysis of the Intel Pentium's Ability to Support a Secure Virtual Machine Monitor, USENIX Security 2000. Jeremy Sugerman, Ganesh Venkitachalam, and Beng-Hong Lim, Virtualizing I/O Devices on VMware Workstation's Hosted Virtual Machine Monitor, USENIX Annual Technical Conference, 2001. OS extension for VMM Samuel T. King, George W. Dunlap, Peter M. Chen, Operating System Support for Virtual Machines, USENIX Annual Technical Conference, 2003. Linux-specific systems User-mode Linux Cooperative Linux Emulators DOSemu, WINE bochs, QEMU, PearPC Process-level virtualization FreeBSD Jail Zap: Steven Osman, Dinesh Subhraveti, Gong Su, and Jason Nieh, The Design and Implementation of Zap: A System for Migrating Computing Environments, OSDI 2002. Compute Capsule: Brian K. Schmidt, Supporting Ubiquitous Computing with Stateless Consoles and Computation Caches, Ph.D. Thesis, Computer Science Department, Stanford University, August 2000. Para-virtualization, microkernel Xen: Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, Andrew Warfield, Xen and the Art of Virtualization, SOSP 2003. Denali: Andrew Whitaker, Marianne Shaw, and Steven D. Gribble, Scale and Performance in the Denali Isolation Kernel, OSDI 2002. Exokernel: Dawson R. Engler, M. Frans Kaashoek, and James O'Toole Jr, Exokernel: an operating system architecture for application-level resource management, SOSP '95. Exokernel: Charles L. Coffing, An x86 Protected Mode Virtual Machine Monitor for the MIT Exokernel, Master's thesis, 1999. LilyVM: Hideki Eiraku and Yasushi Shinjo, Running BSD Kernels as User Processes by Partial Emulation and Rewriting of Machine Instructions, BSDCon '03. Visiting classics SimOS: Mendel Rosenblum, Edouard Bugnion, Scott Devine, and Steve Herrod, Using the SimOS Machine Simulator to Study Complex Computer Systems, ACM TOMACS Special Issue on Computer Simulation, 1997. Disco: Edouard Bugnion, Scott Devine, Mendel Rosenblum, Disco: Running Commodity Operating Systems on Scalable Multiprocessors, SOSP '97. Application to security Terra: Tal Garfinkel, Ben Pfaff, Jim Chow, Mendel Rosenblum, Dan Boneh, Terra: A Virtual-Machine Based Platform for Trusted Computing, SOSP 2003. Revirt: George W. Dunlap, Samuel T. King, Sukru Cinar, Murtaza A. Basrai, and Peter M. Chen, ReVirt: Enabling Intrusion Analysis Through Virtual-Machine Logging and Replay, OSDI 2002. Tal Garfinkel and Mendel Rosenblum, A Virtual Machine Introspection Based Architecture for Intrusion Detection, NDSS 2003. Collapsar: Xuxian Jiang, Dongyan Xu, Collapsar: A VM-Based Architecture for Network Attack Detention Center, USENIX Security Symposium 2004. Honeypot using VMware or UML honeynet project Application to Grid SODA: Xuxian Jiang, Dongyan Xu, SODA: a Service-On-Demand Architecture for Application Service Hosting Utility Platforms, HPDC-12, 2003. Virtuoso: R. Figueiredo, P. Dinda, J. Fortes, A Case for Grid Computing on Virtual Machines, ICDCS 2003, 2003. vMatrix: Amr A. Awadallah and Mendel Rosenblum, The vMatrix: Server Switching, IEEE FTDCS 2004, 2004. VMPlants: Ivan Victor Krsul, Arijit Ganguly, Jian Zhang, Jose A. B. Fortes, Renato J. Figueiredo, VMPlants: Providing and Managing Virtual Machine Execution Environments for Grid Computing, SC 2004, 2004. Migration Constantine P. Sapuntzakis, Ramesh Chandra, Ben Pfaff, Jim Chow, Monica S. Lam, and Mendel Rosenblum, Optimizing the Migration of Virtual Computers, OSDI 2002. vOS: Tom Boyd and Partha Dasgupta, Process Migration: A Generalized Approach using a Virtualizing Operating System, ICDCS 2002. Fault tolerant, dependable, and reliable VMs DARMA Intel's new architecture for virtualization Other VMMs VirtualPC Simics FAUmachine Misc M. D. Canon, D. H. Fritz, J. H. Howard, T. D. Howell, M. F. Mitoma, and J. Rodriquez-Rosell, A virtual machine emulator for performance evaluation, ACM Communications Volume 23, Issue 2, pp. 71-80, 1980. Peter M. Chen, Brian D. Noble, When Virtual Is Better Than Real, Proceedings of the 2001 Workshop on Hot Topics in Operating Systems (HotOS-VIII), 2001. Samuel T. King, George W. Dunlap, Peter M. Chen, Debugging operating systems with time-traveling virtual machines, University of Michigan CSE-TR-495-04, August 2004. Andrew Whitaker, Richard S. Cox, and Steven D. Gribble. Using Time Travel to Diagnose Computer Problems, Proceedings of the 11th ACM SIGOPS European Workshop, Leuven, Belgium, September 2004. Bin Lin and Peter Dinda, VSched: Mixing Batch and Interactive Virtual Machines Using Periodic Real-time Scheduling Virtual machine support for distributed file system GVFS DF] Distributed File System Support for Virtual Machines in Grid Computing Virtual Appliances for Deploying and Maintaining Software In Proceedings of ACM Workshop on Models, Methods and Tools for Reproducible Network Research (MoMeTools, in conjunction with ACM SIGCOMM 2003).