蘆德釗,伍忠東,王鵬程
(蘭州交通大學(xué)電子與信息工程學(xué)院,甘肅蘭州730070)
信息安全是目前全球人類共同關(guān)注的熱點(diǎn)問題之一,信息安全保護(hù)技術(shù)與信息安全檢測技術(shù)的出現(xiàn),對(duì)信息安全起到顯著的保護(hù)作用[1-3]。惡意入侵者為了持續(xù)竊取他人隱私信息,破壞他人系統(tǒng)結(jié)構(gòu),著力研究多種硬件木馬以供竊取應(yīng)用。硬件木馬能夠深入信息系統(tǒng)的核心部位,具有多樣化、隱蔽性強(qiáng)、破壞力顯著的特征,對(duì)信息系統(tǒng)存在毀滅性的攻擊性,是目前信息安全研究人員重點(diǎn)研究的對(duì)象之一。
當(dāng)下我國的高端、高檔集成電路大多來自國外,因供應(yīng)過程存在不可控性,所以不能保證供應(yīng)過程里是否具有硬件木馬[4]。而我國的國防系統(tǒng)、金融、政府等敏感領(lǐng)域均離不開集成電路芯片、電子設(shè)備的使用,如果某些居心叵測的國家在硬件設(shè)備里植入硬件木馬后,我國相關(guān)技術(shù)人員并未檢測識(shí)別,此類硬件木馬將長期潛藏在我國各個(gè)領(lǐng)域的信息系統(tǒng)里,這對(duì)我國信息安全存在致命打擊[5]。K-Means聚類在數(shù)據(jù)挖掘領(lǐng)域中存在較好的使用效果,本文提出基于K-Means聚類和集成學(xué)習(xí)的硬件木馬檢測方法,以期實(shí)現(xiàn)硬件木馬的高精度檢測。
傳統(tǒng)K-Means聚類算法在聚類挖掘信息系統(tǒng)的硬件運(yùn)行數(shù)據(jù)時(shí),所需計(jì)算的數(shù)據(jù)不僅是各個(gè)聚類目標(biāo)和中心目標(biāo)的距離,還是中心目標(biāo)出現(xiàn)變化的聚類均值。如果計(jì)算量較大,聚類效果將受到影響[6]。因?yàn)镵-Means聚類具有動(dòng)態(tài)性,聚類時(shí)將存在一些冗余數(shù)據(jù),這對(duì)聚類精度存在一定影響。所以,本文對(duì)K-Means聚類算法進(jìn)行改進(jìn),一方面是降低聚類迭代次數(shù),一方面是降低聚類時(shí)的數(shù)據(jù)量,為此設(shè)計(jì)基于信息熵改進(jìn)的K-means 動(dòng)態(tài)聚類算法,實(shí)現(xiàn)信息系統(tǒng)硬件運(yùn)行的有效數(shù)據(jù)挖掘。
基于信息熵改進(jìn)的K-means動(dòng)態(tài)聚類算法的流程如下:
輸入:信息系統(tǒng)硬件運(yùn)行數(shù)據(jù)對(duì)象集,聚類種子初始中心點(diǎn)數(shù)量k1。
輸出:k個(gè)結(jié)果簇,設(shè)置各個(gè)聚類中心點(diǎn)的變動(dòng)值低于設(shè)定值,當(dāng)信息系統(tǒng)硬件運(yùn)行數(shù)據(jù)對(duì)象集是空集時(shí)停止。
2)通過熵值法運(yùn)算硬件運(yùn)行數(shù)據(jù)目標(biāo)每個(gè)屬性的權(quán)值。
(1)
式中,pi是屬性差異性系數(shù);n、i分別是數(shù)據(jù)數(shù)量、數(shù)據(jù)維數(shù)。
3)把硬件運(yùn)行數(shù)據(jù)集合均分成k1(k1>k)個(gè)子集,在每個(gè)子集里任意選擇一個(gè)硬件運(yùn)行數(shù)據(jù)目標(biāo),把它設(shè)成硬件運(yùn)行有效數(shù)據(jù)聚類種子中心。
4)掃描硬件運(yùn)行數(shù)據(jù)集合,以它和每個(gè)聚類種子中心近似度的大小為標(biāo)準(zhǔn),把它納入近似度最大的簇里[7]。
5)運(yùn)算k1個(gè)聚類的賦權(quán)標(biāo)準(zhǔn)差βj,j=1,2,…,k1,運(yùn)算方法是:
(2)
式中,|Hi|是數(shù)據(jù)類型Hi的數(shù)據(jù)量;yj、e?、d(Hi)分別是數(shù)據(jù)屬性、歐式距離、數(shù)據(jù)類型Hi的聚類中心。
同時(shí)根據(jù)βj值從小到大排列,將前k個(gè)βj值所屬質(zhì)心設(shè)成初始聚類中心。
6)把硬件運(yùn)行數(shù)據(jù)集的各個(gè)樣本根據(jù)歐式距離最短標(biāo)準(zhǔn)將其納入最鄰近的簇里。
7)運(yùn)算硬件運(yùn)行數(shù)據(jù)的質(zhì)心點(diǎn)。
8)分析聚類中心點(diǎn)的變動(dòng)值是否符合設(shè)定條件,若符合,把它納入已選特征集,且在硬件運(yùn)行數(shù)據(jù)里去除此數(shù)據(jù)[8]。
9)分析硬件運(yùn)行數(shù)據(jù)樣本集合是否屬于空集,若是便可結(jié)束。反之,遍歷聚類中心點(diǎn)數(shù)目M,若M的值小于k,跳轉(zhuǎn)至第6)步,如果M的值等同k值,進(jìn)入第10)步。
10)更新聚類中心點(diǎn)。運(yùn)算信息系統(tǒng)硬件運(yùn)行的各個(gè)數(shù)據(jù)聚類中心點(diǎn)的變動(dòng)值是否高于設(shè)定值的簇質(zhì)心,如果是,便把它設(shè)成新的聚類中心實(shí)施聚類;反之跳轉(zhuǎn)至第6)步。
11)停止,硬件運(yùn)行數(shù)據(jù)樣本屬于空集后,輸出有效數(shù)據(jù)聚類的結(jié)果簇。
通過上述算法,便可去除硬件運(yùn)行數(shù)據(jù)中冗余數(shù)據(jù),實(shí)現(xiàn)硬件運(yùn)行數(shù)據(jù)的有效數(shù)據(jù)挖掘。
2.2.1 旋轉(zhuǎn)森林算法的改進(jìn)
旋轉(zhuǎn)森林算法的核心思想為:通過主成分分析法(principal component analysis,PCA)對(duì)數(shù)據(jù)樣本實(shí)施旋轉(zhuǎn)操作,以此獲取存在差異的訓(xùn)練集[9-10]。此類旋轉(zhuǎn)處理的優(yōu)點(diǎn)是保證文本分類器精度更加優(yōu)化,但傳統(tǒng)旋轉(zhuǎn)森林算法通過主成分分析法轉(zhuǎn)換,對(duì)原始樣本數(shù)據(jù)實(shí)施轉(zhuǎn)換時(shí),主成分分析法的轉(zhuǎn)換是以樣本協(xié)方差矩陣為基礎(chǔ),運(yùn)算過程易遭到數(shù)據(jù)原始特征的量綱與數(shù)量級(jí)所干擾。所以本文導(dǎo)入均值化方法,改進(jìn)旋轉(zhuǎn)森林算法里的PCA轉(zhuǎn)換模式。
設(shè)置2.1小節(jié)所挖掘的硬件運(yùn)行有效數(shù)據(jù)樣本數(shù)量是m,各個(gè)樣本特征屬性數(shù)量是n個(gè),2.1小節(jié)所挖掘的硬件運(yùn)行有效數(shù)據(jù)樣本aij設(shè)成矩陣A=(aij)m×n。均值化是將硬件運(yùn)行有效數(shù)據(jù)樣本的矩陣A里各個(gè)有效數(shù)據(jù)點(diǎn)除以所屬列的均值,均值化后的硬件運(yùn)行有效數(shù)據(jù)樣本訓(xùn)練集xij設(shè)成矩陣X=(xij)m×n,則
(3)
運(yùn)算矩陣X的協(xié)方差矩陣V=(vij)n×n,vij代表協(xié)方差。X的各列均值均為1,所以vij是
(4)
均值化后的矩陣X里每個(gè)硬件運(yùn)行數(shù)據(jù)特征的相關(guān)系數(shù)是
s′ij=vij/(viivjj)1/2
=rij/(riirjj)1/2
=sij
(5)
式中,vii、vjj分別是矩陣X第i行第i列的協(xié)方差、第j行第j列的協(xié)方差;rii、rjj分別是矩陣X第i行第i列的協(xié)方差矩陣元素、第j行第j列的協(xié)方差矩陣元素。
均值化后,硬件運(yùn)行數(shù)據(jù)特征之間相關(guān)系數(shù)不存在變動(dòng),代表均值化后未曾破壞硬件運(yùn)行數(shù)據(jù)原始特征,對(duì)下文文本分類器的精度不存在影響[11]。
2.2.2 文本分類器建立
輸入:訓(xùn)練集A=(aij)m×n、硬件運(yùn)行數(shù)據(jù)特征向量G=(bm1,bm2,…,bmM)、文本分類器數(shù)量M、特征集合分類數(shù)E。
輸出:文本分類器集合F=(f1,f2,…,fm)。
1)對(duì)矩陣A實(shí)施均值處理,獲取數(shù)據(jù)矩陣X。
2)把G任意分成M個(gè)子集,各個(gè)子集Gim里存在的特征數(shù)是N=n/M。
3)針對(duì)第m個(gè)子集Gim而言,在X里提取和Gim相應(yīng)的數(shù)據(jù)樣本Gim,在Gim里任意提取75%的硬件運(yùn)行數(shù)據(jù),設(shè)成G′im。
4)將G′im實(shí)施PCA轉(zhuǎn)換,獲取N個(gè)特征值,運(yùn)算特征向量G獲取特征矩陣Bim=Bm1,Bm2,…,BmM。
5)合并Bm1,Bm2,…,BmM建立第M個(gè)文本分類器相應(yīng)的旋轉(zhuǎn)矩陣Bi:
(6)
6)根據(jù)訓(xùn)練集X里硬件運(yùn)行數(shù)據(jù)特征每列位置,將Bi實(shí)施排序,設(shè)成B′i,以此獲取新的訓(xùn)練集Xi。
7)在訓(xùn)練集Xi里生成一個(gè)文本分類器。
8)結(jié)束。
2.2.3 動(dòng)態(tài)加權(quán)投票集成方法
文本分類器建立后,多數(shù)投票法屬于一類操作難度低、使用效率高的集成模式,投票判決過程里,各個(gè)分類器的權(quán)值和分類精度存在一定聯(lián)系。因?yàn)樾畔⑾到y(tǒng)硬件運(yùn)行時(shí)數(shù)據(jù)存在動(dòng)態(tài)性,需檢測木馬數(shù)據(jù)也存在變化。所以各個(gè)文本分類器對(duì)木馬數(shù)據(jù)的檢測性能也存在變動(dòng)性,最合適的加權(quán)方法必須可以分析目前需檢測木馬數(shù)據(jù)的統(tǒng)計(jì)特征分布和訓(xùn)練集之間的關(guān)聯(lián)性[12]。
本文使用基于實(shí)例動(dòng)態(tài)選擇的加權(quán)投票策略完成集成分類。
1)運(yùn)算需分類的硬件目標(biāo)數(shù)據(jù)A和M個(gè)簇中心的距離,選取距離最小的M1個(gè)簇。
2)依次統(tǒng)計(jì)各個(gè)文本分類器對(duì)M1個(gè)簇中全部硬件運(yùn)行數(shù)據(jù)樣本的分類精度φM,歸一化后的值就是投票權(quán)重:
(7)
式中,φi是文本分類器第i次分類精度值。
3)各個(gè)文本分類器均輸出A的分類結(jié)果,使用投票權(quán)重完成硬件運(yùn)行數(shù)據(jù)中木馬數(shù)據(jù)的分類。分類閾值按照真實(shí)的信息系統(tǒng)運(yùn)行環(huán)境設(shè)置,通常將分類結(jié)果高于0.5的數(shù)據(jù)判斷成木馬數(shù)據(jù),此數(shù)據(jù)所在硬件即存在木馬行為。
為了測試本文方法有效性,在MATLAB仿真軟件中,仿真某信息系統(tǒng)硬件遭到木馬入侵,使用本文方法對(duì)其實(shí)施木馬檢測,檢測環(huán)境如圖1所示。
圖1 仿真環(huán)境
如圖1所示,使用PC系統(tǒng)和交換機(jī)相連,交換機(jī)屬于被檢測信息系統(tǒng)與PC系統(tǒng)的連接橋梁,將本文方法使用在PC系統(tǒng)中,在防火墻和Internet的協(xié)助下,檢測本文方法的使用效果。
使用入侵領(lǐng)域常用指標(biāo)測試本文方法對(duì)硬件木馬檢測的效果。檢測指標(biāo)依次是檢測率、誤報(bào)率。檢測率、誤報(bào)率的計(jì)算方法是
E1=n1/n2
(8)
E2=nt/nm
(9)
式中,n2表示木馬數(shù)據(jù)總數(shù)量;nm表示不存在木馬的硬件運(yùn)行數(shù)據(jù);n1表示被準(zhǔn)確檢測為木馬數(shù)據(jù)的數(shù)量;nt表示被誤檢測為木馬數(shù)據(jù)的數(shù)量。
將所檢測的信息系統(tǒng)硬件電路程序所運(yùn)行數(shù)據(jù)量依次設(shè)成10GB、20GB、30GB、40GB、50GB、60GB,此條件下本文方法對(duì)該信息系統(tǒng)硬件木馬檢測的檢測率、誤報(bào)率如表1、表2所示。
表1 本文方法檢測率測試結(jié)果
表2 本文方法誤報(bào)率測試結(jié)果
由表1、表2測試結(jié)果顯示,所檢測信息系統(tǒng)電路程序運(yùn)行數(shù)據(jù)量依次是10GB、20GB、30GB、40GB、50GB、60GB時(shí),本文方法對(duì)硬件木馬數(shù)據(jù)檢測率高達(dá)99%,誤報(bào)率最大值僅為3%,本文方法可準(zhǔn)確檢測信息系統(tǒng)硬件木馬。
為測試本文方法檢測性能,設(shè)定該信息系統(tǒng)電路存在2種類型木馬,在2種不同類型木馬影響下,該信息系統(tǒng)的電路的信號(hào)變化如圖2所示。
圖2 不同類型木馬影響下電路的信號(hào)變化
以文獻(xiàn)[4]所提出的基于轉(zhuǎn)換概率分析的硬件木馬檢測方法、文獻(xiàn)[5] 所提出的基于隨機(jī)森林的硬件木馬檢測方法為對(duì)比方法,這兩種方法雖然被驗(yàn)證對(duì)硬件木馬的檢測效果符合應(yīng)用需求,但為了測試本文方法檢測性能是否存在優(yōu)勢(shì),本文在此對(duì)比三種方法對(duì)兩種木馬入侵下的檢測效果,檢測效果以電路木馬數(shù)據(jù)檢測結(jié)果的均方根誤差RMSE體現(xiàn)。均方根誤差RMSE是檢測值和實(shí)際值之間偏差的平方和與觀測次數(shù)之比的平方根。三種方法均方根誤差測試結(jié)果如圖3、圖4、圖5所示。
圖3 本文方法均方根誤差測試結(jié)果
圖4 基于轉(zhuǎn)換概率分析的硬件木馬檢測方法均方根誤差測試結(jié)果
圖5 基于隨機(jī)森林的硬件木馬檢測方法均方根誤差測試結(jié)果
由圖3、圖4、圖5測試結(jié)果顯示,兩種木馬入侵下,本文方法檢測結(jié)果的均方根誤差最大值為0.04,基于轉(zhuǎn)換概率分析的硬件木馬檢測方法、基于隨機(jī)森林的硬件木馬檢測方法檢測結(jié)果的均方根誤差大于0.2,顯著大于本文方法。對(duì)比之下,本文方法檢測結(jié)果精度最大。
測試三種方法對(duì)硬件木馬檢測實(shí)時(shí)性,結(jié)果如表3、表4所示。
表3 木馬類型A
表4 木馬類型B
由表3、表4測試結(jié)果顯示,兩種木馬出現(xiàn)時(shí),本文方法可實(shí)時(shí)檢測出硬件木馬,不存在時(shí)延;基于轉(zhuǎn)換概率分析的硬件木馬檢測方法、基于隨機(jī)森林的硬件木馬檢測方法檢測實(shí)時(shí)性較差,對(duì)兩種木馬檢測時(shí)間存在一定延遲情況,對(duì)比之下,本文方法對(duì)硬件木馬檢測實(shí)時(shí)性更為顯著。
測試本文方法使用基于信息熵改進(jìn)的K-means 動(dòng)態(tài)聚類算法前后,對(duì)信息系統(tǒng)電路程序中木馬的檢測效率,以此判斷基于信息熵改進(jìn)的K-means 動(dòng)態(tài)聚類算法對(duì)本文方法整體檢測實(shí)時(shí)性的影響。結(jié)果如表圖6所示,圖6僅顯示使用前的檢測時(shí)延最大值,將圖6結(jié)果分別與表3、表4中所顯示本文方法檢測時(shí)延最大值進(jìn)行對(duì)比,表3、表4中本文方法不存在檢測時(shí)延。
圖6 本文方法聚類環(huán)節(jié)應(yīng)用價(jià)值
將圖6結(jié)果分別與表3、表4中所顯示本文方法的檢測時(shí)延最大值進(jìn)行對(duì)比可知,本文方法使用基于信息熵改進(jìn)的K-means動(dòng)態(tài)聚類算法前,對(duì)硬件木馬檢測時(shí)延最大值分別是0.55s、0.70s,使用后的檢測時(shí)延為0s,由此可見,基于信息熵改進(jìn)的K-means 動(dòng)態(tài)聚類算法的使用,對(duì)本文方法檢測效率存在優(yōu)化作用。
文中提出基于K-Means聚類和集成學(xué)習(xí)的硬件木馬檢測方法,該方法具有檢測率高、誤報(bào)率小的優(yōu)勢(shì),且不同類型木馬入侵下,本文方法檢測精度、檢測實(shí)時(shí)性明顯大于基于轉(zhuǎn)換概率分析的硬件木馬檢測方法、基于隨機(jī)森林的硬件木馬檢測方法,這歸功于本文方法中引入了基于信息熵改進(jìn)的K-means 動(dòng)態(tài)聚類算法,該算法能夠有效去除信息系統(tǒng)硬件運(yùn)行數(shù)據(jù)中冗余數(shù)據(jù),避免出現(xiàn)無效數(shù)據(jù)檢測情況,提升本文方法對(duì)信息系統(tǒng)硬件木馬的檢測效率。