一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于级联结构特征的硬件木马检测方法与流程

2022-06-16 03:27:38 来源:中国专利 TAG:


1.本发明涉及硬件安全技术领域,更具体的是涉及基于级联结构特征的硬件木马检测方法技术领域。


背景技术:

2.近来,随着集成电路产业的全球化,硬件安全已成为一个紧迫的问题。通常,为了降低开发成本和缩短标记时间,开发者会使用第三方提供的知识产权核和eda工具。然而,第三方供应商提供的服务并不一定可靠。怀有敌意的供应商可能会将硬件木马植入在他们的ip中。硬件木马的存在会导致集成电路芯片功能错误、性能下降、泄露机密信息,甚至被损坏。硬件木马通常由触发器和有效载荷组成。当触发器被激活时,有效载荷将执行恶意功能。硬件木马为了逃避检测,一般会被设计在触发概率低节点处。这导致在电路中检测处硬件木马变得困难。
3.近年来,机器学习被大量应用在门级网表的木马检测中,其中比较常见的机器学习模型有:svm、k-means、随机森林等。虽然,机器学习的加入使得门级网表的木马检测的正确率有了很大的提升,但是传统机器学习模型的漏检率和误判率仍然很高。现有技术存在的问题及缺陷为:现有技术中硬件木马检测技术漏检率或误判率过高,即当完全检测处木马电路时,有许多正常电路会被误判;当所有正常电路都被检测为正常时,有许多木马电路会被遗漏;现有的基于神经网络的木马检测方法所需要的特征数量较大,特征提取工作也比较繁琐。
4.解决现有技术存在问题及缺陷存在一定难度,因为硬件木马电路规模极小,触发率极低,其利用触发概率小的节点逃避传统的检测方法,并且利用自己规模小的优势,隐藏在正常电路中;另外机器学习的方法对于特征的要求很高,相同的模型使用不同的特征训练,可能会有着极大的效果,特征的选取既要符合模型特点也要符合硬件木马特点。


技术实现要素:

