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

基于结构特征筛选及负载扩展的机器学习木马检测方法与流程

2021-11-09 22:47:00 来源:中国专利 TAG:


1.本发明属于硬件安全技术领域,尤其涉及一种基于结构特征筛选及负载扩展的机器学习木马检测方法。


背景技术:

2.目前,硬件木马是某些攻击者在芯片制造时故意插入在正常电路中的额外电路,用于秘密泄露信息、增加电路功耗、干扰或破坏电路正常功能。此外,木马电路的隐蔽性极高,仅在罕见条件下触发,这使得硬件木马检测比较困难。现有的木马检测多使用机器学习的方法进行分析,并具有较好的性能。但其缺陷也比较明显:一是相比正常电路,木马节点的数量很少,因此训练时数据不平衡的问题尤其严重;二是现有的方法多数是从木马电路的罕见性分析寻找其触发电路,但对功能特异、结构和正常电路相差无几的木马载荷电路束手无策。这些均对硬件木马检测的准确度有较大的影响。因此,亟需一种新的硬件木马检测和优化方法,以弥补现有技术的缺陷。
3.通过上述分析,现有技术存在的问题及缺陷为:
4.(1)现有的木马检测多使用机器学习的方法进行分析,但其相比正常电路,木马节点的数量很少,因此训练时数据不平衡的问题尤其严重。
5.(2)现有的方法多数是从木马电路的罕见性分析寻找其触发电路,但对功能特异、结构和正常电路相差无几的木马载荷电路束手无策。
6.(3)现有木马检测方法的缺陷均对硬件木马检测的准确度有较大的影响。
7.解决以上问题及缺陷的难度为:
8.(1)木马节点的数量通常远少于正常节点的数量,直接使用全节点训练会导致严重的数据不平衡;为解决此问题,通常采用的方法是过采样或欠采样。前者重复采样正例数据,即对木马节点单纯进行多次重复采样,但过分强调已有的正例,容易导致正例中噪声或错误被成倍放大;后者抛弃大部分反例数据,即删去大量非木马节点,但被抛弃的数据选择不当会使得生成模型的偏差很大,如何选择抛弃的节点比较困难。
9.(2)木马电路可分为触发电路和负载电路,触发电路的特点比较明确,一般的木马检测方法都可以检测到触发电路;而负载电路的功能各不相同,目前已有信息泄露型、增加功耗型、破坏功能型等等,其电路结构也有很大差异,这对于木马检测而言是一个很大的挑战。
10.解决以上问题及缺陷的意义为:
11.(1)在数据集的平衡上,本发明结合木马电路的结构特征对数据集进行筛选,保留了木马电路(尤其是木马触发结构)和与其结构相似、距离相近的正常节点作为最终的数据集。这样即筛选掉了大部分无关的正常节点,也保证了那些结构特殊的、容易被误判的节点都被保留下来用于训练模型,这比单纯重复木马节点过采样或随机删除正常节点欠采样更加合理。
12.(2)在负载电路的识别上,本发明结合木马负载低扇出的特点提出了后向扩展的
方法,有效提升了木马检测算法对木马负载的识别能力。而为防止过度扩展导致检测的准确度下降,本发明提出以双阈值限制搜索级数从而精确搜寻木马负载电路,这使得木马检测算法的木马识别能力得到有效提升。


技术实现要素:

