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


2.2 检测流程
基于木马检测模型是利用算法对硬件木马检测的多维度特征数据作分类判断的一种监督学习模型 。图2为模型木马检测流程图 。

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

文章插图

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

文章插图
3 硬件木马检测实验
3.1 实验环境
为了验证提出的硬件木马检测方法 , 搭建了一个内嵌9个RO的FPGA实验平台 。FPGA型号为的 , 基准电路采用Trust-hub上的RS232的T100、T800电路 。在SMIC 130 nm工艺库下 , 综合结果见表1 。
根据图2流程分别得到原始数据和木马数据 。统计不同位置RO样本点的分布范围 , 以直观显示数据之间的差异 。T800电路在50 MHz下 , RO为5阶 , 采集时间为0.1 ms下不同位置部分RO的数据对比 , 如图3所示 。
基于XGBoost的硬件木马检测方法  木马检测正确方法

文章插图
从图中可以看出:(1)不同RO受到木马的影响是不同的 , 越靠近木马的RO受到的影响越大 。虽然原始数据与木马数据有部分分离 , 但仍有部分重叠在一起;(2)随着FPGA工作时间增加 , RO积分值呈下降趋势 , 这是因为在电路运行过程中 , 会产生热功耗 , 会引起温度等环境的变化 , RO积分值会受温度的影响 。
3.2 实验结果
3.2.1 预测结果
对RS232-T800电路 , 各采集1 000组数据分别作为训练样本和测试样本 , 经过模型训练 , 分类测试样本准确率只能达到78.80% , 分类结果如图4所示 , 相应模型参数见表2 。
基于XGBoost的硬件木马检测方法  木马检测正确方法

文章插图

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

文章插图
3.2.2 模型优化结果
针对上述模型中诸多重要参数 , 本文采用S-CV结合高负荷的栅格搜索()方法进行优化选择 。
实验验证了上述模型交叉验证方法 , 根据S-CV算法选择得到的参数见表3 。整体log损失值随迭代次数的收敛变化如图5所示 。
基于XGBoost的硬件木马检测方法  木马检测正确方法

文章插图

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

文章插图
图5中纵轴表示目标函数损失值 , 横轴表示迭代次数 。从图中可以看出 , 交叉验证参数选择后梯度下降速度更快 , 且在迭代次数大于60时 , 损失值稳定范围在0.1左右 。实验表明 , 经过交叉验证参数选择 , 优化了模型 , 使得准确率从最初的78.80%提高到99.20% , 相应地整体值从最初的0.386 303降到了0.089 183 。
3.2.3 不同特征下检测结果
为了验证基于的硬件木马检测方法的健壮性 , 作不同特征变化下分类判别实验 。表4给出了不同木马面积和不同积分时间下的木马检测结果 。
基于XGBoost的硬件木马检测方法  木马检测正确方法

文章插图
从表中可总结出:(1)该方法能有效检测出1.67%木马占比的电路;(2)对不同积分时间数据仍然保持较强的有效性 , 准确率能保持在97.80%以上 。
4 与其他算法性能对比
基于XGBoost的硬件木马检测方法  木马检测正确方法

文章插图
在以往的工作中已验证了朴素贝叶斯分类算法、SVM和马氏距离方法的可行性 , 为验证该方法的优越性 , 下面给出模型与部分现有方法的性能对比 。