[發明專利]一種Windows平臺下檢測虛擬機監視器存在的方法有效
| 申請號: | 201110003479.0 | 申請日: | 2011-01-10 |
| 公開(公告)號: | CN102063594A | 公開(公告)日: | 2011-05-18 |
| 發明(設計)人: | 寧劍;劉波;陳林;肖楓濤;王天佐;陳新;張靜;馬曉龍;彭磊 | 申請(專利權)人: | 中國人民解放軍國防科學技術大學 |
| 主分類號: | G06F21/00 | 分類號: | G06F21/00;G06F9/455 |
| 代理公司: | 國防科技大學專利服務中心 43202 | 代理人: | 郭敏 |
| 地址: | 410073 湖*** | 國省代碼: | 湖南;43 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 windows 平臺 檢測 虛擬機 監視器 存在 方法 | ||
技術領域
本發明涉及檢測虛擬機監視器(VMM)存在的方法,尤指通過頁表緩沖寄存器差異來檢測虛擬機監視器存在的方法。
背景技術
在硬件虛擬化技術中,虛擬機監視器(Virtual?Machine?Monitor,VMM)是能夠為計算機系統創建高效、隔離的副本的軟件。由于VMM具有比客戶操作系統(Guest?OS)更高的權限,越來越多的惡意代碼利用VMM作為隱藏自身行為與提供惡意服務的平臺。對于這種惡意代碼的檢測技術主要以檢測VMM(Virtual?Machine?Monitor)存在特征為主,只有檢測了VMM存在,才能以此作為檢測這種新型惡意代碼存在的重要依據之一。傳統的檢測VMM方法目前有以下幾種:
(1)檢測邏輯差異。邏輯指紋是指計算機物理硬件系統與虛擬化的硬件系統提供的不同接口之間的語義差異。檢測邏輯差異就是通過發現運行環境與x86體系結構的差異來判斷VMM的存在。但是,這種檢測必須基于一個前提:虛擬機軟件為了簡化實現,只模擬了某一種能夠支持虛擬機所有功能但是實現更為簡便的芯片組,包括VMware?Player和Microsoft?Virtual?PC等。一旦虛擬機軟件精確模擬出相應的芯片組,這種檢測方法將失效。
(2)RedPill。RedPill項目通過在用戶模式運行一個單機語言指令SIDT,存儲處理機寄存器里中斷描述符列表寄存器(IDTR)的內容。通過判斷IDTR的地址范圍來確定當前操作系統是否運行在VMM之上。但是這種檢測方法存在著局限性:對于VMM直接運行在硬件環境上的情況,VMM并不把IDTR重定位到一個新地址,從而也就無法區分當前操作系統的運行環境。
(3)檢測時間差異。由于VMM需要通過某種特定的方式取得操作系統的控制權(通常通過捕獲特權指令),當VMM對特權指令產生下陷并模擬整個特權指令的執行過程最終把正常執行結果返回操作系統,這一系列動作會對特權指令的執行產生一個延遲。這種方法就是通過檢測特權指令在真實系統和VMM中執行時間的差異來判斷VMM的存在。對于這種檢測方法,部分VMM可以采取修改時間戳寄存器的方法避免檢查,所以這種檢測方法通用性不強。
以上三種方法雖然各具特色,從不同方面提出了基于不同環境對于VMM的檢測方法,但是三種方法受制于應用環境,通用性不強。
對于檢測VMM的方法,可以從VMM和客戶操作系統之間共享的系統資源差異入手,因為無論VMM怎么隱蔽自己,它總會占用或者消耗系統的資源,例如處理器、物理內存和磁盤空間,可能還有網絡帶寬。基于這種資源共享構架,可以從這些資源差異中發現VMM的特性,作為檢測VMM存在的方法,但目前還沒有通過頁表緩沖寄存器這種資源差異來檢測VMM存在的技術方案的公開報導。
發明內容
本發明要解決的技術問題在于:針對惡意代碼利用VMM作為隱藏自身行為與提供惡意服務的平臺的問題,提出一種通過資源差異來檢測VMM存在的方法,使用戶在通用環境下,實現對VMM存在的有效檢測,從而以此作為檢測以VMM為平臺的惡意代碼的重要依據,提高系統安全性。
為了解決上述技術問題,本發明的技術方案為:以CPU中的頁表緩沖寄存器為檢測目標,為兩個頁表指針分別分配內存地址——更改映射前地址和更改映射后地址。通過修改頁表項的指針地址,同時對頁表緩沖寄存器的內容不進行更新。在檢測程序產生一個特權指令之后,對目標頁表緩沖寄存器進行檢測,如果頁表緩沖寄存器在特權指令執行期間被更改,則證明系統中存在VMM;反之,如果頁表緩沖寄存器在特權指令運行前后沒有變化,則證明系統中不存在VMM。
定義:
A:更改映射前地址,即頁表項中存儲的原始物理地址。
B:更改映射后地址,即頁表項中存儲的更改以后的物理地址,明顯區別于A。
N(N為正整數):頁表緩沖寄存器大小。
PTE:Page?Table?Entry,頁表項,指頁表中的基本組成單位,其內容是當前頁表項對應的物理地址。
Allocated?PTEs:分配好內存空間且大小為N的一組頁表項。
Special?PTE:分配好內存空間且大小為1的頁表項。
具體技術方案為:
第一步、根據頁表緩沖寄存器大小N,通過Windows提供的函數Malloc()為Allocated?PTEs分配內存空間。同時,為另一個頁表項Special?PTE分配內存空間,這個內存空間用于存放更改映射后地址B。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國人民解放軍國防科學技術大學,未經中國人民解放軍國防科學技術大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110003479.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:向量化數據傳輸的方法和裝置
- 下一篇:一種耐磨耐熱麻口鑄鐵材料及制備方法





