溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何解析Linux內(nèi)核虛擬機(jī)的安全擴(kuò)展KVMSEC

發(fā)布時(shí)間:2021-11-25 18:47:21 來(lái)源:億速云 閱讀:126 作者:柒染 欄目:編程語(yǔ)言

如何解析Linux內(nèi)核虛擬機(jī)的安全擴(kuò)展KVMSEC,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

一、摘要

以虛擬化PC為應(yīng)用的數(shù)據(jù)中心服務(wù)器群增長(zhǎng)很快。本文介紹的這個(gè)架構(gòu),優(yōu)點(diǎn)是增加全局系統(tǒng)安全。

在這篇論文中,我們提出一個(gè)結(jié)構(gòu)叫:KvmSec,它是Linux內(nèi)核虛擬機(jī)的擴(kuò)展,目標(biāo)是增加客戶(hù)機(jī)的安全。KvmSec能防止客戶(hù)機(jī)受到病毒與內(nèi)核黑客工具的攻擊。KvmSec有下面的特征:對(duì)客戶(hù)機(jī)透明,它很難從被攻破的虛擬機(jī)訪(fǎng)問(wèn)上面的數(shù)據(jù),也不能在第二臺(tái)客戶(hù)機(jī)分析其他第一臺(tái)客戶(hù)機(jī)的數(shù)據(jù);它能提供客戶(hù)機(jī)與主機(jī)的安全通信;它既能被部署于Linux宿主機(jī),也能被部署于Linux客戶(hù)機(jī)。對(duì)于執(zhí)行實(shí)時(shí)監(jiān)控和管理系統(tǒng),這些特征起到杠桿作用。更進(jìn)一步地說(shuō),本設(shè)計(jì)優(yōu)于前人設(shè)計(jì)的安全解決方案,也構(gòu)想了下一代安全的路線(xiàn)圖。

二、介紹

虛擬化是一個(gè)老概念,現(xiàn)在是它的黃金年代。它被廣泛使用在桌面PC、數(shù)據(jù)中心與服務(wù)器集群。到目前為止,最廣泛被采用的x86虛擬化解決方案有:VMware、Xen、User Mode Linux、Qemu、KVM。最近幾年虛擬化解決方案的可靠性也提高了,但是對(duì)虛擬機(jī)上安全服務(wù)與操作系統(tǒng)的攻擊是使人惱怒的。惡意入侵者經(jīng)常成功的攻擊系統(tǒng)并獲得管理員權(quán)限。像木馬與后門(mén)程序能夠被插入,重要或私有文件能被訪(fǎng)問(wèn)。因此,許多類(lèi)型攻擊意味著改變文件系統(tǒng)。入侵保護(hù)工具通常檢查文件修改,特別是這些文件的安全通道。

完整性工具與它收集的數(shù)據(jù)通常通常放置在它所監(jiān)控的系統(tǒng)上。這是一個(gè)問(wèn)題,當(dāng)一個(gè)系統(tǒng)被惡意程序攻擊,就能篡改監(jiān)控系統(tǒng)。KvmSec被加入到虛擬化技術(shù)上,覆蓋整個(gè)系統(tǒng)安全。虛擬客戶(hù)機(jī)能被額外的邊界保護(hù)。特殊地,當(dāng)一個(gè)系統(tǒng)監(jiān)控程序(也包括Virtual Machine Monitor),能提供可信計(jì)算基,因此在監(jiān)控系統(tǒng)上,使惡意程序不可達(dá)。這樣即使攻擊者成功的進(jìn)入虛擬機(jī),攻擊路徑不可被刪除,外部安全系統(tǒng)不能被關(guān)閉。

貢獻(xiàn)

