您的位置:首頁(yè) >  新聞中心 > 云通訊資訊
  云通訊資訊
 

干貨分享-針對(duì)硬件虛擬化的虛擬機(jī)過(guò)程代碼分頁(yè)測(cè)量方法

來(lái)源:原創(chuàng)    時(shí)間:2018-02-26    瀏覽:0 次

    計(jì)算機(jī)操作系統(tǒng)的敏感數(shù)據(jù)、應(yīng)用程序的破壞,甚至是對(duì)主機(jī)進(jìn)程代碼的修改,以掩蓋它們的存在,嚴(yán)重威脅著關(guān)鍵業(yè)務(wù)的穩(wěn)定性,而云虛擬化技術(shù)是云計(jì)算平臺(tái)的核心技術(shù)之一。隨著云計(jì)算平臺(tái)信息的安全。【3】指出云服務(wù)提供商必須大量應(yīng)用自己的安全服務(wù),而云計(jì)算平臺(tái)的安全性成為人們關(guān)注的焦點(diǎn)。因此,在虛擬機(jī)中,云環(huán)境中的關(guān)鍵業(yè)務(wù)需要長(zhǎng)期穩(wěn)定運(yùn)行,度量用戶進(jìn)程代碼的完整性,通過(guò)惡意計(jì)算來(lái)檢測(cè)它是否發(fā)生了變化,并提供高質(zhì)量的服務(wù)。安全性和可用性是確保服務(wù)質(zhì)量的關(guān)鍵。

