吳志祥,曲譜,李耕(中國聯(lián)通黑龍江省分公司,黑龍江哈爾濱 150001)
云環(huán)境可按照用戶的需求,以低成本向使用者提供軟硬件設(shè)備,使用者可以方便地使用服務(wù),并且無需了解云環(huán)境的細(xì)節(jié),也不需進(jìn)行設(shè)備維護(hù)。虛擬化技術(shù)可以按照需求共享資源,提高了資源的使用率,圖1給出了云環(huán)境虛擬化示意圖。由于云環(huán)境的虛擬化特性,多個虛擬機會在同一主機上同時運行,如果虛擬機之間沒有適當(dāng)?shù)母綦x,攻擊者可以從同一主機上取得其他虛擬機的相關(guān)信息。
2017年,Abazari等人提出了云環(huán)境共存攻擊多目標(biāo)檢測系統(tǒng),整理了虛擬機共存攻擊和檢測對策的類型,并提出一套模型來計算云環(huán)境整體的最佳響應(yīng)對策。他們提出的模型考慮到虛擬機之間的共存時間長短,并在威脅和成本這2 個沖突的目標(biāo)中取得帕雷托最優(yōu)解得到最佳響應(yīng)對策。圖2為帕雷托最優(yōu)解示意圖,其中F1代表總威脅,F(xiàn)2代表總成本。若有一個解x,當(dāng)無法在不提升總成本的情況下再降低總威脅,且無法在不提升總威脅的情況下再降低總成本,那解x就為帕雷托最優(yōu)解。在2 個互相沖突的目標(biāo)的情況下,會有多個帕雷托最優(yōu)解。
圖2 帕雷托最優(yōu)解示意圖
實驗發(fā)現(xiàn),Abazari 等人的模型在具有大量虛擬機的云環(huán)境中計算檢測對策需要耗費相當(dāng)長的時間。因此,本文提出一個自動入侵檢測系統(tǒng)的新模型,其使用機器學(xué)習(xí)來產(chǎn)生檢測對策,并進(jìn)行一系列實驗來證明模型的效果。從實驗結(jié)果可以看出機器學(xué)習(xí)可以以良好的準(zhǔn)確度近似帕雷托最優(yōu)解,并且相較于Abazari 等人的模型在檢測速度方面有2 000 倍的提升。
云環(huán)境計算根據(jù)服務(wù)類型可以分為3類SPI:軟件即服務(wù)(SaaS)、平臺即服務(wù)(PaaS)和基礎(chǔ)架構(gòu)即服務(wù)(IaaS)。其中IaaS 是云環(huán)境供應(yīng)商通過虛擬化技術(shù)在一部大型的實體主機上建立多個虛擬機,根據(jù)使用者需求動態(tài)分配資源,使用者可以根據(jù)自己的需求租借適量的服務(wù)。本文討論的云環(huán)境共存攻擊就是在IaaS架構(gòu)下隱藏的威脅。
共存攻擊可分為3 種類型,第1 種類型包含信息竊取和側(cè)通道攻擊,使受害者隱私泄露,造成不可逆的傷害;第2 種類型是攻擊者利用虛擬機之間的通信來傳播惡意程序;第3種類型,攻擊者的目標(biāo)是得到不公平的共享資源,導(dǎo)致同一實體機上的其他虛擬機受到阻斷服務(wù)攻擊。
根據(jù)研究文獻(xiàn),虛擬機受到共存攻擊的機率與共存時間呈正相關(guān),通過虛擬機共存時間關(guān)系圖可以獲得虛擬機之間的共存時間,并用來計算云環(huán)境中所有虛擬機的威脅等級。虛擬機共存時間關(guān)系圖如圖3所示,圖3 中的節(jié)點代表虛擬機(VM),其中虛擬機可分為2種類型:集合M表示惡意VM,由虛線方框表示;集合S表示一般VM,由實線方框表示。節(jié)點之間的連線代表虛擬機曾經(jīng)或正在同一實體機中共存,連線上的數(shù)值代表共存時間長短,時間會經(jīng)過正規(guī)化變成0~1的數(shù)值,由wi,j表示VMi和VMj的共存時間,舉例來說,圖3 中VM2和VM3的共存時間w2,3=0.8,VM8和VM9的共存時間w8,9=0.2。
圖3 虛擬機共存時間關(guān)系圖
每種攻擊都可以通過特定的對策來防御。響應(yīng)對策表如表1 所示,其中SC 表示側(cè)通道攻擊,MP 表示惡意軟體傳播,DoS 表示阻斷服務(wù)攻擊,Y 表示該對策可防御此種攻擊,N 表示該對策無法防御此種攻擊。表1 中列出了每個共存攻擊的對策,總共可分為5 個對策,對策6表示不進(jìn)行任何動作,以下對每個對策進(jìn)行詳細(xì)說明。
表1 響應(yīng)對策表
a)第1 種對策是虛擬機遷移,其能夠防御所有共存攻擊。
b)第2 種對策能防御側(cè)通道攻擊,針對攻擊者的虛擬機,增加其惡意行動的延遲。如果是受害虛擬機,則可以將硬盤、CPU 和內(nèi)存等共享資源的存取方式改為一致的模式,防止攻擊者從受害者的行為中獲取信息。
c)第3 種對策可以防止惡意軟體傳播,利用虛擬交換機的功能重新配置虛擬網(wǎng)絡(luò)。
d)第4 種對策可以防御阻斷服務(wù)攻擊,主要是通過更改管理程序的配置降低最大計算負(fù)載或內(nèi)存容量,限制攻擊者的資源使用。
e)第5種對策是通過限制相關(guān)虛擬機允許的最大流量速率,防御惡意軟體傳播和阻斷服務(wù)攻擊。
f)第6種對策是不進(jìn)行任何動作。
機器學(xué)習(xí)屬于人工智能的范疇,是一種讓機器從學(xué)習(xí)到推理的過程,機器學(xué)習(xí)的演算法結(jié)合了各種學(xué)科,如概率學(xué)、統(tǒng)計學(xué)和逼近論等,通過組合這些數(shù)學(xué)模型設(shè)計出讓計算機可以自我學(xué)習(xí)的演算法。從訓(xùn)練資料中截取重要特征,訓(xùn)練時通過演算法將特征進(jìn)行分析獲得規(guī)律得到模型,最后就可以利用模型對新資料進(jìn)行預(yù)測。
機器學(xué)習(xí)的概念如圖4 所示,Abazari 等人的模型是使用Matlab 的fgoalattain 函數(shù)來計算多目標(biāo)優(yōu)化問題,目標(biāo)是指總響應(yīng)成本和總威脅,本文的研究在降低威脅的同時也降低成本。而在機器學(xué)習(xí)演算法方面,本文對Lasso、Elastic Net、Ridge Regression 這3 種機器學(xué)習(xí)演算法進(jìn)行了測試,先制造200筆資料,并隨機選取80%作為訓(xùn)練資料,20%作為測試資料,接著分別使用3 種機器學(xué)習(xí)演算法,平均準(zhǔn)確度如表2 所示。由表2可知,Ridge Regression 的準(zhǔn)確度較高,所以本文選擇Ridge Regression作為機器學(xué)習(xí)的演算法。
圖4 機器學(xué)習(xí)概念圖
表2 機器學(xué)習(xí)演算法準(zhǔn)確度比較
Scikit-learn 簡稱SKlearn,是Python 機器學(xué)習(xí)和資料分析的開源套件,其中包含許多知名的機器學(xué)習(xí)演算法,也內(nèi)建許多知名的資料集。在演算法方面,依照演算法功能分為6 個類別,如圖5所示,簡易流程圖可以讓使用者根據(jù)資料集的形態(tài)來挑選適合的演算法。
圖5 Scikit-learn演算法挑選流程圖
虛擬機受到共存攻擊的機率與共存時間呈正相關(guān),因此,為了計算云環(huán)境中所有虛擬機的威脅等級,首先必須擁有虛擬機共存時間關(guān)系圖,還有檢測到的攻擊者所操控的惡意虛擬機集合M。攻擊者進(jìn)行攻擊時,其虛擬機通常會存在資源大量使用、cache miss 等異?,F(xiàn)象,一般可通過持續(xù)的云環(huán)境監(jiān)控來發(fā)現(xiàn)惡意虛擬機。如第1 章所述,云環(huán)境共存攻擊可分為3 個類型:側(cè)通道攻擊、惡意軟體傳播和阻斷服務(wù)攻擊,因此設(shè)定虛擬機威脅等級為三元組(triplet)ti,分別表示3種攻擊的機率,如式(1)所示。
ti是代表VMi被攻擊的機率(威脅等級),一個受害VM會因為和多個不同惡意VM共存,造成被攻擊的機率提升,威脅等級必須包括任一威脅發(fā)生的機率與多個威脅同時發(fā)生的機率,因此對Abazari等人的威脅等級計算方法進(jìn)行修改,實際的計算方式如式(2)所示。
首先,VMj要屬于惡意虛擬機集合M,才需要計算其可能對VMi造成的威脅,n為總虛擬機個數(shù),wi,j表示VMi和VMj的共存時間。ti×wi,j表示VMi被VMj攻擊的機率,[1 1 1]-tj×wi,j就是不被VMj攻擊的機率。多個不被攻擊的機率求積就等于完全不被攻擊的機率,最后由[1 1 1]減去完全不被攻擊的機率就是包括任一威脅發(fā)生的機率與多個威脅同時發(fā)生的機率。
以圖3為例,給予惡意虛擬機隨機的威脅等級,并根據(jù)式(2)計算一般虛擬機的威脅等級,如圖6 所示。假設(shè)要計算VM4的威脅等級,VM4和VM2、VM5、VM6曾經(jīng)共存或正在共存,當(dāng)中只有VM2是惡意虛擬機,所以t4=[1 1 1]-([1 1 1]-t2×0.9)=t2×0.9。另外,假設(shè)要計算VM10的威脅等級,VM10和VM7、VM8、VM12曾經(jīng)共存或正在共存,當(dāng)中VM8和VM12是惡意虛擬機,所以t10=[1 1 1]-([1 1 1]-t8×0.3)×([1 1 1]-t12×0.5)。
圖6 虛擬機威脅等級示意圖
云環(huán)境的總威脅等級T,就是將所有虛擬機的威脅等級做加總,計算方式如下。
每種對策能響應(yīng)的攻擊類型不同,所耗費的成本也不同。根據(jù)式(4),由表1的SC、MP 和DOS 3個欄位產(chǎn)生響應(yīng)對策矩陣C,如式(6)。舉例來說,C(3,2)=1代表對策3可以應(yīng)對惡軟件傳播攻擊,C(4,3)=1代表對策4 可以應(yīng)對拒絕服務(wù)服務(wù)攻擊。由表1 的成本欄位產(chǎn)生成本向量RC,如式(7)。RC()3=0.2 代表對策3擁有低的耗費成本。
Abazari 等人提出的云環(huán)境共存攻擊多目標(biāo)響應(yīng)系統(tǒng),已經(jīng)能針對云環(huán)境整體選擇出最適合的響應(yīng)對策,但是存在響應(yīng)時間過久的問題。因此,本文的訓(xùn)練數(shù)據(jù)就由Abazari 等人提出的模型來產(chǎn)生,步驟如下。
a)產(chǎn)生一個隨機的VM共存時間關(guān)系圖。
b)隨機挑選約30%的VM作為惡意VM。
c)隨機產(chǎn)生惡意VM威脅等級。
d)計算每個VM的威脅等級。
e)使用Matlab的fgoalattain函數(shù)產(chǎn)生解答。
數(shù)據(jù)生成的部分使用Matlab完成。資料集產(chǎn)生之后,隨機選取80%作為機器學(xué)習(xí)的訓(xùn)練數(shù)據(jù),再隨機選取20%數(shù)據(jù)作為測試數(shù)據(jù)。機器學(xué)習(xí)使用Scikitlearn 的Ridge regression。Matlab 的fgoalattain 函數(shù)用來計算多目標(biāo)優(yōu)化的問題,包括線性和非線性,完整程序定義如式(8)所示。其中,weight、goal、b和beq是向量;A和Aeq是矩陣;F(x)、c(x)和ceq(x)是回傳向量的函數(shù),可以為非線性函數(shù);x、lb和ub可以是向量或矩陣。
F(x)是要進(jìn)行多目標(biāo)優(yōu)化的函數(shù),優(yōu)化的目標(biāo)是云環(huán)境總威脅和總成本,如式(9)。
權(quán)重W1和W2分別代表威脅和成本的重要性,用來衡量較低的威脅或較低的成本,其中W=(W1,)W2,W1+W2=1,舉例來說,當(dāng)設(shè)定W1接近0 的時候,意味著得到的對策會有高的成本搭配極低威脅的成效。當(dāng)設(shè)定的權(quán)重不同,就會得到不同的解X,X的定義如式(11)所示,x={ 0,1},其中q為對策數(shù)量,n為虛擬機數(shù)量,解X會顯示每個虛擬機該使用哪一個對策。
最后,將權(quán)重W、所有虛擬機的威脅等級t、解X都轉(zhuǎn)為一維陣列,整合成一列數(shù)據(jù),數(shù)據(jù)表內(nèi)容如表3所示。生成多筆數(shù)據(jù)后輸出成.csv 文檔,方便后續(xù)使用python讀取進(jìn)行機器學(xué)習(xí)。
表3 數(shù)據(jù)表內(nèi)容
本文提出一個以機器學(xué)習(xí)響應(yīng)云環(huán)境共存攻擊的系統(tǒng),為了驗證提出的模型具有實用性,設(shè)計了以下實驗并和Abazari 等人的模型進(jìn)行比較。在存在50個虛擬機的云環(huán)境模擬環(huán)境中,機器學(xué)習(xí)在響應(yīng)時間方面比Matlab 快2 296 倍,準(zhǔn)確度為85%,可見訓(xùn)練資料和虛擬機個數(shù)的增加可以提升機器學(xué)習(xí)的準(zhǔn)確度。使用一組固定的威脅等級,并使用不同的權(quán)重,權(quán)重從W=(0.1,0.9)到W=(0.9,0.1),每次增減0.1。分別使用Matlab 和機器學(xué)習(xí)產(chǎn)生響應(yīng)對策,然后計算使用對策后云環(huán)境總威脅和總成本,結(jié)果如圖7所示。
圖7 不同權(quán)重下的威脅與成本比較圖
圖7 中Matlab 的點可視為帕雷托最優(yōu)解,而機器學(xué)習(xí)的曲線也近似于帕雷托最優(yōu)解,并不會偏離太多。在相同權(quán)重的設(shè)定下,機器學(xué)習(xí)的解有較高的威脅,但有較低的成本。
從實驗結(jié)果可以看出,傳統(tǒng)方法和本研究的機器學(xué)習(xí)模型都可以得到針對當(dāng)前環(huán)境適當(dāng)?shù)捻憫?yīng)對策,傳統(tǒng)方法在總威脅和總成本的取舍下得到帕雷托最優(yōu)解,而本研究的機器學(xué)習(xí)模型可以以高準(zhǔn)確度得到近似的解。在響應(yīng)時間方面,從實驗的云環(huán)境來看傳統(tǒng)方法需要的響應(yīng)時間增長了約12倍,而機器學(xué)習(xí)模型僅增加1.23 倍,資料筆數(shù)的增加和虛擬機量的增加也讓機器學(xué)習(xí)的準(zhǔn)確度有所提升,可見在更大量虛擬機的云環(huán)境中,本文的機器學(xué)習(xí)模型有更好的效果。