基于XGBoost的硬件木马检测方法 木马检测正确方法

随着集成电路产业的全球化生产策略和电路设计大规模化 , IC设计公司很少能从设计到制造独立完成所有的模块设计 , 更多地是采用第三方的知识产权(IP) , 或将芯片的生产封装承包给第三方 。集成电路在设计、制造、测试以及封装过程中都不完全自主可控 , 这为攻击者对集成电路实施破坏或恶意修改提供了可能 。攻击者可以插入恶意电路到芯片中 , 破坏芯片功能或降低芯片可靠性 , 而这种恶意的变更 , 称为硬件木马 。
近年来 , 国内外科研机构开展了很多针对硬件木马防护的研究工作[1-2] , 这些研究主要面向检测技术 , 尤其是旁路信息分析技术 。文献[3]和[4]利用了PCA、马氏距离来检测木马;文献[5]提出了基于神经网络的硬件木马检测方法;文献[6]和[7]分别利用了朴素贝叶斯分类器和支持向量机来检测木马 。
本文将结合机器学习的分类思想 , 提出一种基于()的硬件木马检测方法 。将硬件木马检测的多维度向量数据作为训练集 , 利用监督学习模型对其进行分类 , 从而实现将标准芯片与被植入木马芯片分离的目的 。
1 算法与交叉验证
()是GB( )的高效实现 。GB是一种用于回归和分类问题的学习模型 , 该模型以弱预测模型集合的形式产生强预测模型 。通过每次迭代生成一棵新树 , 选择指向负梯度方向的弱预测模型 , 来优化函数空间上目标函数 。是在GBDT算法基础上进一步优化 , 在基学习器损失函数采用二阶泰勒展开式的形式并引入正则项 , 具有不易过拟合、灵活性高、收敛速度快、准确度高等特点 , 能够处理稀疏特征 , 支持多线程并行处理 。
1.1 集成树模型
集成树是由多个分类与回归树得到泛化的模型 , 弥补了单棵决策树预测性能局限性 。

基于XGBoost的硬件木马检测方法  木马检测正确方法

文章插图
1.2 梯度提升
对式(2)集成树模型中的目标函数 , 采用 方法训练 , 即每一次保留原来的模型不变 , 加入一个新的函数f到模型中 。
基于XGBoost的硬件木马检测方法  木马检测正确方法

文章插图
定义Ij={i|q(xi)=j} , 将常数项移除且叶节点重新组合后目标函数为:
基于XGBoost的硬件木马检测方法  木马检测正确方法

文章插图
1.3 S折交叉验证(S-CV)
S折交叉验证(Cross )是用来验证分类器性能的一种常用统计分析方法 。首先随机地将已给数据切分为S个互不相交的大小相同的子集 , 然后利用S-1个子集的数据训练模型 , 利用余下的子集测试模型 , 将这一过程对可能的S种选择重复进行 , 最后选出S次评测中平均测试误差最小的模型 。
S-CV能从有限数据中获取更多有效信息 , 一定程度上避免过拟合和欠拟合 , 更好描述模型数据 。在XG-Boost中 , 采用与-learn框架相结合来作交叉验证 。
2 硬件木马检测环境及流程
2.1 检测环境
整个实验平台为一个内嵌9个环形振荡器(Ring  , RO)的FPGA平台 。图1为RO在木马电路上的布局 。
基于XGBoost的硬件木马检测方法  木马检测正确方法

文章插图
木马电路本身的存在就会对RO输出频率产生一定的影响 , 不需要处于激活状态 , 而且当RO的阶数n越小时 , RO对木马越敏感 , 但如果阶数n太小的话 , RO输出频率就不能被片上计数器采到 , 而太大的话 , 硬件木马的影响就会降低;同样数据采集积分时间理论上来说越长 , 原始数据与木马数据差异越大 , 但实际测试中RO积分值会受温度的影响 , 时间太长会造成积分值变小、区分度减弱 。通过仿真分析 , 本文选用5阶作为最小的RO阶数 , 且采集时间控制在0.1 ms~0.6 ms范围之内 。