基于无监督学习的硬件木马检测系统和信息数据处理方法

文档序号:27105510发布日期:2021-10-27 18:12阅读:180来源:国知局
基于无监督学习的硬件木马检测系统和信息数据处理方法

1.本发明属于硬件安全技术领域,尤其涉及一种基于无监督学习的硬件木马检测系统和信息数据处理方法。


背景技术:

2.目前,随着当今信息化社会的高速发展以及人工智能技术加速应用,人们对集成电路芯片的需求正日益剧增。但由于芯片设计制造环节过于复杂,芯片厂商无法对每个环节实现完全自主可控,这就为某些攻击者对集成电路实施恶意修改和破坏提供了可能。这种由攻击者蓄意制造并插入到芯片中,使芯片功能或性能发生改变并在某些情况特殊条件下触发的缺陷模块称为硬件木马。硬件木马会给芯片安全带来极大的潜在威胁,引起了人们对集成电路的完整性和安全性的严重担忧。
3.通常,硬件特洛伊木马不包含任何状态信息。恶意攻击者完全控制他们的硬件木马触发器,并植入了各种类型的硬件木马,这是传统的验证技术很难检测到的。此外,流通中的soc是一个由多个第三方ip核组成的复杂异构系统,由于硬件木马的小尺寸和隐蔽性,第三方ip核中的木马检测技术很难完全区分木马网络,有些木马甚至需要手动分析。一些恶意第三方供应商甚至串通联合制造硬件木马以逃避检测。因此,如何设计安全可靠的soc安全策略和木马检测技术是摆在研究人员面前的重要课题。
4.虽然现有的基于机器学习理论的方法都有较好的性能,但它们基本都属于有监督的学习方法,都有一个关键的前提,那就是大量的已知信息。此外,监督学习方法的训练过程往往很耗时,通常需要大量平衡的训练数据。而无监督学习,即异常检测模型,目的为检测出样本中行为与其他样本相差很大的异常样本,十分适合用于硬件木马检测。此外,由于用于木马检测的电路特征多为高维数据,对算法复杂度、模型训练时间以及检测精度等都有较大影响。因此,亟需一种新的硬件木马检测方法。
5.通过上述分析,现有技术存在的问题及缺陷为:
6.(1)硬件特洛伊木马不包含任何状态信息,恶意攻击者完全控制硬件木马触发器,并植入各种类型的硬件木马,这是传统的验证技术很难检测到的。
7.(2)流通中的soc是一个由多个第三方ip核组成的复杂异构系统,由于硬件木马的小尺寸和隐蔽性,第三方ip核中的木马检测技术很难完全区分木马网络,一些恶意第三方供应商甚至串通联合制造硬件木马以逃避检测。
8.(3)现有的基于机器学习理论的方法都属于有监督的学习方法,需要大量已知信息;监督学习方法的训练过程很耗时,通常需要大量平衡的训练数据。且用于木马检测的电路特征多为高维数据,对算法复杂度、模型训练时间以及检测精度等都有较大影响。
9.解决以上问题及缺陷的难度为:
10.1.基于电路特征、木马触发逻辑和负载电路功能进行分析,结合传统机器学习的电路特征,提出能有效检测出木马电路的电路特征。
11.2.结合特征分析和筛选方法,提取出能高效检测木马的最佳特征集。
12.3.对高维电路特征进行处理,在降低特征维数的同时保留绝大部分数据信息。
13.4.构建无监督学习模型,在不需要标签信息和大量平衡数据的前提下训练模型,使用训练好的模型对木马电路进行检测。
14.解决以上问题及缺陷的意义为:
15.(1)改进以往基于静态特征对硬件木马进行检测时所选取的特征,基于木马行为和电路结构提出能高效检测出硬件木马的电路特征,为后续的相关研究开创新思路。
16.(2)提供了一种分析并提取特征的方法,从大量特征中提取出对解决问题最有效的特征,为研究电路特征相关性和相似性分析的相关研究提供了参考。
17.(3)提供了一种特征降维方法,有效降低特征维数并保留99%以上的数据信息,解决了以往机器学习方法由于电路特征维度过高造成的算法复杂度高、检测时间长、检测精度不佳等问题。
18.(4)将无监督模型应用到木马检测中,该方法无需大量的标签信息和平衡的数据,解决了当前木马信息和正常电路信息严重失衡以及硬件木马检测领域标签值不易获得甚至无法获得的难题,为后续的硬件安全领域的相关研究提供了新方向。


技术实现要素:

19.针对现有技术存在的问题,本发明提供了一种基于无监督学习的硬件木马检测系统和信息数据处理方法,尤其涉及一种基于无监督学习的硬件木马检测系统和信息数据处理方法。
20.本发明是这样实现的,一种基于无监督学习的硬件木马检测系统和信息数据处理方法,所述基于无监督学习的硬件木马检测系统和信息数据处理方法,包括:
21.首先,通过分析电路结构和木马运行逻辑,结合传统机器学习的电路特征,提出木马检测需要的特征;然后,结合随机森林和平行坐标图分析特征的重要程度,对特征进行筛选,得到最佳特征集;接着,采用主成分分析pca的方法对高维数据特征进行降维;最后,采用降维后的数据训练isolation forest无监督模型,得到最佳训练模型;采用测试数据进行测试,根据测试结果计算准确度参数,评估模型。
22.进一步,所述基于无监督学习的硬件木马检测系统和信息数据处理方法包括以下步骤:
23.步骤一,从电路结构、木马触发电路和负载电路功能的角度分析硬件木马特征,结合传统机器学习的电路特征和木马结构,将木马电路触发概率低这一关键特性与电路静态特征相关联,提出木马检测所需的电路特征;
24.步骤二,对待测的门级网表进行预处理,提取出硬件木马检测需要的特征;
25.步骤三,结合随机森林、相关性矩阵和平行坐标图分析电路特征对区分木马网络和正常网络的贡献度,对特征进行筛选,选取最佳的特征集;
26.步骤四,对步骤三得到的数据集进行归一化处理;
27.步骤五,采用特征降维方法,对步骤四得到的数据集进行降维处理;
28.步骤六,构建基于无监督学习的分类器,使用降维后的数据进行训练,根据训练结果优化模型,得到最佳训练模型;
29.步骤七,采用交叉验证的方法将若干待测数据集分为训练集和测试集;
30.步骤八,将测试数据输入到训练后的模型中进行检测,根据检测结果计算tpr,tnr,precision,recall,f1

score和accuracy指标,评估模型检测能力。
31.进一步,步骤一中,所述选取的木马特征,包括:
32.①
距离线网net输入端或者输出端x级远的逻辑门的数量;

距离线网net x级远的逻辑门的扇入数量;

距离线网net输入端或者输出端x级远的触发器的数量;

距离线网net输入端或者输出端x级远的多路选择器的数量;

距离线网net输入端或者输出端最近的多路选择器的逻辑级数;

距离线网net输入端或者输出端最近的触发器的逻辑级数;

线网net输入端或者输出端含有x级环路的数量;

距离线网net最近的主输入或者主输出所在的逻辑级数;

.距离线网net输入端或者输出端x级远的常数项的数量;

.距离线网net输入端或者输出端最近的反相器的逻辑级数;距离线网net输入端x级远处相同类型逻辑门的最大数量;其中,x的值为1,2,3,4,5。
33.进一步,步骤三中,所述结合随机森林、相关性矩阵和平行坐标图方法对特征进行筛选,包括:
34.使用平行坐标图对高维数据可视化,直观看出各个特征对区分木马电路和正常电路的贡献程度。
35.随后采用随机森林和相关性矩阵的方法,得到特征重要程度的确定值和各个特征之间的相关程度,对以上三种方法的结果进行对比分析,最终选取最佳特征集,所选取的最佳特征集包括:
36.(1)距离线网net最近的主输出所在的逻辑级数;
37.(2)距离线网net最近的主输入所在的逻辑级数;
38.(3)距离线网net输出端最近的触发器的逻辑级数;
39.(4)距离线网net输出端最近的多路选择器的逻辑级数;
40.(5)距离线网net输出端5级远的基本逻辑门的数量;
41.(6)距离线网net输出端5级远的触发器的数量;
42.(7)距离线网net输出端5级远的多路选择器的数量;
43.(8)距离线网net输入端5级远的触发器的数量;
44.(9)距离线网net输入端最近的触发器的逻辑级数;
45.(10)线网net输出端含有4级环路的数量;
46.(11)线网net输入端含有5级环路的数量;
47.(12)距离线网net输入端5级远处具有相同类型逻辑门的数量;
48.(13)距离线网net输入端5级远的多路选择器的数量;
49.(14)距离线网net输出端最近的反相器的逻辑级数;
50.(15)距离线网net输入端5级远的基本逻辑门的数量。
51.进一步,步骤五中,所述采用主成分分析pca的方法进行降维,包括:
52.将每一位特征减去各自的平均值,计算协方差矩阵通过svd计算协方差矩阵的特征值与特征向量;对特征值从大到小排序,选择其中最大的k个,然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵。
53.其中,k值的选取策略为:选取不同的k值,然后用下面的式子不断计算,选取能够
满足下列式子条件的最小k值即可:
[0054][0055]
其中,t表示pca算法保留原始数据(1

t)的信息。
[0056]
进一步,步骤六中,所述构建基于无监督学习的分类器,使用降维后的数据进行训练,根据训练结果优化模型,得到最佳训练模型,包括:
[0057]
(1)根据数据分布和各算法模型的特点选取模型;
[0058]
(2)设置模型参数,并根据训练结果不断调整优化模型。
[0059]
进一步,步骤六中,选取的无监督学习模型为isolation forest模型,使用步骤五中得到的降维后的数据进行训练,并根据训练结果不断优化模型,包括:
[0060]
(1)设置污染率contamination为[0.01,0.02,0.05,0.08,0.1];
[0061]
(2)设置是否为有放回抽样bootstrap为false,设置是否继承上次训练的分类器进行下一步的训练warm_start为true;
[0062]
(3)设置集成模型中分类器的数量,即孤立森林中树的数量n_estimators为[120,130,140,150,160,170,180],设置训练每棵树时选取的特征比例max_features为[0.01,0.02,0.05,0.08,0.1],设置训练每棵树时选取的样本比例max_samples为[0.01,0.02,0.05,0.08,0.1];
[0063]
(4)设置同时运行的进程数n_jobs为4;
[0064]
(5)其他参数均选取默认值。
[0065]
使用网格搜索对(1)和(3)中的参数进行选择,选取得到最优结果的参数作为最佳模型的参数。
[0066]
进一步,步骤七中,所述交叉验证的方法为:
[0067]
假设有n个待测电路,则每次取一个待测电路为测试集,剩下n