13.针对现有技术存在的问题,本发明提供了一种基于结构特征筛选及负载扩展的机器学习木马检测方法,尤其涉及一种基于网表级的硬件木马检测框架和优化方法。
14.本发明是这样实现的,基于结构特征筛选及负载扩展的机器学习木马检测方法,所述基于结构特征筛选及负载扩展的机器学习木马检测方法包括:
15.首先将电路的网表转化为可以量化的数学模型,并基于此模型通过数学方法进行特征提取;之后结合硬件木马触发结构特点,筛选节点得到更为平衡的数据集,再结合机器学习分类方法进行木马检测;最后根据硬件木马载荷结构特点,对木马节点进行后向拓展,从而得到完备的硬件木马电路。
16.进一步,所述基于结构特征筛选及负载扩展的机器学习木马检测方法包括以下步骤:
17.步骤一,分析电路结构和木马电路运行逻辑,结合传统机器学习的电路特征,提出木马检测需要的特征,并从预处理后的网表中获取每个节点的特征;
18.步骤二,以电路中各节点为起点建立n级子图,统计各个子图中的低概率级联结构,筛选出低危险度子图和正常子图;
19.步骤三,以低危险度子图节点的特征作为数据集进行训练,得到训练模型;采用测试数据进行测试,获取高危险度节点;
20.步骤四,对高危险度节点进行拓展,获取完整木马结构;根据测试结果计算准确度参数,评估测试结果。
21.进一步,各个步骤在本方案中起到的积极作用在于:
22.步骤一是木马检测的基础,将电路网表转化为数学模型;将电路中的各个器件转化为数学节点,再结合电路特征,将每个节点的结构属性转化为可以量化的特征向量,从而进行后续操作。
23.步骤二是对机器学习数据集的优化,筛选掉了大部分无关的正常节点,保留了木马节点和与其结构相似、距离相近的正常节点,平衡了数据集,优化了训练模型,提升了机器学习的精确度。
24.步骤三是实现木马检测的具体方式,通过机器学习对已有的数据集进行训练,得到可靠的模型用于后续检测。本发明主要是对木马检测框架的优化,对于具体使用的机器学习算法不做要求。
25.步骤四是对测试结果的优化,本发明在设置阈值的前提下进行后向扩展,从而获取完整木马结构,提升木马检测算法的木马识别能力。
26.进一步,步骤二中,所述统计各个子图中的低概率级联结构,包括:
27.(1)木马电路的触发条件十分苛刻,从电路角度即门的翻转概率很低。因此从电路结构和门器件功能的角度出发,提出电路中输出为0或输出为1概率很低的门器件二级级联结构;
28.(2)对步骤(1)中的二级级联结构进行扩展,提出加入非门或触发器作为中间级的低概率级联结构;
29.(3)统计待评测子图中与步骤(1)、步骤(2)提出结构相同的部分,相同结构数量大于阈值t0则认定带评测子图为低危险度子图;反之则为正常子图;
30.(4)提取步骤(3)得到的所有低危险度子图的节点,去重后将提取节点的特征值作为数据集进行后续训练。
31.进一步,步骤二中,所述低概率级联结构,包括:
32.二级低0概率级联结构:

或门连接或门;

与非门连接与非门;

或门连接与非门;

与非门连接或门;
33.二级低1概率级联结构:

与门连接与门;

或非门连接或非门;

与门连接或非门;

或非门连接与门;
34.在所述8种二级结构的基础上,加入非门和触发器的多级低概率级联结构,分为两种:
35.在原结构中插入奇数个非门:

与非门连接奇数个非门,再连接与门;

与非门连接奇数个非门,在连接或非门;

或非门连接奇数个非门,再连接或门;

