郝 瑞,彭新光,修 磊,劉晨華
(1.太原理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,太原 030024;2.太原大學(xué)教育學(xué)院 計(jì)算機(jī)科學(xué)系,太原 030001;3.山西財(cái)經(jīng)大學(xué) 數(shù)量經(jīng)濟(jì)研究所,太原 030006;4.太原科技大學(xué) 應(yīng)用科學(xué)學(xué)院,太原 030024)
由可信計(jì)算組織(trusted computing group,TCG)定義的可信計(jì)算平臺(tái)的一個(gè)突出特點(diǎn)是主板上嵌入了可信構(gòu)建模塊TBB(trusted building block,TBB)。作為可信計(jì)算平臺(tái)的信任根TBB由可信度量根核(core root of trust for measurement,CRTM)和可信平臺(tái)模塊(trusted platform module,TPM)構(gòu)成,為平臺(tái)提供完整性度量、安全存儲(chǔ)、完整性報(bào)告三大核心功能。TPM內(nèi)置平臺(tái)配置寄存器(platform configuration register,PCR)用來(lái)存儲(chǔ)數(shù)據(jù)完整性度量值,通過(guò)迭代計(jì)算Hash值PCRi←SHA-1(PCRi‖Value),將新的完整性度量值擴(kuò)展到PCR中。TCG[1]規(guī)范所描述的信任鏈構(gòu)建過(guò)程CRTM→BIOS→OSLoader→OS→Applications,一級(jí)度量認(rèn)證一級(jí),一級(jí)信任一級(jí),確保整個(gè)平臺(tái)可信。這一過(guò)程是基于數(shù)據(jù)完整性的一次驗(yàn)證,主要保障系統(tǒng)啟動(dòng)初始階段可信,系統(tǒng)開(kāi)始運(yùn)行后,計(jì)算機(jī)的可信主要取決于在其上運(yùn)行的軟件行為的可信性,軟件運(yùn)行時(shí)的動(dòng)態(tài)可信性成為解決計(jì)算機(jī)系統(tǒng)可信的關(guān)鍵問(wèn)題。
軟件行為動(dòng)態(tài)可信證明是可信計(jì)算領(lǐng)域研究的熱點(diǎn)之一。目前TCG在可信軟件方面研究較少,很多研究者從入侵檢測(cè)中的異常檢測(cè)技術(shù)中找到了一些方法。莊琭[2]等提出基于軟件行為的可信動(dòng)態(tài)度量模型,該模型給出了軟件行為動(dòng)態(tài)度量的相關(guān)概念和判定定理,但未給出實(shí)際度量方法;在此基礎(chǔ)上,又提出基于交互式馬爾可夫鏈的可信動(dòng)態(tài)度量[3],在功能度量的基礎(chǔ)上引入性能特征指標(biāo)度量,但沒(méi)有給出具體實(shí)現(xiàn)方法;楊曉暉等[4]提出一個(gè)新的軟件行為動(dòng)態(tài)可信評(píng)測(cè)模型,以行為軌跡和檢查點(diǎn)場(chǎng)景來(lái)刻畫(huà)軟件行為的動(dòng)態(tài)軌跡,但該方法需修改內(nèi)核,增加系統(tǒng)額外開(kāi)銷(xiāo),且對(duì)可信判定二值化。筆者對(duì)TCG的信任鏈進(jìn)行拓展,將支持向量機(jī)的分類(lèi)算法引入軟件動(dòng)態(tài)行為可信證明中,提出了基于支持向量機(jī)(support vector machine,SVM)的可信證明模型,利用其小樣本學(xué)習(xí)方法和較短的時(shí)間特性對(duì)行為進(jìn)行度量,完成對(duì)軟件行為的動(dòng)態(tài)證明。
本文對(duì)TCG的信任鏈進(jìn)行拓展,引入對(duì)應(yīng)用層軟件運(yùn)行時(shí)動(dòng)態(tài)可信的監(jiān)測(cè),在操作系統(tǒng)和應(yīng)用軟件間加入度量代理,提出軟件可信的信任鏈模型,如圖1所示。
圖1 信任鏈拓展模型
軟件可信的評(píng)測(cè)過(guò)程如下。首先將度量代理加入信任鏈,在操作系統(tǒng)接管系統(tǒng)運(yùn)行的控制權(quán)后,繼續(xù)度量其二進(jìn)制哈希值并將結(jié)果擴(kuò)展至PCR;接下來(lái)由度量代理負(fù)責(zé)度量應(yīng)用軟件的完整性和動(dòng)態(tài)可信性,并根據(jù)度量結(jié)果決定軟件是否被加載或允許其繼續(xù)運(yùn)行并向驗(yàn)證方報(bào)告結(jié)果,完整性度量通過(guò)度量代理計(jì)算出軟件代碼完整性哈希值,與TPM存儲(chǔ)的標(biāo)準(zhǔn)哈希值進(jìn)行比較,并根據(jù)比較結(jié)果決定是否加載軟件,這屬于靜態(tài)度量。當(dāng)軟件運(yùn)行時(shí),進(jìn)行基于SVM的軟件行為可信動(dòng)態(tài)評(píng)測(cè),度量代理根據(jù)動(dòng)態(tài)可信評(píng)測(cè)結(jié)果決定軟件是否允許繼續(xù)運(yùn)行,這屬于動(dòng)態(tài)度量范疇。本文主要研究軟件動(dòng)態(tài)可信性。
定義1 軟件行為。軟件運(yùn)行時(shí)作為主體s使用函數(shù)f對(duì)客體obj進(jìn)行操作[5]:
式中:Subjects為主體集合;Functions為函數(shù)集合;Objects為客體集合。
定義2 軟件行為跡。軟件行為跡是軟件的一次實(shí)際運(yùn)行所產(chǎn)生的具有一定時(shí)序關(guān)系的行為序列。行為跡是所能檢測(cè)到的軟件行為,如果軟件的每一個(gè)行為都能檢測(cè)到,則行為跡等于軟件行為。Forrest[6]等人的研究工作表明特權(quán)程序所產(chǎn)生的系統(tǒng)調(diào)用序列能夠反映軟件行為特征,是行為跡的具體表現(xiàn)形式。因此一個(gè)軟件行為跡集合表示為T(mén)={R1,R2,…,Ri,,…,Rm},其中Ri為特權(quán)程序正常運(yùn)行時(shí)所產(chǎn)生的第i個(gè)行為跡,記為Ri=),其中表示在行為跡Ri中按時(shí)間先后順序排列的第j個(gè)系統(tǒng)調(diào)用。
定義3 行為度量信息基。對(duì)于已知正?;虍惓P袨檑ER1,R2,…,Rm,使用長(zhǎng)度為K的滑動(dòng)窗口進(jìn)行掃描生成的行為度量信息基是一個(gè)二元組〈xi,yi〉,其中xi?Ri,|xi|=k;類(lèi)變量yi∈{-1,+1},yi=+1代表正常行為跡短序列,yi=-1代表異常行為跡短序列。
支持向量機(jī)是一種建立在統(tǒng)計(jì)學(xué)習(xí)理論和結(jié)構(gòu)風(fēng)險(xiǎn)最小化原則基礎(chǔ)上的機(jī)器學(xué)習(xí)新技術(shù)。其最大特點(diǎn)是泛化能力強(qiáng),分類(lèi)速度快,在有限的訓(xùn)練樣本中得到較為精確的分類(lèi)器,從而具有良好的檢測(cè)性能。
本文采用支持向量機(jī)對(duì)軟件行為進(jìn)行分類(lèi)[7],首先用已獲得的行為度量信息基對(duì)支持向量機(jī)進(jìn)行訓(xùn)練。由于各信息基對(duì)分類(lèi)能力的貢獻(xiàn)各不相同,而且特征空間的維數(shù)太大會(huì)占用相當(dāng)大的內(nèi)存空間,計(jì)算時(shí)間過(guò)長(zhǎng),影響分類(lèi)速度,所以應(yīng)該去掉對(duì)分類(lèi)作用不大的信息基。本文采用信息增益IG(j)來(lái)衡量每個(gè)信息基的重要程度:
式中:IG(j)為第j個(gè)信息基的信息增益值;P(vj,yi)表示在類(lèi)yi中第j個(gè)信息基取值vj的概率;P(vj)表示在所有的信息基中第j個(gè)信息基取值vj的概率;P(yi)表示在所有的信息基中類(lèi)yi出現(xiàn)的概率。
然后,按IG(j)降序排序,選取前h個(gè)作為有效信息基。
在樣本空間線性可分的條件下,存在一個(gè)超平面:w·x+b=0。w為超平面的法向量,w·x是w和x在特征空間的點(diǎn)積。為使兩類(lèi)樣本盡可能分開(kāi),要求間隔最大化,即‖w‖最小,這樣尋找超平面的問(wèn)題就轉(zhuǎn)化為下面的最優(yōu)化問(wèn)題:
式中:ξi為松弛變量“軟化”約束條件;C>0為懲罰參數(shù)。引入ξi,C用于解決可能存在一些樣本不能被超平面正確分類(lèi)的問(wèn)題。通過(guò)拉格朗日乘子法求解上述最優(yōu)化問(wèn)題:
式中:α=(α1,…,αl)T為拉格朗日乘子向量;αi為與第i個(gè)樣本對(duì)應(yīng)的拉格朗日乘子。相應(yīng)的最優(yōu)分類(lèi)決策函數(shù)為:
其中sgn表示符號(hào)函數(shù),判斷結(jié)果為+1表示正常,-1表示異常。
對(duì)非線性問(wèn)題,將x作變換φ:x→φ(x),把非線性輸入樣本數(shù)據(jù)映射到高維特征空間,在高維特征空間求解最優(yōu)分類(lèi)超平面w·φ(x)+b=0,則對(duì)應(yīng)的求解最優(yōu)化問(wèn)題轉(zhuǎn)化為:
相應(yīng)的最優(yōu)分類(lèi)決策函數(shù)為:
RBF核函數(shù)對(duì)低維、高維、小樣本、大樣本等情況均適用,具有較寬的收斂域,是理想的分類(lèi)依據(jù)函數(shù)。
SVM的分類(lèi)結(jié)果僅是對(duì)單個(gè)系統(tǒng)調(diào)用序列的判決,不能直接作為整個(gè)軟件行為是否可信的依據(jù),還需為其設(shè)定判定規(guī)則:首先給定軟件異常值閾值τ,若異常系統(tǒng)調(diào)用序列數(shù)目超過(guò)閾值τ則判定軟件不可信,反之則判定為可信。該過(guò)程由系統(tǒng)決策部分完成。
圖2 軟件行為動(dòng)態(tài)可信評(píng)測(cè)模型
本文引入虛擬機(jī)監(jiān)控器(virtual machine monitor,VMM)對(duì)運(yùn)行時(shí)的軟件行為進(jìn)行動(dòng)態(tài)監(jiān)測(cè),根據(jù)運(yùn)行過(guò)程中的行為,評(píng)測(cè)軟件動(dòng)態(tài)可信性,其評(píng)測(cè)模型架構(gòu)如圖2所示。虛擬機(jī)監(jiān)控器是介于底層物理硬件和操作系統(tǒng)之間的軟件抽象層,它管理著底層硬件資源,為其上運(yùn)行的操作系統(tǒng)提供硬件映射。所有客戶操作系統(tǒng)及其上的應(yīng)用軟件訪問(wèn)底層硬件資源都需要經(jīng)過(guò)虛擬機(jī)監(jiān)控器的控制,因此在虛擬環(huán)境中進(jìn)行軟件動(dòng)態(tài)行為可信證明是實(shí)現(xiàn)信任鏈向應(yīng)用軟件層拓展的一個(gè)重要的技術(shù)手段。
評(píng)測(cè)過(guò)程分為3個(gè)階段。
1)度量階段。完整性度量負(fù)責(zé)度量的時(shí)機(jī)、證據(jù)的收集、證據(jù)的規(guī)范化處理。對(duì)度量時(shí)機(jī)的選取采用基于時(shí)間周期性度量。軟件運(yùn)行時(shí)證據(jù)的收集使用虛擬機(jī)監(jiān)控器對(duì)其行為進(jìn)行監(jiān)控,虛擬機(jī)監(jiān)控器內(nèi)核進(jìn)程的一個(gè)任務(wù)就是攔截系統(tǒng)調(diào)用號(hào)[8]。由于支持向量機(jī)的分類(lèi)器只能對(duì)維數(shù)相同的數(shù)字向量進(jìn)行分類(lèi),所以必須將原始數(shù)據(jù)轉(zhuǎn)換成支持向量機(jī)能夠識(shí)別的向量,通過(guò)度量模塊對(duì)從虛擬機(jī)監(jiān)控器獲取的軟件實(shí)際行為軌跡進(jìn)行數(shù)據(jù)規(guī)范化處理,并上報(bào)檢測(cè)模塊。
2)檢測(cè)階段。檢測(cè)模塊首先通過(guò)信息基準(zhǔn)庫(kù)中已獲得的行為度量信息基訓(xùn)練支持向量機(jī)得到支持向量和相關(guān)參數(shù),然后對(duì)實(shí)際運(yùn)行的軟件行為通過(guò)支持向量機(jī)分類(lèi)器根據(jù)判決函數(shù)對(duì)其分類(lèi),并把分類(lèi)結(jié)果提交給決策模塊作出最后的判決。
3)決策階段。決策模塊根據(jù)上面所提到的判定規(guī)則進(jìn)行最終的判定。若行為判定為正常,則允許其運(yùn)行,否則撤銷(xiāo)其運(yùn)行,并報(bào)告結(jié)果。
本文采用美國(guó)新墨西哥大學(xué)(UNM)公開(kāi)發(fā)布的lpr實(shí)驗(yàn)數(shù)據(jù)對(duì)以上檢測(cè)方法的性能進(jìn)行實(shí)驗(yàn),該數(shù)據(jù)是在SunOS 4.1.4上收集的,選取lpr的16個(gè)行為跡,其中正常跡有9個(gè),包含lprcp攻擊的行為跡有7個(gè)。關(guān)于滑動(dòng)窗口K長(zhǎng)度的選取,Lee[8]從信息論的角度論證了最合適的數(shù)據(jù)長(zhǎng)度為6~7,本文綜合精度和性能考慮,采用長(zhǎng)度K=6的滑動(dòng)窗口。分類(lèi)算法由WEKA實(shí)現(xiàn),實(shí)驗(yàn)采用十重交叉驗(yàn)證,參數(shù)C和γ采用LIBSVM提供的grid.py程序自動(dòng)尋找最優(yōu)值。與貝葉斯分類(lèi)方法的檢測(cè)結(jié)果進(jìn)行了對(duì)比,選擇分類(lèi)效果最好的檢測(cè)結(jié)果填入表1。從表1可以看出,SVM分類(lèi)方案優(yōu)于貝葉斯模型的各項(xiàng)檢測(cè)指標(biāo),準(zhǔn)確率接近100%,因?yàn)镾VM具有以下特點(diǎn):訓(xùn)練和檢測(cè)時(shí)間小于其他方法,在給出較少的正常和異常的軟件行為跡的情況下可取得理想的檢測(cè)效果,因此該方法能夠適應(yīng)系統(tǒng)或用戶的行為變化,并進(jìn)行高效、動(dòng)態(tài)的行為檢測(cè)。
表1 貝葉斯和SVM兩種檢測(cè)方法的比較結(jié)果
本文在軟件行為學(xué)理論的基礎(chǔ)上,根據(jù)可信計(jì)算動(dòng)態(tài)度量的實(shí)際需求,定義了軟件行為動(dòng)態(tài)度量的相關(guān)概念,提出了基于SVM的軟件行為可信動(dòng)態(tài)度量代理,實(shí)現(xiàn)了TCG信任鏈向應(yīng)用軟件層拓展,使動(dòng)態(tài)度量的粒度細(xì)化到軟件的一次行為上。實(shí)驗(yàn)分析表明,該方法能夠在較短的時(shí)間有效地檢測(cè)軟件異常,從而提高系統(tǒng)的安全性。
[1]Trusted Computing Group.TCG Specification Architecture Overview Specification Revision 1.4[EB/OL].http:∥www.trustedcomputinggroup.org.
[2]莊琭,蔡勉,李晨.基于軟件行為的可信動(dòng)態(tài)度量[J].武漢大學(xué)學(xué)報(bào)(理學(xué)版),2010,56(2):133-137.
[3]莊琭,蔡勉,沈昌祥.基于交互式馬爾可夫鏈的可信動(dòng)態(tài)度量研究[J].計(jì)算機(jī)研究與發(fā)展,2011,48(8):1464-1472.
[4]楊曉暉,周學(xué)海,田俊峰,等.一個(gè)新的軟件行為動(dòng)態(tài)可信評(píng)測(cè)模型[J].小型微型計(jì)算機(jī)系統(tǒng),2010,31(11):2113-2120.
[5]屈延文.軟件行為學(xué)[M].北京:電子工業(yè)出版社,2004.
[6]Forrest S,Hofmeyr S,Somayaji A,et al.A sense of self for unix processes[C]∥Proceedings of the 1996IEEE Symposium on Security and Privacy,Washington DC,USA,1996:120-128.
[7]劉曉峰,張雪英.基于糾錯(cuò)輸出編碼的支持向量機(jī)在語(yǔ)音識(shí)別中的應(yīng)用[J].太原理工大學(xué)學(xué)報(bào),2011,42(1):34-37.
[8]Lee W,Dong X.Information-Theoretic measures for anomaly detection[C]∥Proceedings of the 2001IEEE Symposium on Security and Privacy.USA:IEEE Computer Society Press,2001:130-143.