1个待测电路为训练集,这个过程重复n次,确保所有待测电路都被训练过且都被测试过,最大限度利用数据集,使模型可以学到数据的全部信息。
[0068]
进一步,步骤八中,所述tpr,tnr,precision,recall,f1

score和accuracy指标的计算方法如下:
[0069]
tnr=tn/(tn+fp);
[0070]
tpr=tp/(tp+fn);
[0071]
precision=tp/(tp+fp);
[0072]
recall=tn/(tn+fp);
[0073]
f1

score=2*precision*recall/(precision+recall);
[0074]
accuracy=(tp+tn)/total。
[0075]
本发明的另一目的在于提供一种应用所述的基于无监督学习的硬件木马检测系统和信息数据处理方法的硬件木马检测系统,所述硬件木马检测系统包括:
[0076]
电路特征获取模块,从电路结构、木马触发电路和负载电路功能的角度分析硬件木马特征,结合传统机器学习的电路特征和木马结构,将木马电路触发概率低这一关键特性与电路静态特征相关联,提出木马检测所需的电路特征;
[0077]
木马特征提取模块,用于对待测的门级网表进行预处理,提取出硬件木马检测需要的特征;
[0078]
最佳特征集选取模块,用于结合随机森林和平行坐标图分析电路特征对区分木马网络和正常网络的贡献度,对特征进行筛选,选取最佳的特征集;
[0079]
特征集处理模块,用于对得到的特征集进行归一化处理;同时采用特征降维方法,对得到的特征集进行降维处理;
[0080]
训练模型获取模块,用于通过构建基于无监督学习的分类器,使用降维后的数据进行训练,根据训练结果优化模型,得到最佳训练模型;
[0081]
数据集分类模块,用于采用交叉验证的方法将若干待测数据集分为训练集和测试集;
[0082]
硬件木马检测模块,用于将测试数据输入到训练后的模型中进行检测,根据检测结果计算tpr,tnr,precision,recall,f1