這篇論文陳述在服務(wù)器加固時(shí),客戶(hù)機(jī)安全監(jiān)控的問(wèn)題。我們所給予的主要研究貢獻(xiàn)是KvmSec系統(tǒng)結(jié)構(gòu),它可以保護(hù)與監(jiān)控客戶(hù)機(jī)。當(dāng)前的進(jìn)展是,實(shí)時(shí)允許主機(jī)控制客戶(hù)機(jī)未授權(quán)的變更。當(dāng)客戶(hù)機(jī)異常時(shí),KvmSec能偵測(cè)與做出反應(yīng)。它是Linux Kernel Virtual Machine 最小化存取原則的擴(kuò)展,并且監(jiān)控系統(tǒng)自身可見(jiàn)。

指引

這篇論文其余的部分如下組織:第3節(jié):調(diào)研現(xiàn)有的技術(shù)和相關(guān)工作,提供我們工作的背景信息。第4節(jié):描述KvmSec的要求與結(jié)構(gòu)。第5節(jié):提供一些執(zhí)行細(xì)節(jié)。第6節(jié):討論KvmSec和以前的結(jié)果的比較。最后,第7節(jié):得出結(jié)論。

三、背景

3.1 虛擬化結(jié)構(gòu)

在下面我們分析最相關(guān)的開(kāi)源虛擬化結(jié)構(gòu)Xen和KVM,為了證明為什么我們選擇后者。全虛擬化是一個(gè)使用CPU虛擬化技術(shù)(AMD-V和Intel-VT支持的技術(shù))。CPU支持這種技術(shù)特征,使得虛擬機(jī)中運(yùn)行的操作系統(tǒng)不用修改,就可以運(yùn)行,而不需要知道更高特權(quán)級(jí)的存在。另外一種虛擬化技術(shù)是半虛擬化。它不需要CPU虛擬化技術(shù)的支持,但通常要求改寫(xiě)客戶(hù)機(jī)操作系統(tǒng)。

Xen,最被廣泛采用的虛擬化解決方案,由Xen hypervisor (or VMM),特權(quán)VM (Dom0),當(dāng)操作系統(tǒng)被運(yùn)行時(shí)的普通VM (DomU)組成。Xen的特征:1)共享內(nèi)存:虛擬機(jī)間通訊通道;2)以太通道:虛擬機(jī)間的信號(hào)通道;3)共享內(nèi)存存取控制:存取控制矩陣,描述虛擬機(jī)可以訪(fǎng)問(wèn)的共享內(nèi)存。Xen的驅(qū)動(dòng)被定義在Dom0特權(quán)域中。所以其他域的I/O請(qǐng)求由Dom0處理,hypervisor的職責(zé)是當(dāng)有I/O操作請(qǐng)求時(shí)從DomU轉(zhuǎn)換到Dom0。

KVM,是新的主流Linux虛擬化解決方案,在2.6.20內(nèi)核版本中加入內(nèi)核。KVM的組成(見(jiàn)圖1的執(zhí)行模式)由一個(gè)hypervisor(Linux內(nèi)核模塊),經(jīng)過(guò)修改的QEMU模擬器軟體。KVM是一個(gè)標(biāo)準(zhǔn)的內(nèi)核模塊,作為使用標(biāo)準(zhǔn)的、可靠的、經(jīng)常更新的Linux設(shè)備驅(qū)動(dòng)的結(jié)果。一方面,這是為什么KVM比Xen少受攻擊的一個(gè)原因,Xen的驅(qū)動(dòng)開(kāi)發(fā)比標(biāo)準(zhǔn)Linux慢。另一方面,內(nèi)核代碼基比Xen大,潛在地包含更多的弱點(diǎn)和問(wèn)題。Xen和KVM的比較在“表1”.KVM沒(méi)有完全成熟,但比Xen有更好的方面,特別是廣泛的硬件支持和增加的靈活性,(重新部署新的KVM版本不需要重新啟動(dòng)機(jī)器)。而且,更多的努力加入到KVM和Qemu的產(chǎn)品中。

如何解析Linux內(nèi)核虛擬機(jī)的安全擴(kuò)展KVMSEC

如何解析Linux內(nèi)核虛擬機(jī)的安全擴(kuò)展KVMSEC

