走近虚拟机——McAfee研究员孙冰谈虚拟机技术和虚拟机安全
生活随笔
收集整理的這篇文章主要介紹了
走近虚拟机——McAfee研究员孙冰谈虚拟机技术和虚拟机安全
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? 一、關于虛擬機技術的背景知識 ? 1、Emulator和Virtualizer的區別 ? 現在很多殺毒軟件里面有所謂的智能脫殼功能,其實它就是用一個Emulator模擬器來解釋執行機器指令,比如說x86的機器語言是一條一條來被翻譯執行的。而Virtualizer并不是由軟件來模擬執行,而是使這個代碼盡可能自然地在當前的處理器上運行,而虛擬機監控器只需要在某些特定時候進行干預,比如說來處理一些特權指令操作。 Emulator中比較有名的一個是BOCHS,可能有一些朋友用它來進行過一些操作系統級的調試。這是一個開源的軟件,在網上可以下載到。 Virtualizer比較有代表性的是VMware、VPC這些軟件。 VMM是虛擬機管理器,也叫做虛擬機監控器,其實它就是一個軟件層。這個軟件層是在被虛擬執行的操作系統和真實的硬件環境間由軟件構架的一套中間層,由它來負責對下面的硬件,比如CPU處理器、硬件等進行虛擬。我們后面還會看到對VMM的結構和工作原理的介紹。 2、Host OS和Guest OS ? Host OS和Guest OS非常好理解,在虛擬機里運行的系統,我們稱之為客操作系統。對于二型VMM架構它的主操作系統,我們叫做Host OS。 3、VMM的類型 ? 下面我們介紹一下VMM的類型,有兩種:一種是在裸機上的架構,第二種是混合型,就是有主操作系統的VMM,典型代表有: Type I VMM(Bare Metal):VMware ESX, Xen, MS Hyper-V Type II VMM(Hosted/Hybrid):VMware Workstation, MS VPC 圖1描述的是I型VMM的結構。我們可以看到虛擬機監控器VMM是裝在裸機上的,在這個上面我們會有多個并發運行的客操作系統Guest OS。 圖1? I型VMM結構圖 對于有Host OS的II型VMM是圖2這樣的,虛擬機軟件本身是Host OS的一部分,通過虛擬機軟件,使VMM和Guest OS運行在同一個線性地址空間里來虛擬Guest OS的執行。另外VMM還有一個功能,從主操作系統的上下文空間向客操作系統的上下文空間進行切換,由它進行控制。 圖2? II型VMM結構圖 我們原先用到虛擬機的技術,多半都是由純軟件來實現的,因為我們在硬件上沒有對虛擬的直接的支持。用軟件來實現虛擬,是非常困難,而且非常非常有技巧的一件事情。可能用過VMware的朋友都有一個疑問,它到底是怎么實現的?怎么來同時運行兩個操作系統?VMware在里面的操作系統運行在一個Windows窗口里面,外部的操作系統也在并發執行,怎么做到的?其實這用到了很多比較復雜的技術,包括所謂的執行特權級壓縮。也就是說,在窗口里運行的客操作系統的內核模式,實際上不是在ring0執行的,而是被降級到ring1執行的。這樣就能保證它里面發出的一些特權指令的調用可以被虛擬機監控器所捕獲到,來進行模擬。而它里面用戶態的代碼是自然在CPU上執行的,這就是為什么執行的效率相比起其他的一些模擬器來說我們會覺得比較快,因為它大部分的指令全是在CPU上自然執行,不需要虛擬機監控器來進行干預。 但是由于x86這個體系本身對于虛擬來說有一些不支持的地方,比如一些敏感的但是不可捕獲的指令,比如說像SIDT這條指令,即便在ring3下執行也不能產生異常,VMM抓不到它,這對虛擬來說是一個挑戰。所以VMM對于Guest OS的ring0采取的是二進制翻譯,而對ring3采取的是直接執行。下面這條是為了對付這種敏感但是不可虛擬的指令,而采用的二進制翻譯的機制。 ? 4、用軟件來實現MMU ? 還有一個比較關鍵的技術,就是所謂的用軟件來實現MMU(內存管理單元),影子頁表。在圖2所示的II型VMM里面,客操作系統認為自己是獨占線性地址空間,而且覺得這個物理內存全部是它的。但是我們可以看到,VMM是跟它運行在同一個線性空間里,而且只是劃分了一部分物理內存給它使用,所以必須使用軟件虛擬MMU的方法來使它認為自己好像是獨占這個空間的。 Guest OS有自己的頁表,但是這個頁表不能被硬件直接使用,而硬件的頁表是由VMM控制的。Guest OS自己的頁表和實際的硬件設置之間有一個對應關系,這種對應關系是由VMM來維護的。 由于軟件虛擬技術比較復雜,而且效率比較低,所以近幾年處理器直接加入了對虛擬的支持,即所謂的硬件虛擬。我們可以看到,Intel和AMD都有所動作,Intel的叫做VT-x,AMD的叫做SVM技術。當然后面還有一些別的后續技術,比如說VT-d和IOMMU。 查看全文>> 本文主要內容整理自McAfee研究員孫冰先生在2008中國軟件安全峰會上的演講,歡迎下載本文資料。 瀏覽更多精彩文章>>? 歡迎訂閱軟件安全電子期刊>> ?
轉載于:https://blog.51cto.com/broadviewsec/125260
總結
以上是生活随笔為你收集整理的走近虚拟机——McAfee研究员孙冰谈虚拟机技术和虚拟机安全的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BIOS中英文对照
- 下一篇: 写了一个测试正则表达式的小工具