score和accuracy指标,评估模型检测能力。
[0083]
本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述的硬件木马检测系统。
[0084]
结合上述的所有技术方案,本发明所具备的优点及积极效果为:
[0085]
本发明提供的基于无监督学习的硬件木马检测系统和信息数据处理方法,首先,通过分析电路结构和木马运行逻辑,结合传统机器学习的电路特征,提出木马检测需要的特征。然后,结合随机森林和平行坐标图分析特征的重要程度,对特征进行筛选,得到最佳特征集。接着,采用pca(主成分分析)方法对高维数据特征进行降维。最后,采用降维后的数据训练isolation forest无监督模型,得到最佳训练模型。采用测试数据进行测试,根据测试结果计算准确度等参数,评估模型。
[0086]
所达到的优点及积极效果为:
[0087]
1.改进了以往基于静态特征对硬件木马进行检测时所选取的特征,创造性地将木马触发概率低这一关键属性和电路静态特征相关联,为后续的相关研究开创了新思路。
[0088]
2.提供了一种分析并提取特征的方法,从大量特征中提取出对解决问题最有效的特征,为研究电路特征相关性和相似性分析的相关研究提供了参考。
[0089]
3.提供了一种特征降维方法,有效降低特征维数并保留99%以上的数据信息,解决了以往机器学习方法由于电路特征维度过高造成的算法复杂度高、检测时间长、检测精度不佳等问题。
[0090]
4.将无监督模型应用到木马检测中,该方法无需大量的标签信息和平衡的数据,解决了当前木马信息和正常电路信息严重失衡以及硬件木马检测领域标签值不易获得甚至无法获得的难题,为后续的硬件安全领域的相关研究提供了新方向。
[0091]
本发明提供的结合主成分分析(pca)和孤立森林(isolation forest)算法的无监督硬件木马检测方法,有效解决了硬件木马检测遇到的问题,也为硬件安全领域的相关研究提供了新方向。
附图说明
[0092]
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于
本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
[0093]
图1是本发明实施例提供的基于无监督学习的硬件木马检测系统和信息数据处理方法流程图。
[0094]
图2是本发明实施例提供的基于无监督学习的硬件木马检测系统和信息数据处理方法原理图。
[0095]
图3是本发明实施例提供的硬件木马检测系统结构框图;
[0096]
图中:1、电路特征获取模块;2、木马特征提取模块;3、最佳特征集选取模块;4、特征集处理模块;5、训练模型获取模块;6、数据集分类模块;7、硬件木马检测模块。
[0097]
图4是本发明实施例提供的随机森林分类原理图。
[0098]
图5是本发明实施例提供的相关性矩阵图。
[0099]
图6是本发明实施例提供的孤立森林算法原理图。
[0100]
图7是本发明实施例提供的一个测试电路rs232

t1200的木马电路示意图。
[0101]
图8是本发明实施例提供的一个测试电路s15850

t100的木马电路示意图。
[0102]
图9是本发明实施例提供的一个测试电路s38417

t300的木马电路示意图。
具体实施方式
[0103]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0104]
针对现有技术存在的问题,本发明提供了一种基于无监督学习的硬件木马检测系统和信息数据处理方法,下面结合附图对本发明作详细的描述。
[0105]
如图1所示,本发明实施例提供的基于无监督学习的硬件木马检测系统和信息数据处理方法包括以下步骤:
[0106]
s101,从电路结构、木马触发电路和负载电路功能的角度分析硬件木马特征,结合传统机器学习的电路特征和木马结构,将木马触发概率低这一关键属性和电路静态特征相关联,提出木马检测所需的电路特征;
[0107]
s102,对待测的门级网表进行预处理,提取出硬件木马检测需要的特征;
[0108]
s103,结合随机森林、相关性矩阵和平行坐标图分析电路特征对区分木马网络和正常网络的贡献度,对特征进行筛选,选取最佳的特征集;
[0109]
s104,对s103得到的特征集进行归一化处理;同时采用特征降维方法,对归一化后的数据集进行降维处理;
[0110]
s105,构建基于无监督学习的分类器,使用降维后的数据进行训练,根据训练结果优化模型,得到最佳训练模型;
[0111]
s106,采用交叉验证的方法将若干待测数据集分为训练集和测试集;
[0112]
s107,将测试数据输入到训练后的模型中进行检测,根据检测结果计算tpr,tnr,precision,recall,f1

score和accuracy指标,评估模型检测能力。
[0113]
本发明实施例提供的基于无监督学习的硬件木马检测系统和信息数据处理方法原理图如图2所示。
[0114]
如图3所示,本发明实施例提供的硬件木马检测系统包括:
[0115]
电路特征获取模块1,用于从电路结构、木马触发电路和负载电路功能的角度分析硬件木马特征,结合传统机器学习的电路特征和木马结构,将木马触发概率低这一关键属性和电路静态特征相关联,提出木马检测所需的电路特征;
[0116]
木马特征提取模块2,用于对待测的门级网表进行预处理,提取出硬件木马检测需要的特征;
[0117]
最佳特征集选取模块3,用于结合随机森林、相关性矩阵和平行坐标图分析电路特征对区分木马网络和正常网络的贡献度,对特征进行筛选,选取最佳的特征集;
[0118]
特征集处理模块4,用于对得到的特征集进行归一化处理;同时采用特征降维方法,对得到的特征集进行降维处理;
[0119]
训练模型获取模块5,用于通过构建基于无监督学习的分类器,使用降维后的数据进行训练,根据训练结果优化模型,得到最佳训练模型;
[0120]
数据集分类模块6,用于采用交叉验证的方法将若干待测数据集分为训练集和测试集;
[0121]
硬件木马检测模块7,用于将测试数据输入到训练后的模型中进行检测,根据检测结果计算tpr,tnr,precision,recall,f1