或非门连接奇数个非门,再连接与非门。
36.在原结构中插入偶数个非门或若干个触发器:包括二级低概率级联结构中的所有结构;其中,所有的级联结构必须以与门、或门、与非门、或非门中的门作为开始节点和结束节点。
37.进一步,步骤三中,使用机器学习的方式进行训练和测试时,训练集和测试集都是经过筛选后的低危险度节点,对于具体使用的机器学习方法则没有要求;将机器学习得到的测试结果认定为高危险度的木马节点,用于后续拓展补全木马结构。
38.进一步,步骤四中,所述对高危险度节点进行拓展,包括:
39.从木马电路的功能角度出发,木马节点对于电路的影响是隐蔽的,即木马节点的扇出很小,只会影响极少数的节点;对高危险度节点进行后续拓展时,查询每个高危险性节点的后续节点,将扇出值小于阈值t1的后续节点加入到木马节点中,并对这些节点继续进行后向拓展;如果查询的后续节点扇出值大于等于阈值t1,则认定其为正常节点,不再拓展;当该高危险性节点的所有后向节点均拓展至正常节点时,则结束本次拓展。
40.根据电路结构,对机器学习后筛选出的每一个高危险度节点均进行进行后向拓展;设置总拓展阈值t2,对于每一次拓展,均根据单个后向节点的扇出阈值t2和所有后向节点的总扇出阈值t3限制拓展节点数量;在对一个高危险度节点的拓展中,每发现一个新的后向木马节点,则将该后向木马的扇出进行累加,当累加值大于等于总拓展阈值t2时,则结束本次拓展。
41.进一步,所述基于结构特征筛选及负载扩展的机器学习木马检测方法,还包括:
42.(1)对待测的门级网表进行预处理,将网表中verilog代码各模块进行合并,整合为统一的模块;对代码进行进一步的节点划分,并将各节点的关系进行量化转化为图;
43.(2)对步骤(1)中提取的节点进行特征提取,提取每个节点的信号特征和内部结构特征,并将其量化成向量形式;
44.(3)对步骤(1)中提取的节点进行子图生成,以每个节点为起点,向前搜寻n级,生
成子图;
45.(4)对步骤(3)中生成的子图进行危险性判断,统计低概率级联结构的数量,数量超过阈值t1则认定其为低危险性子图,否则认定为正常子图;提取所有低危险性子图的节点并进行去重,认定这些节点为低危险性节点;
46.(5)根据步骤(4)中的低危险性节点,获取步骤(2)中这些节点对应的特征向量作为特征集;以该特征集作为数据集,将其送入分类器中进行训练;根据训练结果优化模型,得到最佳训练模型;
47.(6)采用交叉验证的方式将多个待测数据集分为训练集和测试集;将测试数据输入到训练后的模型进行检测,根据检测结果得到每个网表的高危险度木马节点;
48.(7)根据步骤(1)中网表转化的图,对步骤(6)获取的高危险度木马节点进行后向拓展,获取完整的木马电路;根据检测结果计算tpr、tnr指标,评估检测能力。
49.其中,步骤(1)中,对待测的门级网表进行预处理时,使用脚本遍历网表中的所有门和触发器将其视为节点,并获取每一个节点的基础信息,并以此为基础建立图;其中,所述基础信息包括节点名、节点类型、节点功能、输入输出线网和前向后向节点。
50.步骤(2)中,对提取节点进行特征分析时,使用传统的木马特征;其中,所述传统的木马特征包括逻辑门的扇入数量、多路复用器、触发器、输入输出的距离以及环形结构。
51.本发明的另一目的在于提供一种应用所述的基于结构特征筛选及负载扩展的机器学习木马检测方法的硬件木马检测和优化系统,所述硬件木马检测和优化系统包括:
52.预处理模块,用于规范待测门级网表结构,将其转化为图的形式;
53.特征提取模块,用于从总图中提取每个节点的所需特征;
54.子图提取模块,以网表中每个节点为起点,从总图中提取n级子图;
55.子图筛选模块,用于统计每个子图低概率级联结构的数量,判断子图是否为低危险性子图,提取所有低危险性子图的节点并进行去重;
56.机器学习模块,以筛选后的低危险性节点作为数据集进行训练和测试,测试结果中的木马节点认定为高危险度节点,不限定具体使用的机器学习方法;
57.负载拓展模块,用于按照所设规则拓展高危险度节点的后向节点,从而识别出难以被传统硬件木马检测方法发现的、功能各异的木马载荷电路节点,并根据拓展后的结果计算tpr、tnr指标,评估检测结果。
58.本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
59.首先将电路的网表转化为可以量化的数学模型,并基于此模型通过数学方法进行特征提取;之后结合硬件木马触发结构特点,筛选节点得到更为平衡的数据集,再结合机器学习分类方法进行木马检测;最后根据硬件木马载荷结构特点,对木马节点进行后向拓展,从而得到完备的硬件木马电路。
60.本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述的硬件木马检测和优化系统。
61.结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明提供的基于结构特征筛选及负载扩展的机器学习木马检测方法,通过分析电路结构和木马电路运行
逻辑,提出木马检测需要的特征;将网表划分成若干子图,结合木马电路低触发概率的特点和电路中特殊的级联结构,对子图进行危险程度判断,筛选低危险度木马节点;采用筛选后节点对应的特征向量作为数据集进行训练,得到训练模型;采用测试数据进行测试,获取高危险度木马节点;结合木马载荷的结构特点,对高危险度木马节点进行后向拓展,得到整体木马结构;根据测试结果计算准确度等参数,评估检测效果。本发明在传统的机器学习检测网表木马方法的基础上额外进行了一次筛选和一次拓展,筛选有助于平衡训练时的数据集,优化模型并减少训练时间;拓展用于检测传统检测方法中难以发现的木马载荷电路,进一步提升了检测的准确性。本发明不限制所采用的的机器学习的具体方法,对于各种检测方式的性能均有一定的提升。
62.本发明创造性地将木马低触发概率的结构特征和机器学习使用的电路静态特征相结合,对机器学习的数据集进行初步筛选,平衡其训练用的数据集,有效提升了机器学习的效率和精确度,为后续相关研究提供了新思路。本发明不受限于某种特定的木马检测方法,对于大多数硬件木马检测方法的检测效果均有一定的提升,具有很强的适用性。
63.本发明提供了一种完整木马电路、检测木马载荷的方法,该方法根据木马节点的低扇出特性,能够检测出常规方法难以检测到的木马载荷电路,并能对机器学习检测到的触发电路进行一定的补全,有效提升了对木马电路识别度,为为后续的硬件安全领域的相关研究提供了新方向。
附图说明
64.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
65.图1是本发明实施例提供的基于结构特征筛选及负载扩展的机器学习木马检测方法流程图。
66.图2是本发明实施例提供的基于结构特征筛选及负载扩展的机器学习木马检测方法原理图。
67.图3是本发明实施例提供的硬件木马检测和优化系统结构框图;
68.图中:1、预处理模块;2、特征提取模块;3、子图提取模块;4、子图筛选模块;5、机器学习模块;6、负载拓展模块。
69.图4是本发明实施例提供的对正常子图和木马子图进行危险性检测示意图。
70.图4(a)是本发明实施例提供的正常电路示意图。
71.图4(b)是本发明实施例提供的低概率级联结构数为1的示意图。
72.图4(c)是本发明实施例提供的木马电路示意图。
73.图4(d)是本发明实施例提供的低概率级联结构数为6的示意图。
74.图5是本发明实施例提供的测试电路s38417

