倪林,劉子輝,張帥?,韓久江,鮮明
(1.國防科技大學電子科學學院,湖南 長沙 410073;2.國防科技大學信息通信學院,湖北 武漢 430030)
近年來,從應用軟件到操作系統再到硬件芯片,黑客在電子系統方面的滲透無孔不入,對信息安全的威脅也呈指數級增長。應用軟件和操作系統中的病毒、惡意軟件等惡意程序給信息安全帶來了極大風險,此外,隱藏在底層硬件中的木馬不僅難以發現且無法通過打補丁方式消除,給硬件安全帶來更大的隱患。
隨著各種智能設備的普及,嵌入式芯片被廣泛使用,惡意硬件邏輯帶來的危害也進一步放大[1]。在集成電路設計分工全球化的背景下,芯片供應鏈路的每個環節都可能存在風險[2-3]。集成電路的設計、生產等各個環節均存在不可控因素,一旦被別有用心的第三方插入硬件木馬,則會帶來巨大的安全威脅[4-5]。在航空航天、軍事工業等特殊行業中,如果使用的這些非可控芯片發生了安全問題,產生的影響是不可估量的。在電子設計自動化(EDA)工具的輔助下,為加快設計進度,構成系統級芯片(SoC)的各個關鍵模塊大量使用可復用第三方知識產權(IP)軟核實現[6],這些可復用的第三方IP 軟核的安全性難以保證,因此,實現IP 軟核的“自主可控”與“自主可信”成為當前形勢下各類信息系統的迫切需求。
目前,在國內對IP 軟核硬件木馬檢測的方法中,基于流片后反向分析的破壞式檢測不僅耗時而且費用昂貴,且這些檢測方法不能很好地檢測集成度不斷提高、結構日趨復雜的芯片[7-8]。可測試性設計(DFT)輔助檢測方法目前只支持Verilog 硬件描述語言(HDL)代碼,不支持其他類型的代碼。通過對旁路信號進行分析的硬件木馬檢測方法可能會被工藝變量和各種噪聲影響,對微小惡意邏輯的檢測準確度不高[9-10]。采用邏輯檢測方法,其測試向量構造復雜,檢測復雜邏輯時容易錯漏。
為從源頭進行IP 軟核硬件木馬檢測分析,本文提出一種基于灰度圖譜匹配的檢測方法。以Trust-Hub 庫中的“Golden”軟核為基準,基于灰度圖譜,以分塊匹配原則為準則,實現對第三方“非可控”IP 軟核硬件木馬的檢測,以確保IP 軟核的安全性。
芯片安全性一直是國內外相關人員關注的重點,特別是最近幾年,芯片集成度越來越高,工藝愈加復雜[11],如目前高端智能芯片常采用三維(3D)堆疊技術進行集成,在工藝環節引入的新步驟會導致額外的惡意邏輯風險,且多芯粒3D 堆疊技術容易造成芯片結構復雜化,多芯粒采用的IP 核也很難做到完全自主可控,導致集成后難以發現潛在的安全風險[12-14],這些都使得硬件木馬被惡意植入的方式更加多樣,植入的硬件木馬種類與功能各不相同,一旦被植入后將很難去除,造成的破壞難以估量,最終使得集成電路(IC)的安全難以保證。
硬件木馬是指芯片在設計、制造階段被人為植入的具有惡意功能的電路模塊[15],這些惡意電路模塊如果被不法分子利用,就可對原始電路進行修改甚至破壞,以無條件觸發或特定條件觸發的啟動方式達到篡改系統功能、破壞內部結構等目的[16-17]。雖然目前硬件木馬的功能、種類、實現方法多種多樣,且電路結構復雜,但是總體上主要由觸發結構與有效載荷2 個部分組成[18]。硬件木馬結構如圖1所示。

