本發(fā)明涉及虛擬機安全技術領域,特別是指一種虛擬機防逃逸裝置。
背景技術:
虛擬化技術可以將一臺計算機虛擬為多臺邏輯計算機,其中每臺邏輯計算機可以運行不同的操作系統(tǒng),并且不同邏輯計算機中的應用程序可以在相互獨立的空間內運行而互不影響,從而顯著提高計算機的工作效率以及計算資源的利用率,是合理分配計算資源的一種有效手段。通常,將物理計算機中虛擬出的邏輯計算機成為虛擬機,而將物理計算機稱為宿主機。目前,虛擬機化技術在互聯(lián)網云服務方面已經得到了廣泛應用。
虛擬機是宿主機中一個相對獨立的計算環(huán)境,類似于一個沙盒,具有較好的安全特性,但是,由于虛擬化軟件自身的缺陷與不足,針對虛擬機的安全攻擊仍然時有發(fā)生,其中最主要一種就是虛擬機逃逸攻擊。
所謂虛擬機逃逸攻擊是指攻擊者從虛擬機環(huán)境中逃逸出來,從而能夠對宿主機產生影響甚至獲得控制,一旦宿主機受到攻擊,則攻擊者可以反過來輕易地控制該宿主機內的多個虛擬機,并能夠訪問到該宿主機中的大量敏感數(shù)據(jù),可見這種攻擊是一種非常危險的安全威脅。
由于虛擬機逃逸攻擊主要涉及虛擬機與虛擬機監(jiān)視器(也被稱為hypervisor)之間的交互、共享資源的訪問、對宿主機上其他虛擬機的影響,因此可以設計針對這幾個關鍵屬性的安全預防措施?,F(xiàn)有技術中,為了使得攻擊者難以攻破hypervisor,可以設計更加健壯的hypervisor,使得攻擊者無法輕易獲得權限,并且健壯的hypervisor還可以預防在虛擬化環(huán)境中其他更多的安全隱患。此外,為了防止逃逸攻擊成功后,攻擊者攻擊其他的虛擬機,可以設計防止攻擊蔓延的技術,將災難降到最低。
但是,現(xiàn)有技術中的防護措施大都偏向于一個方面,難以對宿主機和虛擬機提供全方位的防護,此外,現(xiàn)有技術中的防護手段也存在效率低下、安全效果較差等等問題。
技術實現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提出一種虛擬機防逃逸裝置,該裝置可以對宿主機和虛擬機提供全方位、高效率、高等級的安全防護,能夠極大降低虛擬機逃逸攻擊的發(fā)生概率和影響危害。
基于上述目的,本發(fā)明提供的技術方案是:
一種虛擬機防逃逸裝置,其包括:
內部監(jiān)控模塊,用于從內部對目標虛擬機進行監(jiān)控;
外部監(jiān)控模塊,用于從外部對目標虛擬機進行監(jiān)控;
入侵檢測模塊,用于檢測對于目標虛擬機的入侵行為;
完整性保護模塊,用于保護數(shù)據(jù)及傳輸信息的完整性。
優(yōu)選地,本裝置還包括:
日志記錄模塊,用于記錄宿主機和目標虛擬機的軟件信息和硬件信息。
優(yōu)選地,本裝置還包括:
蜜罐模塊,用于引誘惡意攻擊。
優(yōu)選地,本裝置還包括:
惡意代碼檢測模塊,用于檢測惡意代碼的存在和行為。
優(yōu)選地,內部監(jiān)控模塊的工作方式為:
向目標虛擬機內部署鉤子函數(shù)和跳轉模塊;
通過事先插入目標虛擬機操作系統(tǒng)內核的內存保護模塊對鉤子函數(shù)和跳轉模塊所占用的內存空間提供安全保護;
通過鉤子函數(shù)對目標虛擬機中發(fā)生的安全事件進行攔截;
通過跳轉模塊將安全事件傳遞到目標虛擬機外;
使用事先定義的安全策略對安全事件做出響應。
優(yōu)選地,入侵檢測模塊的工作方式為:
借助虛擬機自省技術從外部對目標虛擬機進行入侵檢測;
若檢測到入侵,則使用事先定義的安全策略對入侵做出響應。
優(yōu)選地,完整性保護模塊還包含用于對虛擬機監(jiān)視器提供完整性保護的子模塊,該子模塊具有不可繞過的內存鎖以及受限制的指針索引。
優(yōu)選地,完整性保護模塊包括:
周期性文件保護子模塊,用于周期性計算文件的哈希值,判斷文件是否被篡改;
實時文件保護子模塊,用于實時攔截對文件的操作。
從上面的敘述可以看出,本發(fā)明的有益效果在于:
1、本發(fā)明裝置通過內部監(jiān)控模塊和外部監(jiān)控模塊對虛擬機進行全方位監(jiān)控,其中,內部監(jiān)控模塊可以直接獲得操作系統(tǒng)級語義,不需要語義重構,性能開銷較低,而外部監(jiān)控模塊雖需要為語義重構付出一定的性能代價,但通用性較好,不需要對虛擬機系統(tǒng)進行改動;
2、本發(fā)明裝置中的入侵檢測模塊可以檢測外界對虛擬機的入侵行為,從而能夠及時阻斷攻擊或采取其他的必要措施,將攻擊帶來的損害降到最低,防止攻擊者逃逸到宿主機中;
3、本發(fā)明裝置中的完整性保護模塊可以對虛擬機、宿主機中的文件、數(shù)據(jù)以及傳輸信息進行完整性保護,防止文件和數(shù)據(jù)被篡改,尤其能夠對本發(fā)明裝置自身提供保護,進一步提高了本發(fā)明的安全性。
總之,本發(fā)明可以對宿主機和虛擬機提供全方位、高效率、高等級的安全防護,能夠極大降低虛擬機逃逸攻擊的發(fā)生概率和影響危害,是對現(xiàn)有技術的一種重要改進。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例中一種虛擬機防逃逸裝置的結構框圖;
圖2為本發(fā)明實施例中另一種虛擬機防逃逸裝置的結構框圖;
圖3為內部監(jiān)控模塊的工作方式流程圖;
圖4為入侵檢測模塊的工作方式流程圖;
圖5為完整性保護模塊的結構框圖。
具體實施方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,以下結合具體實施例,并參照附圖,對本發(fā)明進一步詳細說明。
一種虛擬機防逃逸裝置,其包括:
內部監(jiān)控模塊,用于從內部對目標虛擬機進行監(jiān)控;
外部監(jiān)控模塊,用于從外部對目標虛擬機進行監(jiān)控;
入侵檢測模塊,用于檢測對于目標虛擬機的入侵行為;
完整性保護模塊,用于保護數(shù)據(jù)及傳輸信息的完整性。
優(yōu)選地,本裝置還包括:
日志記錄模塊,用于記錄宿主機和目標虛擬機的軟件信息和硬件信息。
優(yōu)選地,本裝置還包括:
蜜罐模塊,用于引誘惡意攻擊。
優(yōu)選地,本裝置還包括:
惡意代碼檢測模塊,用于檢測惡意代碼的存在和行為。
優(yōu)選地,內部監(jiān)控模塊的工作方式為:
向目標虛擬機內部署鉤子函數(shù)和跳轉模塊;
通過事先插入目標虛擬機操作系統(tǒng)內核的內存保護模塊對鉤子函數(shù)和跳轉模塊所占用的內存空間提供安全保護;
通過鉤子函數(shù)對目標虛擬機中發(fā)生的安全事件進行攔截;
通過跳轉模塊將安全事件傳遞到目標虛擬機外;
使用事先定義的安全策略對安全事件做出響應。
優(yōu)選地,入侵檢測模塊的工作方式為:
借助虛擬機自省技術從外部對目標虛擬機進行入侵檢測;
若檢測到入侵,則使用事先定義的安全策略對入侵做出響應。
優(yōu)選地,完整性保護模塊還包含用于對虛擬機監(jiān)視器提供完整性保護的子模塊,該子模塊具有不可繞過的內存鎖以及受限制的指針索引。
優(yōu)選地,完整性保護模塊包括:
周期性文件保護子模塊,用于周期性計算文件的哈希值,判斷文件是否被篡改;
實時文件保護子模塊,用于實時攔截對文件的操作。
圖1所示為一種虛擬機防逃逸裝置,其包括:
內部監(jiān)控模塊101,用于從內部對目標虛擬機進行監(jiān)控。
外部監(jiān)控模塊102,用于從外部對目標虛擬機進行監(jiān)控。外部監(jiān)控是指在目標虛擬機外部,由位于安全域的安全工具按照某種策略對其進行檢測。外部監(jiān)控包含監(jiān)控點,監(jiān)控點部署在虛擬機監(jiān)視器中,它是安全域中的安全工具和目標虛擬機之間通信的橋梁。監(jiān)控點可以攔截目標虛擬機中發(fā)生的事件,重構出高級語義并傳遞給安全工具。在該模塊中,安全工具根據(jù)安全策略產生的響應,通過監(jiān)控點來控制目標虛擬機。由于虛擬機監(jiān)視器將安全工具與目標虛擬機隔離開來,因而增強了安全工具的安全性,另一方面,由于虛擬機監(jiān)視器位于目標虛擬機的底層,因此監(jiān)控點可以觀測到目標虛擬機的狀態(tài)(例如CPU信息、內存頁面等),在虛擬機監(jiān)視器的輔助下,安全工具能夠對目標虛擬機進行檢測。一般來說,外部監(jiān)控可以包含兩種基本功能:事件截獲和語義重構。事件截獲是指攔截虛擬機中發(fā)生的某些事件,從而觸發(fā)安全工具對其進行檢測。由于虛擬機監(jiān)視器位于目標虛擬機的下層,因此只能獲取低級語義(例如寄存器和內存頁面),而監(jiān)控工具是針對操作系統(tǒng)層的語義,因此兩者之間存在語義鴻溝。為了使監(jiān)控工具能夠“理解”目標虛擬機中的事件,因此需要進行語義重構。語義重構是指由低級語義重構出高級語義,語義重構的過程與客戶操作系統(tǒng)的類型和版本密切相關,可以通過某些寄存器或者內存地址來解析出內核關鍵的數(shù)據(jù)結構。
入侵檢測模塊103,用于檢測對于目標虛擬機的入侵行為。入侵檢測模塊用于承載入侵檢測系統(tǒng)(Intrusion Detection System,IDS),能夠發(fā)現(xiàn)在非授權的情況下試圖存取信息、處理信息或者破壞系統(tǒng)的行為。根據(jù)收集信息的來源不同,IDS可以分為基于網絡的IDS(network-based IDS,簡稱NIDS)和基于主機的IDS(host-based IDS,簡稱RIDS)。NIDS部署在局域網中,實時地分析網絡中的流量,而HIDS則是通過分析系統(tǒng)的內部狀態(tài)和日志而發(fā)現(xiàn)入侵行為的。
完整性保護模塊104,用于保護數(shù)據(jù)及傳輸信息的完整性。
本發(fā)明可以對宿主機和虛擬機提供全方位、高效率、高等級的安全防護,能夠極大降低虛擬機逃逸攻擊的發(fā)生概率和影響危害。
圖2所示為另一種虛擬機防逃逸裝置,其包括:
內部監(jiān)控模塊101,用于從內部對目標虛擬機進行監(jiān)控。
外部監(jiān)控模塊102,用于從外部對目標虛擬機進行監(jiān)控。
入侵檢測模塊103,用于檢測對于目標虛擬機的入侵行為。
完整性保護模塊104,用于保護數(shù)據(jù)及傳輸信息的完整性。
日志記錄模塊105,用于記錄宿主機和目標虛擬機的軟件信息和硬件信息。日志記錄模塊可以記錄系統(tǒng)中硬件、軟件和系統(tǒng)的問題信息,同時還可以監(jiān)視系統(tǒng)中發(fā)生的事件,這樣,系統(tǒng)管理員就可以通過日志來檢查錯誤發(fā)生的原因,并可尋找攻擊者留下的痕跡。
蜜罐模塊106,用于引誘惡意攻擊。蜜罐是通過構造類似于真實的系統(tǒng)環(huán)境,能夠引誘惡意攻擊,并分析攻擊者的行為特征。本實施例可以采用內部蜜罐、外部蜜罐或同時采用內部蜜罐和外部蜜罐。本實施例中的蜜罐可以采用Honeyd。Honeyd是一種模擬計算機的虛擬蜜罐框架,它不僅能夠模擬不同操作系統(tǒng)的網絡棧,而且可以為大量虛擬系統(tǒng)提供任意的路由拓撲。通過部署Honeyd可應用于蠕蟲檢測、垃圾郵件防御等系統(tǒng)安全領域,此外,還可以基于虛擬化技術通過內存共享和推遲綁定資源技術來支持在單個物理節(jié)點上同時模擬上萬個高度逼真的蜜罐,從而增強了蜜罐的可擴展性。為了探測本地的蠕蟲,可以通過修改蜜罐來提高檢測的準確性,同時具有低誤報率。此外,還可以通過管理專用網絡中的大量高交互式虛擬蜜罐來建立分布式網絡攻擊拘留中心,這種方法能夠提供網絡攻擊的多樣化視圖,同時便于進行管理。
惡意代碼檢測模塊107,用于檢測惡意代碼的存在和行為。惡意代碼是指按照攻擊者的意圖在系統(tǒng)中執(zhí)行的程序,一般具有隱蔽性,不易被監(jiān)控工具發(fā)現(xiàn)。如果將檢測工具都部署在被監(jiān)控的系統(tǒng)中,則容易遭受到攻擊。為了解決上述問題,本模塊可以在被監(jiān)控系統(tǒng)的外部檢測內部的惡意軟件。由于檢測工具與被監(jiān)控系統(tǒng)隔離在不同的虛擬機中,因此需要解決語義鴻溝的問題。通過語義重構,在虛擬機外部的檢測軟件能夠發(fā)現(xiàn)虛擬機中的惡意軟件。為此,可以利用因特爾(Intel)的硬件輔助虛擬化技術對可疑程序程序進行跟蹤,同時對被監(jiān)控系統(tǒng)完全透明。由于在虛擬機內部和外部進行觀測時,兩者之間具有一定的時間差,如果在這段時間內進程創(chuàng)建和撤銷很頻繁,則會對檢測結果帶來一定程度的誤差。為此,可利用統(tǒng)計學的方法消除在兩者之間觀測帶來的干擾,從而提高了檢測的精確性。
該是實施例進一步完善了虛擬機防逃逸裝置,能夠提供更多的安全防護。
圖3所示為上述實施例中內部監(jiān)控模塊101的工作方式流程圖,其包括:
步驟301,向目標虛擬機內部署鉤子函數(shù)和跳轉模塊;
步驟302,通過事先插入目標虛擬機操作系統(tǒng)內核的內存保護模塊對鉤子函數(shù)和跳轉模塊所占用的內存空間提供安全保護;
步驟303,通過鉤子函數(shù)對目標虛擬機中發(fā)生的安全事件進行攔截;
步驟304,通過跳轉模塊將安全事件傳遞到目標虛擬機外;
步驟305,使用事先定義的安全策略對安全事件做出響應。
具體來說,可以將用于內部監(jiān)控的安全工具部署在一個隔離的安全域中,該安全工具支持在虛擬機的客戶操作系統(tǒng)的任何位置部署鉤子函數(shù),這些鉤子函數(shù)可以攔截某些事件,例如進程創(chuàng)建、文件讀寫等。由于虛擬機操作系統(tǒng)不可信,因此這些鉤子函數(shù)需要得到特殊的保護,為此,可以由內存保護模塊對鉤子函數(shù)所在的內存頁面進行保護,從而防止惡意攻擊者篡改。在探測到虛擬機中發(fā)生某些安全事件時,鉤子函數(shù)主動地陷入到虛擬機監(jiān)視器中,然后,通過跳轉模塊,將虛擬機中發(fā)生的事件傳遞到虛擬機的外面。最后,安全工具執(zhí)行某種安全策略,從而對虛擬機中的安全事件采取響應措施。在該架構中,跳轉模塊的功能是虛擬機與安全域之間的通信橋梁。為了防止惡意攻擊者篡改,截獲事件的鉤子函數(shù)和跳轉模塊可以是自包含的(self-contained),因而可以方便地被內存保護模塊所保護。這種架構的優(yōu)勢在于,事件截獲在虛擬機中實現(xiàn),而且可以直接獲取操作系統(tǒng)級語義。由于不需要進行語義重構,因此減少了性能開銷。
圖4所示為上述實施例中入侵檢測模塊103的工作方式流程圖,其包括:
步驟401,借助虛擬機自省技術從外部對目標虛擬機進行入侵檢測;
步驟402,若檢測到入侵,則使用事先定義的安全策略對入侵做出響應。
這種架構能夠利用虛擬化技術將入侵檢測系統(tǒng)從被監(jiān)控系統(tǒng)中轉移出來,使得虛擬機監(jiān)視器能夠直接觀察到被監(jiān)控系統(tǒng)的內部狀態(tài),并通過直接訪問其內存來重構出客戶操作系統(tǒng)的內核數(shù)據(jù)結構,進而通過單獨運行的入侵檢測系統(tǒng)來進行檢測,這種在虛擬機外部監(jiān)控虛擬機內部運行狀態(tài)的方法稱為虛擬機自省。
圖5所示為上述實施例中完整性保護模塊104的結構框圖,其包含:
虛擬機監(jiān)視器保護子模塊501,該子模塊具有不可繞過的內存鎖以及受限制的指針索引;其中,不可繞過的內存鎖通過設置頁表中的某些位來實現(xiàn)惡意程序修改時導致的缺頁故障,而正常的頁表更新則通過原子操作來實現(xiàn);受限制的指針索引是指通過構造控制流程圖來限制指針的位置;不可繞過的內存鎖保證了虛擬機監(jiān)視器代碼的完整性,不可繞過的內存鎖和受限制的指針索引保證了虛擬機管理數(shù)據(jù)的完整性。不可繞過的內存鎖可以直接通過擴展虛擬機監(jiān)視器的內存管理模塊來實現(xiàn),受限制的指針索引可以通過擴展開源的LLVM編譯器并重新編譯虛擬機監(jiān)視器的代碼而獲得。
周期性文件保護子模塊502,用于周期性計算文件的哈希值,判斷文件是否被篡改。
實時文件保護子模塊503,用于實時攔截對文件的操作。
該實施例給出了完整性保護模塊的具體工作方式,該方式具有很好的防護效果。
所屬領域的普通技術人員應當理解:以上任何實施例的討論僅為示例性的,并非旨在暗示本公開的范圍(包括權利要求)被限于這些例子;在本發(fā)明的思路下,以上實施例或者不同實施例中的技術特征之間也可以進行組合,步驟可以以任意順序實現(xiàn),并存在如上所述的本發(fā)明的不同方面的許多其它變化,為了簡明它們沒有在細節(jié)中提供。
另外,為簡化說明和討論,并且為了不會使本發(fā)明難以理解,在所提供的附圖中可以示出或可以不示出與集成電路(IC)芯片和其它部件的公知的電源/接地連接。此外,可以以框圖的形式示出裝置,以便避免使本發(fā)明難以理解,并且這也考慮了以下事實,即關于這些框圖裝置的實施方式的細節(jié)是高度取決于將要實施本發(fā)明的平臺的(即,這些細節(jié)應當完全處于本領域技術人員的理解范圍內)。在闡述了具體細節(jié)(例如,電路)以描述本發(fā)明的示例性實施例的情況下,對本領域技術人員來說顯而易見的是,可以在沒有這些具體細節(jié)的情況下或者這些具體細節(jié)有變化的情況下實施本發(fā)明。因此,這些描述應被認為是說明性的而不是限制性的。
盡管已經結合了本發(fā)明的具體實施例對本發(fā)明進行了描述,但是根據(jù)前面的描述,這些實施例的很多替換、修改和變型對本領域普通技術人員來說將是顯而易見的。例如,其它存儲器架構(例如,動態(tài)RAM(DRAM))可以使用所討論的實施例。
本發(fā)明的實施例旨在涵蓋落入所附權利要求的寬泛范圍之內的所有這樣的替換、修改和變型。因此,凡在本發(fā)明的精神和原則之內,所做的任何省略、修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。