3.2 相關(guān)工作

下面我們簡(jiǎn)要地說(shuō)明到集成監(jiān)控器問(wèn)題,它被使用于入侵檢測(cè)邊界區(qū)。

集成管理結(jié)構(gòu),提供通過(guò)SHA摘要進(jìn)行集成性度量。當(dāng)裝載的時(shí)候,可執(zhí)行文件,庫(kù)與內(nèi)核模塊摘要被計(jì)算與儲(chǔ)存在被修改的Linux內(nèi)核自身。此外,集成管理結(jié)構(gòu)的哈希被存儲(chǔ)在附加在硬件上的可信計(jì)算平臺(tái)模塊安全芯片的受保護(hù)的平臺(tái)配置寄存器中,這樣遠(yuǎn)程方可以通過(guò)比較存儲(chǔ)的摘要與遠(yuǎn)程計(jì)算的摘要值確認(rèn)系統(tǒng)集成。雖然摘要在性能上帶來(lái)的影響很重要,并且基于CPU的虛擬化支持并未使用,集成管理結(jié)構(gòu)提供一個(gè)完整的工作參考結(jié)構(gòu)。

最主要的Xen hypervisor的杠桿作用沒(méi)有以下能力:Xen的sHype隔絕虛擬機(jī)與強(qiáng)制訪(fǎng)問(wèn)控制,同時(shí)管理隱蔽通道,當(dāng)修改Xen去保護(hù)用戶(hù)的私有應(yīng)用程序數(shù)據(jù)時(shí),也就將操作系統(tǒng)從可信基中移除。XenFIT是一個(gè)實(shí)時(shí)文件系統(tǒng)集成工具保護(hù)數(shù)據(jù)庫(kù)和FIT系統(tǒng),防止攻擊者使用Xen hypervisor隔離的部分。事實(shí)上,F(xiàn)IT和數(shù)據(jù)庫(kù)被部署到分離的虛擬機(jī)上。同樣,XenRIM由DomU上的XenRIMU構(gòu)成,收集客戶(hù)機(jī)的信息,并且Dom0上的Xenrimd檢查XenRIMU收集的信息,報(bào)告任何系統(tǒng)策略的違反。

SecVisor 使用基于CPU的虛擬化支持,為了創(chuàng)建最小hypervisor保證Linux內(nèi)核代碼完整,防止代碼注入攻擊。SecVisor 代碼基是非常小的,它減少了可信計(jì)算基的大小,但是不幸的是只支持單客戶(hù)機(jī)。SecVisor的結(jié)果不適用于操作系統(tǒng)安全在服務(wù)器加固的場(chǎng)景。而且,他只是成功保護(hù)內(nèi)核代碼而不是內(nèi)核數(shù)據(jù)。

Lares 是一個(gè)活動(dòng)的使用虛擬化的結(jié)構(gòu),被放置在Xen虛擬機(jī),并且在客戶(hù)機(jī)上安裝鉤子程序。為了確保鉤子程序不被覆蓋,Lares 使用內(nèi)存保護(hù)系統(tǒng),使每頁(yè)寫(xiě)權(quán)限通過(guò)附加指紋檢查。Lares 第一個(gè)原型看起來(lái)執(zhí)行很好,然而,它的監(jiān)控使用鉤子程序,能夠通過(guò)性能分析被偵測(cè)到。

XenKimono 是一個(gè)入侵檢測(cè)系統(tǒng),目標(biāo)是發(fā)現(xiàn)惡意入侵,它通過(guò)從外面分析客戶(hù)機(jī)內(nèi)核內(nèi)部數(shù)據(jù)結(jié)構(gòu)(Tamberi后續(xù)的工作和此有關(guān))。所有 XenKimono 模塊在宿主機(jī)內(nèi),并且分析虛擬機(jī)的裸內(nèi)存,看是否有惡意程序(例如:rootkits)。在高級(jí)內(nèi)核數(shù)據(jù)結(jié)構(gòu)翻譯裸虛擬機(jī)的內(nèi)存,并且從DOMU內(nèi)核二進(jìn)制中抽取內(nèi)核符號(hào),并且使用Linux Kernel Crash Dump庫(kù)。這樣,XenKimono 就能在裸內(nèi)存中定位DOMU 內(nèi)核數(shù)據(jù)結(jié)構(gòu)。