圖1 硬件木馬結構Fig.1 Hardware Trojan structure
在一般情況下,硬件木馬的觸發結構設計是能否長期隱藏的關鍵所在,在激活前硬件木馬處于休眠狀態。而特殊情況下的硬件木馬不具有觸發邏輯,一直處于激活狀態[19-20]。
硬件木馬的有效載荷是其實現功能的核心,硬件木馬被激活后的破壞方式主要有泄露信息、改變功能、拒絕服務等。
IP 軟核一般采用寄存器傳輸級(RTL)HDL 硬件語言描述,作為IP 核形式之一,IP 軟核是一個功能完整的模塊,在電路設計中能夠加速設計流程,為設計者提供較好的彈性空間。IP 軟核硬件木馬是硬件描述語言(Verilog 或VHDL)所描述的功能規范之外的冗余電路,其可能是被插入的惡意電路,也可能是被惡意利用的設計漏洞或用于測試的后門邏輯。這些冗余電路只要能產生功能規范外的電路輸出或狀態改變,對涉及國家重要領域的核心系統而言,都可能引發災難性安全問題[21]。從IP 軟核的設計制造全流程來看,在硬件設計源頭對硬件木馬進行檢測可行性較強。
在RTL 層面進行電路設計時一般將邏輯電路分成不同的獨立模塊,未劃分前即為原始模塊,在植入硬件木馬時根據實現方式的不同插入到對應的模塊中,原始模塊和獨立模塊中都有可能被植入硬件木馬。如圖2 所示,存在觸發結構的硬件木馬可以根據需求將有效載荷和觸發結構在同一模塊或不同模塊中實現[22]。硬件木馬實現的具體方式為修改原始功能或新增額外功能。

圖2 硬件木馬實現方式Fig.2 Hardware Trojan implementation method
在芯片設計過程中,通過使用RTL 級IP 軟核可以降低設計復雜性,但同時也讓植入的硬件木馬更加靈活。在第三方IP 軟核的使用中,廠商會直接提供HDL 代碼,方便進行配置。植入的硬件木馬一般會對代碼進行改動,因此,從RTL 級對硬件木馬進行檢測是可行且有效的。
傳統的RTL 級硬件木馬檢測方法主要有特征匹配、抽象檢測、信號追蹤[23-25]等3 種,這些檢測方法均將RTL 級硬件木馬的固有特性、Verilog HDL 代碼結構或語法規則所體現出來的特征作為檢測條件,在不同的場景下會存在一些缺陷。當IP 軟核內的代碼程序進行了加密處理,傳統檢測手段就難以對硬件木馬進行有效檢測。無論是加密還是不加密,其核心在于對原始代碼是否改變。本文通過灰度圖譜匹配進行硬件木馬RTL 級檢測,是將分析過程從易變的代碼維度轉換到靜態的圖譜維度,圖譜檢測所依賴的是RTL 級代碼映射在灰度圖像上反映出的數值信息,并非內部語法結構或語義信息,在硬件木馬RTL 級檢測方法中具有特殊優勢,對加密或未加密IP 軟核均適用。
IP 軟核中惡意邏輯的檢測一直是困擾安全人員的難題,由于IP 軟核的知識產權保護特性,對其進行全覆蓋測試不可能完備,使得隱藏在IP 軟核正常功能描述代碼中的硬件木馬難以激活,尤其是針對加密IP 軟核更加缺少可行的手段[26-27]。
硬件木馬在設計過程中多通過關鍵詞隱藏、語義融合等方式提高其隱蔽性,將IP 軟核轉成對應的灰度圖譜時,在灰度圖譜的維度只要改變功能描述,其反映出的特征將不一致。從灰度圖譜差異的角度進行分析,選擇合適的像素精度進行分塊遍歷匹配,分析遍歷匹配后最大相似度的分布特性,可以實現硬件木馬檢測,且這種方法不需要考慮硬件木馬隱藏邏輯的實現方式和功能特點,適應性較好。
本文以Trust-Hub 構建的“Golden”軟核灰度圖譜集作為標準,提出基于灰度圖譜分析的IP 軟核硬件木馬檢測方法,從IP 軟核硬件描述語言程序上對硬件木馬進行檢測并完成初步實現。
實現灰度圖譜匹配IP 軟核中硬件木馬檢測的技術難點為:一是多領域、全覆蓋的“Golden”軟核集建立,并將其映射為灰度圖譜;二是硬件木馬匹配檢測中的實現細節以及對映射的灰度圖譜進行匹配時的算法設計。這2 個技術難點的突破是實現高效與準確檢測的基礎。基于灰度圖譜特征的IP 軟核硬件木馬檢測流程如圖3 所示,具體步驟分為:

