• 晶片資安第一站

從1到1萬》硬體木馬變形電路自動生成術

撰文:資策會資安所網駭中心晶片安全技術組

近年來,隨著製程科技的進步,以及物聯網、行動裝置和自動駕駛等嵌入式系統的普及,積體電路的設計也逐漸趨於複雜,也驅使晶片中分項分工更為細緻。因此,向第三方IC設計公司購買矽智財(Intellectual Property, IP)或委託晶圓代工廠製作的情況也不在少數,整個IC的製造過程日漸暴露在大量不信任的環境之下。

其中,如果在晶片設計製造過程中遭到刻意改動,則該電路稱為硬體特洛伊木馬,在現今大量使用晶片的環境下,如何檢測硬體特洛伊木馬是不可忽視的重要議題。因此,我們開發了一套硬體木馬偵測模組,藉由機器學習模型,透過輸入之電路萃取特徵辨別出植入的硬體木馬位置區塊,希望在矽前階段就能夠偵測到硬體木馬,來降低開發過程的風險及製造成本。

問題一:硬體木馬樣本過少

但現實中的硬體木馬樣本過於稀少,在公開資料集上,僅有在TrustHub上的88筆資料,導致在訓練硬體木馬偵測模型上的資料集過小,容易產生過擬合(Overfitting)且無法泛化(Generalizable)跨資料集的問題。

因此,為了增加資料集而衍生出生成硬體木馬樣本的想法,希望有一個自動化的硬體木馬生成工具,讓我們輸入一個Gate-Level Verilog格式檔案與相關參數後就能自動變化已輸入的硬體木馬之形式及位置,來達到增加硬體木馬的多樣性及擴增資料集以加強偵測模型的訓練。

問題二:如何有效變形

整體演算法的思路及實作上,我們透過電路模擬的方式,計算出輸入之電路的閘開關機率空間,然後給定該電路欲轉換之wire及gate名稱,通常為輸入已標籤好與硬體木馬Trigger和Payload相連相鄰或前一層之wire及gate作為抽換空間,藉由比對其他機率值相似之wire及gate與之替換,來達成硬體木馬之變形。

雖然僅選用有木馬標籤之前一層wire及gate,但也足夠生成將近一萬筆輸入電路的硬體木馬變形電路,最終會產生已變形之硬體木馬電路,並以comment的方式在該電路之Verilog的起頭紀錄變化過程。

實現此技術對於我們在擴增硬體木馬資料集上有很大的幫助,在TrustHub公開資料集上原本僅有88筆硬體木馬的資料,藉由運用此技術可以將1筆硬體木馬變形產生將近萬筆該硬體木馬的變形電路,等於88筆原始硬體木馬資料將可生成出88萬筆硬體木馬變形電路,對於增加資料集而言是很大的幫助,也以此協助硬體木馬偵測的模型建立。

在驗證結果上,我們以原生資料集訓練模型,對變形之硬體木馬電路進行預測,預測結果是將近100%準確率,也就是說木馬的變形電路是合理的。

問題三:偵測模組如何產生有效訓練集

之後,我們將原生資料集做交叉驗證,並且對訓練集中的電路套入木馬變形模組,以此來增加訓練集,結果上對於每個交叉驗證中之驗證集的準確率也是有所提升的。因此,此一模組除了突破學界上在研究硬體木馬樣本數的不足之外,也生成確實是有效、可用之變形硬體木馬電路,解決資料集過少的問題。

 

Share:
This site is registered on wpml.org as a development site.