文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.182242
中文引用格式: 高洪波,李磊,,周婉婷,,等. 基于XGBoost的硬件木馬檢測方法[J].電子技術(shù)應(yīng)用,2019,,45(4):55-59.
英文引用格式: Gao Hongbo,,Li Lei,Zhou Wanting,,et al. Hardware Trojan detection method based upon XGBoost model[J]. Application of Electronic Technique,,2019,45(4):55-59.
0 引言
隨著集成電路產(chǎn)業(yè)的全球化生產(chǎn)策略和電路設(shè)計大規(guī)?;琁C設(shè)計公司很少能從設(shè)計到制造獨立完成所有的模塊設(shè)計,,更多地是采用第三方的知識產(chǎn)權(quán)(IP),,或?qū)⑿酒纳a(chǎn)封裝承包給第三方。集成電路在設(shè)計,、制造,、測試以及封裝過程中都不完全自主可控,這為攻擊者對集成電路實施破壞或惡意修改提供了可能,。攻擊者可以插入惡意電路到芯片中,,破壞芯片功能或降低芯片可靠性,而這種惡意的變更,,稱為硬件木馬,。
近年來,國內(nèi)外科研機構(gòu)開展了很多針對硬件木馬防護的研究工作[1-2],,這些研究主要面向檢測技術(shù),,尤其是旁路信息分析技術(shù)。文獻(xiàn)[3]和[4]利用了PCA,、馬氏距離來檢測木馬,;文獻(xiàn)[5]提出了基于神經(jīng)網(wǎng)絡(luò)的硬件木馬檢測方法;文獻(xiàn)[6]和[7]分別利用了樸素貝葉斯分類器和支持向量機來檢測木馬,。
本文將結(jié)合機器學(xué)習(xí)的分類思想,,提出一種基于XGBoost(eXtreme Gradient Boosting)的硬件木馬檢測方法。將硬件木馬檢測的多維度向量數(shù)據(jù)作為訓(xùn)練集,利用監(jiān)督學(xué)習(xí)模型對其進行分類,,從而實現(xiàn)將標(biāo)準(zhǔn)芯片與被植入木馬芯片分離的目的,。
1 XGBoost算法與交叉驗證
XGboost(eXtreme Gradient Boosting)是GB(Gradient Boosting)的高效實現(xiàn)。GB是一種用于回歸和分類問題的學(xué)習(xí)模型,,該模型以弱預(yù)測模型集合的形式產(chǎn)生強預(yù)測模型,。通過每次迭代生成一棵新樹,選擇指向負(fù)梯度方向的弱預(yù)測模型,,來優(yōu)化函數(shù)空間上目標(biāo)函數(shù),。XGBoost是在GBDT算法基礎(chǔ)上進一步優(yōu)化,在基學(xué)習(xí)器損失函數(shù)采用二階泰勒展開式的形式并引入正則項,,具有不易過擬合,、靈活性高、收斂速度快,、準(zhǔn)確度高等特點,,能夠處理稀疏特征,支持多線程并行處理,。
1.1 集成樹模型
集成樹是由多個分類與回歸樹得到泛化的模型,,彌補了單棵決策樹預(yù)測性能局限性。
1.2 梯度提升
對式(2)集成樹模型中的目標(biāo)函數(shù),,采用additive training方法訓(xùn)練,,即每一次保留原來的模型不變,加入一個新的函數(shù)f到模型中,。
定義Ij={i|q(xi)=j},,將常數(shù)項移除且葉節(jié)點重新組合后目標(biāo)函數(shù)為:
1.3 S折交叉驗證(S-CV)
S折交叉驗證(Cross Validation)是用來驗證分類器性能的一種常用統(tǒng)計分析方法。首先隨機地將已給數(shù)據(jù)切分為S個互不相交的大小相同的子集,,然后利用S-1個子集的數(shù)據(jù)訓(xùn)練模型,,利用余下的子集測試模型,將這一過程對可能的S種選擇重復(fù)進行,,最后選出S次評測中平均測試誤差最小的模型,。
S-CV能從有限數(shù)據(jù)中獲取更多有效信息,一定程度上避免過擬合和欠擬合,,更好描述模型數(shù)據(jù),。在XG-Boost中,采用與scikit-learn框架相結(jié)合來作交叉驗證,。
2 硬件木馬檢測環(huán)境及流程
2.1 檢測環(huán)境
整個實驗平臺為一個內(nèi)嵌9個環(huán)形振蕩器(Ring Oscillator,,RO)的FPGA平臺。圖1為RO在木馬電路上的布局,。
木馬電路本身的存在就會對RO輸出頻率產(chǎn)生一定的影響,,不需要處于激活狀態(tài),,而且當(dāng)RO的階數(shù)n越小時,RO對木馬越敏感,,但如果階數(shù)n太小的話,,RO輸出頻率就不能被片上計數(shù)器采到,而太大的話,,硬件木馬的影響就會降低,;同樣數(shù)據(jù)采集積分時間理論上來說越長,,原始數(shù)據(jù)與木馬數(shù)據(jù)差異越大,,但實際測試中RO積分值會受溫度的影響,時間太長會造成積分值變小,、區(qū)分度減弱,。通過仿真分析,本文選用5階作為最小的RO階數(shù),,且采集時間控制在0.1 ms~0.6 ms范圍之內(nèi),。
2.2 檢測流程
基于XGBoost木馬檢測模型是利用XGBoost算法對硬件木馬檢測的多維度特征數(shù)據(jù)作分類判斷的一種監(jiān)督學(xué)習(xí)模型。圖2為XGBoost模型木馬檢測流程圖,。
3 硬件木馬檢測實驗
3.1 實驗環(huán)境
為了驗證提出的硬件木馬檢測方法,,搭建了一個內(nèi)嵌9個RO的FPGA實驗平臺。FPGA型號為Altera的EP4CE6F17C8,,基準(zhǔn)電路采用Trust-hub上的RS232的T100,、T800電路。在SMIC 130 nm工藝庫下,,Design Compiler 綜合結(jié)果見表1,。
根據(jù)圖2流程分別得到原始數(shù)據(jù)和木馬數(shù)據(jù)。統(tǒng)計不同位置RO樣本點的分布范圍,,以直觀顯示數(shù)據(jù)之間的差異,。T800電路在50 MHz下,RO為5階,,采集時間為0.1 ms下不同位置部分RO的數(shù)據(jù)對比,,如圖3所示。
從圖中可以看出:(1)不同RO受到木馬的影響是不同的,,越靠近木馬的RO受到的影響越大,。雖然原始數(shù)據(jù)與木馬數(shù)據(jù)有部分分離,但仍有部分重疊在一起,;(2)隨著FPGA工作時間增加,,RO積分值呈下降趨勢,這是因為在電路運行過程中,,會產(chǎn)生熱功耗,,會引起溫度等環(huán)境的變化,,RO積分值會受溫度的影響。
3.2 實驗結(jié)果
3.2.1 XGBoost預(yù)測結(jié)果
對RS232-T800電路,,各采集1 000組數(shù)據(jù)分別作為訓(xùn)練樣本和測試樣本,,經(jīng)過XGBoost模型訓(xùn)練,分類測試樣本準(zhǔn)確率只能達(dá)到78.80%,,分類結(jié)果如圖4所示,,相應(yīng)模型參數(shù)見表2。
3.2.2 XGBoost模型優(yōu)化結(jié)果
針對上述XGBoost模型中諸多重要參數(shù),,本文采用S-CV結(jié)合高負(fù)荷的柵格搜索(girdSearch)方法進行優(yōu)化選擇,。
實驗驗證了上述模型交叉驗證方法,根據(jù)S-CV算法選擇得到的參數(shù)見表3,。整體log損失值隨迭代次數(shù)的收斂變化如圖5所示,。
圖5中縱軸表示目標(biāo)函數(shù)損失值,橫軸表示迭代次數(shù),。從圖中可以看出,,交叉驗證參數(shù)選擇后梯度下降速度更快,且在迭代次數(shù)大于60時,,損失值穩(wěn)定范圍在0.1左右,。實驗表明,經(jīng)過交叉驗證參數(shù)選擇,,優(yōu)化了XGBoost模型,,使得準(zhǔn)確率從最初的78.80%提高到99.20%,相應(yīng)地整體logloss值從最初的0.386 303降到了0.089 183,。
3.2.3 不同特征下檢測結(jié)果
為了驗證基于XGBoost的硬件木馬檢測方法的健壯性,,作不同特征變化下分類判別實驗。表4給出了不同木馬面積和不同積分時間下的木馬檢測結(jié)果,。
從表中可總結(jié)出:(1)該方法能有效檢測出1.67%木馬占比的電路,;(2)對不同積分時間數(shù)據(jù)仍然保持較強的有效性,準(zhǔn)確率能保持在97.80%以上,。
4 與其他算法性能對比
在以往的工作中已驗證了樸素貝葉斯分類算法,、SVM和馬氏距離方法的可行性,為驗證該方法的優(yōu)越性,,下面給出XGBoost模型與部分現(xiàn)有方法的性能對比,。
4.1 與馬氏距離算法性能對比
圖6給出相同條件下,使用PCA與馬氏距離相結(jié)合方法馬氏距離分析結(jié)果,,可以看出此判別方法無法有效將基準(zhǔn)電路與木馬電路分離開來,。
表5給出了不同特征下馬氏距離的分類判別結(jié)果。對比表4可以看出,,在相同條件下,,XGBoost模型檢測木馬的性能明顯優(yōu)于馬氏距離判別法,,并且馬氏距離無法識別數(shù)據(jù)相差不大和木馬占比較小的電路。
4.2 與其他機器學(xué)習(xí)算法性能對比
在相同條件下,,經(jīng)過SCV算法優(yōu)化,,支持向量機的懲罰參數(shù)c=3.1且選擇RBF核函數(shù)的參數(shù)g=6.0時,準(zhǔn)確率最高為98.20%,,但樸素貝葉斯分類分類只能最高保持在77.40%的正確率上,。
表6、表7給出了不同特性下各算法的分類判別結(jié)果,。從表中可看出在相同條件下,,SVM性能較優(yōu)于樸素貝葉斯算法,能高準(zhǔn)確識別木馬數(shù)據(jù)和原始數(shù)據(jù),,而與表4作比較,,可看出本文所使用的XGBoost硬件木馬檢測方法能較高準(zhǔn)確率識別木馬數(shù)據(jù)和原始數(shù)據(jù),,相比兩者平均準(zhǔn)確率高出1.52%,、29.2%。
5 結(jié)論
本文提出了一種基于XGBoost的硬件木馬檢測方法,,利用S-CV與girdSearch相結(jié)合的交叉驗證方法優(yōu)化模型,。搭建FPGA實驗,驗證了該方法的有效性,,并在與傳統(tǒng)方法和其他機器學(xué)習(xí)方法比較時,,證實了該方法的優(yōu)越性,更有效地實現(xiàn)木馬檢測,。后續(xù)將提出一種工藝偏差的可信空間建模方法,,減少工藝偏差的影響。
參考文獻(xiàn)
[1] ZHANG X,,TEHRANIPOOR M.RON:an on-chip ring oscillator network for hardware Trojan detection[C].Design, Automation & Test in Europe Conference & Exhibition.IEEE,,2011:1638-1643.
[2] CHEN T,GUESTRIN C.XGBoost:a scalable tree boosting system[C].ACM SIGKDD International Conference on Knowledge Discovery and Data Mining.ACM,,2016:785-794.
[3] 趙毅強,,楊松,何家驥,,等.基于主成分分析的硬件木馬檢測方法[J].華中科技大學(xué)學(xué)報(自然科學(xué)版),,2015,43(8):66-69.
[4] 王力緯,,賈鯤鵬,,方文嘯,等.基于馬氏距離的硬件木馬檢測方法[J].微電子學(xué),,2013(6):817-820.
[5] 趙毅強,,劉沈豐,,何家驥,等.基于自組織競爭神經(jīng)網(wǎng)絡(luò)的硬件木馬檢測方法[J].華中科技大學(xué)學(xué)報(自然科學(xué)版),,2016,,44(2):51-55.
[6] 蘇靜,路文玲,,趙毅強,,等.基于支持向量機的硬件木馬檢測建模與優(yōu)化[J].信息網(wǎng)絡(luò)安全,2017(8):33-38.
[7] 王建新,,王柏人,,曲鳴,等.基于樸素貝葉斯分類器的硬件木馬檢測方法[J].計算機應(yīng)用研究,,2017,,34(10):3073-3076.
[8] LECOMTE M,F(xiàn)OURNIER J,,MAURINE P.An on-chip technique to detect hardware Trojans and assist counterfeit identification[J].IEEE Transactions on Very Large Scale Integration Systems,,2016,PP(99):3317-3330.
作者信息:
高洪波,,李 磊,,周婉婷,向祎堯
(電子科技大學(xué) 電子科學(xué)技術(shù)研究院,,四川 成都611731)