圖3 IP 軟核硬件木馬檢測流程Fig.3 Hardware Trojan detection procedure of IP soft core
1)硬件木馬的RTL 級代碼解析。硬件木馬在IP軟核中以Verilog HDL 硬件語言描述存儲,該步驟主要是將HDL 語言轉換成灰度圖譜數據。
2)“Golden”標準軟核集構建。以Trust-Hub 標準硬件木馬庫中的AES、DES、RS232 及其他基準電路為基礎,通過對標準IP 軟核實例進行處理,構建有效的“Golden”軟核灰度圖譜集。
3)灰度圖譜匹配檢測。待測IP 軟核與“Golden”軟核的圖譜匹配是檢測的核心,通過分塊匹配算法實現。
4)可疑灰度圖譜特征的篩選與定位。選定合適的像素矩陣大小,通過逐塊遍歷匹配的方式得到待測圖譜每個分塊與“Golden”軟核灰度圖譜的差異值,選擇相關性最高的數值作為該塊矩陣的相似特征,對輸出圖像進行判斷,得到檢測結果。
對于RTL 級IP 軟核硬件木馬檢測而言,檢測的關鍵在于找到待測IP 軟核與“Golden”軟核的差異,構建“Golden”軟核的灰度圖譜庫。在此基礎上,實現對灰度圖譜的有效處理和特征顯化,提出合理的硬件木馬檢測分析流程,在流程中最大限度地利用IP 軟核的灰度圖譜特征,分析待測軟核與“Golden”軟核的差異,從而實現硬件木馬檢測。
2.2.1 Trust-Hub 平臺
硬件木馬檢測是一個熱門研究方向,由于硬件木馬性質的特殊性,使得公開的硬件木馬設計實例極少。Trust-Hub 平臺提供了硬件安全研究所需的資源,其包含多種被廣泛應用的電路,如AES、RS232、MC8051、Basic RSA 等,并且針對每種電路都插入了由小到大不同規模的各種硬件木馬,具有良好的通用性,因此,該網站基準電路數據集的可信度及檢測的可行性較高。
2.2.2 “Golden”軟核集構建流程
“Golden”軟核集的構建以Trust-Hub 庫中的標準電路為基礎,可以快速建立并及時更新擴充標準電路,確保檢測準確度。“Golden”軟核集構建的整體流程為:從庫中取出已知IP 軟核的標準電路源代碼,通過灰度圖譜算法進行相關處理,得到“Golden”軟核圖譜,同理獲得其他類型的標準電路,得到“Golden”軟核集。上述過程實現流程如圖4 所示。

圖4 “Golden”軟核集構建流程Fig.4 "Golden" soft core set construction procedure
“Golden”軟核集的構建步驟如下:
1)從Trust-Hub 庫中選取標準電路進行灰度圖譜轉換,得到RTL 級文件的二進制數據流,具體過程如算法1 所示。
算法1“Golden”數據圖譜轉換算法
灰度圖譜匹配算法的核心在于將硬件木馬RTL級程序映射成灰度圖譜進行檢測,對加密和非加密的IP 軟核均適用,不需要借助硬件木馬的語義特征、行為特征等進行篩選檢測,而是通過RTL 級程序在灰度圖譜上的數值進行分析。雖然硬件木馬可能存在不同變種,這些變種的代碼、結構等有一定區別,但是從同一個木馬源文件演化出的變種依舊會有相似性,這種相似性可以體現在硬件木馬對應的灰度圖譜中。通過將灰度圖譜的方法應用到硬件木馬檢測中,可以有效實現對IP 軟核安全性的判定。
灰度圖譜即只用黑白來表示圖像中的亮度信息,不關注其中的色彩值。為了方便亮度值的量化,同時便于計算機進行處理,可以將灰度分成0~255共256 個級別,其中0 代表全黑(最暗),255 代表全白(最亮)。將IP 軟核內的RTL 級程序通過算法得到對應的灰度圖像,即程序文件的灰度圖譜,具體流程如圖5 所示。

