亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種用于kvm虛擬機(jī)系統(tǒng)的安全防護(hù)方法及系統(tǒng)的制作方法

文檔序號(hào):10654292閱讀:863來(lái)源:國(guó)知局
一種用于kvm虛擬機(jī)系統(tǒng)的安全防護(hù)方法及系統(tǒng)的制作方法【專利摘要】本發(fā)明提供一種用于KVM虛擬機(jī)系統(tǒng)的安全防護(hù)方法,包括下列步驟:1)周期性地調(diào)用KVM虛擬機(jī)系統(tǒng)Qemu接口,獲取虛擬機(jī)系統(tǒng)的中斷描述符表、系統(tǒng)調(diào)用表和系統(tǒng)調(diào)用數(shù)據(jù);2)將獲取到的虛擬機(jī)系統(tǒng)的中斷描述符表、系統(tǒng)調(diào)用表和系統(tǒng)調(diào)用數(shù)據(jù)與備份的相應(yīng)數(shù)據(jù)進(jìn)行比較,用備份的數(shù)據(jù)對(duì)虛擬機(jī)系統(tǒng)中狀態(tài)異常的內(nèi)核對(duì)象進(jìn)行恢復(fù)。本發(fā)明相對(duì)于基于物理機(jī)系統(tǒng)開發(fā)的安全工具,本發(fā)明實(shí)現(xiàn)了輕量級(jí)的性能開銷,能夠極大地節(jié)省開銷,保障虛擬機(jī)的性能。本發(fā)明能夠直接對(duì)狀態(tài)異常的虛擬機(jī)進(jìn)行修復(fù)。本發(fā)明在實(shí)現(xiàn)對(duì)虛擬機(jī)安全防護(hù)的同時(shí),能夠最大程度地避免虛擬機(jī)運(yùn)行的中斷,將對(duì)虛擬機(jī)性能的影響降到最低?!緦@f(shuō)明】一種用于KVM虛擬機(jī)系統(tǒng)的安全防護(hù)方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及虛擬機(jī)安全監(jiān)控
技術(shù)領(lǐng)域
,具體的說(shuō),本發(fā)明涉及一種用于KVM(Kernel-basedVirtualMachine)虛擬機(jī)系統(tǒng)的安全防護(hù)方法及系統(tǒng)?!?br>背景技術(shù)
】[0002]云計(jì)算開創(chuàng)了軟件即服務(wù)(SaaS)、平臺(tái)即服務(wù)(PaaS)、基礎(chǔ)設(shè)施即服務(wù)(IaaS)的全新服務(wù)模式,徹底改變了傳統(tǒng)IT資源的交付和商用模式,被視為信息產(chǎn)業(yè)界的又一場(chǎng)技術(shù)變革,給傳統(tǒng)的IT產(chǎn)業(yè)帶來(lái)了新的發(fā)展機(jī)遇。云計(jì)算的迅猛發(fā)展促進(jìn)了虛擬化技術(shù)在商業(yè)上的廣泛應(yīng)用。作為云計(jì)算平臺(tái)的核心支撐技術(shù),虛擬化技術(shù)將各種硬件、軟件、操作系統(tǒng)、存儲(chǔ)、網(wǎng)絡(luò)以及其他的IT資源進(jìn)行虛擬化,形成規(guī)模巨大的共享IT資源池,納入云計(jì)算的管理平臺(tái)。通過虛擬化技術(shù)方案,傳統(tǒng)服務(wù)器物理資源都被抽象成可管理的邏輯資源,通過互聯(lián)網(wǎng)像水、電和煤氣一樣提供給最終用戶。企業(yè)用戶把關(guān)鍵業(yè)務(wù)放在虛擬化環(huán)境中運(yùn)營(yíng),在業(yè)務(wù)擴(kuò)張、資源不足時(shí)只需要添加新的硬件進(jìn)入資源池,無(wú)需任何即可更新和升級(jí)即可完成系統(tǒng)規(guī)模的擴(kuò)展。[0003]然而,任何一種平臺(tái)大規(guī)模上線后都會(huì)成為廣大網(wǎng)絡(luò)黑客攻擊的對(duì)象,虛擬機(jī)也不例外,針對(duì)于傳統(tǒng)計(jì)算機(jī)系統(tǒng)存在的種種威脅對(duì)虛擬機(jī)系統(tǒng)同樣適用。在虛擬化環(huán)境中,虛擬機(jī)系統(tǒng)裝載用戶應(yīng)用并暴露在互聯(lián)網(wǎng)環(huán)境下運(yùn)行,很顯然會(huì)遭受到來(lái)自網(wǎng)絡(luò)環(huán)境中的各種攻擊和威脅。而目前虛擬機(jī)系統(tǒng)使用的安全工具往往是基于物理機(jī)系統(tǒng)開發(fā)的,其防護(hù)方法無(wú)一例外都是借助傳統(tǒng)方式。每一個(gè)虛擬機(jī)系統(tǒng)都安裝安全工具對(duì)物理服務(wù)器的存儲(chǔ)空間、內(nèi)存資源、CPU資源的消耗是巨大的。常規(guī)防病毒掃描和病毒代碼庫(kù)更新等占用大量資源的操作將在很短的時(shí)間內(nèi)導(dǎo)致過量的系統(tǒng)負(fù)載。如果防病毒掃描或定期更新在所有的虛擬機(jī)上同時(shí)啟動(dòng),將會(huì)引起“防病毒風(fēng)暴”,造成對(duì)由內(nèi)存、存儲(chǔ)和CPU構(gòu)成的基本虛擬化資源池的“哄搶”,這將嚴(yán)重影響虛擬機(jī)性能,阻礙虛擬機(jī)系統(tǒng)的正常運(yùn)行。[0004]另一方面,KVM是一個(gè)基于Linux內(nèi)核的開源虛擬化方案,本發(fā)明中將基于KVM技術(shù)的虛擬機(jī)系統(tǒng)稱為KVM虛擬機(jī)系統(tǒng),圖1示出了KVM虛擬機(jī)系統(tǒng)的架構(gòu)圖。與Xen、VMffare等提供完整解決方案的商業(yè)化虛擬產(chǎn)品不同,KVM的思想是在Linux內(nèi)核的基礎(chǔ)上添加虛擬機(jī)管理模塊,重用Linux內(nèi)核中已經(jīng)完善的進(jìn)程調(diào)度、內(nèi)存管理、1管理等部分,使之成為一個(gè)可以支持虛擬機(jī)運(yùn)行的虛擬機(jī)監(jiān)視器(VMM)。由于具備簡(jiǎn)單易用性的特點(diǎn),KVM正超越Xen成為大多數(shù)企業(yè)環(huán)境首選的開源虛擬化技術(shù)。但是,目前,尚未出現(xiàn)專門針對(duì)KVM虛擬機(jī)系統(tǒng)進(jìn)行優(yōu)化的安全防護(hù)方案。[0005]因此,當(dāng)前迫切需要一種特別適用于KVM虛擬機(jī)系統(tǒng)的安全防護(hù)解決方案。【
發(fā)明內(nèi)容】[0006]本發(fā)明的任務(wù)是提供一種特別適用于KVM虛擬機(jī)系統(tǒng)的安全防護(hù)解決方案。[0007]根據(jù)本發(fā)明的一個(gè)方面,提供了一種用于KVM虛擬機(jī)系統(tǒng)的安全防護(hù)方法,包括下列步驟:[0008]I)周期性地調(diào)用KVM虛擬機(jī)系統(tǒng)Qemu接口,獲取虛擬機(jī)系統(tǒng)的中斷描述符表、系統(tǒng)調(diào)用表和系統(tǒng)調(diào)用數(shù)據(jù);[0009]2)將獲取到的虛擬機(jī)系統(tǒng)的中斷描述符表、系統(tǒng)調(diào)用表和系統(tǒng)調(diào)用數(shù)據(jù)與備份的相應(yīng)數(shù)據(jù)進(jìn)行比較,用備份的數(shù)據(jù)對(duì)虛擬機(jī)系統(tǒng)中狀態(tài)異常的內(nèi)核對(duì)象進(jìn)行恢復(fù)。[0010]其中,所述中斷描述符表、系統(tǒng)調(diào)用表和系統(tǒng)調(diào)用數(shù)據(jù)包括:中斷處理函數(shù)system_call()的內(nèi)存地址、系統(tǒng)調(diào)用表sys_call_table的內(nèi)存地址以及每個(gè)系統(tǒng)調(diào)用函數(shù)的內(nèi)存地址。[0011]根據(jù)本發(fā)明的另一個(gè)方面,提供了一種用于KVM虛擬機(jī)系統(tǒng)的安全防護(hù)系統(tǒng),包括安全檢測(cè)模塊、數(shù)據(jù)恢復(fù)模塊、備份系統(tǒng)模塊和控制模塊;[0012]其中,安全檢測(cè)模塊用于掃描虛擬機(jī)的內(nèi)核對(duì)象的關(guān)鍵數(shù)據(jù);[0013]數(shù)據(jù)恢復(fù)模塊用于恢復(fù)狀態(tài)異常的虛擬機(jī)系統(tǒng)調(diào)用數(shù)據(jù);[0014]備份系統(tǒng)模塊用于備份虛擬機(jī)系統(tǒng)的內(nèi)核對(duì)象的關(guān)鍵數(shù)據(jù);[0015]控制模塊用于調(diào)度安全檢測(cè)模塊和數(shù)據(jù)恢復(fù)模塊的執(zhí)行,控制模塊接收安全檢測(cè)模塊的返回值并為數(shù)據(jù)恢復(fù)模塊提供必要的參數(shù);[0016]其中,所述關(guān)鍵數(shù)據(jù)包括:中斷服務(wù)處理函數(shù)SyStem_Call()地址,系統(tǒng)調(diào)用表sys_caIl_tabIe()地址,以及每個(gè)系統(tǒng)調(diào)用函數(shù)的地址。[0017]其中,所述安全防護(hù)系統(tǒng)部署在KVM虛擬機(jī)系統(tǒng)的KVM驅(qū)動(dòng)器所在宿主機(jī)的用戶態(tài)空間。[0018]其中,所述檢測(cè)模塊還用于向虛擬機(jī)發(fā)送虛擬機(jī)狀態(tài)獲取請(qǐng)求時(shí),調(diào)用Qemu接口cpu_physical_memory_map(),在不暫停對(duì)應(yīng)虛擬機(jī)的運(yùn)行的同時(shí),將虛擬機(jī)的物理內(nèi)存地址映射到檢測(cè)模塊的進(jìn)程地址空間,獲取映射內(nèi)存地址空間的讀指針。[0019]其中,所述恢復(fù)模塊還用于在恢復(fù)狀態(tài)異常的虛擬機(jī)系統(tǒng)調(diào)用數(shù)據(jù)時(shí),利用調(diào)用Qemu接口cpu_physical_memory_map(),將虛擬機(jī)的物理內(nèi)存地址映射到恢復(fù)模塊的進(jìn)程地址空間,獲取相應(yīng)的寫指針,暫停虛擬機(jī)的運(yùn)行,然后將備份數(shù)據(jù)寫入虛擬機(jī)的物理內(nèi)存地址。[0020]與現(xiàn)有技術(shù)相比,本發(fā)明具有下列技術(shù)效果:[0021]1、相對(duì)于基于物理機(jī)系統(tǒng)開發(fā)的安全工具,本發(fā)明實(shí)現(xiàn)了輕量級(jí)的性能開銷,能夠極大地節(jié)省開銷,保障虛擬機(jī)的性能。[0022]2、本發(fā)明的方案能夠直接對(duì)狀態(tài)異常的虛擬機(jī)進(jìn)行修復(fù)。[0023]3、本發(fā)明將安全監(jiān)控系統(tǒng)部署在被監(jiān)控的虛擬機(jī)系統(tǒng)外部,實(shí)現(xiàn)了虛擬機(jī)與安全監(jiān)控系統(tǒng)的隔咼。[0024]4、本發(fā)明在實(shí)現(xiàn)對(duì)虛擬機(jī)安全防護(hù)的同時(shí),能夠最大程度地避免虛擬機(jī)運(yùn)行的中斷,將對(duì)虛擬機(jī)性能的影響降到最低?!靖綀D說(shuō)明】[0025]以下,結(jié)合附圖來(lái)詳細(xì)說(shuō)明本發(fā)明的實(shí)施例,其中:[0026]圖1示出了KVM虛擬機(jī)系統(tǒng)的架構(gòu)圖;[0027]圖2示出了本發(fā)明一個(gè)實(shí)施例的基于KVM的安全防護(hù)方法的流程圖;[0028]圖3示出了本發(fā)明一個(gè)實(shí)施例的基于KVM的安全防護(hù)系統(tǒng)的架構(gòu)圖;[0029]圖4示出了本發(fā)明一個(gè)實(shí)施例的基于KVM的安全防護(hù)系統(tǒng)的安全監(jiān)控系統(tǒng)的安全分析執(zhí)行時(shí)序圖;[0030]圖5示出了示出了本發(fā)明一個(gè)實(shí)施例的基于KVM的安全防護(hù)系統(tǒng)的安全監(jiān)控系統(tǒng)的數(shù)據(jù)恢復(fù)執(zhí)行時(shí)序圖?!揪唧w實(shí)施方式】[0031]發(fā)明人針對(duì)KVM虛擬機(jī)系統(tǒng)的特點(diǎn)進(jìn)行了深入研究,Linux系統(tǒng)實(shí)現(xiàn)系統(tǒng)調(diào)用時(shí)利用了i386體系結(jié)構(gòu)中的軟中斷機(jī)制。應(yīng)用程序通過產(chǎn)生intOxSO中斷調(diào)用系統(tǒng)調(diào)用,使程序從用戶態(tài)進(jìn)入到內(nèi)核態(tài)執(zhí)行。當(dāng)系統(tǒng)調(diào)用發(fā)生時(shí),CPU切換到內(nèi)核態(tài)并根據(jù)中斷向量0x80在中斷描述符表IDT中查找到system_call()的地址。system_call()在進(jìn)行必要的處理后,統(tǒng)一調(diào)用callsys_call_table(,631,4)來(lái)調(diào)用85^_0311_1&1316表中的系統(tǒng)調(diào)用服務(wù),631存放的即系統(tǒng)調(diào)用號(hào),系統(tǒng)調(diào)用函數(shù)執(zhí)行完后將結(jié)果返回給用戶態(tài)的應(yīng)用程序。保障系統(tǒng)調(diào)用的整個(gè)流程不被破壞,即可保證系統(tǒng)調(diào)用的完整性,從而保證虛擬機(jī)系統(tǒng)的安全。換句話說(shuō),可以通過保障中斷描述符表中系統(tǒng)調(diào)用對(duì)應(yīng)的中斷服務(wù)處理函數(shù)SyStem_Call()不被重定向;保障syStem_Call()中使用的系統(tǒng)調(diào)用表不被重定向;以及保障系統(tǒng)調(diào)用函數(shù)不被重定向,即可在很大程度上保證虛擬機(jī)系統(tǒng)的安全,并且實(shí)現(xiàn)輕量級(jí)的性能開銷。[0032]根據(jù)本發(fā)明的一個(gè)實(shí)施例,提供了一種用于KVM虛擬機(jī)系統(tǒng)的安全防護(hù)方法。首先,根據(jù)制定的周期定期地調(diào)用Qemu接口獲取虛擬機(jī)系統(tǒng)中與系統(tǒng)調(diào)用相關(guān)的關(guān)鍵數(shù)據(jù),即中斷描述符表、系統(tǒng)調(diào)用表和系統(tǒng)調(diào)用數(shù)據(jù)。然后,比較獲取到的數(shù)據(jù)與備份的數(shù)據(jù)是否一致,如果不一致,則說(shuō)明對(duì)應(yīng)的項(xiàng)遭到了篡改,提取備份的數(shù)據(jù)覆蓋虛擬機(jī)內(nèi)存的指定地址空間,對(duì)虛擬機(jī)系統(tǒng)中狀態(tài)異常的內(nèi)核對(duì)象進(jìn)行恢復(fù)。[0033]圖2示出了本實(shí)施例的用于KVM虛擬機(jī)系統(tǒng)的安全防護(hù)方法的流程圖,該流程包括下列步驟:[0034]步驟1:根據(jù)客戶機(jī)的8}^七61]1.1]^。,獲取85^_0311_131316的地址。[0035]步驟2:根據(jù)被監(jiān)控虛擬機(jī)的8}^丨6111.1]^。文件中的85^_0311_131316地址,通過開源自省庫(kù)LibvmiAPI映射sys_call_table所在的內(nèi)存頁(yè)面,并返回該頁(yè)面的可讀指針。[0036]步驟3:通過系統(tǒng)調(diào)用號(hào)_置_<^611從sys_call_table中獲取指定系統(tǒng)調(diào)用函數(shù)sys_open()的地址addrl。[0037]步驟4:將所獲取的系統(tǒng)調(diào)用函數(shù)sys_open()的地址addrI,與系統(tǒng)的相應(yīng)地址快照addr2作對(duì)比,如果8(1(11'1與3(1(^2不一致,說(shuō)明系統(tǒng)調(diào)用被重定向,進(jìn)入步驟5,如果addrI與addr2—致,說(shuō)明系統(tǒng)調(diào)用正常,對(duì)虛擬機(jī)的本輪監(jiān)控結(jié)束。[0038]步驟5:暫停虛擬機(jī)。[0039]步驟6:啟動(dòng)恢復(fù)流程。[0040]步驟7:利用備份的址快照addr2恢復(fù)被篡改的系統(tǒng)調(diào)用函數(shù)SyS_0pen()的地址。對(duì)虛擬機(jī)的本輪監(jiān)控結(jié)束。[0041]進(jìn)一步地,在一個(gè)優(yōu)選實(shí)施例中,首先讀取被監(jiān)控虛擬機(jī)系統(tǒng)的idtr寄存器,idtr寄存器用于存放系統(tǒng)中斷描述符表(IDT)的內(nèi)存地址,通過idtr能夠獲取系統(tǒng)中斷描述符表的內(nèi)容;根據(jù)中斷向量號(hào)int0x80計(jì)算得到系統(tǒng)調(diào)用對(duì)應(yīng)的中斷處理函數(shù)system_call()的內(nèi)存地址8(1(11'1。提取備份的85^丨6111_0311()的地址快照addr2,將8(1(11'1與3(1(^2進(jìn)行比對(duì),如果addrI和addr2不一致則說(shuō)明addrI被篡改,報(bào)告異常,并啟動(dòng)恢復(fù)流程,恢復(fù)中斷處理函數(shù)system_calI()的地址。若system_calI()內(nèi)存地址檢測(cè)結(jié)果正常,獲取sys_cal1_table的地址,以進(jìn)一步檢查system_call()函數(shù)體是否被篡改。本實(shí)施例中,根據(jù)得到的system_call()的內(nèi)存地址,利用Libvmi函數(shù)庫(kù)調(diào)用Qemu接口cpu_physical_memory_map(),將SyStem_Call()函數(shù)體所在的物理內(nèi)存頁(yè)面映射到宿主機(jī)用戶態(tài)空間(即映射到安全防護(hù)進(jìn)程的進(jìn)程地址空間),并返回該內(nèi)存空間的可讀指針,然后讀取到SyS_call()函數(shù)的二進(jìn)制指令。通過反匯編system_call()函數(shù)可以得知,system_call()只有在調(diào)用系統(tǒng)調(diào)用處使用了call指令,x86call指令的二進(jìn)制格式為\xff\xl4\x85,因此可以從sys_call()函數(shù)體開始進(jìn)行搜索得到存放syS_call_table的地址addrl。抽取備份的地址快照addr2進(jìn)行對(duì)比。如果8(1(11'1與3(1(^2不一致,則說(shuō)明被監(jiān)控虛擬機(jī)系統(tǒng)中的sys_call()函數(shù)體已被篡改,啟動(dòng)恢復(fù)流程恢復(fù)sys_caIl_tabIe的地址。在恢復(fù)狀態(tài)異常的虛擬機(jī)系統(tǒng)調(diào)用數(shù)據(jù)時(shí),利用調(diào)用Qemu接口cpu_physical_memory_map(),將虛擬機(jī)的物理內(nèi)存地址映射到恢復(fù)模塊的進(jìn)程地址空間,獲取相應(yīng)的寫指針,暫停虛擬機(jī)的運(yùn)行,然后將備份數(shù)據(jù)寫入虛擬機(jī)的物理內(nèi)存地址。[0042]圖3示出了示出了本發(fā)明一個(gè)實(shí)施例的基于KVM的安全防護(hù)系統(tǒng)的架構(gòu)圖。參考圖3,該安全防護(hù)系統(tǒng)VM-monitor部署在KVM所在宿主機(jī)的用戶態(tài)空間,有效地利用了KVM的隔離性與虛擬機(jī)VM相隔離。所述基于KVM的安全防護(hù)系統(tǒng)包括安全檢測(cè)模塊、數(shù)據(jù)恢復(fù)模塊、備份系統(tǒng)模塊和控制模塊。[0043]其中,安全檢測(cè)模塊用于掃描虛擬機(jī)的內(nèi)核對(duì)象數(shù)據(jù),這其中包括系統(tǒng)調(diào)用對(duì)應(yīng)的中斷服務(wù)處理函數(shù)system_call()地址、system_call()中調(diào)用的系統(tǒng)調(diào)用表sys_call_table()地址以及系統(tǒng)調(diào)用表中每個(gè)系統(tǒng)調(diào)用函數(shù)的地址,通過與備份的基準(zhǔn)數(shù)據(jù)的對(duì)比分析這些地址數(shù)據(jù)狀態(tài)是否異常。[0044]數(shù)據(jù)恢復(fù)模塊用于恢復(fù)狀態(tài)異常的虛擬機(jī)系統(tǒng)調(diào)用數(shù)據(jù),安全檢測(cè)模塊檢測(cè)到狀態(tài)異常的系統(tǒng)調(diào)用后,經(jīng)由控制模塊向數(shù)據(jù)恢復(fù)模塊傳遞對(duì)應(yīng)的參數(shù),數(shù)據(jù)恢復(fù)模塊根據(jù)傳入的參數(shù)通過寫虛擬機(jī)內(nèi)存的方式恢復(fù)虛擬機(jī)系統(tǒng)調(diào)用的狀態(tài)。[0045]備份系統(tǒng)模塊用于備份虛擬機(jī)系統(tǒng)的內(nèi)核對(duì)象的關(guān)鍵數(shù)據(jù),這些關(guān)鍵數(shù)據(jù)包括:中斷服務(wù)處理函數(shù)system_call()地址,系統(tǒng)調(diào)用表sys_call_table()地址,以及每個(gè)系統(tǒng)調(diào)用函數(shù)的地址。這些備份數(shù)據(jù)將為安全檢測(cè)模塊和數(shù)據(jù)恢復(fù)模塊的功能實(shí)現(xiàn)提供必要的基準(zhǔn)數(shù)據(jù)。[0046]控制模塊用于調(diào)度安全檢測(cè)模塊和數(shù)據(jù)恢復(fù)模塊的執(zhí)行,控制模塊接收安全檢測(cè)模塊的返回值并為數(shù)據(jù)恢復(fù)模塊提供必要的參數(shù)。[0047]圖4示出了本發(fā)明一個(gè)實(shí)施例的基于KVM的安全防護(hù)系統(tǒng)的安全監(jiān)控系統(tǒng)的安全分析執(zhí)行時(shí)序圖,參考圖4,進(jìn)行安全分析時(shí),首先控制模塊向檢測(cè)模塊發(fā)送虛擬機(jī)狀態(tài)檢測(cè)請(qǐng)求。然后檢測(cè)模塊再向KVM虛擬機(jī)系統(tǒng)的Qemu接口發(fā)送虛擬機(jī)狀態(tài)獲取請(qǐng)求。Qemu接口接收到虛擬機(jī)狀態(tài)獲取請(qǐng)求后,映射Guest內(nèi)存空間,然后返回所映射的內(nèi)存地址空間的指針。檢測(cè)模塊根據(jù)所接收的指針讀取虛擬機(jī)內(nèi)存狀態(tài)并進(jìn)行分析,最后將分析結(jié)果返回控制豐吳塊。[0048]圖5示出了示出了本發(fā)明一個(gè)實(shí)施例的基于KVM的安全防護(hù)系統(tǒng)的安全監(jiān)控系統(tǒng)的數(shù)據(jù)恢復(fù)執(zhí)行時(shí)序圖。首先,控制模塊通過與檢測(cè)模塊交互(根據(jù)圖4的時(shí)序完成交互),獲得虛擬機(jī)完整性的分析結(jié)果。當(dāng)分析結(jié)果為虛擬機(jī)狀態(tài)異常時(shí),控制模塊向恢復(fù)模塊發(fā)送虛擬機(jī)異常狀態(tài)恢復(fù)請(qǐng)求,然后恢復(fù)模塊讀取備份系統(tǒng)模塊中的相應(yīng)備份,將其寫入虛擬機(jī)內(nèi)存以恢復(fù)虛擬機(jī)狀態(tài)。最后,恢復(fù)模塊向控制模塊返回恢復(fù)結(jié)果。[0049]進(jìn)一步地,在一個(gè)優(yōu)選實(shí)施例中,檢測(cè)模塊發(fā)送虛擬機(jī)狀態(tài)獲取請(qǐng)求時(shí),利用Libvmi函數(shù)庫(kù)調(diào)用Qemu接口cpu_physical_memory_map(),將虛擬機(jī)的物理內(nèi)存地址映射到檢測(cè)模塊的進(jìn)程地址空間,然后返回所映射的內(nèi)存地址空間的指針,該指針的屬性為讀指針,此時(shí)虛擬機(jī)仍保持運(yùn)行狀態(tài)。檢測(cè)模塊根據(jù)所接收的指針在自身的進(jìn)程地址空間讀取虛擬機(jī)內(nèi)存狀態(tài)并進(jìn)行分析,再將分析結(jié)果返回控制模塊?;謴?fù)模塊在收到虛擬機(jī)異常狀態(tài)恢復(fù)請(qǐng)求后,從備份系統(tǒng)模塊讀取對(duì)應(yīng)的備份數(shù)據(jù),然后利用Libvmi函數(shù)庫(kù)調(diào)用Qemu接口cpu_physical_memory_map(),將虛擬機(jī)的物理內(nèi)存地址映射到恢復(fù)模塊的進(jìn)程地址空間,Qemu接口返回相應(yīng)的寫指針,同時(shí)暫停虛擬機(jī)的運(yùn)行?;謴?fù)模塊根據(jù)返回的寫指針將備份數(shù)據(jù)寫入虛擬機(jī)的物理內(nèi)存地址,從而使虛擬機(jī)的狀態(tài)恢復(fù)正常。最后恢復(fù)虛擬機(jī)的運(yùn)行。[0050]上述優(yōu)選實(shí)施例能夠在實(shí)現(xiàn)對(duì)虛擬機(jī)安全防護(hù)的同時(shí),最大程度地避免虛擬機(jī)運(yùn)行的中斷,將對(duì)虛擬機(jī)性能的影響降到最低。[0051]最后應(yīng)說(shuō)明的是,以上實(shí)施例僅用以描述本發(fā)明的技術(shù)方案而不是對(duì)本技術(shù)方法進(jìn)行限制,本發(fā)明在應(yīng)用上可以延伸為其它的修改、變化、應(yīng)用和實(shí)施例,并且因此認(rèn)為所有這樣的修改、變化、應(yīng)用、實(shí)施例都在本發(fā)明的精神和教導(dǎo)范圍內(nèi)?!局鳈?quán)項(xiàng)】1.一種用于KVM虛擬機(jī)系統(tǒng)的安全防護(hù)方法,包括下列步驟:1)周期性地調(diào)用KVM虛擬機(jī)系統(tǒng)Qemu接口,獲取虛擬機(jī)系統(tǒng)的中斷描述符表、系統(tǒng)調(diào)用表和系統(tǒng)調(diào)用數(shù)據(jù);2)將獲取到的虛擬機(jī)系統(tǒng)的中斷描述符表、系統(tǒng)調(diào)用表和系統(tǒng)調(diào)用數(shù)據(jù)與備份的相應(yīng)數(shù)據(jù)進(jìn)行比較,判斷虛擬機(jī)系統(tǒng)中是否存在狀態(tài)異常。2.根據(jù)權(quán)利要求1所述的用于KVM虛擬機(jī)系統(tǒng)的安全防護(hù)方法,其特征在于,所述中斷描述符表數(shù)據(jù)包括:中斷服務(wù)處理函數(shù)system_Cal1的內(nèi)存地址;所述系統(tǒng)調(diào)用表數(shù)據(jù)包括:系統(tǒng)調(diào)用表SyS_Call_table的內(nèi)存地址;所述系統(tǒng)調(diào)用數(shù)據(jù)包括:每個(gè)系統(tǒng)調(diào)用函數(shù)的內(nèi)存地址。3.根據(jù)權(quán)利要求1所述的用于KVM虛擬機(jī)系統(tǒng)的安全防護(hù)方法,其特征在于,所述步驟I)、2)由部署在KVM虛擬機(jī)系統(tǒng)的KVM驅(qū)動(dòng)器所在宿主機(jī)的用戶態(tài)空間的安全防護(hù)系統(tǒng)執(zhí)行。4.根據(jù)權(quán)利要求2所述的用于KVM虛擬機(jī)系統(tǒng)的安全防護(hù)方法,其特征在于,所述步驟I)還包括:向虛擬機(jī)發(fā)送虛擬機(jī)狀態(tài)獲取請(qǐng)求,調(diào)用Qemu接口cpu_physical_memory_map(),在不暫停對(duì)應(yīng)虛擬機(jī)的運(yùn)行的同時(shí),將虛擬機(jī)的物理內(nèi)存地址映射到檢測(cè)模塊的進(jìn)程地址空間,獲取映射內(nèi)存地址空間的讀指針。5.根據(jù)權(quán)利要求4所述的用于KVM虛擬機(jī)系統(tǒng)的安全防護(hù)方法,其特征在于,當(dāng)所述步驟2)中判斷虛擬機(jī)系統(tǒng)中存在狀態(tài)異常時(shí),執(zhí)行步驟:3)用備份的數(shù)據(jù)對(duì)虛擬機(jī)系統(tǒng)中狀態(tài)異常的內(nèi)核對(duì)象進(jìn)行恢復(fù)。6.根據(jù)權(quán)利要求5所述的用于KVM虛擬機(jī)系統(tǒng)的安全防護(hù)方法,其特征在于,所述步驟3)中,對(duì)狀態(tài)異常的內(nèi)核對(duì)象進(jìn)行恢復(fù)包括:利用調(diào)用Qemu接口cpu_physical_memory_map(),將虛擬機(jī)的物理內(nèi)存地址映射到恢復(fù)模塊的進(jìn)程地址空間,獲取相應(yīng)的寫指針,暫停虛擬機(jī)的運(yùn)行,然后將備份數(shù)據(jù)寫入虛擬機(jī)的物理內(nèi)存地址。7.—種用于KVM虛擬機(jī)系統(tǒng)的安全防護(hù)系統(tǒng),包括:安全檢測(cè)模塊,用于周期性地調(diào)用KVM虛擬機(jī)系統(tǒng)Qemu接口,獲取虛擬機(jī)系統(tǒng)的中斷描述符表、系統(tǒng)調(diào)用表和系統(tǒng)調(diào)用數(shù)據(jù);和狀態(tài)異常判斷模塊;用于將獲取到的虛擬機(jī)系統(tǒng)的中斷描述符表、系統(tǒng)調(diào)用表和系統(tǒng)調(diào)用數(shù)據(jù)與備份的相應(yīng)數(shù)據(jù)進(jìn)行比較,判斷虛擬機(jī)系統(tǒng)中是否存在狀態(tài)異常。8.根據(jù)權(quán)利要求7所述的用于KVM虛擬機(jī)系統(tǒng)的安全防護(hù)系統(tǒng),其特征在于,還包括:備份系統(tǒng)模塊,用于備份虛擬機(jī)系統(tǒng)的內(nèi)核對(duì)象的關(guān)鍵數(shù)據(jù);所述關(guān)鍵數(shù)據(jù)包括:虛擬機(jī)系統(tǒng)的中斷描述符表、系統(tǒng)調(diào)用表和系統(tǒng)調(diào)用數(shù)據(jù);所述中斷描述符表數(shù)據(jù)包括:中斷服務(wù)處理函數(shù)system_ca11()的內(nèi)存地址;所述系統(tǒng)調(diào)用表數(shù)據(jù)包括:系統(tǒng)調(diào)用表sys_caIl_tabIe的內(nèi)存地址;所述系統(tǒng)調(diào)用數(shù)據(jù)包括:每個(gè)系統(tǒng)調(diào)用函數(shù)的內(nèi)存地址;數(shù)據(jù)恢復(fù)模塊,用于恢復(fù)狀態(tài)異常的虛擬機(jī)系統(tǒng)調(diào)用數(shù)據(jù);和控制模塊,用于調(diào)度安全檢測(cè)模塊和數(shù)據(jù)恢復(fù)模塊的執(zhí)行,控制模塊接收安全檢測(cè)模塊的返回值并為數(shù)據(jù)恢復(fù)模塊提供必要的參數(shù)。9.根據(jù)權(quán)利要求8所述的用于KVM虛擬機(jī)系統(tǒng)的安全防護(hù)系統(tǒng),其特征在于,所述安全防護(hù)系統(tǒng)部署在KVM虛擬機(jī)系統(tǒng)的KVM驅(qū)動(dòng)器所在宿主機(jī)的用戶態(tài)空間。10.根據(jù)權(quán)利要求8所述的用于KVM虛擬機(jī)系統(tǒng)的安全防護(hù)系統(tǒng),其特征在于,所述安全檢測(cè)模塊還用于向虛擬機(jī)發(fā)送虛擬機(jī)狀態(tài)獲取請(qǐng)求時(shí),調(diào)用Qemu接口cpu_physical_memory_map(),在不暫停對(duì)應(yīng)虛擬機(jī)的運(yùn)行的同時(shí),將虛擬機(jī)的物理內(nèi)存地址映射到檢測(cè)模塊的進(jìn)程地址空間,獲取映射內(nèi)存地址空間的讀指針;所述數(shù)據(jù)恢復(fù)模塊還用于在恢復(fù)狀態(tài)異常的虛擬機(jī)系統(tǒng)調(diào)用數(shù)據(jù)時(shí),利用調(diào)用Qemu接口cpu_physical_memory_map(),將虛擬機(jī)的物理內(nèi)存地址映射到恢復(fù)模塊的進(jìn)程地址空間,獲取相應(yīng)的寫指針,暫停虛擬機(jī)的運(yùn)行,然后將備份數(shù)據(jù)寫入虛擬機(jī)的物理內(nèi)存地址?!疚臋n編號(hào)】G06F21/57GK106020932SQ201610334913【公開日】2016年10月12日【申請(qǐng)日】2016年5月19日【發(fā)明人】于磊,唐宏偉,趙曉芳【申請(qǐng)人】中國(guó)科學(xué)院計(jì)算技術(shù)研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1