四、KVMSEC一個(gè)安全監(jiān)控結(jié)構(gòu)

4.1 威脅模型

我們假定hypervisor和宿主機(jī)內(nèi)核是可信計(jì)算基的一部分,然而,虛擬機(jī)并不是。當(dāng)客戶(hù)機(jī)運(yùn)行時(shí),攻擊被執(zhí)行,惡意軟件也會(huì)注入。當(dāng)客戶(hù)機(jī)運(yùn)行時(shí),它可能成為病毒、代碼注入、緩沖區(qū)溢出、甚至所有惡意攻擊的奴隸。入侵者可能使用缺陷去影響內(nèi)核與應(yīng)用程序,并遠(yuǎn)程使用這些缺陷,試圖獲取root權(quán)限。

4.2 要求與警告

在下面,基于上面的威脅模型,我們描述對(duì)于虛擬機(jī)安全系統(tǒng)的主要要求,一些警告能被解決,也是能解決它們的可能方式。

Requirements 要求:對(duì)于虛擬機(jī),一個(gè)安全系統(tǒng)是和入侵檢測(cè)系統(tǒng)關(guān)聯(lián)的。

一個(gè)安全系統(tǒng)必須滿(mǎn)足以下要求:

RQ1 要求1 Transparency 透明:此系統(tǒng)對(duì)于虛擬機(jī)因該是最小化可見(jiàn)的;也就是說(shuō),潛在的入侵者不能偵測(cè)到監(jiān)控系統(tǒng)。

RQ2 要求2 Immunity to attacks from the Guset 免疫從客戶(hù)機(jī)的攻擊:宿主機(jī)和客戶(hù)機(jī)應(yīng)該被保護(hù),防止從被侵入的客戶(hù)機(jī)攻擊;而且,宿主機(jī)的特征不應(yīng)被影響。

RQ3 要求3 Deployability 可部署性:系統(tǒng)應(yīng)可以被部署到主流硬件上。

RQ4 要求4 Dynamic reaction 動(dòng)態(tài)反應(yīng):系統(tǒng)應(yīng)檢測(cè)入侵客戶(hù)機(jī)的試圖,并采取合適的反應(yīng)抵制入侵或抵制僵尸機(jī)的攻擊。

Caveats 警告:

PR1 一個(gè)從客戶(hù)機(jī)到宿主機(jī)的通訊通道被要求,宿主機(jī)去讀有用的數(shù)據(jù),并從客戶(hù)機(jī)抽取信息,但是它必須被隱藏在客戶(hù)機(jī)的用戶(hù)空間(參考 RQ1)。

PR2 一個(gè)從客戶(hù)機(jī)到宿主機(jī)的信號(hào)通道允許宿主機(jī)在客戶(hù)機(jī)發(fā)生事件時(shí)被提示,但是這些應(yīng)該被盡可能地隱藏(參考 RQ1)。

PR3 一些在通道上的存取控制被要求,為了去保證一致性,同時(shí)保護(hù)信息泄露;這樣,一個(gè)存取控制機(jī)制不會(huì)有對(duì)性能的負(fù)面影響。

五、KVMSEC執(zhí)行