score和accuracy指标,评估模型检测能力。
[0122]
下面结合实施例对本发明的技术方案作进一步描述。
[0123]
实施例1
[0124]
本发明实施例提供的基于机器学习的硬件木马检测方法,包括:分析电路结构和木马运行逻辑,结合传统机器学习的电路特征,提出所需要的电路特征,并对待测电路的门级网表进行处理,提取出硬件木马检测需要的特征,结合随机森林、相关性矩阵和平行坐标图分析电路特征对区分正常电路和木马电路的贡献度,选择最佳特征集,进行归一化处理后,采用pca(主成分分析)方法对数据进行降维,使用降维后的数据训练isolation forest(孤立森林)分类器,得到最佳训练模型,将测试数据输入到训练后的模型中检测,得到测试结果,计算tpr,tnr,precision,recall,f1

score和accuracy等相关指标并绘制roc曲线来评估模型的检测能力。
[0125]
本发明提出的电路特征包括传统机器学习的特征和本发明新提出的特征。
[0126]
本发明使用的平行坐标图使用python语言进行绘制,最后一个坐标轴为标签值,1表示木马网络,0表示正常网络,其余坐标轴为特征值,用于分析各个坐标对区分木马网络和正常网络的贡献度。
[0127]
本发明采用的随机森林方法和相关性矩阵的方法使用python语言实现,随机森林可以给出各个特征重要性的确定值,相关性矩阵可以得到各个特征之间的相关程度。结合上述三种方法的结果,可以准确得出各个特征对区分木马电路和正常电路的贡献度,从而可以选取最佳的特征集。
[0128]
本发明采用特征降维方法对数据特征进行降维,减少算法计算复杂度的同时保留数据的绝大部分信息。
[0129]
本发明选取的特征降维方法为pca(主成分分析),具体步骤为:
[0130]
步骤s1:去平均值(即去中心化),即将每一位特征减去各自的平均值。
[0131]
步骤s2:计算协方差矩阵
[0132]
步骤s3:通过svd计算协方差矩阵的特征值与特征向量。
[0133]
步骤s4:对特征值从大到小排序,选择其中最大的k个。然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵。
[0134]
k值的选取策略为:选取不同的k值,然后用下面的式子不断计算,选取能够满足下列式子条件的最小k值即可。
[0135][0136]
其中,t表示pca算法保留了原始数据(1

t)的信息。例如,当t值取0.01时,代表了该pca算法保留了原始数据99%的主要信息。
[0137]
本发明使用处理好的特征训练基于无监督学习的分类器。相比于监督学习模型,无监督学习模型不需要大量的已知标签信息。此外,无监督学习方法的训练过程耗时短,且不需要大量平衡的训练数据。
[0138]
本发明选取的无监督学习模型为isolation forest(孤立森林),模型选择sklearn的isolation forest,具体设置为:设置污染率contamination为[0.01,0.02,0.05,0.08,0.1];设置是否为有放回抽样bootstrap为false,设置是否继承上次训练的分类器进行下一步的训练warm_start为true;设置集成模型中分类器的数量,即孤立森林中树的数量n_estimators为[120,130,140,150,160,170,180],设置训练每棵树时选取的特征比例max_features为[0.01,0.02,0.05,0.08,0.1],设置训练每棵树时选取的样本比例max_samples为[0.01,0.02,0.05,0.08,0.1];设置同时运行的进程数n_jobs为4;其他参数均选取默认值;使用网格搜索对(1)和(3)中的参数进行选择,选取得到最优结果的参数作为最佳模型的参数。
[0139]
实施例2
[0140]
本发明的发明目的在于针对上述背景技术中的情况,提供一种基于机器学习的硬件木马检测方法,并针对以往机器学习方法由于电路特征维度过高造成的算法复杂度高、检测时间长、检测精度不佳等问题,采用pca(主成分分析)方法进行降维,在降低特征维度的同时保留绝大部分数据信息,使用降维后的数据训练isolation forest(孤立森林)无监督模型,应用训练好的最佳模型对硬件木马进行检测与定位。
[0141]
为实现上述目的,本发明采用如下技术方案:
[0142]
步骤s1:从电路结构、木马触发电路和负载电路功能的角度分析硬件木马特征,结合传统机器学习的电路特征和木马结构,将木马触发概率低这一关键属性和电路静态特征相关联,提出木马检测所需的电路特征。
[0143]
步骤s2:对待测的门级网表进行预处理,从中提取出硬件木马检测需要的特征。
[0144]
步骤s3:结合随机森林、相关性矩阵和平行坐标图分析电路特征对区分木马网络和正常网络的贡献度,对特征进行筛选,选取最佳的特征集。
[0145]
步骤s4:对步骤s3得到的数据进行归一化处理。
[0146]
步骤s5:采用特征降维方法,对步骤s4得到的数据进行降维处理,减少算法计算复
杂度的同时保留数据的绝大部分信息。
[0147]
步骤s6:构建基于无监督学习的分类器,使用降维后的数据进行训练,根据训练结果优化模型,得到最佳训练模型。
[0148]
步骤s61:根据数据分布和各算法模型的特点选取模型。
[0149]
步骤s62:设置模型参数,并根据训练结果不断调整优化模型。
[0150]
步骤s7:采用交叉验证的方法将若干待测数据集分为训练集和测试集,这样可以最大限度地利用数据集,防止分类器未学到测试集的特征导致预测结果不完整。交叉验证的方法为:假设有n个待测电路,则每次取一个待测电路为测试集,剩下n

