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