我們執(zhí)行KvmSec的原型,去證實(shí)我們的目標(biāo)是可行的。KvmSec架構(gòu)是由很多在宿主機(jī)和客戶(hù)機(jī)內(nèi)核上的模塊(可選)構(gòu)成,它們通訊通過(guò)安全通道,使宿主機(jī)得到正確的客戶(hù)機(jī)狀態(tài)。監(jiān)測(cè)系統(tǒng)的主模塊定位于宿主機(jī)上,使得在客戶(hù)機(jī)上的攻擊者很難訪(fǎng)問(wèn)宿主機(jī)。數(shù)據(jù):(a)能被客戶(hù)機(jī)進(jìn)程收集或(b)能被宿主機(jī)上的進(jìn)程獨(dú)占的收集并執(zhí)行。

特別地,(a)允許收集更準(zhǔn)確的與完整的客戶(hù)機(jī)數(shù)據(jù),但是容易被檢測(cè)。一個(gè)客戶(hù)機(jī)守護(hù)進(jìn)程主要收集數(shù)據(jù),這可以幫助宿主機(jī)減少計(jì)算負(fù)載。然而,在監(jiān)控系統(tǒng)的隱蔽性和減少宿主機(jī)計(jì)算負(fù)載有折中。對(duì)于(b)(沒(méi)有客戶(hù)機(jī)組件)這個(gè)技術(shù)理論上減少被偵測(cè)(看RQ1),但是僅允許有限的監(jiān)控。因?yàn)檫@個(gè)原因,KvmSec更喜歡(a),而(b)也被支持。

值得注意的是,在KvmSec 中每個(gè)虛擬機(jī)使用它自己私有的內(nèi)存區(qū)與宿主機(jī)通信,它完全獨(dú)立于其他虛擬機(jī)(參考RQ2)。

KvmSec 執(zhí)行(看圖2)被分為2個(gè)主要部分:宿主機(jī)和客戶(hù)機(jī)。兩者有相似的結(jié)構(gòu),它是:1)一個(gè)內(nèi)核守護(hù)進(jìn)程管理與共享通信通道;2)一個(gè)模塊動(dòng)態(tài)收消息,分析它們并反應(yīng)(生成響應(yīng))。

在下面我們主要列出我們采納的對(duì)于KvmSec的解決方案的大綱,響應(yīng)我們面對(duì)的技術(shù)問(wèn)題,同時(shí)遵從以前的要求:

如何解析Linux內(nèi)核虛擬機(jī)的安全擴(kuò)展KVMSEC

SL1 宿主機(jī)客戶(hù)機(jī)通信系統(tǒng)在KVM中不可用,我們不得不使用共享內(nèi)存的方式使之通信(看PR1)。

SL2 在KVM中沒(méi)有宿主機(jī)和客戶(hù)機(jī)信號(hào)通道導(dǎo)致我們?cè)O(shè)計(jì)使用共享內(nèi)存的信號(hào)機(jī)制(看PR2)。我們也不選擇Xen的事件通道,因?yàn)槟菢訉?shí)現(xiàn)信號(hào)通道時(shí),使得 KvmSec 對(duì)于已經(jīng)在客戶(hù)機(jī)的攻擊者能看到。

SL3 在KVM 中缺乏共享內(nèi)存的存取控制使我們?cè)诠蚕韮?nèi)存中同步宿主機(jī)與客戶(hù)機(jī)。為了簡(jiǎn)化存取控制管理,每個(gè)  KvmSec 虛擬機(jī)提供它自己的共享內(nèi)存區(qū)為和宿主機(jī)通訊。而且,對(duì)于兩個(gè)單向通道的每一個(gè),簡(jiǎn)單的鎖定機(jī)制被執(zhí)行,為了在消息通行時(shí)去同步存取。

在KVM中,不像Xen,共享內(nèi)存不被hypervisor直接管理,而是被主模擬進(jìn)程Qemu-KVM管理。使用共享內(nèi)存的通信通道和RQ1是一致的。實(shí)際上,在宿主機(jī)和客戶(hù)機(jī)間使用一個(gè)虛擬網(wǎng)絡(luò)套接字的結(jié)果是可見(jiàn)的并在志愿通信通道中(正像發(fā)生在AIDE[1]中)。而且,消息句柄被包含在客戶(hù)機(jī)內(nèi)核模塊中為了使它盡可能的安全,和RQ2一致。在宿主機(jī)上,消息句柄是在Qemu-KVM共享內(nèi)存管理模塊中執(zhí)行。KVM共享內(nèi)存(看圖3)由2個(gè)數(shù)據(jù)緩存和2個(gè)鎖組成,為保護(hù)相應(yīng)的關(guān)鍵區(qū)。