1个待测电路为训练集,这个过程重复n次,确保所有待测电路都被训练过且都被测试过,最大限度利用数据集,使模型可以学到数据的全部信息。
[0151]
步骤s8:将测试数据输入到训练后的模型中进行检测,根据检测结果计算tpr,tnr,precision,recall,f1

score和accuracy等指标来评估模型的检测能力。
[0152]
步骤s9:进一步地,步骤s1中,选取的木马特征为:距离线网net输入端或者输出端x级远的逻辑门的数量(x的值为1,2,3,4,5);距离线网net x级远的逻辑门的扇入数量(x的值为1,2,3,4,5);距离线网net输入端或者输出端x级远的触发器的数量(x的值为1,2,3,4,5);距离线网net输入端或者输出端x级远的多路选择器的数量(x的值为1,2,3,4,5);距离线网net输入端或者输出端最近的多路选择器的逻辑级数;距离线网net输入端或者输出端最近的触发器的逻辑级数;距离线网net输入端或者输出端最近的反相器的逻辑级数;线网net输入端或者输出端含有x级环路的数量(x的值为1,2,3,4,5);距离线网net最近的主输入或者主输出所在的逻辑级数;距离线网net输入端或者输出端x级远的常数项的数量(x的值为1,2,3,4,5);距离线网net输入端x级远处相同类型逻辑门的最大数量(x的值为1,2,3,4,5)。
[0153]
步骤s10:进一步地,步骤s5中,采用pca(主成分分析)方法进行降维,首先,将每一位特征减去各自的平均值,然后计算协方差矩阵通过svd计算协方差矩阵的特征值与特征向量。对特征值从大到小排序,选择其中最大的k个,然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵。k值的选取策略为:选取不同的k值,然后用下面的式子不断计算,选取能够满足下列式子条件的最小k值即可。
[0154][0155]
其中,t表示pca算法保留了原始数据(1

t)的信息。例如,当t值取0.01时,代表了该pca算法保留了原始数据99%的主要信息。
[0156]
步骤s11:进一步地,步骤s6中,选取的无监督学习模型为isolation forest模型,使用步骤s5中得到的降维后的数据进行训练,并根据训练结果不断优化模型。
[0157]
s111:设置污染率contamination为[0.01,0.02,0.05,0.08,0.1]。
[0158]
s112:设置是否为有放回抽样bootstrap为false,设置是否继承上次训练的分类器进行下一步的训练warm_start为true。
[0159]
s113设置集成模型中分类器的数量,即孤立森林中树的数量n_estimators为
[120,130,140,150,160,170,180],设置训练每棵树时选取的特征比例max_features为[0.01,0.02,0.05,0.08,0.1],设置训练每棵树时选取的样本比例max_samples为[0.01,0.02,0.05,0.08,0.1]。
[0160]
s114:设置同时运行的进程数n_jobs为4。
[0161]
s115:其他参数均选取默认值。
[0162]
使用网格搜索对(1)和(3)中的参数进行选择,选取得到最优结果的参数作为最佳模型的参数。
[0163]
步骤s12:进一步地,步骤s8中,tpr,tnr,precision,recall,f1

score和accuracy指标的计算方法如下:
[0164]
tnr=tn/(tn+fp),tpr=tp/(tp+fn),precision=tp/(tp+fp),recall=tn/(tn+fp),f1