圖5 灰度圖譜的產生流程Fig.5 Procedure of grayscale map generation
灰度圖譜算法是把RTL 級程序映射成灰度圖譜的具體實現過程,其步驟如算法3 所示。
算法3灰度圖譜算法
正常轉換后的灰度圖譜較大,紋理特征無法明顯表示出來,為提升檢測精度,選取分塊匹配的方式進行處理,從圖譜中取出一個分塊圖譜A,從另一圖譜中取出與A 相同尺寸的分塊圖譜B,對A 與B 進行像素值的差值計算,將得到對應像素的差值用矩陣K[i]進行保存,具體匹配過程如圖6 所示。

圖6 匹配檢測過程Fig.6 Matching detection process
像素值的差值計算與矩陣的差值計算相似,計算方式為:
將得到的差值矩陣K[i]進行矩陣求和,將得到的求和值SSum保存到I[i,j]。矩陣求和運算公式為:
I[i,j]需要進行正值處理,將矩陣中所有元素變為正值,取絕對值即可,運算公式為:
經過正值化的I[i,j]就是圖譜A 與圖譜B 在對應像素的差值,差值的大小代表兩者在圖譜對應位置的差異,差值越大,表示兩者區別越大;反之,兩者相似度越高。
通過圖譜匹配得到圖譜A 與圖譜B 的差異值I[i,j]。I[i,j]每一行代表從圖譜A 中取出的每一個分塊圖譜與圖譜B 中每一個分塊圖譜的差異,找到此行中最小的差異值,就代表取出的待測分塊在“Golden”圖譜最相似的位置。對I[i,j]的每一行進行取最小值處理,并把結果保存到Min[x],其最小值函數表達式為:
實驗利用Winhex、Matlab 工具,實現灰度圖譜轉換、匹配檢測等功能,并以Trust-Hub 庫中典型的B19-T100、S38417-T200、Wb_conmax-T100 等系列IP 軟核為例進行實驗驗證。
IP 軟核B19-T100 中設計實現的是一種典型的硬件木馬,該硬件木馬觸發器是一個特定的矢量(10110101)計數器,它會用另一個特定的矢量(11111111)重置,當計數器值在100~110 之間時木馬觸發器即被激活。木馬的有效載荷是一個“或”門,通過重新連接設計網絡。按照硬件木馬分類原則,它屬于在設計階段插入的門級別、內部基于時間觸發、改變系統功能的硬件木馬,同時其物理特征表現為緊密、功能與布局相同。B19-T100 所植入的木馬代碼如下:
4.2.1 預處理
首先將待測樣本IP 軟核的RTL 級文件取出,通過處理得到待測樣本的十六進制數據流,命名為“Sample to be tested”,“Golden”軟核重復上述操作,文件命名為“Golden Set”。將處理得到的十六進制數據流作為Matlab 的輸入,分別得到新矩陣G[i]與C[i,j],分別取 待測樣本G[i]與“Golden Set”的C[i,j]并進行標準化,將數據量大小設為9×105,灰度圖譜大小設為1 800×500,圖譜大小的設定需要通過多次實驗得到,太小會導致特征信息損失無法識別,太大不僅導致計算量過大,也會導致特征信息被淹沒,識別效果不明顯。
4.2.2 圖譜匹配
設定分塊圖譜大小為5×500 并進行匹配,通過循環遍歷進行滑動匹配,基于矩陣數值實現像素級的差值計算,循環得到所有待測樣本分塊在“Golden Set”相應位置上的差異值。對每一次差值計算完成的數據進行累加,差異值的大小反映在數值上而非符號上,因此,需要進行絕對值處理。
4.2.3 差異檢測結果分析
對完成匹配檢測后得到的數據進行取最小值處理,并記錄取值的位置,使用plot 函數對結果進行展示輸出。通過對Min[x]進行輸出,觀察最大相似度的分布特性,判斷圖像是否存在明顯尖峰,若存在明顯尖峰,則證明待測樣本中含有硬件木馬,反之,則不含有硬件木馬。IP 軟核B19-T100 實驗結果如圖7、圖8 所示。