t300的木马电路示意图。
75.图6是本发明实施例提供的对木马节点进行后向拓展的示意图。
具体实施方式
76.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
77.针对现有技术存在的问题,本发明提供了一种基于结构特征筛选及负载扩展的机器学习木马检测方法,下面结合附图对本发明作详细的描述。
78.如图1所示,本发明实施例提供的基于结构特征筛选及负载扩展的机器学习木马检测方法包括以下步骤:
79.s101,分析电路结构和木马电路运行逻辑,结合传统机器学习的电路特征,提出木马检测需要的特征,并从预处理后的网表中获取每个节点的特征;
80.s102,以电路中各节点为起点建立n级子图,统计各个子图中的低概率级联结构,筛选出低危险度子图和正常子图;
81.s103,以低危险度子图节点的特征作为数据集进行训练,得到训练模型;采用测试数据进行测试,获取高危险度节点;
82.s104,对高危险度节点进行拓展,获取完整木马结构;根据测试结果计算准确度参数,评估测试结果。
83.本发明实施例提供的基于结构特征筛选及负载扩展的机器学习木马检测方法原理图如图2所示。
84.如图3所示,本发明实施例提供的硬件木马检测和优化系统包括:
85.预处理模块1,用于规范待测门级网表结构,将其转化为图的形式;
86.特征提取模块2,用于从总图中提取每个节点的所需特征;
87.子图提取模块3,以网表中每个节点为起点,从总图中提取n级子图;
88.子图筛选模块4,用于统计每个子图低概率级联结构的数量,判断子图是否为低危险性子图,提取所有低危险性子图的节点并进行去重;
89.机器学习模块5,以筛选后的低危险性节点作为数据集进行训练和测试,测试结果中的木马节点认定为高危险度节点,不限定具体使用的机器学习方法;
90.负载拓展模块6,用于按照所设规则拓展高危险度节点的后向节点,从而识别出难以被传统硬件木马检测方法发现的、功能各异的木马载荷电路节点,并根据拓展后的结果计算tpr、tnr指标,评估检测结果。
91.下面结合实施例对本发明的技术方案作进一步描述。
92.实施例1
93.本发明提供了一种基于网表级硬件木马检测的框架和优化方法。本发明实现思路如下:首先将电路的网表转化为可以量化的数学模型,并基于此模型通过数学方法进行特征提取。之后结合硬件木马触发结构特点,筛选节点得到更为平衡的数据集,再结合机器学习分类方法进行木马检测。最后根据硬件木马载荷结构特点,对木马节点进行后向拓展,从而得到完备的硬件木马电路。
94.本发明的实现采用了如下技术方案:
95.一种基于网表级硬件木马检测的框架和优化方法,包括如下步骤:
96.步骤s1:对待测的门级网表进行预处理,将网表中verilog代码各模块进行合并,
整合为统一的模块。对代码进行进一步的节点划分,并将各节点的关系进行量化转化为图,便于后续分析;
97.步骤s2:对步骤s1中提取的节点进行特征提取,提取每个节点的信号特征和内部结构特征,并将其量化成向量形式;
98.步骤s3:对步骤s1中提取的节点进行子图生成,以每个节点为起点,向前搜寻n级,生成子图;
99.步骤s4:对步骤s3中生成的子图进行危险性判断,统计其低概率级联结构的数量,数量超过阈值t1则认定其为低危险性子图,否则认定为正常子图;提取所有低危险性子图的节点并进行去重,认定这些节点为低危险性节点;
100.步骤s5:根据步骤s4中的低危险性节点,获取步骤s2中这些节点对应的特征向量作为特征集;以该特征集作为数据集,将其送入分类器中进行训练;根据训练结果优化模型,得到最佳训练模型;
101.步骤s6:采用交叉验证的方式将多个待测数据集分为训练集和测试集;将测试数据输入到训练后的模型进行检测,根据检测结果得到每个网表的高危险度木马节点;
102.步骤s7:根据步骤s1中网表转化的图,对步骤s6获取的高危险度木马节点进行后向拓展,获取完整的木马电路;根据检测结果计算tpr、tnr指标,评估检测能力。
103.进一步地,步骤s1对网表进行预处理时,使用脚本遍历网表中的所有门和触发器将其视为节点,并获取每一个节点的基础信息,如节点名、节点类型、节点功能、输入输出线网、前向后向节点等,并以此为基础建立图,以便于后续分析。
104.进一步地,步骤s2中对提取节点进行特征分析时,本发明使用的是传统的木马特征,传统的木马特征为逻辑门的扇入数量、多路复用器、触发器、输入输出的距离、环形结构。这一步选取的特征并不做具体限制,也可以根据实际使用时的效果进行特征的增减修改。
105.进一步地,步骤s3中对节点进行子图生成时,为统一生成子图的标准,本发明从所选节点出发,查询该节点n级内的所有前向节点;若该节点或其某个前向节点为网表的总输入节点,则停止该支路的查询。此外,n的值和木马触发电路的大小有关。
106.进一步地,步骤s4中对子图进行低概率级联结构统计时,所选定的低概率级联结构包括:
107.二级低0概率级联结构:

或门连接或门;

与非门连接与非门;

或门连接与非门;

与非门连接或门;
108.二级低1概率级联结构:

与门连接与门;

或非门连接或非门;

与门连接或非门;

或非门连接与门;
109.为了避免非门和触发器切断低概率级联结构而导致其无法被发现,因此在上述8种二级结构的基础上,本发明提出了加入非门和触发器的多级低概率级联结构,具体分为两种:
110.在原结构中插入奇数个非门:

与非门连接奇数个非门,再连接与门;

与非门连接奇数个非门,在连接或非门;

或非门连接奇数个非门,再连接或门;

或非门连接奇数个非门,再连接与非门。
111.在原结构中插入偶数个非门或若干个触发器:包括二级低概率级联结构中的所有
结构,此处不再赘述。
112.为了防止统计时重复计数,所有的级联结构必须以与门、或门、与非门、或非门中的门作为开始节点和结束节点。
113.进一步地,在步骤s6中,根据测试结果提取高危险度木马节点时,需要限制提取出的节点数量,防止大量正确节点被误判而对后续步骤产生干扰。
114.进一步地,在步骤s7中,对高危险度节点进行后续拓展时,由于木马节点影响的后续节点数量有限,即木马节点的扇出较小,因此查询每个高危险性节点的后续节点,将扇出值小于阈值t1的后续节点加入到木马节点中,并对这些节点继续进行后向拓展;如果查询的后续节点扇出值大于等于阈值t1,则认定其为正常节点,不再拓展;当该高危险性节点的所有后向节点均拓展至正常节点时,则结束本次拓展。此外,为了防止拓展级数过长或因为环路而陷入死循环,本发明设置了总拓展阈值t2;在对一个高危险度节点的拓展中,每发现一个新的后向木马节点,则将该后向木马的扇出进行累加,当累加值大于等于总拓展阈值t2时,则结束本次拓展。
115.实施例2
116.如图2所示,本发明实施例提供的基于网表级基于结构特征筛选及负载扩展的机器学习木马检测方法包括以下步骤:
117.步骤s1:对待测的门级网表进行预处理,具体操作如下:
118.s11:对于给定的门级网表,先将网表中所有的模块整合为一个主模块,并保留其连线关系;为防止不同模块中信号名和器件名重复,子模块中的信号名和器件名加上子模块名作为前缀。
119.s12:遍历整个门级电路,提取网表中所有器件的器件名,以每一个器件作为独立节点,获取每一个节点的种类(inv、nor、and、or、nand、aoi、oai、dff、其他),获取每一个节点的输入输出关系(哪些信号为输入、哪些信号为输出),获取每一个节点的扇入扇出关系(前向的器件有哪些、后向的器件有哪些),根据电路的外部输入、外部输出和内部器件的连接关系,将门级电路转换为图。
120.步骤s2:对步骤s1中提取的节点进行特征提取,具体操作如下:
121.s21:选择合适的木马电路特征,在本实例中使用的是以下15组木马特征,具体包括:
122.(1)距离node最近的主输出所在的逻辑级数;
123.(2)距离node最近的主输入所在的逻辑级数;
124.(3)距离node输出端最近的触发器的逻辑级数;
125.(4)距离node输出端最近的多路选择器的逻辑级数;
126.(5)距离node输出端5级远的基本逻辑门的数量;
127.(6)距离node输出端5级远的触发器的数量;
128.(7)距离node输出端5级远的多路选择器的数量;
129.(8)距离node输入端5级远的触发器的数量;
130.(9)距离node输入端最近的触发器的逻辑级数;
131.(10)node输出端含有4级环路的数量;
132.(11)node输入端含有5级环路的数量;
133.(12)距离node输入端5级远处具有相同类型逻辑门的数量;
134.(13)距离node输入端5级远的多路选择器的数量;
135.(14)距离node输出端最近的反相器的逻辑级数;
136.(15)距离node输入端5级远的基本逻辑门的数量。
137.s22:遍历生成图的所有节点,计算每一个节点的上述特征值,获取每个节点的特征向量。
138.步骤s3:对步骤s1中提取的节点进行子图生成,具体操作如下:
139.s31:设定子图的级数n。从一个节点出发,将其设定为第1级节点;根据步骤s1中提取的前向节点信息,获取第2级节点;再对第2级的所有节点进行遍历,以此查询其前向节点,将其设定为第3级节点;重复上述步骤,直至查询至第n级。
140.n值决定了子图的大小,n过小会导致子图危险性判断时所设置的阈值t0过小,干扰正常判断;n过大会导致判断的数据量过大,增加处理时间。
141.s32:遍历所有节点,均进行s301的操作,获取所有节点的子图。
142.步骤s4:对步骤s3中生成的子图进行危险性判断,具体操作如下:
143.s41:设定低触发级联结构,先从二级低触发级联结构出发,本实例中设定8种低触发级联结构,如表1所示。
144.表1二级低触发级联结构
145.低0概率级联结构低1概率级联结构or
‑‑
ornor
‑‑
nornand
‑‑
nandand
‑‑
andor
‑‑
nandnor
‑‑
andnand
‑‑
orand
‑‑
nor
146.s42:为了避免非门和触发器切断低概率级联结构而导致其无法被发现,因此在上述8种二级结构的基础上,本实例提出了加入非门和触发器的多级低概率级联结构,如表2所示。
147.表2多级低触发级联结构
148.原级联结构加入奇数非门的级联结构加入触发器或偶数非门的级联结构or
‑‑
ornand
‑‑
inv
‑‑
andor
‑‑
ff/inv
‑‑
ornand
‑‑
nandnand
‑‑
inv
‑‑
nornand
‑‑
ff/inv
‑‑
nandor
‑‑
nandnor
‑‑
inv
‑‑
oror
‑‑
ff/inv
‑‑
nandnand
‑‑
ornor
‑‑
inv
‑‑
nandnand
‑‑
ff/inv
‑‑
ornor
‑‑
nor nor
‑‑
ff/inv
‑‑
norand
‑‑
and and
‑‑
ff/inv
‑‑
andnor
‑‑
and nor
‑‑
ff/inv
‑‑
andand
‑‑
nor and
‑‑
ffinv
‑‑
nor
149.s43:对于获取的子图,统计其符合上述结构的数量。如果数量大于设定的阈值t0,则认定其具有低危险性,否则认定其为正常子图。图4为对正常子图和木马子图进行危险性检测的示意图,虚线部分为定义的低概率级联结构。显然木马子图更容易具有这种结构。
150.s44:遍历所有子图,均进行s43的操作,获取所有的低危险度子图,并提取这些子
图的节点,去重后认定其为低危险度节点。本实例中采用的电路为trusthub上的门级网表,子图级数n为5,阈值t0设定为6,原网表节点数和筛选后节点数如表3所示。
151.表3测试电路筛选前后节点对比
152.电路名称节点总数木马节点数量筛选后节点总数筛选后木马节点数rs232