score=2*precision*recall/(precision+recall),accuracy=(tp+tn)/total。
[0165]
实施例3
[0166]
参照图2,本发明实施例提供的基于无监督学习的硬件木马检测系统和信息数据处理方法,包括以下步骤:
[0167]
步骤s1:从电路结构、木马触发电路和负载电路功能的角度分析硬件木马特征,分析木马电路和正常电路的不同,将木马电路触发概率低这一特性与静态特征相关联,设计可以高效检测出硬件木马电路的电路特征。
[0168]
所选取的木马特征为:距离线网net输入端或者输出端x级远的逻辑门的数量out_logic_gate_x、in_logic_gate_x(x的值为1,2,3,4,5);距离线网net x级远的逻辑门的扇入数量fan_in_x(x的值为1,2,3,4,5);距离线网net输入端或者输出端x级远的触发器的数量in_dff_x、out_dff_x(x的值为1,2,3,4,5);距离线网net输入端或者输出端x级远的多路选择器的数量in_mux_x、out_mux_x(x的值为1,2,3,4,5);距离线网net输入端或者输出端最近的多路选择器的逻辑级数out_nearest_mux、in_nearest_mux;距离线网net输入端或者输出端最近的触发器的逻辑级数out_nearest_dff、in_nearest_dff;距离线网net输入端或者输出端最近的反相器的逻辑级数in_nearest_inv、out_nearest_inv;线网net输入端或者输出端含有x级环路的数量in_loop_x、out_loop_x(x的值为1,2,3,4,5);距离线网net最近的主输入或者主输出所在的逻辑级数nearest_pin、nearest_pout;距离线网net输入端或者输出端x级远的常数项的数量in_const_x、out_const_x(x的值为1,2,3,4,5);距离线网net输入端x级远处相同类型逻辑门的最大数量in_same_gate_x(x的值为1,2,3,4,5)。
[0169]
步骤s2:对待测的门级网表进行预处理,使用python脚本进行文本分析,从中提取出所需要的电路特征。
[0170]
步骤s3:由于电路特征涉及六十多种,特征维度很高,使用常规手段无法可视化,于是,采取平行坐标图获得正常网络和木马网络在不同电路特征上的分布情况,直观看出各个特征对区分木马电路和正常电路的贡献度;同时,采取随机森林和相关性矩阵的方法,得到各个特征重要性的确定值和各个特征之间的相关程度;结合上述三种方法的结果进行分析,对特征进行筛选,得到最佳特征集。其中,随机森林分类原理图如图4所示,相关性矩阵图如图5所示。
[0171]
如图4所示,部分特征按照特征重要性排序后如表1所示(特征重要性归一化)。
[0172]
表1特征重要性排序(归一化)
[0173]
特征重要性特征重要性nearest_pout0.043760in_same_gate_30.014762out_nearest_dff0.042356fan_in_10.014324out_logic_gate_50.042214in_mux_50.013926out_logic_gate_40.038704out_dff_30.013620out_logic_gate_10.037122out_dff_20.013165out_logic_gate_30.033397in_nearest_inv0.012988out_logic_gate_20.031972in_dff_30.012708out_dff_50.030106in_same_gate_20.012640in_logic_gate_50.027495out_mux_10.012253in_nearest_dff0.027337in_nearest_mux0.011942fan_in_50.026090in_mux_40.011192in_dff_50.025914out_loop_50.010715fan_in_40.025871in_mux_30.010151in_same_gate_50.025151out_dff_10.009487out_nearest_mux0.024698out_loop_30.009433in_logic_gate_40.023731out_const_00.007988nearest_pin0.023598in_dff_20.007923out_dff_40.022216in_mux_20.006962out_mux_50.022125out_loop_20.004094fan_in_30.022014in_dff_10.004074out_mux_40.019873in_loop_40.004018out_nearest_inv0.018421in_loop_50.003258out_mux_20.017752in_mux_10.002561fan_in_20.017723in_loop_30.002271out_mux_30.017393in_const_30.001182in_logic_gate_30.017074in_const_10.001066in_dff_40.016860in_const_20.000834in_same_gate_40.016557in_const_40.000671out_loop_40.016339in_const_50.000426in_logic_gate_20.015102in_logic_gate_10.000399
[0174]
步骤s4:结合表中的特征重要性以及木马电路的结构特征,对特征进行整合、筛选,选取最佳特征集。所选取的最佳特征集包括:
[0175]
(1)距离线网net最近的主输出所在的逻辑级数;
[0176]
(2)距离线网net最近的主输入所在的逻辑级数;
[0177]
(3)距离线网net输出端最近的触发器的逻辑级数;
[0178]
(4)距离线网net输出端最近的多路选择器的逻辑级数;
[0179]
(5)距离线网net输出端5级远的基本逻辑门的数量;
[0180]
(6)距离线网net输出端5级远的触发器的数量;
[0181]
(7)距离线网net输出端5级远的多路选择器的数量;
[0182]
(8)距离线网net输入端5级远的触发器的数量;
[0183]
(9)距离线网net输入端最近的触发器的逻辑级数;
[0184]
(10)线网net输出端含有4级环路的数量;
[0185]
(11)线网net输入端含有5级环路的数量;
[0186]
(12)距离线网net输入端5级远处具有相同类型逻辑门的数量;
[0187]
(13)距离线网net输入端5级远的多路选择器的数量;
[0188]
(14)距离线网net输出端最近的反相器的逻辑级数;
[0189]
(15)距离线网net输入端5级远的基本逻辑门的数量。
[0190]
步骤s5:对步骤s4得到的特征数据集进行归一化处理。
[0191]
归一化的公式为:其中,min为所有样本数据的最小值,max为所有样本数据的最大值。
[0192]
步骤s6:采用pca(主成分分析)方法,对步骤s5得到的数据集进行降维处理,减少算法计算复杂度的同时保留数据的绝大部分信息。
[0193]
具体步骤如下:
[0194]
步骤s61:去平均值(即去中心化),即将每一位特征减去各自的平均值。
[0195]
步骤s62:计算协方差矩阵
[0196]
步骤s63:通过svd计算协方差矩阵的特征值与特征向量。
[0197]
步骤s64:对特征值从大到小排序,选择其中最大的k个。然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵。
[0198]
k值的选取策略为:选取不同的k值,然后用下面的式子不断计算,选取能够满足下列式子条件的最小k值即可。
[0199][0200]
其中,t表示pca算法保留了原始数据(1

t)的信息。例如,当t值取0.01时,代表了该pca算法保留了原始数据99%的主要信息。
[0201]
步骤s7:构建isolation forest无监督模型,使用步骤s5中得到的降维后的数据进行训练,得到最佳训练模型。
[0202]
步骤s71:设置污染率contamination为[0.01,0.02,0.05,0.08,0.1];
[0203]
步骤s72:设置是否为有放回抽样bootstrap为false,设置是否继承上次训练的分类器进行下一步的训练warm_start为true;
[0204]
步骤s73:设置集成模型中分类器的数量,即孤立森林中树的数量n_estimators为[120,130,140,150,160,170,180],设置训练每棵树时选取的特征比例max_features为[0.01,0.02,0.05,0.08,0.1],设置训练每棵树时选取的样本比例max_samples为[0.01,0.02,0.05,0.08,0.1];
[0205]
步骤s74:设置同时运行的进程数n_jobs为4;
[0206]
步骤s75:其他参数均选取默认值。
[0207]
使用网格搜索对(1)和(3)中的参数进行选择,选取得到最优结果的参数作为最佳模型的参数。其中,孤立森林算法原理图如图6所示。
[0208]
步骤s8:采用交叉验证的方法将待测数据集分为训练集和测试集,这样可以最大限度地利用数据集,防止分类器未学到测试集的特征导致预测结果不完整。
[0209]
交叉验证的方法为:假设有n个待测电路,则每次取一个待测电路为测试集,剩下n