5.本发明的目的在于:解决现有硬件木马检测技术误判率高且工作繁琐的问题。为了解决上述技术问题,本发明提供一种基于级联结构特征的硬件木马检测方法。
6.本发明为了实现上述目的具体采用以下技术方案:
7.一种基于级联结构特征的硬件木马检测方法,包括以下步骤:
8.步骤s1:从基于verilog的门级网表文件中,提取硬件木马电路的级联结构的特征向量;
9.步骤s2:构建和训练神经网络模型;
10.步骤s3:使用训练好的神经网络模型进行木马检测。
11.优选地,所述步骤s1中,提取硬件木马电路的级联结构的特征向量包括:
12.对网表的门级模块按照功能进行分类,按照分类的类型数量设置特征向量的大小;
13.通过深度优先搜索算法进行遍历获取级联结构的特征向量。
14.优选地,所述对网表的门级模块按照功能进行分类,按照分类的类型数量设置特征向量的大小,包括:
15.按照门的功能信息将门级模块进行分类,获得门级模块分类类型;
16.将所述分类进行两两组合,得到静态结构特征类型;
17.根据静态结构特征类型的数量设置特征向量的大小。
18.优选地,所述通过深度优先搜索算法进行遍历获取级联结构的特征向量的方法包括:
19.步骤s401:进行初始化,选取一个目标门,将目标门设为访问门,深度设置为初始值0;
20.步骤s402:向访问门的一个未被访问的相邻门移动,该相邻门成为新的访问门,深度加1,统计连线类型,在连线类型向量对应位置上的数量加1;
21.步骤s403:判断访问门是否有未访问的相邻门,若有则返回步骤s402;若无则判断达到最大深度,返回前一个门并将前一个门作为访问门,深度减1,然后判断访问门是否有未访问的相邻门,若有则返回步骤s402,若无则结束流程得到该目标门的特征向量。
22.优选地,所述步骤s2中,所述神经网络模型包括全连接神经网络和决策树;
23.所述全连接神经网络包括输入层、隐藏层和输出层;输入层用于将所述特征向量输入神经网络中;所述隐藏层和输出层的激活函数采用sigmoid函数,所述隐藏层和输出层用于获取并输出计算结果;
24.所述决策树用于根据所述计算结果判断门级网表是否含木马。
25.优选地,所述步骤s3中,使用训练好的神经网络模型进行木马检测包括:
26.对待处理网表进行特征提取,获取整个网表的特征向量;
27.把特征向量逐个放入训练好的神经网络模型,获得模型输出;
28.检测模型输出结果,输出结果为1则判断为含木马,输出结果为0判断为正常。
29.本发明的有益效果如下:
30.提高硬件木马检测的性能,加强集成电路芯片设计的安全性;为神经网络在硬件木马检测领域上的应用提供一种新的思路;本发明的特征提取方法非常简单,只需要最基本的深度优先搜索就可以实现,该特征向量其包含着目标门附近电路的门级连接结构特征,舍弃了门级扇入扇出的信息,但由于搜索深度小,所以其扇入扇出信息变相的包含在了特征向量当中;本发明的特征方法舍去了其他特征方法的冗余信息,使得在输入特征数据更小的情况下,得到更好的神经网络模型;本发明的特征提取方法可以对门级网表的任意门级模块进行特征提取和检测,从而能够确定木马电路在门级网表中的模块位置。
附图说明
31.图1是本发明的流程示意图;
32.图2是门级模块的符号示意图;
33.图3是实施例1的触发电路结构示意图;
34.图4是实施例1的神经网络示意图。
具体实施方式
35.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
36.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
37.实施例1
38.如图1所示,本实施例提供一种基于级联结构特征的硬件木马检测方法,包括以下步骤:
39.步骤s1:从基于verilog的门级网表文件中,提取硬件木马电路的级联结构的特征向量;
40.这一步中,可以提取门级网表局部的级联结构特征,将这些结构特征信息变成特征向量形式,便于神经网络的训练和学习。
41.步骤s2:构建和训练神经网络模型;
42.通过这一步骤,可以构建神经网络模型,再通过已知木马网表,对神经网络模型进行训练,然后确定神经网络模型中各个权重值,使得神经网络模型可以分辨硬件木马特征向量中的特点,经过训练的模型才对未知网表进行硬件木马检测。
43.步骤s3:使用训练好的神经网络模型进行木马检测。
44.在本实施例中,优选地,所述步骤s1中,提取硬件木马电路的级联结构的特征向量包括:
45.对网表的门级模块按照功能进行分类,按照分类的类型数量设置特征向量的大小;
46.通过深度优先搜索算法进行遍历获取级联结构的特征向量。
47.作为本实施例的优选方案,所述对网表的门级模块按照功能进行分类,按照分类的类型数量设置特征向量的大小,包括:
48.按照门的功能信息将门级模块进行分类,获得门级模块分类类型;
49.将所述分类进行两两组合,得到静态结构特征类型;
50.根据静态结构特征类型的数量设置特征向量的大小。
51.在本实施例中,按照门的功能信息将门级模块类型分类为14类,具体参阅表1,常用门级模块的符号表达参阅图2;
52.表1网表门级模块功能分类
[0053][0054][0055]
然后,按照以上进行分类以后再进行静态结构特征类型的表示,例如nor-nor,and-nor,and-or,也就是说静态结构特征类型为表1中的两两组合,因此静态结构特征类型共196类;
[0056]
故最后设置特征向量的大小为196,特征向量的大小代表特征向量内元素的数量。
[0057]
另外,所述通过深度优先搜索算法进行遍历获取级联结构的特征向量的方法不看:
[0058]
步骤s401:进行初始化,选取一个目标门,将目标门设为访问门,深度设置为初始值0;
[0059]
步骤s402:向访问门的一个未被访问的相邻门移动,该相邻门成为新的访问门,深度加1,统计连线类型,在连线类型向量对应位置上的数量加1;
[0060]
步骤s403:判断访问门是否有未访问的相邻门,若有则返回步骤s402;若无则判断达到最大深度,返回前一个门并将前一个门作为访问门,深度减1,然后判断访问门是否有
未访问的相邻门,若有则返回步骤s402,若无则结束流程得到该目标门的特征向量。
[0061]
以s35932-t100中的ht的触发电路为例,如图3所示。假设对网表门级模块按功能分类只分为and、nor、inv、other四种,则设置特征向量大小为16。设置深度优先搜索算法的最大深度设置为2,以电路图中的一个或非门为目标门,提取该门的特征向量,则该特征向量如表2所示。
[0062]
设单个样本的特征向量为x=[x1,x2,x3,

,xn],其中xi代表着该样本的某个特征类型所对应的数量,n代表着特征类型的数量,即特征向量大小。则表二的特征向量可以表示为x=[0,8,0,0,2,0,0,0,1,0,0,0,0,0,0,0]。
[0063]
表2特征向量
[0064]
特征类型特征向量and-and0and-nor8and-inv0and-other0nor-and2nor-nor0nor-inv0nor-othre0inv-and1inv-nor0inv-inv0inv-other0other-and0other-nor0other-inv0other-other0
[0065]
参阅图4,作为优选方案,所述步骤s2中,构建和训练神经网络模型包括:
[0066]
所述步骤s2中,所述神经网络模型包括全连接神经网络和决策树;
[0067]
所述全连接神经网络包括输入层、隐藏层和输出层;所述全连接神经网络包括输入层、隐藏层和输出层;输入层用于将所述特征向量输入神经网络中;所述隐藏层和输出层的激活函数采用sigmoid函数,所述隐藏层和输出层用于获取并输出计算结果;所述决策树用于根据所述计算结果判断门级网表是否含木马。其正向传播计算过程如下:
[0068][0069][0070]
c=(yj·
j(2)
) b
(2)
,j∈(1,2,3,

,n)
[0071]yo
=sigmoid(c)
[0072]
其中为隐藏层的权重,为隐藏层的偏置值,w
j(2)
为输出层的权重,b
(2)
为输出层的偏置值。这些值的训练通过反向传播实现。
[0073]
由于sigmoid函数为:
[0074][0075]
可知,sigmoid的输出为(0,1),所以计算结果yo的值可以当作输入样本为木马电路的概率,即yo的值越靠近为1,则该样本为木马的概率越大。
[0076]
得到概率之后需要确定一个阈值,对样本进行分类。此处使用决策树完成该工作。将yo输入到决策树中,决策树分类得到输出y。y只能等于0或1,0代表该门为正常电路;1代表该门为木马电路。
[0077]
本实施例的模型训练过程可以按照以下步骤:
[0078]
步骤一,使用已知的几个木马网表,即已知木马位置的网表,对木马网表进行特征提取获取样本,其中木马标签为1,正常标签为0,并对样本进行样本平衡处理,保证木马样本和正常样本比例近似;步骤二,使用提取的样本进行训练,使得神经网络在遇到木马样本时,可以输出接近于1的概率结果;步骤三,使用训练好的全连接层网络输出的概率结果,与先对应的标签组成新的样本,再使用新的样本对决策树进行训练,使得训练出合适的阈值,分辨木马样本和正常样本。决策树的输出为0或者1,0为正常电路,1为木马电路。
[0079]
最后,所述步骤s3中,使用训练好的神经网络模型进行木马检测可以包括:
[0080]
对待处理网表进行特征提取,获取整个网表的特征向量;
[0081]
把特征向量逐个放入训练好的神经网络模型,获得模型输出;
[0082]
检测模型输出结果,输出结果为1则判断为含木马,输出结果为0判断为正常。
[0083]
以trust-hub的基准电路为例,从trust-hub中取15个基准电路作为测试,基准电路信息如下表3所示:
[0084]
表3 trust-hub基准电路信息
[0085]
网表名称正常电路木马电路rs232-t100020213rs232-t110020412rs232-t120020214rs232-t13002049rs232-t140020213rs232-t150020214rs232-t160020212s15850-t100215527s35932-t100542615s35932-t200542216s35932-t300542636s38417-t100532912s38417-t200532915
s38417-t300532944s38584-t10064739
[0086]
使用其中14个网表作为训练训练集,1个网表作为测试集。使用真阳性率tpr和真阴性率tnr作为评估指标。tpr和tnr的计算方法如下:
[0087]
根据分类结果可分为真阴性tn、假阳性fp、假阴性fn和真阳性tp。tn为正确识别为正常电路的正常电路数。fp为误识别为木马电路的正常电路数。fn为误识别为正常电路的木马电路数。tp为正确识别的木马电路个数。而真阳性率tpr和真阴性率tnr的计算式分别为:
[0088]
tpr=tp/(tp fn);
[0089]
tnr=tn/(tn fp)。
[0090]
本实施例利用python的keras库构建模型。使用其中14个网表作为训练集,对模型进行训练。用剩下的1个网表作为测试集对训练好的模型进行测试。最终实验结果如表4所示:
[0091]
表4实验结果
[0092]
网表名称tprtnrrs232-t100010099.5rs232-t1100100100rs232-t1200100100rs232-t130010099.5rs232-t140010099.5rs232-t1500100100rs232-t160010099s15850-t10010091.1s35932-t10093.3100s35932-t20087.5100s35932-t30094.4100s38417-t10083.3100s38417-t20073.3100s38417-t30086.4100s38584-t10066.795.3平均值92.398.9
[0093]
由表4可知,本实施例的硬件木马检测方法的tpr在66.7%到100%之间,而tnr在91.1%到100%之间。其平均tpr为92.3%,而平均tnr为98.9%。在神经网络模型训练重复的前提下,本实施例有着很好的硬件木马检测能力。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献