两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于kvm的虛擬機(jī)文件強(qiáng)制訪問(wèn)控制方法及系統(tǒng)的制作方法

文檔序號(hào):8473240閱讀:555來(lái)源:國(guó)知局
一種基于kvm的虛擬機(jī)文件強(qiáng)制訪問(wèn)控制方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于云計(jì)算和信息安全技術(shù)領(lǐng)域,更具體地,涉及一種基于KVM的虛擬機(jī)文件強(qiáng)制訪問(wèn)控制方法及系統(tǒng)。
【背景技術(shù)】
[0002]基于內(nèi)核的虛擬機(jī)(Kernel-based Virtual Machine,以下簡(jiǎn)稱KVM),是一種用于Linux內(nèi)核中的虛擬化基礎(chǔ)設(shè)施,可以將Linux內(nèi)核轉(zhuǎn)化為一個(gè)虛擬機(jī)管理器。KVM自Linux 2.6.20之后集成在Linux的各個(gè)主要發(fā)行版本中,使用Linux自身的調(diào)度器進(jìn)行管理,所以相對(duì)于Xen,其核心源碼很少。
[0003]KVM是基于X86架構(gòu),支持硬件虛擬化(Intel VT或AMD-V)的Linux全虛擬解決方案,包括一個(gè)為處理器提供底層虛擬化可加載的核心模塊和一個(gè)經(jīng)過(guò)修改的Qemu軟件作為虛擬機(jī)上層控制和界面。KVM支持全虛擬化技術(shù),即在不改變操作系統(tǒng)鏡像的情況下運(yùn)行多個(gè)虛擬機(jī),并為每個(gè)虛擬機(jī)配置個(gè)性化硬件環(huán)境。
[0004]由于KVM作為L(zhǎng)inux的一個(gè)內(nèi)核模塊存在,因此對(duì)其修改和部署不需要重新編譯內(nèi)核,也不需要對(duì)當(dāng)前內(nèi)核做任何修改,只是幾個(gè)可以動(dòng)態(tài)加載的驅(qū)動(dòng)模塊。KVM結(jié)構(gòu)更加精簡(jiǎn)、代碼量更小,所以出錯(cuò)的可能性更小。并且在某些方面,性能比Xen更勝一籌。鑒于以上優(yōu)點(diǎn),KVM作為一種全虛擬化技術(shù)已經(jīng)獲得了廣泛的支持。
[0005]傳統(tǒng)KVM虛擬機(jī)的文件訪問(wèn)控制只能基于操作系統(tǒng)實(shí)現(xiàn),例如SELinux等技術(shù),通過(guò)操作系統(tǒng)自身來(lái)限制文件訪問(wèn)行為。這種方法有時(shí)限于操作系統(tǒng)自身的漏洞而易于被攻擊者攻擊,達(dá)不到文件強(qiáng)制訪問(wèn)控制的目的。

【發(fā)明內(nèi)容】