1个待测电路为训练集,这个过程重复n次,确保所有待测电路都被训练过且都被测试过,最大限度利用数据集,使模型可以学到数据的全部信息。
[0210]
本发明的一个测试电路rs232

t1200的木马电路如图7所示,本发明的一个测试电路s15850

t100的木马电路如图8所示,本发明的一个测试电路s38417

t300的木马电路如图9所示。
[0211]
训练中采用的电路为trusthub上的门级网表,具体如表2所示。
[0212]
表2待测电路
[0213]
电路名称正常网络数量木马网络数量rs232

t100028336rs232

t110028436rs232

t120028934rs232

t130028729rs232

t140027345rs232

t150028339rs232

t160029229s15850

t100242927s35932

t100640715s35932

t200640512s35932

t300640537s38417

t100579812s38417

t200579815s38417

t300580144s38584

t100734319s38584

t200737397s38584

t3007614874
[0214]
步骤s9:将测试数据输入到训练后的模型中进行检测,根据检测结果计算tpr,tnr,precision,recall,f1

score和accuracy等指标,并绘制roc曲线,以此评估模型的检测能力。
[0215]
tpr,tnr,precision,recall,f1

score和accuracy的计算公式为:tnr=tn/(tn+fp),tpr=tp/(tp+fn),precision=tp/(tp+fp),recall=tn/(tn+fp),f1

score=2*precision*recall/(precision+recall),accuracy=(tp+tn)/total。
[0216]
roc曲线中,fpr为横坐标,tpr为纵坐标,曲线下方的面积为auc,auc越大越好,理
想auc值为1。
[0217]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
[0218]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1