如何解析Linux內(nèi)核虛擬機(jī)的安全擴(kuò)展KVMSEC

去滿(mǎn)足RQ4 KvmSec 應(yīng)該能活動(dòng)地監(jiān)控運(yùn)行在客戶(hù)機(jī)上的關(guān)鍵進(jìn)程。目前,這種功能沒(méi)有完全實(shí)現(xiàn);然而,KvmSec 能階段地檢查客戶(hù)機(jī)上的存在的和活躍的守護(hù)進(jìn)程數(shù)量。如果這些進(jìn)程其中一個(gè)(非正常)終止,宿主機(jī)將采取合適的統(tǒng)計(jì),包括收集數(shù)據(jù)為鑒定分析,甚至凍結(jié)客戶(hù)機(jī)或可能重啟動(dòng)它(使用可用的干凈的磁盤(pán)鏡像)。KvmSec 能創(chuàng)建一個(gè)宿主機(jī)方的數(shù)據(jù)庫(kù),包含虛擬機(jī)上選定的關(guān)鍵路徑文件的計(jì)算的概要。一個(gè)運(yùn)行時(shí)守護(hù)進(jìn)程能重計(jì)算hash為監(jiān)控的文件。如果不匹配發(fā)現(xiàn),像上面所描述的措施將被執(zhí)行。

在各種模塊中的通信協(xié)議(看圖4)是相似的。宿主機(jī)和客戶(hù)機(jī)顯著的區(qū)別是:

如何解析Linux內(nèi)核虛擬機(jī)的安全擴(kuò)展KVMSEC

1.管理與分配共享內(nèi)存:在客戶(hù)機(jī)上共享內(nèi)存被分配與通過(guò)內(nèi)核模塊管理,然而在宿主機(jī),共享內(nèi)存必須已經(jīng)被分配(在虛擬機(jī)中),并且它的管理被指派給Qemu-KVM 進(jìn)程。

2.模塊數(shù)量:在虛擬機(jī)中,我們只需要一對(duì)模塊,因?yàn)楣蚕韮?nèi)存管理被指派給內(nèi)核,在宿主機(jī)中,我們需要3個(gè)模塊,將在下一節(jié)中擴(kuò)展。

5.1 KvmSec 宿主機(jī)

宿主機(jī)部分由3個(gè)模塊組成:KvmSecD,DM,Qemu-KVM.

  (1)KvmSecD:它是守護(hù)進(jìn)程并且訪(fǎng)問(wèn)所有的虛擬機(jī)地址空間。此外,這個(gè)模塊知道其他2個(gè)宿主機(jī)的守護(hù)進(jìn)程(Qemu-KVM和DM),因?yàn)槟?個(gè)守護(hù)進(jìn)程注冊(cè)它們的pid到KvmSecD.

通訊通道朝向DM:KvmSecD和DM之間的通信由結(jié)合的字符設(shè)備(叫char_dev)所管理,由DM通過(guò)IOCTL接口和 POSIX 信號(hào)控制。字符設(shè)備的能力使用IOCTL接口擴(kuò)展,通過(guò)允許一系列宏與內(nèi)核模塊交互,還定義到這些設(shè)備的訪(fǎng)問(wèn)策略。