[0006]針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供一種基于KVM的虛擬機(jī)文件強(qiáng)制訪問(wèn)控制方法及系統(tǒng),采用KVM自省的方式監(jiān)控虛擬機(jī)的系統(tǒng)調(diào)用,并通過(guò)語(yǔ)義解析的方法來(lái)還原虛擬機(jī)中的文件訪問(wèn)。本發(fā)明包括系統(tǒng)調(diào)用截獲、語(yǔ)義解析和策略分析三個(gè)部分。系統(tǒng)調(diào)用截獲是指當(dāng)虛擬機(jī)內(nèi)部發(fā)生系統(tǒng)調(diào)用時(shí),發(fā)生VMEXIT (即虛擬機(jī)退出),陷入KVM中;語(yǔ)義解析是指當(dāng)虛擬機(jī)陷入KVM后,通過(guò)虛擬處理器(VCPU)中的寄存器信息還原出虛擬機(jī)陷入前的狀態(tài)信息;策略分析根據(jù)虛擬機(jī)陷入前的信息與系統(tǒng)調(diào)用信息來(lái)確定是否對(duì)文件進(jìn)行強(qiáng)制訪問(wèn)控制。本發(fā)明整個(gè)過(guò)程對(duì)虛擬機(jī)完全透明,這樣保證即使虛擬機(jī)內(nèi)部操作系統(tǒng)遭受漏洞攻擊,也能過(guò)通過(guò)本發(fā)明獲取文件訪問(wèn)信息,實(shí)施對(duì)文件的強(qiáng)制訪問(wèn)控制。
[0007]為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供一種基于KVM的虛擬機(jī)文件強(qiáng)制訪問(wèn)控制方法,包括以下步驟:
[0008]步驟I在前端指定文件訪問(wèn)控制策略;
[0009]步驟2將虛擬處理器中特殊模塊寄存器的值保存,并設(shè)置其值為O ;
[0010]步驟3當(dāng)虛擬機(jī)發(fā)生系統(tǒng)調(diào)用時(shí),在所述虛擬處理器中設(shè)置的所述特殊模塊寄存器的值被加載到CS寄存器中,系統(tǒng)調(diào)用號(hào)被壓入EAX寄存器中,所述虛擬機(jī)切入內(nèi)核態(tài);[0011 ] 步驟4CPU根據(jù)代碼段為O的地址尋址,產(chǎn)生一般保護(hù)錯(cuò)誤,發(fā)生虛擬機(jī)退出,虛擬機(jī)陷入KVM ;
[0012]步驟5為所述KVM添加處理所述一般保護(hù)錯(cuò)誤的代碼,分析出錯(cuò)原因,如果出錯(cuò)原因是由于設(shè)定CS寄存器值為O引起的,則執(zhí)行步驟6 ;否則,將原先保存的所述特殊模塊寄存器的值寫入所述CS寄存器,執(zhí)行虛擬機(jī)進(jìn)入,恢復(fù)虛擬機(jī)執(zhí)行;
[0013]步驟6屏蔽所述虛擬處理器中保存的堆棧段寄存器ESP字段的低13位得到thread_info結(jié)構(gòu)體的地址;
[0014]步驟7根據(jù)所述thread_info結(jié)構(gòu)體的地址讀取task_struct結(jié)構(gòu)體的地址,以獲取進(jìn)程控制塊的信息;
[0015]步驟8重構(gòu)所述進(jìn)程控制塊內(nèi)存,獲得文件系統(tǒng)信息,遍歷進(jìn)程文件目錄,獲取進(jìn)程打開所有文件的絕對(duì)路徑;
[0016]步驟9獲取所述虛擬處理器中的EAX字段的值,該值對(duì)應(yīng)虛擬機(jī)所發(fā)生系統(tǒng)調(diào)用的系統(tǒng)調(diào)用號(hào),如果該值為3或4,則讀取虛擬機(jī)中發(fā)生系統(tǒng)調(diào)用的文件描述符,轉(zhuǎn)入執(zhí)行步驟10,否則將原先保存的所述特殊模塊寄存器的值寫入所述CS寄存器,執(zhí)行虛擬機(jī)進(jìn)入,恢復(fù)虛擬機(jī)執(zhí)行;
[0017]步驟10根據(jù)所述文件描述符獲取發(fā)生讀寫文件的絕對(duì)路徑及對(duì)文件的讀寫模式,對(duì)比所述文件訪問(wèn)控制策略,如果所述文件訪問(wèn)控制策略允許該文件操作,則將原先保存的所述特殊模塊寄存器的值寫入所述CS寄存器,執(zhí)行虛擬機(jī)進(jìn)入,恢復(fù)虛擬機(jī)執(zhí)行,否則轉(zhuǎn)入執(zhí)行步驟11;
[0018]步驟11執(zhí)行文件強(qiáng)制訪問(wèn)控制,恢復(fù)虛擬機(jī)系統(tǒng)調(diào)用堆棧,并執(zhí)行虛擬機(jī)進(jìn)入,系統(tǒng)調(diào)用被禁止執(zhí)行。
[0019]為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供一種基于KVM的虛擬機(jī)文件強(qiáng)制訪問(wèn)控制系統(tǒng),包括系統(tǒng)調(diào)用截獲模塊,語(yǔ)義解析模塊和策略分析模塊,其中,所述系統(tǒng)調(diào)用截獲模塊用于當(dāng)虛擬機(jī)內(nèi)部發(fā)生系統(tǒng)調(diào)用時(shí),發(fā)生虛擬機(jī)退出,陷入KVM中;所述語(yǔ)義解析模塊用于當(dāng)虛擬機(jī)陷入KVM后,通過(guò)虛擬處理器中的寄存器信息還原出虛擬機(jī)陷入前的狀態(tài)信息;所述策略分析模塊用于根據(jù)虛擬機(jī)陷入前的狀態(tài)信息與用戶自定義策略對(duì)比決定是否對(duì)文件進(jìn)行訪問(wèn)控制。
[0020]總體而言,通過(guò)本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下有益效果:
[0021 ] 1、普通訪問(wèn)控制方法需要對(duì)每臺(tái)虛擬機(jī)進(jìn)行單獨(dú)設(shè)置,一旦訪問(wèn)控制策略發(fā)生變化,需要對(duì)每臺(tái)虛擬機(jī)進(jìn)行修改。在本發(fā)明中,云管理員只需要制定對(duì)文件的訪問(wèn)控制策略,即可實(shí)現(xiàn)對(duì)一個(gè)節(jié)點(diǎn)的多臺(tái)虛擬機(jī)進(jìn)行批量化定制;
[0022]2、本發(fā)明在KVM中截獲虛擬機(jī)中發(fā)生的系統(tǒng)調(diào)用,并通過(guò)語(yǔ)義解析還原虛擬機(jī)中的系統(tǒng)調(diào)用信息來(lái)實(shí)現(xiàn)文件的強(qiáng)制訪問(wèn)控制。整個(gè)訪問(wèn)控制過(guò)程對(duì)虛擬機(jī)透明,相比于普通訪問(wèn)控制方法,可以防止發(fā)生由于虛擬機(jī)操作系統(tǒng)漏洞或用戶操作不當(dāng)而導(dǎo)致的強(qiáng)制訪問(wèn)控制失敗。
【附圖說(shuō)明】
[0023]圖1為本發(fā)明虛擬機(jī)系統(tǒng)調(diào)用截獲的原理示意圖;
[0024]圖2為本發(fā)明KVM虛擬機(jī)文件強(qiáng)制訪問(wèn)系統(tǒng)結(jié)構(gòu)圖;
[0025]圖3為本發(fā)明KVM虛擬機(jī)文件強(qiáng)制訪問(wèn)方法的流程圖。
【具體實(shí)施方式】
[0026]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個(gè)實(shí)施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
[0027]圖1所示為本發(fā)明虛擬機(jī)系統(tǒng)調(diào)用截獲的原理示意圖。應(yīng)用程序本質(zhì)上是一系列的系統(tǒng)調(diào)用的集合。當(dāng)應(yīng)用程序執(zhí)行系統(tǒng)調(diào)用時(shí)(現(xiàn)代操作系統(tǒng)一般采用快速系統(tǒng)調(diào)用方式),將特殊模塊寄存器SYSENTER_CS_MSR的值裝入CS寄存器中,由于在KVM初始化虛擬機(jī)的過(guò)程中,將特殊模塊寄存器SYSENTER_CS_MSR的值設(shè)置為0,所以此時(shí)CS寄存器的值為O。CPU尋址CS:IP即代碼段為O的地址會(huì)發(fā)生一般保護(hù)錯(cuò)誤(#GP),虛擬機(jī)陷入KVM,實(shí)現(xiàn)對(duì)系統(tǒng)調(diào)用的截獲。當(dāng)完成對(duì)系統(tǒng)調(diào)用的語(yǔ)義解析后,重新進(jìn)入虛擬機(jī),繼續(xù)執(zhí)行應(yīng)用程序。
[0028]圖2所示為本發(fā)明KVM虛擬機(jī)文件強(qiáng)制訪問(wèn)系統(tǒng)結(jié)構(gòu)圖,主要包括系統(tǒng)調(diào)用截獲模塊,語(yǔ)義解析模塊和策略分析模塊。系統(tǒng)調(diào)用截獲模塊用于當(dāng)虛擬機(jī)內(nèi)部發(fā)生系統(tǒng)調(diào)用時(shí),發(fā)生VMEXIT,陷入KVM中;語(yǔ)義解析模塊用于當(dāng)虛擬機(jī)陷入KVM后,通過(guò)VCPU中的寄存器信息還原出虛擬機(jī)陷入前的狀態(tài)信息;策略分析模塊根據(jù)虛擬機(jī)陷入前的狀態(tài)信息與用戶自定義策略對(duì)比決定是否對(duì)文件進(jìn)行訪問(wèn)控制。本發(fā)明具有兩種模式:普通模式和訪問(wèn)控制模式。普通模式下,不對(duì)系統(tǒng)調(diào)用截獲和語(yǔ)義解析,不進(jìn)行文件訪問(wèn)控制;訪問(wèn)控制模式下,截獲發(fā)生的系統(tǒng)調(diào)用并進(jìn)行語(yǔ)義解析,并對(duì)文件進(jìn)行訪問(wèn)控制。
[0029]圖3所示為本發(fā)明KVM虛擬機(jī)文件強(qiáng)制訪問(wèn)方法的流程圖,
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
凤冈县| 玉树县| 沅陵县| 新泰市| 卢龙县| 太和县| 甘谷县| 贵溪市| 十堰市| 宝应县| 安图县| 内黄县| 辽中县| 灌南县| 南皮县| 西吉县| 罗甸县| 肇东市| 六枝特区| 岫岩| 广丰县| 吉木萨尔县| 新建县| 舟曲县| 乌鲁木齐县| 平邑县| 汉阴县| 凌源市| 奉化市| 金门县| 廉江市| 定远县| 兰溪市| 抚顺市| 营口市| 洛南县| 青浦区| 桂平市| 合江县| 维西| 铜陵市|