freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

虛擬機隔離運行模型-資料下載頁

2025-06-23 23:39本頁面
  

【正文】 虛擬機當中,這種機制雖然可以有效實現(xiàn)強隔離,但這并不適用于本章針對的應用場景,即在宿主環(huán)境內(nèi)執(zhí)行可能含有VMMaware 惡意代碼的應用程序。如圖 所示,針對運行可信軟件和運行可能包含 VMMaware 惡意代碼的軟件這兩種場景,MiniVMM 的隔離運行模型使操作系統(tǒng)可以在兩種狀態(tài)下實時轉(zhuǎn)換,即本地模式(Native Mode)和虛擬化模式(VMM Mode)。在本地模式下,操作系統(tǒng)直接運行在硬件系統(tǒng)之上,沒有任何性能開銷。在進入虛擬化模式之前,即準備開始執(zhí)行任何已被基于虛擬機的惡意代碼檢測機制驗證過的代碼之前,需要啟動 MiniVMM 以使得操作系統(tǒng)進入虛擬化模式運行。在虛擬化模式下,MiniVMM 僅處理部分虛擬化事件,包括處理器虛擬化與部分內(nèi)存虛擬化等。這是因為 MiniVMM 的目的是虛擬機指紋的模擬,而不是實現(xiàn)一個類似于 Xen 的完整的虛擬機系統(tǒng)。MiniVMM 基于兩個關(guān)鍵組件實現(xiàn)了虛擬機指紋的模擬:虛擬機指紋模擬框架(Fingerprints Emulation Framework)和虛擬機指紋數(shù)據(jù)庫(Commodity VMMs Fingerprints Database)。指紋模擬框架實現(xiàn)了與具體虛擬機無關(guān)的指紋模擬技術(shù),主要是捕獲在虛擬化模式運行的操作系統(tǒng)產(chǎn)生的敏感事件并提供了事件處理的通用框架。當捕獲到敏感事件后,指紋模擬框架發(fā)送事件的相關(guān)信息到指紋數(shù)據(jù)庫以獲取與當前欲模擬的虛擬機相關(guān)的指紋信息,最后根據(jù)虛擬機相關(guān)的指紋信息返回相應特征。與現(xiàn)有基于虛擬機的安全防御技術(shù)相比,MiniVMM 支持本地模式與虛擬化模式間的雙向動態(tài)遷移,這種機制可以保證 MiniVMM 的引入不增加可信代碼運行環(huán)境的性能開銷。 MiniVMM 實現(xiàn)MiniVMM 的實現(xiàn)基礎是硬件虛擬化技術(shù)。Intel VT 技術(shù)于 2006 年推出,目前包括面向 x86 處理器的 VTx 技術(shù)與面向安騰處理器的 VTi 技術(shù),由于 MiniVMM針對的是個人計算平臺上普遍使用的 x86 處理器,因此 MiniVMM 的原型系統(tǒng)基于 VTx 技術(shù)實現(xiàn),因此本文后面提及的 VT 特指 VTx 技術(shù)。圖 6 Intel VTx 體系結(jié)構(gòu)Intel VT 技術(shù)的核心是給 x86 處理器中各種敏感指令的執(zhí)行都增加產(chǎn)生自陷(Trap)的功能。如圖 所示,VT 技術(shù)使得處理器運行在兩種不同的模式下,即 VMX root 模式和 VMX nonroot 模式。這兩種模式都支持 03 的 4 個特權(quán)級。客戶虛擬系統(tǒng)及其應用程序運行在 VMX nonroot 模式下,虛擬機監(jiān)視器運行在VMX root 模式下。VT 引入了兩種狀態(tài)轉(zhuǎn)換,從 root 模式轉(zhuǎn)換到 nonroot 模式稱之為 VM Entry,反之則稱之為 VM Exit。VM Entry 和 VM Exit 都會重新加載控制寄存器 CR3,以便虛擬機監(jiān)視器和客戶操作系統(tǒng)有不同的地址空間。與傳統(tǒng) x86處理器相比,VT 處理器最大的不同就是當處理器在 nonroot 模式下運行時,敏感指令的執(zhí)行將會導致 VM Exit,例如執(zhí)行 CPUID、mov CRRDMSR、WDMSR等指令會無條件地觸發(fā) VM Exit;而其它的指令、中斷和異常是否觸發(fā) VM Exit則由新引入的虛擬機控制結(jié)構(gòu)(Virtual Machine Control Structure,VMCS)管理。這種機制為虛擬機監(jiān)視器解釋執(zhí)行這些指令和異常提供了有效支持。VM Entry 會先加載客戶系統(tǒng)狀態(tài)區(qū)域的 VMCS,然后進入 VMX nonroot 模式,并且立即引發(fā)中斷。這樣,虛擬機監(jiān)視器就可以通過對中斷描述符表的修改,在系統(tǒng)進入 VMX nonroot 的第一時間觸發(fā)事件,以便模擬事件的傳遞。VM Exit會保存處理器狀態(tài)到客戶系統(tǒng)狀態(tài)區(qū)域,并且加載宿主操作系統(tǒng)狀態(tài)區(qū)域的信息,然后返回虛擬機監(jiān)視器。所有的 VM Exit 使用公共的進入虛擬機監(jiān)視器的入口點(Entry Point),并且每次 VM Exit 都會提供引發(fā) VM Exit 的詳細原因,以便虛擬機監(jiān)視器進行相應的處理。通過 VMCS 的設置,MiniVMM 可以配置處理器使每次執(zhí)行與模擬指紋相關(guān)的指令時均產(chǎn)生 VM Exit 事件,從而使得 MiniVMM 捕獲到此事件,進而執(zhí)行指紋模擬操作。通過動態(tài)加載 MiniVMM 來模擬虛擬機指紋的具體運行流程如圖 ,主要包括以下幾個步驟:圖 7 MiniVMM 的指令流模型1. 加載 MiniVMM 驅(qū)動。由于只有在內(nèi)核態(tài)才能執(zhí)行 Intel VT 技術(shù)引入的新指令和處理各類 VM Exit 事件,因此必須以 Windows 內(nèi)核驅(qū)動的形式實現(xiàn)MiniVMM,以使其能夠進入操作系統(tǒng)內(nèi)核執(zhí)行特權(quán)指令。2. 在所有邏輯處理器上啟用 VMX 模式。MiniVMM 通過設置 CR4 控制寄存器中為 VT 新增的相應控制位來啟動 VMX 模式。接著,MiniVMM 在非分頁內(nèi)存上創(chuàng)建 VMXON 區(qū)段,最后通過傳遞 VMXON 區(qū)段的物理地址執(zhí)行 VMXON,此操作必須在所有的邏輯處理器上均執(zhí)行一遍。所謂邏輯處理器,就是從操作系統(tǒng)的角度,能夠提供完整處理器計算功能的處理器單元。例如,對于多核處理器,每個核即為一個邏輯處理器;而對于超線程(HyperThread)處理器,每個超線程就是一個邏輯處理器。3. 設置 VMCS。通過執(zhí)行 VMXON 啟用 VMX 后,處理器將處于 VM root模式。此時,MiniVMM 將在非分頁內(nèi)存上創(chuàng)建 VMCS 并設置相應的標志以使得相應特權(quán)操作激發(fā)VM Exit事件。例如,為了要監(jiān)視CR3寄存器的變化,MiniVMM需要將 VMCS 中的“CR3target count”比特位設為零使 CR3 的修改產(chǎn)生 VM Exit事件。為了模擬無效指令等與處理器自陷相關(guān)的指紋,MiniVMM 需要將 VMCS中的“nonmaskable interrupt (NMI) exiting” 設置為 1。此外,需要設置兩個位圖表(Bitmap Table)來更加精確地控制如何產(chǎn)生 VM Exit 事件:第一個是異??刂莆粓D表,包括 32 個比特位,如某個比特位被置 1,則相應的異常將會激發(fā) VM Exit事件;第二個是 I/O 位圖表控制不同的 I/O 端口訪問是否激發(fā) VM Exit 事件。之后,MiniVMM 通過調(diào)用 VMWRITE 來初始化 VMCS 的客戶虛擬系統(tǒng)狀態(tài)(Guest State),主要包括當從VMX root模式切換到VMX nonroot模式(VM Entry)時需要的處理器執(zhí)行上下文等。最后,MiniVMM 將設置棧指針寄存器(ESP)與指令寄存器(EIP)以控制客戶虛擬系統(tǒng)將要執(zhí)行的指令。4. 從 VMX root 模式切換到 VMX nonroot 模式(VM Entry)。通過以上復雜的準備工作,MiniVMM 已經(jīng)完成了輕量級虛擬機的創(chuàng)建,接著通過調(diào)用VMLUNCH 將處于在本地運行狀態(tài)的宿主操作系統(tǒng)動態(tài)遷移到 MiniVMM 之上,被遷移的操作系統(tǒng)將在虛擬化狀態(tài)下繼續(xù)運行。5. VM Exit 事件處理。通過在第三步中對 VMCS 做了相應配置,所有在 VMX nonroot 模式下與探測虛擬機指紋相關(guān)的指令將會觸發(fā) VM Exit 事件,而MiniVMM 將會捕獲該事件,并提取模擬虛擬機指紋所需的相關(guān)信息,進而執(zhí)行指紋模擬操作,指紋模擬的具體實現(xiàn)將在下一節(jié)(虛擬機的指紋模擬)做詳細介紹。6. 在所有邏輯處理器上禁用 VMX 模式。在結(jié)束指紋模擬后,MiniVMM 將結(jié)束虛擬機監(jiān)視器。MiniVMM 首先釋放占用的所有內(nèi)存資源,接著在所有處理器調(diào)用 VMMOFF 以禁用 VMX 模式。至此,MiniVMM 完成了將操作系統(tǒng)從虛擬化狀態(tài)切換回本地化運行狀態(tài)的狀態(tài)轉(zhuǎn)換。 虛擬機的指紋模擬Tal Garfinkel 等已經(jīng)在其發(fā)表于 HotOS 2007 的文章中詳細分析了虛擬機指紋的分類與相應的檢測技術(shù)?;谒麄兊墓ぷ鳎疚膶⒃敿毭枋?MiniVMM 如何實現(xiàn)這幾類虛擬機指紋。在 MiniVMM 的原型系統(tǒng)中,指紋數(shù)據(jù)庫主要收集的是目前應用最廣泛的虛擬機的指紋,包括 Xen、VMware(Workstation 和 ESX Server)、VirtualPC 和 Parallels Workstation。盡管原型系統(tǒng)沒有實現(xiàn)所有的虛擬機的所有指紋,但是 MiniVMM 的指紋模擬框架已經(jīng)提供了模擬所有虛擬化技術(shù)導致的差異的基礎實現(xiàn),基于指紋模擬框架很容易進行擴展以支持更多的指紋模擬。與試圖隱藏虛擬機特征的技術(shù)不同,MiniVMM 具有虛擬機監(jiān)視器的本質(zhì)特征,通過模擬指紋而使其具有其它虛擬機的指紋征遠比隱藏一個虛擬機的指紋更具可行性。 邏輯指紋邏輯指紋是指計算機物理硬件系統(tǒng)與虛擬化的硬件系統(tǒng)提供的不同接口之間的語義差異。目前,絕大部分的虛擬機指紋探測技術(shù)均是通過發(fā)現(xiàn)運行環(huán)境與 x86體系結(jié)構(gòu)的差異來判斷虛擬機的存在的,包括 VMware Player 和 Microsoft Virtual PC 等。 處理器指紋處理器指紋是由虛擬處理器與物理處理器間的差異導致的,而構(gòu)造一個與物理處理器完全一致的透明的虛擬處理器是十分困難的。如 節(jié)(硬件抽象層的虛擬機技術(shù))所述,現(xiàn)有的虛擬機監(jiān)視器均需要有意產(chǎn)生處理器執(zhí)行特定指令時的語義差異以便于進行客戶與宿主運行環(huán)境的通信。目前,虛擬機監(jiān)視器主要使用兩種方式來構(gòu)造客戶與宿主運行環(huán)境間的通信信道:虛擬機監(jiān)視器的私有端口的 I/O 操作和特殊的處理器中斷。l 私有端口的 I/O 操作為了模擬此類指紋,MiniVMM 需要啟用 I/O 端口控制位圖表,并根據(jù)指紋庫獲取欲模擬的虛擬機監(jiān)視器的私有端口號,將此 I/O 端口對應的比特位置 1。此后,在虛擬化模式運行的操作系統(tǒng)中,任何訪問這些端口的 I/O 操作均會觸發(fā) VM Exit事件。MiniVMM 的指紋模擬框架將捕獲此事件并通知虛擬機指紋庫。而虛擬機指紋庫則負責具體的通信語義的模擬。這種技術(shù)框架適用于所有基于私有端口通信導致的虛擬機指紋模擬。VMware Workstation 是一個典型的利用私有端口進行客戶與宿主環(huán)境通信的虛擬機產(chǎn)品,其私有端口號為 0x5658(字符串“VX”對應的 ASCII 碼)?,F(xiàn)已有多種 VMaware 惡意代碼利用私用端口通信進行虛擬機指紋探測,如病毒 W32/Polip等。此外,還有其它一些工具也利用這種技術(shù)檢測虛擬機的存在,包括 jerry和 checkvm (一個隨 VMware 的開源 VMware tools一同發(fā)布的工具)。l 處理器中斷與 VMware 利用私有端口進行客戶與宿主環(huán)境間的通信不同,微軟的 Virtual PC 依賴于執(zhí)行非法指令產(chǎn)生的異常將會被虛擬機監(jiān)視器捕獲這一機制來實現(xiàn)客戶與宿主環(huán)境間的通信。通過逆向工程分析 Virtual PC,Peter Ferrie 發(fā)現(xiàn)了相應的通信指令流:Parallels Workstation 則使用了兩種方式來實現(xiàn)客戶與宿主環(huán)境間的通信。一種通過執(zhí)行 BOUND 指令使客戶操作系統(tǒng)產(chǎn)生異常,進而與虛擬機監(jiān)視器進行通信;另一種是直接執(zhí)行中斷指令(INT 0x1B)。從實現(xiàn)的角度看,無論是執(zhí)行非法指令、BOUND 指令或是 INT 指令,均利用了自陷/異?!东@這一通信模式。為了模擬此類指紋,MiniVMM 啟動了 VMCS 中控制中斷的標志位—“NMI(NonMaskable Interrupt) exiting”。啟用了此標志位后,BOUND、INT 1B 以及非法指令的執(zhí)行均會觸發(fā) VM Exit 事件。MiniVMM 的虛擬機指紋模擬框架負責獲取中斷的詳細描述并解析出各個寄存器的值等信息(如非法指令的二進制碼等),并將這些信息傳輸給虛擬機指紋數(shù)據(jù)庫,由指紋數(shù)據(jù)庫負責根據(jù)當前需要模擬的虛擬機實現(xiàn)具體的指紋語義信息。 片外(OffChip)指紋片外指紋指由虛擬硬件和物理硬件間的差異導致的虛擬機特征信息。例如,目前的虛擬機軟件很難正確模擬出最新的芯片組,因此,為了簡化實現(xiàn),這些虛擬機往往只模擬了某一種能夠支持虛擬機所有功能但是實現(xiàn)更為簡便的芯片組,VMware 模擬的就是 Intel i440bx 芯片組。I/O 設備的虛擬化實現(xiàn)也將導致片外指紋的存在。例如,VMware Workstation虛擬出多種 I/O 設備,包括 IDE/SCSI 磁盤、聲卡、顯卡和網(wǎng)卡等,而所有這些設備均具有 VMware 自己特殊的設備標識,而且安裝了旨在提升虛擬機性能的VMware Tools 后又將會安裝 VMware 特定的設備驅(qū)動。基于這些虛擬機的特殊標志,很容易檢測出虛擬機的存在。為了模擬此類虛擬指紋,MiniVMM 修改系統(tǒng)管理 BIOS 的相關(guān)內(nèi)容(System Management BIOS,SMBIOS ),因為除了通過 I/O 指令獲取的設備信息外,其它所有的硬件信息均是通過 SMBIOS 獲取的。MiniVMM 的虛擬機指紋數(shù)據(jù)庫保存了目前常用虛擬機軟件的 SMBIOS。在啟動 MiniVMM 并切換到虛擬化模式前,MiniVMM 將會備份現(xiàn)有系統(tǒng)的 SMBIOS 內(nèi)容,并將現(xiàn)有內(nèi)容替換為欲模擬的虛擬機的 SMBIOS。而在準備切換回本地模式前,MiniVMM 將會恢復原有 SMBIOS內(nèi)容。從實現(xiàn)的角度,SMBIOS 本質(zhì)上就是一組地址不連續(xù)的物理內(nèi)存區(qū)域,而用戶態(tài)應用程序均不能直接訪問這組內(nèi)存區(qū)域。MiniVMM 基于 Dell 的開源項目 Libsmbios實現(xiàn)了對 SMBIOS 的操作,Libsmbios 基于直接操作物理內(nèi)存對象(\Device\PhysicalMemory)的技術(shù)在用戶態(tài)實現(xiàn)了對 SMBIOS 的讀寫。然而從 Windows Server 2003 SP1 開始,Windows 內(nèi)核不再導出此物理內(nèi)存對象,為了解決這一問題,MiniVMM 實現(xiàn)了一個內(nèi)核驅(qū)動實現(xiàn)了對物理內(nèi)存的訪問。此外,還有虛擬機監(jiān)視器由于重新實現(xiàn)敏感指令的語義導致了片外指紋的產(chǎn)生,獲取處理器標識信息的 CPUID 指令就是一個典型的例子。微
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1