在每個(gè)通訊階段,內(nèi)核元素(也就是buffers)被內(nèi)核模塊反鎖而保護(hù)。(為了這個(gè)目的我們的代碼使用下面的原始元素:semaphores (sem wait), mutexes (mux ), atomic variables (reg and qemu alive).)。訪(fǎng)問(wèn)buffer通過(guò)一個(gè)進(jìn)程(DM)使用宏完成,因?yàn)殛P(guān)鍵區(qū)域已經(jīng)被保護(hù)。在這種方式下,系統(tǒng)超過(guò)一個(gè)用戶(hù)空間進(jìn)程都可以升級(jí),因?yàn)樗鼈冊(cè)L問(wèn)buffer通過(guò)這些宏。

(2)DM:DM是2個(gè)用戶(hù)空間守護(hù)進(jìn)程的第一個(gè),由2個(gè)線(xiàn)程組成:

1.DM-它是主要的線(xiàn)程,管理:a)DM和KvmSecD,DM和Qemu間的通訊;b)貫穿Qemu-KVM 從共享內(nèi)存創(chuàng)建與接收消息;c)注冊(cè)DM的pid 到KvmSecD中。

2.WATCHER-它是第二個(gè)線(xiàn)程,管理:a)Qemu-KVM 的啟動(dòng);b)注冊(cè)Qemu-KVM的pid 到KvmSecD中;c)非正常終止Qemu-KVM;

與Qemu的通信通道:既然DM和Qemu進(jìn)程在用戶(hù)空間執(zhí)行,我們能使用任何Linux System V IPC 工具為進(jìn)程間通信。特殊地,我們使用PIPE(或FIFO)

(3)Qemu-KVM :Qemu-KVM是修改的Qemu,它與內(nèi)核模塊KVM合并通信機(jī)制。

Qemu與VM(host and VM)的通信協(xié)議:在虛擬機(jī)和宿主機(jī)間的通信協(xié)議依賴(lài)同步訪(fǎng)問(wèn)共享內(nèi)存區(qū)。Qemu使用cpu_physical_memory_rw 函數(shù)允許寫(xiě)虛擬機(jī)的內(nèi)存。Host-VM同步建立于此函數(shù)。在這種方式下,多存取讀寫(xiě)緩沖是同步的,受保護(hù)的,操作系統(tǒng)獨(dú)立的。

5.2 KvmSec 客戶(hù)機(jī)

KvmSec客戶(hù)機(jī)由2個(gè)模塊組成:KvmSecDVM和DMVM

(1)KvmSecDVM:它是Linux內(nèi)核守護(hù)進(jìn)程,管理虛擬機(jī)和宿主機(jī)的通信。這個(gè)守護(hù)進(jìn)程對(duì)內(nèi)核內(nèi)存有訪(fǎng)問(wèn)權(quán)。這個(gè)模塊分配通信用共享內(nèi)存。而且,我們分配一個(gè)buffer 容納共享內(nèi)存的物理地址。通信協(xié)議同上。

(2)DMVM:它是一個(gè)守護(hù)進(jìn)程,處理監(jiān)控,分析,創(chuàng)建響應(yīng)的任務(wù)。這個(gè)模塊管理共享內(nèi)存的消息。像在宿主機(jī)一樣,使用字符設(shè)備(char_dev)作為它與KvmSecDVM的通信通道。通信協(xié)議也類(lèi)似DM和KvmSecD。這個(gè)模塊檢查關(guān)鍵路徑文件存取,并更正。這個(gè)模塊將來(lái)的執(zhí)行將為其他集成檢查插件提供空間。

六、討論

KvmSec的目標(biāo)是提供潛在的未被察覺(jué)的,不被暗中破壞的系統(tǒng),使得可以捕捉虛擬機(jī)完整性的違反。由KvmSec提供的特性與以前的系統(tǒng)想比最顯著的有如下內(nèi)容:

性能:我們已經(jīng)執(zhí)行基本性能測(cè)試對(duì)比KvmSec與Kvm。特別地,我們度量了時(shí)間要求:執(zhí)行標(biāo)準(zhǔn)2.6內(nèi)核使用標(biāo)準(zhǔn)配置(Kernel build),壓縮它的源代碼到tarball(Kernel unbz2).測(cè)試使用Vaio便攜式計(jì)算機(jī),2GB內(nèi)存,單核2.1Ghz處理器,運(yùn)行Fedora 9 x86(宿主機(jī)和虛擬機(jī))。初步結(jié)果在表2,顯示KvmSec僅比Kvm要求高一點(diǎn)。