blob.png

    由國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)和其他重要角色發(fā)布的“完全虛擬化安全指南”指出傳統(tǒng)的基于主機(jī)的監(jiān)控系統(tǒng)是由惡意軟件托管的。安全威脅也適用于云計(jì)算環(huán)境中的虛擬機(jī)。很容易被繞過(guò)或攻擊,如hooka141,等虛擬業(yè)務(wù)程序部署在虛擬機(jī)上,一方面,虛擬機(jī)操作系統(tǒng)的存儲(chǔ)技術(shù)的發(fā)展不僅提高了資源的利用率,但也帶來(lái)了一些缺陷,如代碼的漏洞或不合理的內(nèi)部配置的安全性研究。另一方面,商業(yè)項(xiàng)目有了新的想法:在參考文獻(xiàn)[5-8],也有在虛擬體代碼的安全漏洞。

    指出,等等,如能偷獨(dú)立,強(qiáng)大的控制和高特權(quán)級(jí),等等。在虛擬機(jī)外部,虛擬機(jī)內(nèi)?。╒MI)9用于獲取虛擬機(jī)的內(nèi)部信息,該虛擬機(jī)可以監(jiān)視虛擬機(jī)中的進(jìn)程。解決遇到的問(wèn)題在傳統(tǒng)的基于主機(jī)的檢測(cè)過(guò)程,完整性驗(yàn)證過(guò)程一般由兩部分組成:測(cè)量部分負(fù)責(zé)采集信息系統(tǒng)內(nèi)發(fā)送給驗(yàn)證部分,和驗(yàn)證的一部分,負(fù)責(zé)保存原有的基礎(chǔ)價(jià)值。并與接收的測(cè)量信息進(jìn)行比較,驗(yàn)證其完整性。

    在云環(huán)境下虛擬機(jī)系統(tǒng)的測(cè)量方法中,根據(jù)測(cè)量部分的部署位置,可分為兩類:(1)在虛擬機(jī)中部署測(cè)量部分,并將測(cè)量部分部署到虛擬機(jī)管理系統(tǒng)中。第一種方法通過(guò)捕獲虛擬機(jī)內(nèi)的進(jìn)程行為獲取系統(tǒng)信息并將其發(fā)送到驗(yàn)證部分。

    這種方法可以獲得豐富的虛擬機(jī)系統(tǒng)信息,但主要有以下幾個(gè)方面的原因:1)依賴日標(biāo)準(zhǔn)虛擬機(jī)的版本,使得虛擬機(jī)內(nèi)部的惡意軟件攻擊的脆弱性不夠普遍,這就要求Hypervisor提供額外的保護(hù)措施。第二種方法是完成在虛擬機(jī)之外獲取信息風(fēng)險(xiǎn)證書(shū)的過(guò)程,例如參考[12-14],其中Ivin 2通過(guò)Xen提供的EControl和Xenstore接口在虛擬機(jī)之外執(zhí)行地址轉(zhuǎn)換和內(nèi)容定位。將虛擬機(jī)代碼逐頁(yè)復(fù)制到特權(quán)用戶可訪問(wèn)的存儲(chǔ)空間,以進(jìn)行完整性驗(yàn)證。該方法不需要修改虛擬機(jī),克服了在虛擬機(jī)中部署測(cè)量部分的缺點(diǎn)。但是它也面臨著:VMM層和虛擬機(jī)之間語(yǔ)義鴻溝的挑戰(zhàn)。

     2)現(xiàn)代操作系統(tǒng)按需分配物理內(nèi)存。在某種程度上,進(jìn)程代碼的一部分被加載到物理內(nèi)存中。由于其物理地址空間不一定是連續(xù)的,因此很難在WMM層中獲得完整的虛擬機(jī)進(jìn)程代碼。例如,VITDay需要確保虛擬機(jī)進(jìn)程代碼加載到內(nèi)存中,當(dāng)代碼段非常大時(shí),此實(shí)現(xiàn)將給上述問(wèn)題帶來(lái)嚴(yán)重的內(nèi)存消耗。

    提出了一種基于硬件虛擬化的虛擬機(jī)進(jìn)程代碼分頁(yè)測(cè)量方法。將虛擬機(jī)尋呼測(cè)量系統(tǒng)KⅤM5作為虛擬機(jī)監(jiān)控器,利用VMM層的虛擬路徑行為作為測(cè)量過(guò)程的觸發(fā)點(diǎn),實(shí)現(xiàn)對(duì)運(yùn)行過(guò)程的動(dòng)態(tài)測(cè)量。在相對(duì)地址偏移法的基礎(chǔ)上,對(duì)虛擬機(jī)中的進(jìn)程語(yǔ)義進(jìn)行重構(gòu),以解決不同版本虛擬機(jī)之間的語(yǔ)義差異,并提出了一種基于頁(yè)面的度量方法來(lái)驗(yàn)證虛擬機(jī)外部進(jìn)程代碼段的完整性。驗(yàn)證VMM的完整性,不需要修理。

    KVM是一個(gè)基于硬件輔助虛擬化的Linux內(nèi)核模塊.。它的實(shí)現(xiàn)需要Intel VT(Virtualization Technology)或AMD SVM(Secure VirtuMachine)技術(shù)的支持才能在根模式下運(yùn)行。管理虛擬機(jī)內(nèi)存和CPU,處理由異?;驁?zhí)行特權(quán)指令引起的VM退出事件。

    同時(shí),KVM采用MCS 2(虛擬機(jī)控制結(jié)構(gòu)2)在主機(jī)與虛擬機(jī)切換時(shí)保存硬件上下文環(huán)境,并能指定引發(fā)ⅤM退出的事件,ⅤMPM是基于虛擬機(jī)中的系統(tǒng)事件。主動(dòng)觸發(fā)虛擬機(jī)進(jìn)程代碼片段的度量VMPMS@有三個(gè)模塊:捕獲模塊、進(jìn)程代碼段。捕獲模塊負(fù)責(zé)捕獲虛擬機(jī)進(jìn)程,采用系統(tǒng)調(diào)用事件c獲取虛擬機(jī)進(jìn)程信息。例如,進(jìn)程名稱、開(kāi)始地址和結(jié)束地址等。根據(jù)語(yǔ)義重構(gòu)模塊傳遞的過(guò)程信息,根據(jù)虛擬機(jī)的物理頁(yè)面大小對(duì)進(jìn)程代碼段進(jìn)行劃分。度量已加載到物理內(nèi)存中的代碼頁(yè),根據(jù)基值庫(kù)中的基值驗(yàn)證其完整性,將比較結(jié)果寫(xiě)入Person日志;對(duì)于尚未加載物理內(nèi)存的代碼頁(yè),暫時(shí)忽略其度量,直到在測(cè)量之前將其加載到物理內(nèi)存中。

    基值庫(kù)保存虛擬機(jī)進(jìn)程代碼中每頁(yè)的度量值,可以以文件、數(shù)據(jù)庫(kù)等形式存在。日志用于記錄度量模塊的代碼頁(yè)度量信息和基值庫(kù)中的基值信息。P2 VMPMS實(shí)現(xiàn)了2.1捕獲模塊捕獲模塊來(lái)捕獲虛擬機(jī)中的系統(tǒng)事件。根據(jù)虛擬機(jī)寄存器和虛擬機(jī)引起的其他狀態(tài)的變化,得到底層語(yǔ)義。系統(tǒng)事件是虛擬機(jī)系統(tǒng)中可能導(dǎo)致虛擬機(jī)退出的進(jìn)程行為。

    本文對(duì)虛擬機(jī)中進(jìn)程的系統(tǒng)調(diào)用進(jìn)行了截獲。在X86架構(gòu)下,當(dāng)操作系統(tǒng)中的進(jìn)程需要進(jìn)行系統(tǒng)調(diào)用時(shí),首先將系統(tǒng)調(diào)用號(hào)保存到EAX寄存器中。然后將用戶狀態(tài)轉(zhuǎn)換為內(nèi)核狀態(tài),并通過(guò)系統(tǒng)調(diào)用保存進(jìn)程上下文。

    以32位操作系統(tǒng)為例,當(dāng)它使用sysenter指令執(zhí)行系統(tǒng)調(diào)用,系統(tǒng)讀取存儲(chǔ)在msr_la32 sysenter EIP登記的系統(tǒng)調(diào)用入口函數(shù)的地址。據(jù)ⅤMPMS,系統(tǒng)調(diào)用攔截機(jī)制的基礎(chǔ)上,msra32 sysenter EIP登記實(shí)施。啟動(dòng)虛擬機(jī)加載內(nèi)核鏡像后,vmpms初始化msr_ia32 sysenter EIP登記價(jià)值在VMM層非法地址。當(dāng)原始地址被保存時(shí),當(dāng)虛擬機(jī)進(jìn)程執(zhí)行系統(tǒng)調(diào)用時(shí),由于非法地址訪問(wèn),將拋出頁(yè)錯(cuò)誤異常,并且VM退出將落入mm層以觸發(fā)其處理流程。如果由于頁(yè)錯(cuò)誤的異常而退出,則它確定當(dāng)前虛擬機(jī)的“企業(yè)界”寄存器的值是否是一個(gè)非法的初始化地址,如果是的話,虛擬機(jī)退出,因?yàn)橄到y(tǒng)調(diào)用被攔截,然后啟動(dòng)測(cè)量當(dāng)前進(jìn)程的進(jìn)程。

    在完成測(cè)量之后,系統(tǒng)調(diào)用入口函數(shù)的截取地址被加載到虛擬機(jī)。執(zhí)行ⅤM進(jìn)入恢復(fù)虛擬機(jī)系統(tǒng)調(diào)用正常執(zhí)行流程。對(duì)于不需要處理的頁(yè)面故障,將其注入到虛擬機(jī)中,按照原進(jìn)程正常執(zhí)行,避免了額外的性能損失。在KVM虛擬機(jī)平臺(tái)的系統(tǒng)調(diào)用攔截原理。默認(rèn)情況下,虛擬機(jī)內(nèi)產(chǎn)生頁(yè)故障異常是由虛擬機(jī)內(nèi)核本身的處理,和VM退出陷阱不生成到公里,所以在MCS的Excel _ bitmaf場(chǎng)需要設(shè)置。

    虛擬機(jī)的頁(yè)面故障可以拋出v退出。英特爾正式定義頁(yè)面錯(cuò)誤。頁(yè)面故障有五種:位異常、讀寫(xiě)異常、模式異常,硬件錯(cuò)誤控制單元將生成硬件錯(cuò)誤代碼,并在處理頁(yè)面丟失異常之前將其壓入內(nèi)核狀態(tài)堆棧。造成異常的原因是不同的,硬件錯(cuò)誤代碼是不同的。它存儲(chǔ)在頁(yè)錯(cuò)誤錯(cuò)誤代碼字段中。

    如果僅在PFEC硬件錯(cuò)誤代碼滿足公式1的關(guān)系,pwgeault生成的虛擬機(jī)將導(dǎo)致我出口被設(shè)置apfec PFEC面膜= PFEC而maskback pfecmask設(shè)置)和頁(yè)面錯(cuò)誤代碼頁(yè)面錯(cuò)誤代碼匹配pfecec_兩場(chǎng)比賽_比賽只有參考發(fā)生在虛擬機(jī)。異常產(chǎn)生的原因陷入Ⅴ毫米,過(guò)濾2。對(duì)于缺頁(yè)異常2語(yǔ)義重構(gòu)VMM位于虛擬機(jī)底部已獲得在目標(biāo)虛擬機(jī)的存儲(chǔ)二進(jìn)制數(shù)據(jù)的更高的權(quán)限。然而,兩者之間存在語(yǔ)義鴻溝,而MM們也不知道這些數(shù)據(jù)的具體含義。語(yǔ)義重構(gòu)模塊利用捕獲的虛擬機(jī)底層語(yǔ)義和內(nèi)核數(shù)據(jù)結(jié)構(gòu)獲取高級(jí)語(yǔ)義。

    [ 23 ] VMON將內(nèi)核虛擬機(jī)的操作系統(tǒng)和硬件虛擬化技術(shù)的源代碼。虛擬機(jī)過(guò)程的許多版本可重構(gòu)的語(yǔ)義信息,但VMON是在訪問(wèn)虛擬機(jī)內(nèi)核版本或內(nèi)核源代碼的情況下的限制使用。本文提出了一種基于相對(duì)地址偏移的語(yǔ)義重構(gòu)方法,利用測(cè)試模塊獲得了進(jìn)程描述符與其內(nèi)部屬性之間的相對(duì)地址偏移量。在虛擬機(jī)上的進(jìn)程描述符的信息可以得到靈活和VMON改進(jìn)方法。

    在虛擬機(jī)的測(cè)試模塊,因?yàn)檫M(jìn)程描述符元素連續(xù)存儲(chǔ)在內(nèi)存中,相對(duì)地址偏移量元素之間保持不變,所以訪問(wèn)進(jìn)程描述符地址之間的差異是其內(nèi)在屬性的相對(duì)地址偏移地址,這種方法只需要運(yùn)行一次獲得相關(guān)的偏移,是普遍的,可與各種虛擬機(jī)內(nèi)核版本兼容。為了獲得PID中的進(jìn)程描述符屬性,舉例來(lái)說(shuō),編寫(xiě)任務(wù)狀態(tài)段的原理。Linux操作系統(tǒng)為每個(gè)CPU(任務(wù)statesegment,TSS),(任務(wù)登記,TR任務(wù)登記)的保存地址。

    操作系統(tǒng)的進(jìn)程調(diào)度,內(nèi)核將內(nèi)核堆棧存儲(chǔ)在csp0當(dāng)前進(jìn)程在TSS域指針。TR虛擬機(jī)登記價(jià)值,收購(gòu)獲得的TS,esp0,是當(dāng)前進(jìn)程的內(nèi)核棧頂單元地址和客人的ESP線程和線程信息計(jì)算第一地址結(jié)構(gòu)、任務(wù)字段指向的進(jìn)程描述符;獲取進(jìn)程的描述符地址,結(jié)合偏移測(cè)試模塊出發(fā),通過(guò)公式(2)可以用PID地址的物理性質(zhì)得到,訪問(wèn)地址和內(nèi)容任務(wù)地址+偏移memaddr3分頁(yè)操作系統(tǒng)動(dòng)態(tài)測(cè)量的其他屬性,使用頁(yè)表來(lái)完成虛擬地址到物理地址的映射和轉(zhuǎn)換過(guò)程。

    在開(kāi)放式分頁(yè)機(jī)制中,操作系統(tǒng)通過(guò)“按需加載”的方法來(lái)對(duì)物理頁(yè)進(jìn)行物理內(nèi)存的分配。在物理內(nèi)存資源,操作系統(tǒng)的頁(yè)面到磁盤(pán)的物理內(nèi)容的書(shū)面部分,因此在運(yùn)行一個(gè)滾動(dòng)力矩的過(guò)程中,所有的代碼頁(yè)的過(guò)程并不全是載人在物理內(nèi)存中,2在一個(gè)磁盤(pán)文件或內(nèi)存交換虛擬化在國(guó)內(nèi)和國(guó)外,也可能存在,客戶端操作系統(tǒng)的虛擬機(jī)的用戶看到的物理地址空間,為了正確地訪問(wèn)內(nèi)存的客戶端虛擬地址(虛擬地址,GVA)到主機(jī)物理T(主機(jī)物理地址,HPA),映射過(guò)程gva物理地址到客戶端顯示(客戶機(jī)物理地址,GPA)轉(zhuǎn)換表是由客戶端頁(yè)面完成,支持?jǐn)U展頁(yè)表(擴(kuò)展PAG電子表,EPT)機(jī)制,GPA虛擬主機(jī)地址(主機(jī)虛擬machineh V)的線性映射是一對(duì)一的,蘇所在頁(yè)表來(lái)完成轉(zhuǎn)換的HVA HPA,可見(jiàn)在虛擬機(jī)連續(xù)存儲(chǔ)在內(nèi)存中的地址映射到主機(jī)不一定是連續(xù)的。

    如果在一個(gè)訪問(wèn)虛擬機(jī)的完整代碼段的WMM層量需要在內(nèi)存中,不在內(nèi)存中獲取。一個(gè)代碼頁(yè),并以“放在一起”的方式,是非常復(fù)雜和龐大的內(nèi)存消耗的基礎(chǔ)上,本文提出的方法來(lái)衡量完整的分頁(yè)過(guò)程中的虛擬機(jī)代碼驗(yàn)證在mm層。

    產(chǎn)生頁(yè)面異常故障后重構(gòu)KVM語(yǔ)義的當(dāng)前運(yùn)行的程序代碼的起始地址和結(jié)束地址vmpms虛擬機(jī)系統(tǒng)調(diào)用攔截過(guò)程中,虛擬機(jī)的物理頁(yè)大小的單位,將順序代碼段中的代碼頁(yè)按照度量操作。對(duì)于一個(gè)給定的KVM的代碼頁(yè),首先確定它是否被加載到物理內(nèi)存,如果使用SHA-1哈希算法測(cè)量的操作,并將測(cè)量圖書(shū)館價(jià)值的基頁(yè)與基準(zhǔn)值進(jìn)行比較,并將結(jié)果寫(xiě)入一個(gè)日志文件;如果代碼頁(yè)中沒(méi)有裝入物理內(nèi)存,這是錯(cuò)誤的機(jī)器尚未執(zhí)行的代碼頁(yè)的時(shí)間量,然后忽略的措施,再次被加載到內(nèi)存的數(shù)量。V MPMS捕捉過(guò)程中系統(tǒng)調(diào)用的觸發(fā)點(diǎn)測(cè)量過(guò)程中測(cè)量的時(shí)間和執(zhí)行時(shí)間,實(shí)現(xiàn)KVM虛擬機(jī)代碼的過(guò)程的動(dòng)態(tài)測(cè)量。

    基本值是進(jìn)程在純狀態(tài)下獲取的代碼段頁(yè)面的度量,并存儲(chǔ)在基本值庫(kù)中,比較虛擬機(jī)進(jìn)程代碼段的動(dòng)態(tài)度量,驗(yàn)證其完整性。在本文中,我們使用的測(cè)試在第一次當(dāng)虛擬機(jī)程序代碼頁(yè)被加載到內(nèi)存中Ⅴ毫米層動(dòng)態(tài)完整的基值圖書(shū)館建立的基礎(chǔ)價(jià)值。使用的Ⅴ毫米層強(qiáng)大的隔離和高特權(quán)升級(jí)基礎(chǔ)價(jià)值庫(kù)的安全性分析,驗(yàn)證了采用3 vmpms衡量虛擬機(jī)進(jìn)程的代碼完整性。3基本值庫(kù)的測(cè)試與分析。對(duì)目標(biāo)進(jìn)程和虛擬機(jī)操作系統(tǒng)的性能消耗進(jìn)行了評(píng)估,并與現(xiàn)有的部分完整性度量方案進(jìn)行了比較。

    測(cè)試環(huán)境如下:主機(jī)操作系統(tǒng)是64位ubuntu-12.04,內(nèi)核版本。The CPU version of the host is Intel Core i3-4160, the main frequency is 3.60 GHz, physical memory is 4 GB, and the hardware aided virtualization is supported. 虛擬機(jī)是一個(gè)32位centos6.5操作系統(tǒng)。Linux - 1功能測(cè)試函數(shù)測(cè)試的內(nèi)核版本分為兩個(gè)步驟:1)通過(guò)修改源代碼來(lái)模擬正常的虛擬機(jī)進(jìn)程代碼段,以模擬對(duì)進(jìn)程的攻擊,并測(cè)量修改后的進(jìn)程代碼段。為了驗(yàn)證其完整性被打破vmpms可以用來(lái)衡量所有的虛擬機(jī)的流程。

    為了說(shuō)明,本文有一個(gè)版本的Apache服務(wù)器軟件的作用在虛擬機(jī)中。它作為一種測(cè)量對(duì)象。Apache服務(wù)過(guò)程使用sysenter指令執(zhí)行系統(tǒng)調(diào)用引起頁(yè)故障異常陷入KVM KVM,然后得到它的名字和代碼段的地址,為了解決虛擬機(jī)的過(guò)程是不連續(xù)的和動(dòng)態(tài)交換出物理內(nèi)存的問(wèn)題,這是很難衡量的WMM層虛擬機(jī)過(guò)程完整的代碼段。在本文中,尋呼度量驗(yàn)證透明,在VMM層實(shí)時(shí)運(yùn)行進(jìn)程的代碼段在虛擬機(jī)的完整性。

    此外,還實(shí)現(xiàn)了基于相對(duì)地址偏移的虛擬機(jī)進(jìn)程信息獲取方法。實(shí)驗(yàn)結(jié)果表明,本文實(shí)現(xiàn)ⅤMPMS可以有效地驗(yàn)證測(cè)量過(guò)程的代碼被篡改的VMM層。在性能方面,性能損失所帶來(lái)的vmpms對(duì)測(cè)量過(guò)程和虛擬機(jī)系統(tǒng)可以在范圍內(nèi)。同時(shí),本文也存在一些不足:1)本文以系統(tǒng)調(diào)用行為更多的作為測(cè)量過(guò)程的觸發(fā)點(diǎn),利用測(cè)量時(shí)間機(jī)器和過(guò)程行為實(shí)現(xiàn)虛擬機(jī)過(guò)程的動(dòng)態(tài)測(cè)量。

    然而,這種方法會(huì)帶來(lái)一定的性能損失。本文針對(duì)未涉及Windows的linux虛擬機(jī)操作系統(tǒng)進(jìn)行了研究。下一步將減少而實(shí)現(xiàn)代碼完整性驗(yàn)證vmpms引起的性能損失;進(jìn)一步提高M(jìn)PM通用性是不同的虛擬機(jī)操作系統(tǒng)。


免费视频观无码一区,国内精品一区二区无码,99精品无码视频在线播放,ā片国产在线播放