圖7 B19-T100 含木馬樣本檢測匹配結果Fig.7 Detection and matching results of samples containing Trojans in B19-T100

圖8 B19-T100 不含木馬樣本檢測匹配結果Fig.8 Detection and matching results of samples without Trojans in B19-T100
從含有硬件木馬程序的IP 軟核與“Golden”軟核的灰度圖譜匹配結果中可以發現明顯的尖峰,這就表明待測樣本中出現了與“Golden”軟核較大的特征差異,說明待測樣本此段代碼與“Golden”軟核內的代碼不相符,極有可能是被惡意植入的硬件木馬。從實驗回溯情況來看,3 個尖峰對應的位置均為木馬代碼出現的位置,這種方法不僅可以檢測是否存在木馬,也可以用來定位木馬所在位置。在圖8 中,用不含硬件木馬程序的IP 軟核與“Golden”軟核進行灰度圖譜匹配檢測,其中未發現明顯尖峰,這就表明此軟核含有硬件木馬的概率極低。
同理,以相同的實驗條件分別對S38417-T200、Wb_conmax-T100 進行檢測,結果如圖9~圖12 所示。可以看出,3 種類型的硬件木馬在結構、功能方面差異較大,且插入位置不唯一,本文方法對不同類型硬件木馬進行檢測時檢測圖像有較大區別,但均可以實現惡意邏輯的檢測和定位。

圖9 S38417-T200 含木馬樣本檢測匹配結果Fig.9 Detection and matching results of samples containing Trojans in S38417-T200

圖10 S38417-T200 不含木馬樣本檢測匹配結果Fig.10 Detection and matching results of samples without Trojans in S38417-T200

圖11 Wb_conmax-T100 含木馬樣本檢測匹配結果Fig.11 Detection and matching results of samples containing Trojans in Wb_conmax-T100

圖12 Wb_conmax-T100 不含木馬樣本檢測匹配結果Fig.12 Detection and matching results of samples without Trojans in Wb_conmax-T100
為進一步驗證并分析算法的有效性,選取5 個類型共18 種硬件木馬進行實驗。表1 列出了B19、B15、S38417、S38584、Wb_conmax 系列硬件木馬的功能與所占源程序的體量,通過圖譜檢測,對以上木馬的檢測識別率達到了92%以上。

表1 圖譜檢測的木馬識別率Table 1 Trojan recognition rate for graph detection
上述實驗結果充分說明了灰度圖譜檢測的有效性,該算法在多次測試的基礎上,選取檢測效率最高的分塊大小進行分析,將待測軟核中的每一個分塊圖譜在“Golden”軟核的灰度圖譜中進行一次遍歷,若此待測分塊中沒有硬件木馬,遍歷后會在“Golden”軟核圖譜中有一個位置與之對應。雖然匹配過程中會出現位移偏差,但是經過求和統計后,偏差可忽略不計。此外,通過取最小值處理,也可以降低誤差,提高檢測的準確性。從差異值分布特性的結果可以明顯看出硬件木馬是否存在,從而實現對IP 軟核RTL 級硬件木馬的檢測識別。
隨著集成電路產業的飛速發展,IP 軟核被惡意植入硬件木馬的風險與日俱增,通過在IP 軟核的RTL 級設計階段進行硬件木馬檢測可以避免被惡意攻擊。本文提出的灰度圖譜匹配檢測方法實現了對IP 軟核硬件木馬的有效檢測,與傳統基于功能測試和特征匹配的方法相比,該方法能有效應對硬件木馬變種多、加密處理失效的問題,具有硬件木馬檢測效率高、不受加密處理影響等特點,對于保證芯片使用安全具有一定的現實意義。下一步將對“Golden”軟核庫進行完善,擴充檢測適用范圍,可引入神經網絡進行硬件木馬種類識別,實現對硬件木馬的精準分類。