t10002151310813rs232

t11002161210012rs232

t12002161410514rs232

t130021391019rs232

t14002151311013rs232

t15002161410914rs232

t1600214129410s15850

t100218226120024s35932

t1005441144512s35932

t2005436126412s35932

t3005462365418s38417

t100534112168712s38417

t200534415166115s38417

t300537344167814s38584

t1006482916799
153.如表3所示,在进行筛选后,平均节点总数降低至筛选前的20.6%,即使对于那些筛选效果较差的网表,也有约50%筛选效果。平均木马节点数为筛选前的77.6%,但对于上述网表中的绝大部分,木马节点的保留率都达到90%以上。
154.由于负载功能结构各异,步骤s4对于很长的环形负载的检测能力有限,图5为网表s38417

t300的木马结构图,可以看到,因为其负载的特殊结构,导致筛选后木马的保留率较低。但在后续步骤s7中,将会对木马节点拓展,获取到整个木马结构。
155.步骤s5:根据步骤s4中的低危险性节点,获取步骤s2中这些节点对应的特征向量作为特征集;以该特征集作为数据集,将其送入分类器中进行训练;根据训练结果优化模型,得到最佳训练模型。本实例中使用的是基于深度神经网络的机器学习方法。
156.步骤s6:采用交叉验证的方式将多个待测数据集分为训练集和测试集;将测试数据输入到训练后的模型进行检测,根据检测结果得到每个网表的高危险度木马节点。本实例中使用的是交叉验证的方式,假设有n个待测电路,则每次取一个待测电路为测试集,剩下n

