程銘瑾
摘要:云計(jì)算使得計(jì)算機(jī)領(lǐng)域發(fā)生了深刻的變革,它雖然提高了使用效率,但是在用戶信息資產(chǎn)安全與隱私保護(hù)方面卻存在的一定的問題。因此安全成為云計(jì)算領(lǐng)域急需突破的重要問題?,F(xiàn)階段云計(jì)算安全方向的研究主要分為內(nèi)部監(jiān)控和外部監(jiān)控兩個(gè)方面。該文采用外部監(jiān)控中的入侵檢測對虛擬機(jī)進(jìn)行保護(hù)。傳統(tǒng)的入侵檢測系統(tǒng)作為一種被動(dòng)的監(jiān)控,而且部署都面臨兩難的窘境,部署在虛擬機(jī)內(nèi)部則容易被攻破,部署在網(wǎng)絡(luò)中則存在語義鴻溝無法精確捕獲。在虛擬化平臺下,所有的虛擬機(jī)均是通過虛擬機(jī)監(jiān)控器發(fā)送請求完成相應(yīng)操作命令。因此該文將入侵檢測系統(tǒng)部署在虛擬機(jī)監(jiān)控器內(nèi)部,同時(shí)加入學(xué)習(xí)模塊加縮短入侵檢測的響應(yīng)時(shí)間,達(dá)到對虛擬機(jī)保護(hù)的目的。
關(guān)鍵詞:云計(jì)算;入侵檢測系統(tǒng);外部監(jiān)控
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)30-0010-03
虛擬化技術(shù)(virtualization) 改變了底層硬件與系統(tǒng)軟件緊耦合的方式,能夠更加靈活地配置與管理計(jì)算系統(tǒng),因此在企業(yè)中得到了廣泛的應(yīng)用。隨著互聯(lián)網(wǎng)經(jīng)濟(jì)時(shí)代的到來,大數(shù)據(jù)、云計(jì)算成為當(dāng)前最常接觸的內(nèi)容,通過虛擬化技術(shù)來實(shí)現(xiàn)各種資源的合理配置與使用成為各個(gè)企業(yè)或者是用戶所求之處。因而,虛擬化技術(shù)在未來企業(yè)信息平臺的構(gòu)建之中具有廣闊的應(yīng)用價(jià)值。在當(dāng)前虛擬化技術(shù)根據(jù)虛擬層次的差異,被分為指令級虛擬化、硬件抽象級虛擬化、操作系統(tǒng)級虛擬化、運(yùn)行庫級虛擬化和編程語言級虛擬化。在各個(gè)虛擬環(huán)境下運(yùn)行的操作系統(tǒng)及應(yīng)用程序被稱之為虛擬機(jī),而能夠?yàn)閿?shù)量眾多的虛擬機(jī)運(yùn)轉(zhuǎn)使用的虛擬化軟件稱之為虛擬機(jī)管理器。
絕大多數(shù)云平臺均是建立在虛擬化環(huán)境上,而且許多商家已經(jīng)提供云服務(wù),因此如何解決虛擬化層中的安全問題變得尤為重要。下面我們分析造成這個(gè)安全問題的來源,虛擬化平臺的安全問題可能來自于四個(gè)方面:一是同一平臺下相互之間具有競爭的關(guān)系的企業(yè)為獲取對方信息做出的信息竊取,二是來自網(wǎng)絡(luò)的入侵攻擊,三是虛擬層管理員為獲取用戶信息做出的信息竊取,最后是本身系統(tǒng)內(nèi)層泄漏導(dǎo)致用戶數(shù)據(jù)泄密。本文只探討如何解決前面兩種安全問題,因?yàn)樘摂M層管理員對用戶信息做出的篡改這可根據(jù)其企業(yè)的制度來處理,平臺的好壞由市場來決定,用戶對其自行選擇。
從目前來看,在虛擬機(jī)架構(gòu)基礎(chǔ)上增強(qiáng)安全工具的安全性研究,例如系統(tǒng)日志、入侵檢測、完整性監(jiān)控、惡意代碼檢測與分析、監(jiān)控通用性和安全監(jiān)控架構(gòu)等已經(jīng)成為時(shí)下研究的重點(diǎn)。
1 基于虛擬化安全監(jiān)控條件下的分類
由于虛擬機(jī)管理器具有更好的隔離性等優(yōu)勢,因此近幾年來基于虛擬機(jī)的安全監(jiān)控都是利用虛擬機(jī)管理器來保護(hù)特定的安全工具并進(jìn)行隔離。因此基于虛擬化安全監(jiān)控的相關(guān)研究工作從安全監(jiān)控實(shí)現(xiàn)技術(shù)的角度來看可以分為兩大類:
1)內(nèi)部監(jiān)控
內(nèi)部監(jiān)控主要是在虛擬機(jī)使用過程中通過內(nèi)核模塊的加載來攔截系統(tǒng)主機(jī)所受到的外部入侵行為,并通過虛擬機(jī)管理器對內(nèi)核模塊的安全進(jìn)行保護(hù)。
在該監(jiān)控類型下,所有的安全防護(hù)軟件或工具都將被統(tǒng)一部署在被虛擬隔離出來的空間。而采取此種架構(gòu)形式則能夠?qū)崿F(xiàn)入侵檢測系統(tǒng)防護(hù)的虛擬機(jī)正常運(yùn)轉(zhuǎn)的操作系統(tǒng)中任意位置植入鉤子函數(shù),繼而發(fā)揮出相應(yīng)的攔截作用。而其攔截的對象在當(dāng)前可以包括操作進(jìn)程的創(chuàng)建、內(nèi)部重要文件的讀寫與修改等。此外,由于目標(biāo)虛擬機(jī)的使用者所使用的操作系統(tǒng)可信度并不是很高,因而植入的鉤子函數(shù)同樣需要入侵檢測系統(tǒng)的保護(hù),在虛擬機(jī)運(yùn)行該函數(shù)時(shí),將相應(yīng)的信息反饋到入侵檢測系統(tǒng),開辟出相應(yīng)的存儲空間來為其運(yùn)行提供必要空間支持,并且加以保護(hù),防止該函數(shù)被惡意篡改。鉤子函數(shù)在被啟動(dòng)運(yùn)行之后,在探測到目標(biāo)虛擬主機(jī)之中不良事件發(fā)生時(shí),將會自動(dòng)嵌入到虛擬主機(jī)管理器之中,利用跳轉(zhuǎn)模塊來將該不良事件轉(zhuǎn)移至安全的空間后進(jìn)行驅(qū)動(dòng),之后利用操作系統(tǒng)之中所加載的安全防護(hù)工具或軟件對其進(jìn)行評估與分析,針對入侵行為所產(chǎn)生的不良事件做出動(dòng)態(tài)反應(yīng)。
采用此架構(gòu)能夠輔助目標(biāo)虛擬主機(jī)在運(yùn)行過程中實(shí)現(xiàn)不良事件的攔截目的,在獲取系統(tǒng)相應(yīng)的操作指令后不需要系統(tǒng)管理員再次對其操作指令進(jìn)行重新編寫即可以直接運(yùn)行,降低了安全防護(hù)性能方面的不必要費(fèi)用支出。盡管此架構(gòu)具有較高的應(yīng)用價(jià)值,但是由于該架構(gòu)直接植入在了目標(biāo)虛擬主機(jī)所使用的操作系統(tǒng)內(nèi)核模塊之中,同時(shí)內(nèi)存保護(hù)以及跳轉(zhuǎn)兩個(gè)模塊是獨(dú)立運(yùn)行,對于目標(biāo)虛擬主機(jī)而言其透明性以及通用性在當(dāng)前仍然處于較低水平,影響其推廣使用。
2)外部監(jiān)控
外部監(jiān)控是在虛擬機(jī)管理器中對虛擬機(jī)中的事件進(jìn)行攔截,以此為基礎(chǔ)在虛擬機(jī)外部由位于安全域的安全工具按照某種策略對其進(jìn)行檢測。
和內(nèi)部監(jiān)控不同,外部監(jiān)控具有一定的優(yōu)勢。其監(jiān)控點(diǎn)部署在虛擬機(jī)管理器中,是目標(biāo)虛擬機(jī)和安全域中的安全工具進(jìn)行通信的橋梁。通過監(jiān)控點(diǎn)攔截目標(biāo)虛擬機(jī)中發(fā)生的事件,并重新構(gòu)建出高級語義然后傳遞給安全工具。安全工具則根據(jù)安全策略所產(chǎn)生的響應(yīng),通過監(jiān)控點(diǎn)來控制目標(biāo)虛擬機(jī)。虛擬機(jī)管理器將目標(biāo)虛擬機(jī)與安全工具進(jìn)行隔離,以此增強(qiáng)安全工具的安全性。由于虛擬機(jī)管理器處于目標(biāo)虛擬機(jī)的底層,因此監(jiān)控點(diǎn)可以觀測到目標(biāo)虛擬機(jī)中CPU信息、內(nèi)存頁面等相關(guān)信息。一般來說,外部監(jiān)控一般包含事件截獲和語義重構(gòu)兩種基本功能。事件截獲是指攔截虛擬機(jī)中發(fā)生的某些事件,從而觸發(fā)安全工具對其進(jìn)行檢測。語義重構(gòu)則是將虛擬機(jī)管理器獲取的低級語義重新構(gòu)建出能夠被監(jiān)控工具“理解”的高級語義(操作系統(tǒng)級語義)。語義重構(gòu)的過程與客戶操作系統(tǒng)的類型和版本有著密切的關(guān)系,通過對某些寄存器或者內(nèi)存地址可以解析出內(nèi)核關(guān)鍵的數(shù)據(jù)結(jié)構(gòu)。
2 基于入侵檢測的虛擬化保護(hù)
安全監(jiān)控是一種保證計(jì)算系統(tǒng)能夠正常運(yùn)行的安全功能。本文將主要從入侵檢測對VM的資源進(jìn)行保護(hù)。
1)入侵檢測和防御系統(tǒng)的定義及特點(diǎn)
入侵檢測系統(tǒng)(intrusion detection system,IDS)是一種通過檢測系統(tǒng)訪問者訪問意圖來辨別其是否會對整個(gè)操作系統(tǒng)造成破壞及不良影響,亦或是以非正當(dāng)手段來查閱、下載系統(tǒng)數(shù)據(jù)庫之中存儲的相關(guān)信息,從而及時(shí)發(fā)現(xiàn)并阻止惡意入侵行為,起到防護(hù)關(guān)鍵和隱私信息的作用的一種系統(tǒng)。根據(jù)入侵檢測系統(tǒng)應(yīng)用載體的不同,可以分為基于主機(jī)的入侵檢測系統(tǒng)以及基于互聯(lián)網(wǎng)的入侵檢測系統(tǒng)兩種類型。前者主要是對電腦系統(tǒng)內(nèi)部的日志、系統(tǒng)運(yùn)行狀態(tài)進(jìn)行檢測、分析,繼而搜集系統(tǒng)是否存在被入侵風(fēng)險(xiǎn)的數(shù)據(jù)。而后者則是應(yīng)用在網(wǎng)絡(luò)鏈接、網(wǎng)絡(luò)協(xié)議、網(wǎng)頁訪問等檢測與防護(hù)領(lǐng)域,從源頭上阻斷入侵行為。
有鑒于當(dāng)前所采用的入侵檢測系統(tǒng)主要是基于入侵檢測,繼而針對該入侵行為做出動(dòng)態(tài)響應(yīng),盡管其能夠取得一定程度的防御效果,但是受限于入侵檢測所采用的架構(gòu)卻存在者眼中的弊端與漏洞,不僅給系統(tǒng)管理人員帶來較大的工作困難,同時(shí)也是的整個(gè)防護(hù)系統(tǒng)防護(hù)性能大幅降低,為非法入侵提供了可乘之機(jī)。而此種弊端與漏洞則主要體現(xiàn)在以下兩方面:其一,如果將入侵檢測系統(tǒng)部署到應(yīng)用的系統(tǒng)主機(jī)之上,雖然能夠?qū)崟r(shí)動(dòng)態(tài)查詢系統(tǒng)主體的運(yùn)行狀態(tài)等數(shù)據(jù)信息,但是在網(wǎng)絡(luò)鏈接與訪問上則無法發(fā)揮出系統(tǒng)的防護(hù)作用,因而容易受到黑客的惡意攻擊,造成整個(gè)系統(tǒng)癱瘓。其二,如果是將入侵檢測系統(tǒng)部署在網(wǎng)絡(luò)上,系統(tǒng)主機(jī)可以通過該系統(tǒng)更好地抵御外界非法入侵行為,從而保障整個(gè)系統(tǒng)主機(jī)的正常運(yùn)轉(zhuǎn),但是在內(nèi)部運(yùn)行狀態(tài)監(jiān)測上則無法兼顧,使得內(nèi)部入侵行為逃脫入侵檢測系統(tǒng)的監(jiān)測。近些年來,利用虛擬化技術(shù)來提高入侵檢測系統(tǒng)可靠性及應(yīng)用范圍的架構(gòu)思路日趨成熟。虛擬機(jī)自省通過利用虛擬管理器來將其與整個(gè)監(jiān)控體系相分離,使用單獨(dú)運(yùn)行的方式來對整個(gè)系統(tǒng)主機(jī)進(jìn)行監(jiān)控,檢測系統(tǒng)主機(jī)以及網(wǎng)絡(luò)節(jié)點(diǎn)中各個(gè)分機(jī)數(shù)據(jù)信息,繼而起到入侵檢測的目的。
2)傳統(tǒng)的入侵檢測
由于傳統(tǒng)上的入侵檢測是一種被動(dòng)的檢測,因此本文擬采取主動(dòng)防御的策略保護(hù)客戶機(jī)。VM的資源調(diào)度均是由VMM管理,因此只須將入侵檢測系統(tǒng)部署在VMM中,它能監(jiān)視VM的狀態(tài)的同時(shí),也能對網(wǎng)絡(luò)入侵進(jìn)行實(shí)時(shí)監(jiān)控。
傳統(tǒng)的基于IDS的虛擬機(jī)監(jiān)視器模塊如下圖1所示,由于IDS與虛擬機(jī)監(jiān)視器彼此分離,相對而言IDS設(shè)計(jì)變得簡單,但是也帶來其他問題,例如,攻擊可能繞過IDS直達(dá)目標(biāo)VM對其進(jìn)行,雖然可以利用無法旁路的內(nèi)存鎖,但是使得IDS開銷變得非常大。
圖1 傳統(tǒng)的入侵檢測系統(tǒng)
3 設(shè)計(jì)
由于云平臺具有按需分配的特點(diǎn),因此潛在的威脅來自于同一主機(jī)下的VM,同時(shí)也可以來自于外部網(wǎng)絡(luò)。其中本文探討的也是最常見的外部訪問威脅,因此我們將討論各部件組件的功能和整個(gè)IDS架構(gòu)的設(shè)計(jì)。
1)虛擬機(jī)監(jiān)視器
虛擬器監(jiān)視器將硬件虛擬化,并負(fù)責(zé)各VM資源的調(diào)度包括內(nèi)存映射,CPU資源管理,訪問控制等。與傳統(tǒng)的VMM不同的是,本文將IDS與VMM作為一個(gè)整體,避免了操作序列繞過IDS直達(dá)目標(biāo)VM或者進(jìn)行違規(guī)訪問。
虛擬機(jī)監(jiān)視器分兩部分,一部分為入侵檢測模塊,另外一部分訪問控制模塊。
如圖2所示,IDS分三個(gè)主要模塊:策略引擎,學(xué)習(xí)模塊和記錄模塊(黑名單和特征序列)。策略引擎是入侵檢測中最重要的部分,這個(gè)組件負(fù)責(zé)解釋系統(tǒng)狀態(tài)和事件,其調(diào)用相應(yīng)的搜索引擎查看系統(tǒng)是否受到損害,并做出適當(dāng)?shù)捻憫?yīng),如暫停虛擬機(jī)事件處理和重啟虛擬機(jī)等,并通知VMM和記錄相關(guān)信息。學(xué)習(xí)模塊是IDS中一項(xiàng)優(yōu)化負(fù)責(zé)對已經(jīng)檢測出來的入侵特征序列做訓(xùn)練分析,并預(yù)測可能的入侵操作,最后一個(gè)模塊是記錄模塊,其負(fù)責(zé)保存IDS處理過程中的信息,如黑名單和特征序列。
訪問控制模塊作為VMM的中最核心的部分,其負(fù)責(zé)管理各個(gè)虛擬機(jī)的資源分配以及虛擬機(jī)和實(shí)體機(jī)之間的資源映射,并為管理虛擬機(jī)的部門提供相對應(yīng)的接口,使其能夠?qū)λ匈Y源進(jìn)行管理。
2) 主動(dòng)防御的入侵檢測系統(tǒng)原理
如圖2所示將IDS加載到虛擬機(jī)監(jiān)視器內(nèi)部,同時(shí)在原來IDS的基礎(chǔ)上采用一種學(xué)習(xí)模塊(Learning Model)根據(jù)檢測到的信息將VM分成友好的虛擬機(jī)(Friendly Virtual Machine,縮寫為FVM)與不友好的虛擬機(jī)(Unfriendly Virtual Machine,縮寫為UVM),將UVM存入黑名單記錄入侵次數(shù),同時(shí)將UVM的攻擊方式(Attack Method)和特征序列(Feature Sequence)作為訓(xùn)練樣本保存在IDS訓(xùn)練集中。
當(dāng)VMM接收到服務(wù)請求時(shí),VMM首先將服務(wù)請求傳遞給IDS模塊。由于特征序列中并沒有樣本,因此初始化時(shí)學(xué)習(xí)模塊并不起作用。IDS模塊立即調(diào)用相應(yīng)的資源進(jìn)行操作,并使用搜索引擎模塊監(jiān)視系統(tǒng)狀態(tài)是否發(fā)生改變。如果系統(tǒng)狀態(tài)發(fā)生改變,立即中斷其對資源訪問;并向VMM外部接口通信;并將該端口設(shè)置為不友好的虛擬機(jī);記錄當(dāng)前操作信息;利用學(xué)習(xí)模塊對分類器進(jìn)行學(xué)習(xí);當(dāng)某一UVM的記錄達(dá)到設(shè)定閥值將其記錄到黑名單中;并向該虛擬機(jī)發(fā)出警告,否則進(jìn)行正常訪問。
由于入侵檢測會導(dǎo)致操作的時(shí)延,鑒于實(shí)時(shí)性的考慮,當(dāng)訓(xùn)練集達(dá)到一定閥值時(shí),入侵檢測首先通過掃描黑名單進(jìn)行匹配,如若匹配不成功則采用學(xué)習(xí)模塊對其預(yù)測,如果預(yù)測結(jié)果為FVM則響應(yīng)其處理請求,否則再次進(jìn)行入侵檢測。如若黑名單匹配成功則對其懲罰,對其進(jìn)行更為嚴(yán)格的入侵檢測同時(shí)降低處理優(yōu)先級將其任務(wù)延時(shí)處理。因此通過學(xué)習(xí)模塊對IDS起到加速的作用。
圖2 改進(jìn)的入侵檢測監(jiān)控保護(hù)系統(tǒng)
3)入侵檢測系統(tǒng)的缺點(diǎn)
由于入侵檢測系統(tǒng)容易被探測得到,因此入侵檢測系統(tǒng)容易暴露,完全隱藏的VMM是不可能的。與無虛擬化的I/O操作,設(shè)備訪問和指令虛擬化訪問時(shí)間存在差別,因此通過訪問時(shí)間即可探測到IDS的存在。盡管上面的改進(jìn)的入侵檢測系統(tǒng)采用了訓(xùn)練模塊加快IDS的響應(yīng)時(shí)間。但是如果IDS一旦被探測到,惡意篡改程序會改變其特征(例如插入空操作和無效操作)因此不可能檢測到其意圖更不可能提取其行為特征,從而逃避IDS的檢測。而且即使沒有逃脫IDS的檢測其產(chǎn)生的時(shí)延均讓人無法接受。
作為入侵檢測系統(tǒng)最大的缺點(diǎn)就是耗時(shí),本文雖然采用了學(xué)習(xí)模塊,但是學(xué)習(xí)模塊依賴于的特征序列,因此特征序列的多樣性和訓(xùn)練的好壞直接決定了入侵檢測系統(tǒng)實(shí)時(shí)性的好壞。因此將來的研究方向是采用更好的策略引擎加快自身效率。
4 總結(jié)
本文針對云平臺虛擬化條件下的外部訪問威脅,在傳統(tǒng)的VMM基礎(chǔ)上引入學(xué)習(xí)的機(jī)制,將IDS與VMM作為一個(gè)整體,避免了操作序列繞過IDS直達(dá)目標(biāo)VM或者進(jìn)行違規(guī)訪問,從而提高了系統(tǒng)的安全性。
參考文獻(xiàn):
[1] 項(xiàng)國富,金海,鄒德清,等.基于虛擬化的安全監(jiān)控[J].軟件學(xué)報(bào), 2012(8).
[2] 肖如良,姜軍,倪友聰,等. 基于虛擬機(jī)自省的運(yùn)行時(shí)內(nèi)存泄漏檢測模型[J]. 通信學(xué)報(bào), 2013(8).
[3] 沈余鋒,余小軍. 云計(jì)算環(huán)境下虛擬化安全探討[J]. 電力信息與通信技術(shù), 2013(11).
[4] 肖如良,姜軍,倪友聰,等. 基于虛擬機(jī)自省的運(yùn)行時(shí)內(nèi)存泄漏檢測模型[J].通信學(xué)報(bào), 2013(8).