李林源,徐金甫,嚴迎建,趙聰慧,劉燕江
信息工程大學(xué)信息安全重點實驗室,鄭州450000
近些年來,隨著經(jīng)濟全球化趨勢的深入發(fā)展,為了縮短產(chǎn)品開發(fā)周期,降低制造和測試成本,集成電路供應(yīng)鏈也邁入全球化進程。Fabless 模式是當下集成電路的主流模式,不同國家、地區(qū)的企業(yè)和人員協(xié)同參與到集成電路的設(shè)計與制造過程中,然而分離的供應(yīng)鏈在帶來便利的同時也引發(fā)了嚴重的安全問題。第三方知識產(chǎn)權(quán)核,包括軟核、固核和硬核等,大量應(yīng)用在集成電路設(shè)計階段來縮短產(chǎn)品的開發(fā)周期[1]。然而,攻擊者容易在第三方核中植入惡意電路,即硬件木馬,它可對原始電路進行有目的性的修改,如泄露信息給攻擊者,使電路功能發(fā)生改變,甚至直接損壞電路[2]。
由硬件木馬帶來的安全隱患問題隱蔽性高、滲透性強、危害性大且難以防范和根除,嚴重威脅到信息系統(tǒng)的安全可信水平。因此,開展硬件木馬檢測技術(shù)研究迫在眉睫。在現(xiàn)存的眾多檢測方法中,基于特征識別的硅前硬件木馬檢測具有成本低、可擴展性強和檢測效率高等優(yōu)點,且不需要黃金模型作為參考[3],逐漸成為硬件木馬檢測的主流方法。在以往的研究中,面向門級網(wǎng)表的硬件木馬檢測技術(shù)主要基于信號可測性或網(wǎng)表結(jié)構(gòu)特征,從單一角度描述木馬特征存在覆蓋率低的問題,導(dǎo)致木馬檢出率偏低。
本文將信號可測性值和網(wǎng)表結(jié)構(gòu)特征合并為一個特征向量,提高了木馬特征的覆蓋率。此外,本文改進了信號可測性值和網(wǎng)表結(jié)構(gòu)特征的提取方法,最終實現(xiàn)了網(wǎng)表信號節(jié)點的特征提取。最后,利用SMOTE-Tomek算法解決木馬特征數(shù)據(jù)集不平衡問題,通過特征重要性評估和特征篩選,解決特征冗余問題,引入隨機森林(random forest,RF)算法建立分類器并檢測出門級網(wǎng)表中的硬件木馬。
硬件木馬可以從多個角度進行分類,不同類型的硬件木馬具有各自獨有的特點,但是也存在一些共性特征。例如,在植入位置方面,為了躲避傳統(tǒng)的功能驗證,硬件木馬的理想植入點通常都具有較強的隱蔽性;在拓撲結(jié)構(gòu)方面,較大的扇入邏輯單元組合和選擇器等結(jié)構(gòu)常見于硬件木馬電路。因此,可以通過總結(jié)木馬電路的共性特征,建立硬件木馬特征集,實現(xiàn)對木馬信號的檢測。
已有文獻基于硬件木馬的特點,從不同的方面構(gòu)建特征,形成不同的硬件木馬特征集,具體如表1所示。
表1 已有文獻中的硬件木馬特征集Table 1 Hardware Trojan feature set in existing literatures
文獻[4-7]基于結(jié)構(gòu)特征建立硬件木馬特征集。其中,文獻[4]基于門級網(wǎng)表開展硬件木馬檢測技術(shù)研究,提出了LGFi、FFi、FFo、PI、PO 這5 種硬件木馬特征,利用支持向量機來訓(xùn)練并識別木馬節(jié)點。該方法特征集只包含5種特征,維度較小,且訓(xùn)練集分布不平衡,存在較高的誤判率。之后,在文獻[4]的基礎(chǔ)上,文獻[5]將硬件木馬特征由5種擴充到51種,并根據(jù)重要性值選出11個特征組成最優(yōu)木馬特征集,通過優(yōu)化神經(jīng)網(wǎng)絡(luò)獲得最佳分類結(jié)果。該方法選取特征的角度單一,特征集普適性較弱,平均木馬檢測率只有68.32%。文獻[6]計算待測電路中兩級AONN門的分數(shù),通過設(shè)置閾值區(qū)分木馬信號和正常信號。該方法只適用于單觸發(fā)型硬件木馬,對多觸發(fā)條件的硬件木馬無效,且未考慮載荷電路。文獻[7]基于門級網(wǎng)表的有向圖模型,提出了FAN_IN、FF_IN、FF_OUT、DPI、DPO、MUX 和INV 這7 種硬件木馬共性結(jié)構(gòu)特征,建立SVM 分類模型實現(xiàn)硬件木馬檢測。由于特征集的通用性不強,一些測試電路的檢測結(jié)果并不理想,例如s35932-T200的木馬檢出率只有8.33%。
文獻[8-10]基于信號特征建立硬件木馬特征集。其中,文獻[8]提出一種基于組合可測試性的硬件木馬檢測方法,使用k-mean 聚類算法進行分析。該方法僅適用于組合觸發(fā)型木馬,對時序觸發(fā)型木馬的檢測效果并不理想。文獻[9]針對時序觸發(fā)型硬件木馬,建立包含時序可控性和時序可觀察性的3維硬件木馬特征集,通過模型檢查和信號跟蹤逐步實現(xiàn)木馬電路的檢測。該方法僅用6個自主設(shè)計的小規(guī)模電路進行測試,不具有代表性。文獻[10]在組合可測性的基礎(chǔ)上,添加了信號的時序可測性,使用6 個信號特征組成特征集,并采用Bagged Trees 算法對木馬信號和正常信號進行分類。該方法只關(guān)注硬件木馬的信號特征,忽略結(jié)構(gòu)特征,導(dǎo)致檢測效果并不理想。
綜上所述:現(xiàn)有研究單方面選取結(jié)構(gòu)特征或信號特征建立硬件木馬特征集,導(dǎo)致特征集包含的信息不充分,木馬檢出率并不理想。同時,涵蓋的木馬種類少、范圍小,在現(xiàn)實應(yīng)用中的價值不大。因此,建立包含信息更充分、涵蓋范圍更廣的硬件木馬特征集,以提高木馬信號檢出率,擴大檢測范圍,將是本文研究的重點。
本文對已知電路中植入的木馬展開研究,通過分析觸發(fā)電路和載荷電路的典型結(jié)構(gòu),并結(jié)合現(xiàn)有的文獻資料,總結(jié)了7 個和硬件木馬密切相關(guān)的結(jié)構(gòu)特征,具體分析如下:
特征1(fan_in_4):距離目標節(jié)點4級邏輯門的扇入信號總數(shù)。對于組合型木馬,其觸發(fā)信號僅在輸入特定序列時才被激活,為了保證低觸發(fā)概率,觸發(fā)電路需要組合多個邏輯門,導(dǎo)致其扇入總數(shù)較大。在正常電路中,該結(jié)構(gòu)特征很少出現(xiàn)。
特征2,3(ff_in_4,ff_out_4):從輸入、輸出方向距離目標節(jié)點4級邏輯門的觸發(fā)器數(shù)目。對于時序型木馬,其隱蔽性取決于時鐘周期計數(shù)值[11],因此,木馬內(nèi)部計數(shù)器的深度較大,導(dǎo)致時序木馬包含的觸發(fā)器數(shù)量較多。
特征4,5(dpi,dpo):目標節(jié)點距離最近的主輸入、主輸出的級數(shù)。經(jīng)研究發(fā)現(xiàn),母本電路的主輸入經(jīng)常被用作硬件木馬觸發(fā)部分的輸入。為了達到泄露內(nèi)部信號的目的,木馬載荷部分需要被放置在母本電路的主輸出附近。因此,本文選擇主輸入和主輸出的邏輯單元深度作為識別硬件木馬的結(jié)構(gòu)特征。
特征6(mux_4):目標節(jié)點前后4級包含的多路選擇器數(shù)量。一些硬件木馬具有多路選擇器,用以接收觸發(fā)信號,并切換輸出信號以實現(xiàn)惡意功能。例如,泄露信息型木馬被激活后,通過多路選擇器將內(nèi)部信號連接到主輸出,以泄露內(nèi)部信息。
特征7(inv_4):目標節(jié)點前后4 級包含的反相器數(shù)量。環(huán)形振蕩器經(jīng)常被用于硬件木馬的載荷部分,以實現(xiàn)降低電路性能或經(jīng)側(cè)信道泄露內(nèi)部信息的惡意功能[12]。因此,路徑上的反相器鏈可以作為硬件木馬的結(jié)構(gòu)特征。
為解決選取木馬特征角度單一問題,建立包含信息更豐富,涵蓋范圍更廣的木馬特征集,本文加入信號節(jié)點的可測性值,共選取13 種和木馬電路緊密相關(guān)的特征構(gòu)建硬件木馬特征集,其具體描述如表2所示。
表2 本文建立的硬件木馬特征集Table 2 Hardware Trojan feature set in this paper
圖1為本文提出的檢測方法的整體架構(gòu),首先,根據(jù)Trust_Hub[13]網(wǎng)站提供的硬件木馬庫,提取電路節(jié)點的信號特征和結(jié)構(gòu)特征,形成13維特征向量。其次,利用SMOTETomek 算法平衡數(shù)據(jù)集。再次,對特征進行篩選,優(yōu)化特征向量。最后,利用最優(yōu)特征向量訓(xùn)練隨機森林分類器,通過對待測電路進行檢測,驗證分類器的性能。檢測架構(gòu)所涉及的技術(shù)或步驟將在下面的小節(jié)中進一步解釋。
圖1 硬件木馬檢測架構(gòu)Fig.1 Framework of hardware Trojan detection
本文基于Trust_Hub 木馬庫中的基準電路展開研究,通過對門級網(wǎng)表進行可測性分析,提取電路節(jié)點的信號特征;通過建立門級網(wǎng)表的有向圖模型,基于廣度優(yōu)先搜索算法提取電路節(jié)點的結(jié)構(gòu)特征。最終,形成13維特征向量。
2.1.1 信號特征提取
SCOAP(sandia controllability/observability analysis program)算法[14]用統(tǒng)計方法來度量電路的可測試性,是目前廣為接受的可測性算法。通過SCOAP包含的一組方程式,可以得到6 個參量以確定信號節(jié)點的可測試性,即CC0、CC1、CO、SC0、SC1、SO。與正常節(jié)點相比,木馬節(jié)點可測試性更低,SCOAP 值更大[15]。因此,本文選擇上述6個參量作為信號特征,用以區(qū)分木馬節(jié)點和正常節(jié)點。
在以往的研究中,大都使用Synopsys公司的TetraMAX工具提取電路節(jié)點的SCOAP值。該工具專門用于ATPG(automated test pattern generation)[16],所生成的SCOAP值只能粗略地描述每個節(jié)點的可測試性。當電路節(jié)點可測性值大于254時,TetraMAX無法將其具體值輸出,而是使用星號“*”表示。然而,在大型電路中,正常節(jié)點的可測性值也很容易達到254,可測試性值區(qū)分木馬節(jié)點和正常節(jié)點的能力將被大幅降低。
為解決上述問題,本文使用開源工具Testability Measurement Tool[17]提取電路節(jié)點的可測性值。使用該工具進行數(shù)據(jù)提取時可自行設(shè)定閾值,較大的閾值將使木馬節(jié)點和正常節(jié)點的可測性值差異更加明顯,從而能夠獲取更為詳細的信息來進行分類模型的訓(xùn)練,使分類邊界更加清晰,有助于提升硬件木馬檢出率,減少假陽性分類。
2.1.2 結(jié)構(gòu)特征提取
本文基于文獻[7],對門級網(wǎng)表進行結(jié)構(gòu)特征的提取。提取過程主要包括三個步驟,即有向圖模型的建立,基于十字鏈表的有向圖數(shù)據(jù)存儲和基于廣度優(yōu)先搜索的木馬特征得分量化。文獻[7]中提出的結(jié)構(gòu)特征模型描述的是器件單元的相關(guān)屬性,然而本文需要對信號節(jié)點的結(jié)構(gòu)特征進行提取。因此,本文對文獻[7]中門級網(wǎng)表的有向圖模型進行調(diào)整,將電路中所有的輸入、輸出端口以及節(jié)點映射為有向圖的頂點,將器件單元映射為有向圖的邊。按此映射規(guī)則得到文獻[7]中門級網(wǎng)表等效電路圖(如圖2 所示)的有向圖模型,如圖3 所示。根據(jù)調(diào)整后的有向圖模型,可以對信號節(jié)點的結(jié)構(gòu)特征進行提取。
圖2 文獻[7]中的等效電路圖Fig.2 Circuit diagram in Literature [7]
圖3 調(diào)整后的有向圖模型Fig.3 Directed graph by adjustment
為了使硬件木馬不易被檢測,攻擊者植入的木馬模塊在整個電路中的占比非常小,從而導(dǎo)致基準網(wǎng)表中可獲取的木馬數(shù)據(jù)十分有限。本文選擇Trust_Hub庫中的21 個基準電路開展研究,如表3 所示,基準電路共包含555 962 個信號節(jié)點,其中木馬節(jié)點1 487 個,僅占節(jié)點總量的0.267%,這將導(dǎo)致訓(xùn)練集中的木馬類信息嚴重缺失。如果使用該不平衡數(shù)據(jù)集訓(xùn)練分類器,將產(chǎn)生正常類的過擬合問題。因此,需要對數(shù)據(jù)集進行擴展,以獲得正常類和木馬類樣本數(shù)量1∶1的平衡訓(xùn)練集,從而建立更加完善的硬件木馬分類模型。
表3 基準電路的節(jié)點信息Table 3 Net information of benchmark netlists
本文采用由SMOTE過采樣技術(shù)和Tomek Links欠采樣技術(shù)相結(jié)合的SMOTETomek算法[18]對訓(xùn)練數(shù)據(jù)集進行擴展處理。SMOTETomek 是一種綜合采樣技術(shù),先通過SMOTE 算法生成木馬類樣本,再利用Tomek Links 進行數(shù)據(jù)清洗,刪除噪聲樣本或者處于邊界位置的樣本。該技術(shù)解決了采樣過程中的過擬合和邊界模糊問題,有利于增強分類器的性能。
通過提取網(wǎng)表節(jié)點的信號特征和結(jié)構(gòu)特征,本文獲得了13 維特征向量??紤]到可能存在的特征冗余問題,需要對特征進行篩選,在檢測效率和檢測精度兩個方面進行權(quán)衡,選出最優(yōu)的特征向量,以實現(xiàn)高效率、高精確度的硬件木馬檢測。
本文通過特征重要性評估和分類器模型評分,實現(xiàn)特征向量的優(yōu)化。首先,使用隨機森林算法獲得每個特征的重要性值,并按照重要性值由高到低對13 個特征進行排序。其次,根據(jù)重要性排序,依次將特征數(shù)據(jù)添加至訓(xùn)練集,分別使用1 個、2 個直到13 個特征進行RF分類器的訓(xùn)練,應(yīng)用Python自帶的模型評估函數(shù)對分類結(jié)果進行評分,采用五折交叉驗證,取平均值作為最終結(jié)果。由表4 可知,當特征數(shù)增加至11 個時,模型得分達到最高。因此,將重要性值排在最后的兩個特征dpo和ff_in_4刪除,得到最優(yōu)特征向量。
表4 特征重要性排序及模型評分Table 4 Features importance ranking and model scoring
隨機森林是一種基于集成學(xué)習的分類回歸算法[19],具有訓(xùn)練速度快、精度高、抗過擬合能力強、適合處理高維度數(shù)據(jù)等優(yōu)點[20],相比于其他算法,更適用于本文的特征向量。因此,本文使用該算法建立硬件木馬分類模型。本文將數(shù)據(jù)集按照60%/40%的比例隨機劃分為訓(xùn)練集和測試集,以進行分類器的訓(xùn)練,并基于網(wǎng)格搜索技術(shù)對分類器的參數(shù)進行調(diào)節(jié)。最后,用訓(xùn)練出的模型對所有電路進行檢測,得到木馬信號集和正常信號集。
為了驗證檢測方法的有效性,本文選取Trust_Hub庫中的21個硬件木馬電路展開研究,具體信息如表5所示,詳細地介紹了硬件木馬的觸發(fā)電路類型、觸發(fā)概率以及功能。本文選取的測試電路涵蓋的硬件木馬類型多樣,電路規(guī)模從幾百門到十萬門等不同數(shù)量級均有所涉及,對于驗證本文方法的有效性提供了有力支撐。
表5 木馬電路具體描述Table 5 Description of hardware trojan
為了評估本文所提出的硬件木馬檢測方法的有效性,本文選取3 個性能指標,即TPR、TNR 和ACC[21],計算方法如式(1)、式(2)和式(3)所示。其中,TP 指被檢測出的木馬信號數(shù)量,F(xiàn)N 指沒有被檢測出的木馬信號數(shù)量,TN 指被檢測出的正常信號數(shù)量,F(xiàn)P 指被錯判為木馬的正常信號數(shù)量。
為了進一步研究不同特征向量對檢測結(jié)果的影響,本文分別使用信號特征向量、結(jié)構(gòu)特征向量和2.3 節(jié)中得到的最優(yōu)特征向量進行分類器的訓(xùn)練,并對測試電路進行檢測,結(jié)果如表6所示。由表6可知,在對信號特征和結(jié)構(gòu)特征進行組合后,分類器的性能有了顯著的改善,TPR平均值分別增加了8.75%和4.58%。因此,本文對硬件木馬特征的組合和優(yōu)化是必要且有意義的。
表6 不同特征向量的分類結(jié)果Table 6 Results of different feature vectors單位:%
在完成特征向量優(yōu)化和RF 分類器訓(xùn)練后,對測試電路一一進行檢測,以驗證本文方法的有效性,最終的實驗結(jié)果如表7所示。根據(jù)分類結(jié)果可知,共有16個測試電路的TPR、TNR 和ACC 值達到100%,即不僅檢測出全部的木馬節(jié)點,且不存在誤判的情況。本文在所選的21個基準電路檢測中實現(xiàn)了99.22%的平均硬件木馬檢出率和99.99%的分類準確率,誤判率僅為0.01%,實現(xiàn)了高精確度的硬件木馬檢測。
表7 測試電路分類結(jié)果Table 7 Detection results of gate-level netlists
本文與現(xiàn)有方法的比較如表8所示,文獻[5]和[7]的研究基于硬件木馬的結(jié)構(gòu)特征,文獻[10]和[22]的研究基于硬件木馬的信號特征,而本文結(jié)合硬件木馬的結(jié)構(gòu)特征和信號特征,通過優(yōu)化特征向量,實現(xiàn)對木馬信號的檢測。與文獻[5]、[7]和[10]相比,本文的TRP、TNR和ACC值均有提升,其中TPR的提升尤為明顯,分別增長了30.9%、21.47%和19.76%,這表明本文方法的硬件木馬檢測能力大幅增長。相比于文獻[22],雖然本文在檢測效果方面僅有小幅度的提升,但是文獻[22]用于測試的基準電路規(guī)模較小,涵蓋范圍偏窄。本文對較大規(guī)模的vga_lcd、wb_conmax 和EthernetMAC10GE 電路展開實驗驗證,并取得了理想的檢測結(jié)果。綜上所述,本文方法在現(xiàn)有方法的基礎(chǔ)上進一步提升了硬件木馬檢出率,是一種精度更高、覆蓋范圍更廣的硬件木馬檢測方法。
表8 與現(xiàn)有方法的比較Table 8 Comparison of hardware Trojan detection methods單位:%
本文提出了一種基于多維特征的門級硬件木馬檢測方法,對結(jié)構(gòu)特征和信號特征進行組合,使用優(yōu)化后的特征向量訓(xùn)練隨機森林分類器,實現(xiàn)硬件木馬的檢測。實驗結(jié)果表明,本文方法在21個測試電路中,19個的TPR達到了100%,所有測試電路的平均TNR和ACC分別為99.99%和99.99%,大幅提升了硬件木馬檢出率。與現(xiàn)有方法相比,本文方法覆蓋范圍更廣,檢測準確率更高,是一個更具有實際應(yīng)用價值的硬件木馬檢測方法。