1个待测电路为训练集,这个过程重复n次,确保所有待测电路都被训练过且都被测试过,最大限度利用数据集,使模型可以学到数据的全部信息。在本实例中,机器学习的结果如表4所示。
157.表4机器学习测试结果
158.nametprtnrnametprtnrrs232

t10000.920.93s15850

t1000.810.96rs232

t110010.93s35932

t10010.99rs232

t12000.930.92s35932

t2000.920.99
rs232

t130010.93s35932

t3000.440.99rs232

t140010.92s38417

t1000.670.98rs232

t150010.92s38417

t20010.97rs232

t16000.830.93s38417

t3000.210.98
ꢀꢀꢀ
s38584

t1000.780.85
159.步骤s7:对高危险度木马节点进行后向拓展,并计算tpr、tnr指标,评估检测能力。具体操作如下:
160.s71:选择一个高危险度木马节点,根据步骤s1中提取的后向节点信息计算其扇出,如果大于设定阈值t1,则停止拓展;否则将该节点的扇出值设置为当前总扇出,并将其直接连接的后向节点均认定为木马节点。
161.s72:判断s71中的新增的所有木马节点,依次查找其扇出值,如果大于设定阈值t1,则停止拓展;否则将该节点的扇出值累加在当前总扇出上,并将其直接连接的后向节点均认定为木马节点。重复此操作,直至该高危险度木马节点的所有后向节点均无法继续拓展,或当前总扇出值大于设定的阈值t2,则停止对该节点的拓展。
162.s73:遍历所有高危险度节点,重复s71、s72的操作,获取所有的木马节点,得到完整的木马结构。如图6所示,虚线部分为拓展出的木马负载电路,其电路结构为环,功能为增加电路功耗。
163.s74:根据最终的测试结果,计算每个网表识别结果的tpr和tnr,评估该方法的检测能力。对于本实例中采用的门级网表,其测试结果如表5所示。
164.表5木马拓展后测试结果
165.nametprtnrnametprtnrrs232

t100010.92s15850

t1000.920.91rs232

t110010.92s35932

t10010.98rs232

t12000.930.91s35932

t2000.920.98rs232

t130010.92s35932

t3000.970.98rs232

t140010.90s38417

t1000.670.95rs232

t150010.92s38417

t20010.92rs232

t16000.920.92s38417

t3000.860.94
ꢀꢀꢀ
s38584

t1000.780.80
166.对比可得,步骤s7以牺牲少量tnr为代价,对测试结果的tpr进行了有效提升,即对木马电路的识别能力更强。当木马电路的负载部分较长时,其tpr的提升尤为明显。
167.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行
传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
168.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
再多了解一些

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

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

相关文献