如何解析Linux內(nèi)核虛擬機(jī)的安全擴(kuò)展KVMSEC

透明:KvmSec的客戶(hù)機(jī)與宿主機(jī)消息并不通過(guò)標(biāo)準(zhǔn)網(wǎng)絡(luò)??刂疲òl(fā)生在主流完整性結(jié)構(gòu),看3.2節(jié));所有它們是不可檢測(cè)的(RQ1);KvmSec僅依賴(lài)它自己的內(nèi)部通信協(xié)議(看5.1節(jié)),使它獨(dú)立于所采納的虛擬機(jī)系統(tǒng),不像Xen的hypervisor。而且,KvmSec中每個(gè)虛擬機(jī)有它自己的共享內(nèi)存區(qū)可以進(jìn)行宿主機(jī)和虛擬機(jī)通信;這使每個(gè)通信通道獨(dú)立管理,并和其他通道不相關(guān)(RQ2)。

信號(hào):KvmSec 潛在的比其他系統(tǒng)(例如XenRim)少于被偵測(cè),因?yàn)樵谒拗鳈C(jī)和虛擬機(jī)間沒(méi)有明顯的信號(hào)通道(RQ1)(看4節(jié))。

守護(hù)進(jìn)程處理:KvmSec 可以在宿主機(jī)和客戶(hù)機(jī)間共享監(jiān)控任務(wù)。這將提供性能優(yōu)勢(shì),并且增加在通常情況下監(jiān)控的質(zhì)量。公平的交易使監(jiān)控客戶(hù)機(jī)的模塊讓整個(gè)系統(tǒng)更可能受到偵測(cè)。在KvmSec結(jié)構(gòu)中客戶(hù)機(jī)模塊并不嚴(yán)格要求。

抵抗妥協(xié):注意內(nèi)核偵測(cè)系統(tǒng)在宿主機(jī)上,這使系統(tǒng)很難被攻入。而且,管理宿主機(jī)和客戶(hù)機(jī)通信的模塊在客戶(hù)機(jī)內(nèi)核中(看4節(jié))(RQ2)。

部署:KvmSec 能被部署在任何最新的Linux內(nèi)核中,而其他的建議(例如XenKimono)要求Xen虛擬化系統(tǒng)被安裝與運(yùn)行在宿主機(jī)上。接著,KvmSec 所支持的宿主機(jī)平臺(tái)數(shù)量比基于Xen解決方案多(看3.1節(jié))(RQ3)。

七、結(jié)論

我們提出一個(gè)擴(kuò)展Linux內(nèi)核虛擬機(jī)的結(jié)構(gòu):kvmsec。特別地,我們擴(kuò)展KVM聚焦于安全,為虛擬機(jī)的實(shí)時(shí)完整性監(jiān)控提供一個(gè)解決方案(KvmSec)。據(jù)我們了解,這是第一個(gè)針對(duì)Linux KVM的安全課題。我們所開(kāi)發(fā)的KvmSec 原型有如下特征:對(duì)于客戶(hù)機(jī)是透明的(甚至是已經(jīng)被惡意侵入的客戶(hù)機(jī));支持全虛擬化,這將使客戶(hù)機(jī)方減少被偵測(cè)到;它能收集數(shù)據(jù)并與客戶(hù)機(jī)交互,它的內(nèi)核保存在受保護(hù)的宿主機(jī)上;它提供hypervisor到客戶(hù)機(jī)的兩種安全通信方式;它能被部署到x86和x86_64的機(jī)器上。

關(guān)于如何解析Linux內(nèi)核虛擬機(jī)的安全擴(kuò)展KVMSEC問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI