趙聰慧,嚴(yán)迎建,劉燕江,朱春生
(信息工程大學(xué) 信息安全重點(diǎn)實(shí)驗(yàn)室,河南 鄭州 450000)
近年來(lái),半導(dǎo)體行業(yè)的設(shè)計(jì)和生產(chǎn)流程分工越來(lái)越明確,為了加快研發(fā)周期和縮短上市時(shí)間,第三方IP核廣泛應(yīng)用在電路設(shè)計(jì)中。然而,由于第三方國(guó)家和人員的參與,作為“黑盒”設(shè)計(jì)的第三方IP核存在硬件木馬的安全風(fēng)險(xiǎn)。由于缺乏市場(chǎng)監(jiān)管,第三方IP核的可信性更加難以有效保證。因此,亟需開(kāi)展面向IP核的硬件木馬檢測(cè)技術(shù)研究。
J. Zhang等設(shè)計(jì)了VeriTrust[1],將硬件木馬的檢測(cè)問(wèn)題轉(zhuǎn)換為對(duì)冗余輸入的檢測(cè)問(wèn)題,但是VeriTrust只對(duì)緊密分布的硬件木馬展現(xiàn)出較好的檢測(cè)效果,如果硬件木馬分布較為分散,則無(wú)法有效識(shí)別。隨后,Hassan Salmani提出的COTD[2],認(rèn)為信號(hào)的高可控制性CC和可觀察性CO是硬件木馬的信號(hào)特征,利用k-means無(wú)監(jiān)督聚類學(xué)習(xí)算法將信號(hào)分類來(lái)識(shí)別出木馬節(jié)點(diǎn)。然而,僅僅使用
總的來(lái)說(shuō),目前基于信號(hào)特征的硬件木馬檢測(cè)方法主要關(guān)注于硬件木馬觸發(fā)節(jié)點(diǎn)的檢測(cè),且大多集中在靜態(tài)翻轉(zhuǎn)率或者低可控性節(jié)點(diǎn)的尋找方面。然而此類拓?fù)浞治龇椒ㄖ缓w部分信號(hào)邏輯值分布特征,而信號(hào)翻轉(zhuǎn)特征尚未覆蓋。此外,該類方法可準(zhǔn)確計(jì)算小規(guī)模電路的木馬信號(hào)特征,然而在大規(guī)模集成電路計(jì)算中會(huì)出現(xiàn)難以收斂、計(jì)算成本高和偏差大等問(wèn)題。特征集的完備程度直接決定了硬件木馬的檢測(cè)效率和可擴(kuò)展性,為此,本文在基于低靜態(tài)翻轉(zhuǎn)率和低控制節(jié)點(diǎn)的木馬觸發(fā)信號(hào)特征的基礎(chǔ)上,融合了動(dòng)態(tài)翻轉(zhuǎn)率的邏輯翻轉(zhuǎn)信號(hào)特征,進(jìn)一步完善了硬件木馬的觸發(fā)特征集。同時(shí)提出了基于低觀測(cè)節(jié)點(diǎn)的硬件木馬載荷信號(hào)特征,進(jìn)而構(gòu)造了硬件木馬的五維特征向量空間,并利用優(yōu)化的KNN分類算法來(lái)建立硬件木馬特征分類器,根據(jù)類號(hào)確定硬件木馬信號(hào)和原始信號(hào),實(shí)現(xiàn)了集成電路安全可信的早期評(píng)測(cè)。
硬件木馬由觸發(fā)部分和有效載荷兩部分組成,硬件木馬的植入分為觸發(fā)植入和載荷植入。為了進(jìn)一步降低硬件木馬被發(fā)現(xiàn)的風(fēng)險(xiǎn),攻擊者往往選擇具有高隱藏性的節(jié)點(diǎn)進(jìn)行硬件木馬的植入。因此,本文從硬件木馬的觸發(fā)隱藏性植入和載荷隱藏性植入兩個(gè)角度進(jìn)行分析,建立更加完備的硬件木馬隱藏性模型。
在觸發(fā)隱藏性方面,通常會(huì)選擇隱蔽的觸發(fā)條件來(lái)作為硬件木馬的激活條件[4]。目前主要用靜態(tài)翻轉(zhuǎn)率和可控性來(lái)表征電路內(nèi)部節(jié)點(diǎn)的隱蔽性。其中靜態(tài)翻轉(zhuǎn)率Ptp的計(jì)算方法如式(1)所示,Ptp為該節(jié)點(diǎn)出現(xiàn)邏輯“0”的概率P0與該節(jié)點(diǎn)出現(xiàn)邏輯“1”的概率P1的乘積[5,6]
Ptp=P0×P1
(1)
獲取電路中節(jié)點(diǎn)的靜態(tài)翻轉(zhuǎn)率通常有兩種方法,一是拓?fù)浞治龇?,又稱幾何分布法,二是隨機(jī)仿真法。拓?fù)浞治龇ㄖ饕罁?jù)電路的拓?fù)浣Y(jié)構(gòu)來(lái)確定節(jié)點(diǎn)的翻轉(zhuǎn)概率,圖1通過(guò)一個(gè)簡(jiǎn)單的電路來(lái)介紹該方法的計(jì)算規(guī)則。
圖1 拓?fù)浞治龇ㄓ?jì)算規(guī)則
假設(shè)輸入信號(hào)I1,I2,I3,I4,I5出現(xiàn)邏輯“0”和“1”的概率相等,均為1/2,根據(jù)與門(mén)和或門(mén)的布爾邏輯關(guān)系可以計(jì)算得出內(nèi)部節(jié)點(diǎn)A、B出現(xiàn)邏輯“0”和“1”的概率分別為3/4和1/4,C出現(xiàn)邏輯“0”和“1”的概率分別為9/16和7/16,D出現(xiàn)邏輯“0”和“1”的概率分別為3/8和5/8,從而計(jì)算出輸出節(jié)點(diǎn)O出現(xiàn)邏輯“0”和“1”的概率分別為93/128和35/128。這種方法對(duì)于規(guī)模較小、結(jié)構(gòu)簡(jiǎn)單的電路可以起到較好的效果,但當(dāng)結(jié)構(gòu)復(fù)雜、反饋路徑較多時(shí),考慮到內(nèi)部節(jié)點(diǎn)的相關(guān)性,依據(jù)電路的拓?fù)浣Y(jié)構(gòu)計(jì)算節(jié)點(diǎn)靜態(tài)翻轉(zhuǎn)率可能會(huì)與電路的實(shí)際運(yùn)行情況存在較大的偏差。為了更加準(zhǔn)確地描述節(jié)點(diǎn)的靜態(tài)翻轉(zhuǎn)率,本文采用隨機(jī)仿真法來(lái)計(jì)算節(jié)點(diǎn)的靜態(tài)翻轉(zhuǎn)率,其計(jì)算如式(2)所示
(2)
此式中將電路節(jié)點(diǎn)出現(xiàn)邏輯“0”或“1”的概率轉(zhuǎn)換為電路工作中該節(jié)點(diǎn)為邏輯“0”或“1”的時(shí)間與總時(shí)間的比值[6],其中T0和T1是在整個(gè)仿真周期T內(nèi)出現(xiàn)邏輯“0”或者“1”的時(shí)間,T為整個(gè)仿真時(shí)間。當(dāng)T0=T1時(shí),Ptp達(dá)到最大值0.25。節(jié)點(diǎn)的靜態(tài)翻轉(zhuǎn)率越低,節(jié)點(diǎn)的邏輯不平衡性越強(qiáng),越容易出現(xiàn)邏輯罕見(jiàn)值,此邏輯罕見(jiàn)值可用來(lái)作為硬件木馬的觸發(fā)條件。
可控性是可測(cè)試性的一種量化方法,用來(lái)衡量測(cè)試向量控制內(nèi)部節(jié)點(diǎn)邏輯值的難易程度,包括組合0可控性CC0和組合1可控性CC1[7]。節(jié)點(diǎn)的可控性與邏輯門(mén)的布爾函數(shù)有關(guān),圖2給出了基本邏輯門(mén)的可控性計(jì)算規(guī)則。以二輸入與非門(mén)為例,計(jì)算節(jié)點(diǎn)z的可控性。為使輸出節(jié)點(diǎn)z=0,節(jié)點(diǎn)a和b均需為1,因此節(jié)點(diǎn)z的組合0可控性為CC0(z)=CC1(a)+CC1(b)+1;為使輸出節(jié)點(diǎn)z=1,只要輸入節(jié)點(diǎn)a或者b為0即可,因此z的組合1可控性為CC1(z)=min(CC0(a),CC0(b))+1。
圖2 基本邏輯門(mén)的可控性計(jì)算規(guī)則
節(jié)點(diǎn)可控性粗略地反映了用于控制內(nèi)部節(jié)點(diǎn)z達(dá)到特定邏輯值的難易程度,節(jié)點(diǎn)的可控值越高,外部輸入向量控制該節(jié)點(diǎn)達(dá)到特定邏輯值的難度越高,即該邏輯值在測(cè)試與驗(yàn)證階段越難被覆蓋到,則該節(jié)點(diǎn)的可控性越差。因此,低可控性節(jié)點(diǎn)集之間可組合形成隱蔽性觸發(fā)條件,也是硬件木馬隱藏的有效節(jié)點(diǎn)。
通過(guò)以上分析可以看出,靜態(tài)翻轉(zhuǎn)率表征的是節(jié)點(diǎn)的邏輯值分布情況,可控性從電路拓?fù)涞慕嵌群饬靠刂苾?nèi)部節(jié)點(diǎn)邏輯值的難度,二者從邏輯分布和拓?fù)浣Y(jié)構(gòu)兩個(gè)角度闡述了節(jié)點(diǎn)的靜態(tài)特征,然而二者不能反映節(jié)點(diǎn)的動(dòng)態(tài)翻轉(zhuǎn)情況[8]。硬件木馬的觸發(fā)條件包括邏輯值、邏輯翻轉(zhuǎn)以及狀態(tài)機(jī)等多種條件,單一的靜態(tài)特征無(wú)法涵蓋所有的硬件木馬,為了更加全面地反映節(jié)點(diǎn)的隱蔽程度,本文加入了信號(hào)的動(dòng)態(tài)翻轉(zhuǎn)率特征,與可控性和靜態(tài)翻轉(zhuǎn)率共同表征觸發(fā)節(jié)點(diǎn)的隱藏性。
電路中節(jié)點(diǎn)的動(dòng)態(tài)翻轉(zhuǎn)率Ptc表征節(jié)點(diǎn)的翻轉(zhuǎn)情況,可以定義為該節(jié)點(diǎn)的翻轉(zhuǎn)次數(shù)TC與內(nèi)部節(jié)點(diǎn)最大翻轉(zhuǎn)次數(shù)TCmax的比值[8],如式(3)所示。在時(shí)序電路中,TCmax為與時(shí)鐘信號(hào)一級(jí)相連的節(jié)點(diǎn)的翻轉(zhuǎn)次數(shù)。節(jié)點(diǎn)的動(dòng)態(tài)翻轉(zhuǎn)率越低,表明節(jié)點(diǎn)在仿真過(guò)程中的活性越低,在整個(gè)仿真周期中翻轉(zhuǎn)次數(shù)越少,如果作為觸發(fā)節(jié)點(diǎn)更能降低硬件木馬被激活的概率
(3)
目前硬件木馬的植入大多停留在觸發(fā)隱藏性植入方面,以盡可能降低硬件木馬被誤激活的概率,尚未展開(kāi)對(duì)載荷性植入的研究。硬件木馬的載荷是惡意功能的執(zhí)行單元,相比觸發(fā)部分來(lái)說(shuō),載荷部分的結(jié)構(gòu)更加復(fù)雜。如果載荷部分不加隱藏,一旦惡意功能被開(kāi)啟并傳遞到輸出端,很容易被傳統(tǒng)的功能測(cè)試所識(shí)別。載荷隱藏性植入是對(duì)硬件木馬隱藏性植入的補(bǔ)充與完善,有助于建立更加完備的硬件木馬隱藏性模型。
可觀測(cè)性作為可測(cè)試性的另一種量化方法,是衡量從電路輸出端觀察電路內(nèi)部節(jié)點(diǎn)邏輯值的困難程度的指標(biāo)。圖3給出了基本邏輯門(mén)的可觀測(cè)性計(jì)算規(guī)則。同樣以二輸入與非門(mén)為例,計(jì)算電路節(jié)點(diǎn)a的可觀測(cè)性CO(a)。由于與非門(mén)的邏輯關(guān)系,輸入a和b存在邏輯關(guān)聯(lián)性,為了計(jì)算a的可觀測(cè)性,須使輸入b保持邏輯1,使輸入a的結(jié)果直接反映在輸出z上。所以,輸入a的組合可觀測(cè)性為CO(a)=CO(z)+CC1(b)+1。
圖3 基本邏輯門(mén)的可觀測(cè)性計(jì)算規(guī)則
可觀測(cè)性粗略地反映了內(nèi)部信號(hào)邏輯值的可傳遞性,節(jié)點(diǎn)的可觀測(cè)值越高,其可觀測(cè)性越低,其邏輯值越難傳遞到輸出,即通過(guò)電路的原始輸出觀察該節(jié)點(diǎn)邏輯值變化越困難。因此,該屬性可以用來(lái)隱藏硬件木馬的有效載荷,尤其是功能改變型硬件木馬。一旦硬件木馬被誤觸發(fā),載荷所在節(jié)點(diǎn)的邏輯值被改變,然而改變的邏輯值難以傳遞到輸出端,進(jìn)而可以繞過(guò)功能測(cè)試手段。因此選擇低觀測(cè)節(jié)點(diǎn)作為硬件木馬的載荷節(jié)點(diǎn),可以有效隱藏其惡意功能,是載荷隱藏性植入的理想植入位置。
綜上所述,低控制、低靜態(tài)翻轉(zhuǎn)率和低動(dòng)態(tài)翻轉(zhuǎn)率節(jié)點(diǎn)是硬件木馬觸發(fā)部分的理想植入點(diǎn),可以保證輸入測(cè)試向量難以激活硬件木馬,而低觀測(cè)節(jié)點(diǎn)是硬件木馬載荷部分的有效隱藏點(diǎn),可以保證硬件木馬的影響難以傳遞到輸出端。因此,本文將節(jié)點(diǎn)的可控制性、靜態(tài)翻轉(zhuǎn)率、動(dòng)態(tài)翻轉(zhuǎn)率和可觀察性共同作為表征木馬隱藏性的信號(hào)特征。
K近鄰(k-nearest neighbor,KNN)[9,10]是一種廣泛應(yīng)用于分類的有監(jiān)督機(jī)器學(xué)習(xí)算法,該算法準(zhǔn)確性高,對(duì)異常值和噪聲的容忍能力強(qiáng),廣泛應(yīng)用在統(tǒng)計(jì)分析、模式識(shí)別等領(lǐng)域。本文利用K近鄰算法來(lái)量化數(shù)據(jù)集差異性分布,通過(guò)分析Trust-Hub中已知木馬電路的門(mén)級(jí)網(wǎng)表特征并建立分類器,應(yīng)用建立的KNN分類器完成對(duì)未知電路的硬件木馬識(shí)別。
通過(guò)對(duì)信號(hào)的觸發(fā)隱藏性分析和載荷隱藏性分析,本文提取信號(hào)的靜態(tài)翻轉(zhuǎn)率、動(dòng)態(tài)翻轉(zhuǎn)率、組合0可控性、組合1可控性和可觀察性,作為表征木馬信號(hào)的有效特征,每個(gè)信號(hào)用一個(gè)五維的特征向量表示,如式(4)所示
V={Ptp,Ptc,CC0,CC1,CO}
(4)
該五維向量作為機(jī)器學(xué)習(xí)中訓(xùn)練分類器的特征向量,構(gòu)造分類模型,當(dāng)輸入任意一個(gè)信號(hào)的特征向量V時(shí),該分類模型能夠判斷此信號(hào)是否為木馬信號(hào)并輸出相應(yīng)的標(biāo)識(shí),硬件木馬的檢測(cè)問(wèn)題由此轉(zhuǎn)換為機(jī)器學(xué)習(xí)領(lǐng)域的分類問(wèn)題。
K近鄰算法的基本思路是:如果一個(gè)待分類樣本在特征空間中的k個(gè)最相似(即特征空間中k近鄰)的樣本中的大多數(shù)屬于某一個(gè)類別,則該樣本也屬于這個(gè)類別[9,10]。K近鄰算法的優(yōu)勢(shì)體現(xiàn)在它沒(méi)有過(guò)多需要迭代優(yōu)化的參數(shù),只需要選擇合適的k值來(lái)規(guī)定待分類的樣本由與其相鄰的多少樣本來(lái)決定,大大簡(jiǎn)化了后期調(diào)整分類器模型的過(guò)程,而且還具有準(zhǔn)確性高,對(duì)異常值和噪聲的容忍能力強(qiáng)等優(yōu)點(diǎn),在中小規(guī)模的數(shù)據(jù)集訓(xùn)練中展現(xiàn)出優(yōu)異的訓(xùn)練能力,因此本文選擇KNN算法對(duì)分類器模型進(jìn)行訓(xùn)練。
在KNN分類器的訓(xùn)練過(guò)程中,數(shù)據(jù)集的處理方法和參數(shù)k的選擇都將對(duì)最終的訓(xùn)練結(jié)果產(chǎn)生很大的影響。由于硬件木馬電路規(guī)模很小,通過(guò)分析電路直接獲取的數(shù)據(jù)集一般是不平衡的,用不平衡的數(shù)據(jù)集訓(xùn)練出的分類器容易導(dǎo)致結(jié)果偏向多數(shù)類,使分類結(jié)果不準(zhǔn)確。K近鄰算法中k值決定待分類樣本由與其相鄰的多少樣本來(lái)決定,k值的大小直接影響分類結(jié)果。本節(jié)從這兩方面入手對(duì)檢測(cè)模型進(jìn)行調(diào)整優(yōu)化。
2.2.1 基于SMOTETomek的數(shù)據(jù)集平衡方法
在分類器的學(xué)習(xí)過(guò)程中,數(shù)據(jù)集的好壞對(duì)學(xué)習(xí)的結(jié)果有很大的影響。攻擊者為了使木馬不易被檢測(cè),植入電路中的木馬模塊在整個(gè)電路中的占比非常小,這就導(dǎo)致我們通過(guò)分析已知木馬電路而獲取的數(shù)據(jù)集是極度不平衡的,其中絕大多數(shù)特征向量的標(biāo)簽為0,只有極少部分標(biāo)簽為1。用這樣不平衡的數(shù)據(jù)集訓(xùn)練出的分類器,由于缺乏對(duì)少數(shù)類的學(xué)習(xí),很容易導(dǎo)致結(jié)果偏向多數(shù)類。因此,在分類器學(xué)習(xí)數(shù)據(jù)之前,需要先對(duì)數(shù)據(jù)集進(jìn)行平衡處理。
由于木馬電路規(guī)模極小的特點(diǎn),硬件木馬的特征候選集較少,可能導(dǎo)致建立的檢測(cè)模型不夠完善,很容易陷入局部最優(yōu)。SMOTE[11](synthetic minority oversampling technique)過(guò)采樣技術(shù)由Nitesh V. Chawla等在2002年提出,其基本策略是對(duì)每個(gè)少數(shù)類樣本a,隨機(jī)選一個(gè)最近鄰的樣本b,然后在a、b之間的連線上隨機(jī)選一個(gè)點(diǎn)c作為新合成的少數(shù)類樣本[11]。該算法通過(guò)對(duì)少數(shù)類樣本進(jìn)行分析,根據(jù)少數(shù)類樣本人工合成新樣本,而不是簡(jiǎn)單地復(fù)制少數(shù)類樣本,一定程度上解決了隨機(jī)過(guò)采樣算法通過(guò)簡(jiǎn)單復(fù)制樣本而帶來(lái)的模型過(guò)擬合的問(wèn)題,但由于其對(duì)每個(gè)少數(shù)類樣本都生成新樣本,導(dǎo)致類之間更加容易發(fā)生重疊,邊界模糊,從而使分類器的學(xué)習(xí)能力下降。Tomek Links[12]是目前廣泛應(yīng)用的一種數(shù)據(jù)清洗技術(shù),由Tomek在1976年提出,它通過(guò)確定Tomek Links樣本對(duì)來(lái)刪除類間的重復(fù)項(xiàng),使分類界面更加清晰。其中,Tomek Links定義如下:如果不存在任何樣本xt,使得d(xi,xt) 為了解決過(guò)擬合和邊界模糊問(wèn)題,本文采用上述兩種方法相結(jié)合的SMOTETomek[13]采樣技術(shù),先通過(guò)SMOTE算法生成少數(shù)類樣本,再利用Tomek Links進(jìn)行數(shù)據(jù)清洗,刪除噪聲樣本或者處于邊界位置的樣本。具體算法步驟如下: 步驟1對(duì)少數(shù)類點(diǎn)應(yīng)用KNN算法,得到其k個(gè)近鄰,按采樣比例在這k個(gè)近鄰中選擇若干個(gè)樣本; 步驟2對(duì)于選中的近鄰x′,根據(jù)xnew=x+rand(0,1)(x′-x)生成新的樣本,得到樣本集S0; 步驟3對(duì)任意xi1∈S1(少數(shù)類),計(jì)算xi1到S2(多數(shù)類)中任意樣本點(diǎn)的距離di1j1,記錄最小距離di1min及相應(yīng)樣本標(biāo)號(hào)j1;對(duì)任意xi2(多數(shù)類),計(jì)算xi2到S1中任意樣本點(diǎn)的距離di2j2,記錄最小距離di2min及相應(yīng)樣本標(biāo)號(hào)j2; 步驟4若di1min=di2min且j1=j2,刪除xi1和xi2。 2.2.2 基于交叉驗(yàn)證和網(wǎng)格搜索融合的k參數(shù)選取策略 在訓(xùn)練KNN分類器的過(guò)程中,需要確定k值來(lái)規(guī)定待分類的樣本,由與其相鄰的多少樣本決定,k值直接決定了分類器的分類效果,因此參數(shù)k的選取則變得至關(guān)重要。本文采用網(wǎng)格搜索和交叉驗(yàn)證相結(jié)合的方法來(lái)進(jìn)行參數(shù)k的優(yōu)化選取。 網(wǎng)格搜索是一種常用的調(diào)參手段,其基本思想是通過(guò)窮舉搜索,將可能的k取值一一列出,并對(duì)每個(gè)k值對(duì)應(yīng)的分類模型進(jìn)行比較評(píng)估,最終找出表現(xiàn)最好的參數(shù)。在訓(xùn)練每個(gè)k值對(duì)應(yīng)的分類器時(shí),本文采用K折交叉驗(yàn)證的方法,通過(guò)K次訓(xùn)練獲取平均的檢測(cè)準(zhǔn)確度。 交叉驗(yàn)證是建模應(yīng)用中常用的一種評(píng)估模型的方法,在K折交叉驗(yàn)證中,將數(shù)據(jù)集分為K份,每次選擇其中一份作為測(cè)試集,其余K-1份作為訓(xùn)練集(帶標(biāo)簽),用帶標(biāo)簽的訓(xùn)練集訓(xùn)練分類器,然后對(duì)測(cè)試集中的數(shù)據(jù)進(jìn)行分類,并據(jù)此計(jì)算其檢測(cè)準(zhǔn)確度。訓(xùn)練集和測(cè)試集劃分方法的不同,將導(dǎo)致測(cè)試結(jié)果不同程度的波動(dòng),本文采用K折交叉驗(yàn)證的方法以降低測(cè)試結(jié)果對(duì)數(shù)據(jù)劃分方法的敏感度,從而更加準(zhǔn)確地評(píng)估每個(gè)k值對(duì)應(yīng)的分類模型,找出最優(yōu)的k值。具體流程如圖4所示。 首先設(shè)定參數(shù)k的取值集合Q={q1,q2,…,qn},對(duì)Q中每一個(gè)k的取值qi,進(jìn)行KNN分類器的訓(xùn)練。訓(xùn)練過(guò)程采用K折交叉驗(yàn)證的方法,將數(shù)據(jù)集分為K份,每一份輪流作為測(cè)試集,其余K-1份作為訓(xùn)練集,計(jì)算K次分類模型的平均準(zhǔn)確率作為k=qi時(shí)分類器的準(zhǔn)確率。比較所有k值對(duì)應(yīng)的分類模型的準(zhǔn)確率大小,選擇具有最高準(zhǔn)確率的分類模型所對(duì)應(yīng)的k值作為最終的k值,并將該模型保存下來(lái),作為最終的分類器模型,對(duì)待測(cè)電路進(jìn)行檢測(cè)。 完成分類模型的優(yōu)化后,需要選取合適的測(cè)試基準(zhǔn),以檢驗(yàn)該分類模型的有效性。Trust-hub[14]網(wǎng)站是一個(gè)資源共享平臺(tái),它為硬件安全的研究者提供測(cè)試電路、工具和硬件平臺(tái)。網(wǎng)站提供的測(cè)試電路按插入階段、抽象層次、插入位置等的不同分別進(jìn)行了分類,其中按抽象層次分類中的門(mén)級(jí)這一類別提供了各個(gè)功能模塊經(jīng)DC綜合后的門(mén)級(jí)網(wǎng)表,即各功能模塊的IP固核。本文選取應(yīng)用廣泛的接口電路RS232和10Gb以太網(wǎng)媒體訪問(wèn)控制器(EthernetMAC10GE)的IP固核作為本文實(shí)驗(yàn)的測(cè)試基準(zhǔn),其具體功能描述見(jiàn)表1。 圖4 KNN分類器中參數(shù)k的調(diào)節(jié)流程 表1 對(duì)木馬電路的具體描述 采用EthernetMAC10GE、RS232等11個(gè)功能模塊的IP固核作為測(cè)試基準(zhǔn),對(duì)所提出的硬件木馬檢測(cè)方法進(jìn)行驗(yàn)證和評(píng)估,具體實(shí)驗(yàn)流程如圖5所示。 圖5 基于多信號(hào)特征融合的硬件木馬識(shí)別流程 基于Trust-Hub網(wǎng)站提供的門(mén)級(jí)網(wǎng)表對(duì)電路進(jìn)行觸發(fā)隱藏性分析和載荷隱藏性分析,利用Synopsys公司的Modelsim仿真工具和TetraMAX自動(dòng)測(cè)試向量生成(automatic test pattern generation,ATPG)工具進(jìn)行信號(hào)特征提取。首先,使用Python語(yǔ)言編寫(xiě)測(cè)試向量生成算法,隨機(jī)生成大量測(cè)試向量,將生成的測(cè)試向量輸入Modelsim仿真工具,對(duì)電路進(jìn)行仿真驗(yàn)證,將仿真結(jié)果輸出保存。統(tǒng)計(jì)各節(jié)點(diǎn)在整個(gè)仿真周期中出現(xiàn)邏輯“0”和邏輯“1”的時(shí)間以及翻轉(zhuǎn)次數(shù),根據(jù)式(1)和式(3)計(jì)算節(jié)點(diǎn)的靜態(tài)翻轉(zhuǎn)率Ptp和動(dòng)態(tài)翻轉(zhuǎn)率Ptc。然后,使用TetraMAX自動(dòng)測(cè)試向量生成工具進(jìn)行可測(cè)性分析,根據(jù)ATPG流程依次讀取門(mén)級(jí)網(wǎng)表和庫(kù)文件,創(chuàng)建ATPG模型,讀取測(cè)試協(xié)議文件進(jìn)行設(shè)計(jì)規(guī)則檢查(DRC design rule check),隨后直接將引腳參數(shù)設(shè)置為“scoap_data”進(jìn)行輸出,便可得到電路中各節(jié)點(diǎn)的組合0可控性CC0、組合1可控性CC1和組合可觀察性CO等數(shù)值。應(yīng)該注意TetraMAX在輸出電路中各信號(hào)的CC0-CC1-CO值時(shí),會(huì)將超過(guò)254的值用 星號(hào)“*”表示,為了不影響后續(xù)機(jī)器學(xué)習(xí)的學(xué)習(xí)效果,本文用255替代星號(hào)“*”。 獲取各信號(hào)的翻轉(zhuǎn)概率和可測(cè)性值后,構(gòu)造表征木馬信號(hào)特征的五維特征向量V={Ptp,Ptc,CC0,CC1,CO}。為每個(gè)信號(hào)的特征向量添加標(biāo)簽,木馬信號(hào)標(biāo)記為1,普通信號(hào)標(biāo)記為0,形成數(shù)據(jù)集,采用SMOTETomek算法對(duì)數(shù)據(jù)集進(jìn)行平衡處理。用平衡后的數(shù)據(jù)集訓(xùn)練KNN分類器,采用網(wǎng)格搜索和交叉驗(yàn)證的方法,選出最優(yōu)的分類模型,對(duì)待測(cè)電路進(jìn)行檢測(cè),得到木馬信號(hào)列表和正常信號(hào)列表。 對(duì)測(cè)試基準(zhǔn)進(jìn)行統(tǒng)計(jì)分析,得到其線網(wǎng)信息見(jiàn)表2。 表2 測(cè)試基準(zhǔn)網(wǎng)表信息 為了評(píng)估本文所提出的硬件木馬檢測(cè)方法的有效性,本文選取TPR和TNR這兩個(gè)常用指標(biāo),定義如式(5)和式(6)所示 (5) (6) 其中,TP(true positive)指被正確識(shí)別的木馬信號(hào)數(shù)量,TN(true negative)指被正確識(shí)別的正常信號(hào)數(shù)量,F(xiàn)P(false positive)指正常信號(hào)被錯(cuò)誤識(shí)別為木馬信號(hào)的數(shù)量,F(xiàn)N(false negative)指木馬信號(hào)被錯(cuò)誤識(shí)別為正常信號(hào)的數(shù)量。 將本文方法應(yīng)用于測(cè)試電路集上,得到實(shí)驗(yàn)結(jié)果見(jiàn)表3。 表3 基于KNN分類的實(shí)驗(yàn)結(jié)果 由表3可以看出,本文方法在所有的測(cè)試電路上都達(dá)到了非常高的準(zhǔn)確率,對(duì)于RS232系列通信電路可以達(dá)到100%的TPR,即所有的木馬信號(hào)均可被檢測(cè)出來(lái)。對(duì)于控制器EthernetMAC系列電路也達(dá)到90%以上的TPR,實(shí)現(xiàn)了較高的木馬檢出率。對(duì)所有測(cè)試電路的木馬信號(hào)平均檢出率達(dá)到98.23%,在木馬識(shí)別方面展現(xiàn)出巨大的優(yōu)勢(shì)。 與現(xiàn)有方法相比,進(jìn)一步驗(yàn)證了本文所提方法的有效性。表4對(duì)文獻(xiàn)[3]、文獻(xiàn)[15]以及本文所提方法進(jìn)行了比較,可以看出,本文方法在木馬檢出率方面得到了很大的提高,與文獻(xiàn)[3]、文獻(xiàn)[15]相比,分別提高了16.30%和10.24%,展現(xiàn)出明顯的優(yōu)勢(shì),具體如圖6所示。 表4 本文方法與現(xiàn)有方法的比較 圖6 本文方法與現(xiàn)有方法的分類結(jié)果比較 本文測(cè)試基準(zhǔn)選取的是在SOC設(shè)計(jì)中常用的接口電路RS232和媒體訪問(wèn)控制器EthernetMAC,雖然只有2組基準(zhǔn)電路,但包含了11種不同的硬件木馬,且這11組硬件木馬模塊可以植入到其它電路中,本文方法不受基準(zhǔn)電路的限制,對(duì)各種類型的電路均具有很好的適用性。隨著木馬設(shè)計(jì)方法的不斷發(fā)展,還可進(jìn)一步擴(kuò)展硬件木馬的信號(hào)特征,提高檢測(cè)算法應(yīng)對(duì)新型木馬的能力??偟膩?lái)說(shuō),該方法是一種兼具靈活性和擴(kuò)展性的硬件木馬檢測(cè)方法。 本文提出了一種基于多信號(hào)特征融合的硬件木馬智能識(shí)別方法,在觸發(fā)隱藏性植入的基礎(chǔ)上,補(bǔ)充了載荷隱藏性植入,建立了更加完備的硬件木馬隱藏性模型。并且在觸發(fā)節(jié)點(diǎn)的尋找方面,在常用的靜態(tài)翻轉(zhuǎn)率和可控性特征的基礎(chǔ)上,加入了動(dòng)態(tài)翻轉(zhuǎn)率,擴(kuò)充了木馬特征,形成了低靜態(tài)翻轉(zhuǎn)率、低動(dòng)態(tài)翻轉(zhuǎn)率、低組合0可控性、低組合1可控性和低組合可觀察性的硬件木馬特征集。應(yīng)用KNN分類器對(duì)待測(cè)電路進(jìn)行分類,大大提高了檢測(cè)效率。由實(shí)驗(yàn)結(jié)果可知,本文方法達(dá)到了98.23%的硬件木馬平均識(shí)別率,與文獻(xiàn)[3]、文獻(xiàn)[15]的方法相比,大大提高了硬件木馬的檢出率,是一種靈活且可擴(kuò)展的硬件木馬檢測(cè)方法。今后將重點(diǎn)研究電路的結(jié)構(gòu)特征,在現(xiàn)有基礎(chǔ)上繼續(xù)擴(kuò)充木馬特征庫(kù),進(jìn)一步提高檢測(cè)精度。3 實(shí)驗(yàn)結(jié)果與分析
3.1 測(cè)試基準(zhǔn)
3.2 實(shí)驗(yàn)流程
3.3 實(shí)驗(yàn)結(jié)果
4 結(jié)束語(yǔ)