CN116522334A - 基于图神经网络的rtl级硬件木马检测方法及存储介质 - Google Patents
基于图神经网络的rtl级硬件木马检测方法及存储介质 Download PDFInfo
- Publication number
- CN116522334A CN116522334A CN202310281789.1A CN202310281789A CN116522334A CN 116522334 A CN116522334 A CN 116522334A CN 202310281789 A CN202310281789 A CN 202310281789A CN 116522334 A CN116522334 A CN 116522334A
- Authority
- CN
- China
- Prior art keywords
- graph
- neural network
- rtl
- nodes
- hardware trojan
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 title claims abstract description 105
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 88
- 238000001514 detection method Methods 0.000 title claims abstract description 69
- 238000003860 storage Methods 0.000 title claims abstract description 8
- 239000011159 matrix material Substances 0.000 claims abstract description 44
- 238000012549 training Methods 0.000 claims abstract description 41
- 238000000034 method Methods 0.000 claims abstract description 34
- 238000012360 testing method Methods 0.000 claims abstract description 19
- 238000010586 diagram Methods 0.000 claims abstract description 16
- 238000013461 design Methods 0.000 claims description 27
- 239000013598 vector Substances 0.000 claims description 26
- 230000002776 aggregation Effects 0.000 claims description 13
- 238000004220 aggregation Methods 0.000 claims description 13
- 238000004458 analytical method Methods 0.000 claims description 8
- 230000000694 effects Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 8
- 238000000547 structure data Methods 0.000 claims description 6
- 238000010606 normalization Methods 0.000 claims description 5
- 230000004931 aggregating effect Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000013527 convolutional neural network Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 claims description 4
- 230000002411 adverse Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 230000004913 activation Effects 0.000 claims description 2
- 238000012804 iterative process Methods 0.000 claims description 2
- 238000005094 computer simulation Methods 0.000 abstract description 6
- 238000003062 neural network model Methods 0.000 abstract description 2
- 241000283086 Equidae Species 0.000 description 5
- 238000011160 research Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 229910052710 silicon Inorganic materials 0.000 description 3
- 239000010703 silicon Substances 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000004880 explosion Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000011990 functional testing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012946 outsourcing Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Biophysics (AREA)
- Computer Hardware Design (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Virology (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于图神经网络的RTL级硬件木马检测方法及存储介质,通过将携带木马逻辑的RTL代码展平化,对代码进行解析提取出语法树;之后基于语法树提取电路信号的数据流,并将所有信号的数据流合并为一个整体的数据流图,使用稀疏矩阵保存;接着提取图结构特征并对构建的图神经网络模型进行训练;最后使用训练好的模型对待测RTL代码进行测试,并将检测结果反标回RTL代码,检测出含有硬件木马逻辑的代码块。本发明实现了以代码行为精度的RTL级硬件木马检测,基本能实现所有节点的正确分类,不需要动态仿真,且使用了图神经网络和节点的本征特征,模型的泛化能力更强,有较大的实用价值。
Description
技术领域
本发明涉及硬件安全领域,具体涉及一种基于图神经网络的RTL级硬件木马检测方法及存储介质。
背景技术
现如今集成电路(Integrated Circuit,IC)已经在各行各业中广泛地应用,IC的设计过程也变得更加复杂。在IC设计中,为了降低研发成本及缩短研发周期,提高设计效率,满足芯片的上市时间要求,通常会使用第三方IP、第三方EDA工具,或者将产品设计流程中的一部分如DFT、布局布线等外包给第三方的硬件设计公司。然而,第三方IP的设计、生产、制造等过程对使用者来说通常是不可见的,因此其可能包含有恶意逻辑,即所谓的硬件木马(Hardware Trojan,HT)。第三方设计公司在进行外包业务时,也可能将硬件木马插入到原有电路中。由于集成电路在军事系统、关键基础设施、医疗设备等领域的广泛应用,硬件木马引发的安全事故是非常致命的。
硬件木马检测是处理由硬件木马所引起的安全威胁的最直接、最常用的方式,它旨在验证所设计或制造的IC是否“感染”了硬件木马。现代IC的生产链包含两部分:硅前和硅后。为了识别硅前设计中的所有HT,本发明重点关注RTL阶段的HT检测。硅前阶段的HT检测有许多有前途的研究工作。这些方法可以大致分为三类:功能测试、形式验证和机器学习。功能测试对工艺变化和噪声影响有很强的适应性。但功能测试需要动态仿真,在大规模电路中会非常耗时,而且测试向量的数量随着输入信号的数量呈指数增长,会导致状态爆炸的问题。形式验证检测不依赖HT触发条件,因此不会出现触发概率低无法检测到HT的问题。然而,形式验证通过检查设计是否满足一组预定义的安全属性来检测硬件木马,因此其无法检测到木马引入的未知特征,而且随着电路规模增大,也存在状态爆炸的问题。
基于机器学习的方法非常适用于特征识别相关的问题,并且其具有不需要黄金参考模型、不用动态仿真、检测速度快、准确度高等优点,很多研究人员对其进行了探索。根据检测方法的不同,基于机器学习的木马检测方法分为基于特征、基于可测试性和基于结构学习三类。基于特征的方法原理简单,执行速度快,在实际应用中效率很高。但由于其使用的是启发式的特征,所以需要根据新出现的木马不断更新现有的特征。基于可测试性的方法提取信号的可控制性和可观测性值用于硬件木马检测,其假设木马信号具有较低的可测性,但这种方法对于触发概率高和常开型的木马检测效果较差。基于结构学习的方法将电路转化为图,然后构建图神经网络进行训练,该方法利用了电路的本质是有向图的特点,具有很高的准确率和通用性。但以往的研究大都集中在门级网表和物理网表级,因为很容易将网表转换为有向图,而由于RTL级设计是硬件描述语言编写的,从代码到有向图的转换有一道天然的鸿沟,所以很少有研究能实现精确的RTL级硬件木马检测。即使有一些研究将图应用到RTL级的木马检测,也只能做到检测出设计有无木马,而无法将木马定位。
薛明富等人在专利“一种基于RTL级特征提取的硬件木马检测方法,CN109886019A[P].2019.”中提出了一种基于RTL级特征提取的硬件木马检测方法,通过对样本库中的硬件木马样本进行行为特征分析,建立硬件木马的代码模型数据库,然后对待测电路进行源码解析,提取代码模型,与代码模型数据库进行对比匹配,确定匹配程度并输出检测结果。该方法基于预先定义好的特征对木马进行检测,需要根据新的木马手动更新特征,人工成本极大,而且无法检测出数据库中没有包含的木马,应用范围受限。
沈利香等人在专利“一种RTL硬件木马测试向量的生成方法,CN107367686A[P].2017.”中提出了一种基于控制流图的RTL硬件木马测试向量生成方法,通过分析Verilog代码生成控制流图,利用求解器生成测试向量。该方法主要是生成测试例,之后仍需要通过动态仿真来检测设计中是否有硬件木马,这在大规模电路中耗时会很长。
王丽娟等人在专利“一种基于递归下降算法的RTL级硬件木马检测方法,CN106407810A[P].2016.”中提出了一种基于递归下降算法的RTL级硬件木马检测方法,根据木马模型设计RTL代码规则,指定词语类型,对RTL文件进行分析,找到符合规则的木马模块。该方法只针对指定类型的RTL代码级硬件木马,无法检测出未知类型的木马,而且需要与黄金模型进行对比。
现有文献“R.Yasaei,S.-Y.Yu and M.A.Al Faruque,"GNN4TJ:Graph NeuralNetworks for Hardware Trojan Detection at Register Transfer Level,"2021Design,Automation&Test in Europe Conference&Exhibition(DATE),2021,pp.1504-1509,doi:10.23919/DATE51398.2021.9474174.”提出了一种基于图神经网络的RTL级硬件木马检测方法,通过分析Verilog代码,提取出数据流图,之后构建图神经网络模型进行训练和预测,输出预测结果,能够较好地检测出Verilog代码中的硬件木马,且不需要动态仿真或者与黄金模型进行对比。但该方法只能检测出代码中有无硬件木马,而无法将硬件木马定位到某些代码块,导致其实用价值较低。
综上所述,以上方法中的问题均导致其应用范围受限。
发明内容
为了解决现有技术中存在的上述问题,本发明提供了一种基于图神经网络的RTL级硬件木马检测方法及存储介质。本发明要解决的技术问题通过以下技术方案实现:
本发明提供了一种基于图神经网络的RTL级硬件木马检测方法,包括:
S1,获取待层次化的待测RTL代码以及由多个RTL代码组成的训练集,并对训练集中的多个RTL代码按照层次进行展平化;
S2,对训练集中展平化的RTL代码进行代码解析,从解析结果总提取出抽象语法树,并从所述抽象语法树中提取出电路信号的数据流,将所有电路信号的数据流合并为一个数据流图,将所述数据流图以稀疏矩阵的形式进行存储;
S3,对所述数据流图进行分析,遍历数据流图中的所有节点,并基于节点的类型和节点在数据流图中的邻域关系提取所述节点的图结构特征,所述图结构特征用于创建节点特征向量;
S4,构建图神经网络,所述图神经网络通过对数据流图的邻接矩阵、节点的特征矩阵和自身的权重矩阵进行计算,来对数据流图的节点进行邻域节点的信息聚合,将不同节点之间的关系进行有效的表达;所述图神经网络用于根据训练集执行硬件木马检测训练的过程;
S5,用提取到的图结构特征对所述图神经网络进行多轮训练,得到训练好的图神经网络;通过图神经网络的训练,图神经网络中的分类器获取到预测结果,根据预测结果计算损失,并按照损失进行反向传播,更新图神经网络的权重矩阵,从而提升图神经网络检测硬件木马节点的能力;
S6,将所述待测RTL代码多次输入至所述训练好的图神经网络中,得到检测结果,并将检测结果反标回所述待测RTL代码中,从而得到可能包含硬件木马逻辑的代码块。
可选的,S1包括:
S11,获取多个携带硬件木马逻辑的设计文件,将设计文件的RTL代码组成训练集;
S12,获取待测试的所有设计文件,将设计文件的RTL代码作为待测RTL代码;
S13,使用python脚本遍历训练集中的所有待测RTL代码,对不同模块之间的例化关系进行记录,按照自顶向下的层次关系将各模块展平到TopModule下。
可选的,S2包括:
S21,构建语法解析器;
S22,利用所述语法解析器对训练集中展平化的RTL代码的数据类型、运算操作、模块例化关系进行分析,提取出抽象语法树;
S23,基于抽象语法树提取信号的数据流,并将所有数据流整合为一个整体的数据流图;
S24,将所述数据流图以稀疏的邻接矩阵形式保存。
可选的,S3中提取到的图结构特征包括:
(a)独热码表示的节点类型,其维度由Verilog语法规定的运算操作和数据类型数量等决定;
(b)进入和流出的邻居数;
(c)节点到主输入的最短距离;
(d)节点到主输出的最短距离;
(e)节点的中心中介性;
(f)节点的调和中介性。
可选的,在S3之后,所述基于图神经网络的RTL级硬件木马检测方法还包括:
对提取到的图结构特征进行归一化处理,从而消除奇异样本数据导致的不良影响。
可选的,S4中的图神经网络采用3层的图卷积神经网络和1层的全连接层,图卷积神经网络将非欧式空间的图结构数据和神经网络进行结合,在图结构数据上面进行节点的传递、聚合与更新的计算,图卷积神经网络通过包含结构信息的邻接矩阵、包含节点属性的特征矩阵和包含训练信息的权重矩阵来对每一个节点进行邻域节点的信息聚合,从而最大化利用图的结构性特征将不同节点信息以及关系信息进行有效和充分的表达。
可选的,图卷积神经网络中采用的训练loss为真实label与预测label的交叉熵以最大化不同类的嵌入向量的欧式距离,公式如下:
其中,Y为真实标签,为预测标签。
可选的,在S6之前,所述基于图神经网络的RTL级硬件木马检测方法还包括:
使用测试集对训练好的图神经网络进行测试;
根据测试结果综合评估训练好的图神经网络的检测效果。
本发明提供了一种存储介质,用于存储执行基于图神经网络的RTL级硬件木马检测方法的代码。
本发明提供了一种电子设备,用于执行基于图神经网络的RTL级硬件木马检测方法。
本发明的有益效果:
1、本发明提出了一套对RTL代码进行建模的方案,首先将层次化的Verilog代码展平合并,之后将整个设计其转化为数据流图,通过图神经网络进行建模和预测,最后将预测结果反标回RTL代码。该方法不仅适用于硬件木马检测,还为其他针对RTL级设计进行的时序检查、功耗预估等研究提供了解决方案。
2、与传统的基于启发式特征的机器学习的硬件木马检测方法相比,本发明使用的特征为节点本征特征以及相关图特征,提高了识别未知硬件木马类型的能力。同时由于特征固定,不需要根据新的木马增加新的特征,因此具有更强的兼容性与简洁性,可以更容易从特征推理出原始电路结构信息。
3、本发明将数据流图和图神经网络引入RTL级硬件木马检测领域,并采用了先进的图神经网络架构进行检测模型训练,具有比传统深度学习更强的非线性表达能力以及更强的泛化能力,实现了以代码行为单位的RTL级硬件木马检测方法,克服了以往的检测方法只能检测出有无木马,而无法将木马进行定位的缺点,有更大的实用价值。
以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
图1所示为本发明的基于图神经网络的硬件木马检测方法的流程图;
图2所示为本发明基于图神经网络的硬件木马检测方法的示意图;
图3所示为本次使用的Verilog代码及其对应的数据流图示例图。
具体实施方式
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
结合图1至图3所示,本发明提供了一种基于图神经网络的RTL级硬件木马检测方法包括:
S1,获取待层次化的待测RTL代码以及由多个RTL代码组成的训练集,并对训练集中的多个RTL代码按照层次进行展平化;
进一步地,在本发明一种具体的实施方式中S1包括:
S11,获取多个携带硬件木马逻辑的设计文件,将设计文件的RTL代码组成训练集;
S12,获取待测试的所有设计文件,将设计文件的RTL代码作为待测RTL代码;
S13,使用python脚本遍历训练集中的所有待测RTL代码,对不同模块之间的例化关系进行记录,按照自顶向下的层次关系将各模块展平到TopModule下。
S2,对训练集中展平化的RTL代码进行代码解析,从解析结果总提取出抽象语法树,并从所述抽象语法树中提取出电路信号的数据流,将所有电路信号的数据流合并为一个数据流图,将所述数据流图以稀疏矩阵的形式进行存储;
进一步地,在本发明一种具体的实施方式中S2包括:
S21,采用python语言构建语法解析器;
S22,利用所述语法解析器对训练集中展平化的RTL代码的数据类型、运算符、模块例化关系进行分析,提取出抽象语法树;
S23,基于抽象语法树提取信号的数据流,并将所有数据流整合为一个整体的数据流图;
S24,将所述数据流图以稀疏的邻接矩阵形式保存。
参考图2以及图3,本发明中的数据流图为有向图,图结构为G=(V,E),G为整个设计的邻接矩阵,V为图中的所有节点,E为节点之间的连接关系。这种方式使得图结构简单清晰。
S3,对所述数据流图进行分析,遍历数据流图中的所有节点,并基于节点的类型和节点在数据流图中的邻域关系提取所述节点的图结构特征,所述图结构特征用于创建节点特征向量;
其中,图结构特征包括:(a)独热码表示的节点类型,其维度由Verilog语法规定的运算操作和数据类型数量等决定;(b)进入和流出的邻居数;(c)节点到主输入的最短距离;(d)节点到主输出的最短距离;(e)节点的中心中介性;(f)节点的调和中介性。
提取图结构特征时,数据节点为上述图结构中的V,数据之间的运算关系为图结构中的E,并进行有向图的邻接矩阵表征。
将Verilog HDL语言中不同的运算符和数据类型转换为独热码,共37维,具体为{'concat','input','unand','unor','uxor','signal','uand','ulnot','uxnor','numeric','partselect','and','unot','branch','or','uor','output','plus','eq','minus','xor','lor','noteq','land','greatereq','greaterthan','sll','lessthan','times','srl','pointer','mod','divide','sra','sla','xnor','lesseq'}。
中心中介性(Betweenness centrality,BC)定义为图上所有节点间最短路径中经过节点v的数量与所有节点间最短路径数量的比例。数学公式如下:
其中,σ(x,y)为所有节点间最短路径的总数,σ(x,y)|y为所有节点间最短路径中经过节点v的数量。
调和中介性(Harmonic centrality,HC)定义为所有其他节点到v的最短路径距离的倒数和。数学公式如下:
其中,x为除了v的节点,d(x,v)为x到v的最短路径的长度。
进一步地,步骤S3中,采用Dijkstra算法来获取节点之间最短距离。为了提高中心中介性以及调和中介性的运算速度以及减少其算法的复杂度,进行了搜索深度阈值的设置,当搜索到10级节点时停止运算。
进一步地,步骤S3中,节点到主输入和主输出的最短距离,首先使用python脚本提取出主输入和主输出对应的信号,后通过上文中的方法进行最短路径的统计。
最后将所有提取的特征进行归一化处理以从而消除奇异样本数据导致的不良影响。因此,最终每个节点都对应着43的维特征向量。
S4,构建图神经网络,所述图神经网络通过对数据流图的邻接矩阵、节点的特征矩阵和自身的权重矩阵进行计算,来对数据流图的节点进行邻域节点的信息聚合,将不同节点之间的关系进行有效的表达;所述图神经网络用于根据训练集执行硬件木马检测训练的过程;
本发明构建了图神经网络用于硬件木马检测。应当注意,本发明的实施方式中的分类器可以使用多种图神经网络实现,包括但不限于GCN、GraphSAGE、GAT等。
参考图2,图神经网络采用3层的图卷积神经网络GCN和1层的全连接层,GCN将非欧式空间的图结构数据和神经网络进行结合,在图结构数据上面进行节点的传递、聚合与更新的计算,GCN通过包含结构信息的邻接矩阵、包含节点属性的特征矩阵和包含训练信息的权重矩阵来对每一个节点进行邻域节点的信息聚合,从而最大化利用图的结构性特征将不同节点信息以及关系信息进行有效和充分的表达。
在具体的实例中可以采用的GCN由pytorch库实现,采用的版本可以为1.6.0。接着使用一层全连接层对节点生成的嵌入向量进行计算,输出预测结果。
图卷积神经网络GCN中图卷积的过程包括消息传播、聚合和更新阶段;
消息传递通过节点将特征向量传递给它们的直接邻居,并通过迭代过程积累信息作为节点嵌入;每次迭代为一层图卷积,通过增加GCN层,节点可以到达更多的节点,并收集图中更深的信息;
消息传播阶段涉及两个子函数:AGGREGATE和COMBINE函数,具体如下:
其中,N(v)是连接到节点v的节点集,AGGREGATE收集相邻节点的特征向量以产生层l的聚集特征向量COMBINE将把前一个节点特征/>与/>组合以产生下一个特征向量/>
消息传递的聚合和更新阶段由图卷积神经网络GCN执行,所有v∈V的聚集消息向量级联形成特征矩阵X(l),称为节点嵌入矩阵;GCN的每一层按如下方式更新消息传播的每次迭代l的节点嵌入:
其中,W(l)是在GCN层中使用的可训练权重,为初始图A的邻接矩阵的归一化过程,/>是用于聚集相邻节点的特征向量的邻接矩阵,而I是增加自环连接以确保在当前迭代中也考虑先前计算的特征的单位矩阵,/>是图的度矩阵,X(l)是图在第l轮时的特征矩阵,σ是GCN层的激活函数;本方发明优选Relu。
图卷积神经网络GCN中采用的训练loss为真实label与预测label的交叉熵以最大化不同类的嵌入向量的欧式距离,公式如下:
其中,Y为真实标签,为预测标签。
本发明可以采用3层GCN模型,意味着节点可以学习三级邻域的特征关系。之后将GNN的输出的嵌入向量通过全连接层和softmax进行分类,用于最后判断嵌入向量代表的节点是否为硬件木马。GCN中采用的训练loss为真实label与预测label的交叉熵。
S5,用提取到的图结构特征对所述图神经网络进行多轮训练,得到训练好的图神经网络;通过图神经网络的训练,图神经网络中的分类器获取到预测结果,根据预测结果计算损失,并按照损失进行反向传播,更新图神经网络的权重矩阵,从而提升图神经网络检测硬件木马节点的能力;
S6,将所述待测RTL代码多次输入至所述训练好的图神经网络中,得到检测结果,并将检测结果反标回所述待测RTL代码中,从而得到可能包含硬件木马逻辑的代码块。
利用数据节点与代码行数的对应关系,将模型的检测结果反标回Verilog代码,检测出可能包含硬件木马逻辑的代码块。
在S6之前,所述基于图神经网络的RTL级硬件木马检测方法还包括:
使用测试集对训练好的图神经网络进行测试;
根据测试结果综合评估训练好的图神经网络的检测效果。
表1展示了本实施例获取的硬件木马检测结果,其中Recall为召回率,为识别的硬件木马占全部硬件木马的比例;Precision为精准率,为正确识别的硬件木马占模型检测到硬件木马的比例;F1-score为Recall和Precision的调和平均数,用于综合评估模型的分类效果;Accuracy为准确率,为识别正确的节点占所有节点的比例。具体计算公式如下:
其中,TN为正常节点被判别为正常的数量,TP为木马节点被判别为木马的数量,FN为木马节点被判别为正常的数量,FP为正常节点被判别为木马的数量,Total为所有节点的数量。
从表1中可知道,本实例准确率达到了99.3%,并取得了97.7%的平均召回率以及90.3%的平均F1,意味着本模型基本能实现所有节点的正确分类。
表1实施例测试集和其检测结果表
表2为本方法与现有技术的比较结果,可以看到,本方法不仅能检测出设计中是否有木马,而且可以将木马精准定位到某些代码行。同时,本方法不需要动态仿真和黄金模型,能够检测出当前未知的硬件木马,可扩展性强,克服了以往研究的缺陷,有更大的实用价值。
表2与现有方法的比较结果表
本发明提供了一种存储介质,其特征在于,用于存储基于图神经网络的RTL级硬件木马检测方法的代码。
本发明提供了一种电子设备,其特征在于,用于执行基于图神经网络的RTL级硬件木马检测方法。
本发明将图神经网络应用到RTL级的硬件木马检测领域中,利用抽象语法树(AST)和数据流图(DFG)对RTL代码进行建模,实现了以代码行为精度的RTL级硬件木马检测方法,不仅有效地实现对硬件木马及正常节点区分,还由于使用的特征为图及节点的本征特征,从而摆脱了深度学习对启发式特征的依赖,使其具有更强的检测未知类型硬件木马的能力。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种基于图神经网络的RTL级硬件木马检测方法,其特征在于,包括:
S1,获取待层次化的待测RTL代码以及由多个RTL代码组成的训练集,并对训练集中的多个RTL代码按照层次进行展平化;
S2,对训练集中展平化的RTL代码进行代码解析,从解析结果中提取出抽象语法树,并从所述抽象语法树中提取出电路信号的数据流,将所有电路信号的数据流合并为一个数据流图,将所述数据流图以稀疏矩阵的形式进行存储;
S3,对所述数据流图进行分析,遍历数据流图中的所有节点,并基于节点的类型和节点在数据流图中的邻域关系提取所述节点的图结构特征,所述图结构特征用于创建节点特征向量;
S4,构建图神经网络,所述图神经网络通过对数据流图的邻接矩阵、节点的特征矩阵和自身的权重矩阵进行计算,来对数据流图的节点进行邻域节点的信息聚合,将不同节点之间的关系进行有效的表达;所述图神经网络用于根据训练集执行硬件木马检测训练的过程;
S5,用提取到的图结构特征对所述图神经网络进行多轮训练,得到训练好的图神经网络;通过图神经网络的训练,图神经网络中的分类器获取到预测结果,根据预测结果计算损失,并按照损失进行反向传播,更新图神经网络的权重矩阵,从而提升图神经网络检测硬件木马节点的能力;
S6,将所述待测RTL代码多次输入至所述训练好的图神经网络中,得到检测结果,并将检测结果反标回所述待测RTL代码中,从而得到可能包含硬件木马逻辑的代码块。
2.根据权利要求1所述的一种基于图神经网络的RTL级硬件木马检测方法,其特征在于,S1包括:
S11,获取多个携带硬件木马逻辑的设计文件,将设计文件的RTL代码组成训练集;
S12,获取待测试的所有设计文件,将设计文件的RTL代码作为待测RTL代码;
S13,使用python脚本遍历训练集中的所有待测RTL代码,对不同模块之间的例化关系进行记录,按照自顶向下的层次关系将各模块展平到TopModule下。
3.根据权利要求1所述的一种基于图神经网络的RTL级硬件木马检测方法,其特征在于,S2包括:
S21,构建语法解析器;
S22,利用所述语法解析器对训练集中展平化的RTL代码的数据类型、运算操作、模块例化关系进行分析,提取出抽象语法树;
S23,基于抽象语法树提取信号的数据流,并将所有数据流整合为一个整体的数据流图;
S24,将所述数据流图以稀疏的邻接矩阵形式保存。
4.根据权利要求1所述的一种基于图神经网络的RTL级硬件木马检测方法,其特征在于,S3中提取到的图结构特征包括:
(a)独热码表示的节点类型,其维度由Verilog语法规定的运算操作和数据类型数量等决定;
(b)进入和流出的邻居数;
(c)节点到主输入的最短距离;
(d)节点到主输出的最短距离;
(e)节点的中心中介性;
(f)节点的调和中介性。
5.根据权利要求1所述的一种基于图神经网络的RTL级硬件木马检测方法,其特征在于,在S3之后,所述基于图神经网络的RTL级硬件木马检测方法还包括:
对提取到的图结构特征进行归一化处理,从而消除奇异样本数据导致的不良影响。
6.根据权利要求1所述的一种基于图神经网络的RTL级硬件木马检测方法,其特征在于,S4中的图神经网络采用3层的图卷积神经网络和1层的全连接层,图卷积神经网络将非欧式空间的图结构数据和神经网络进行结合,在图结构数据上面进行节点的传递、聚合与更新的计算,图卷积神经网络通过包含结构信息的邻接矩阵、包含节点属性的特征矩阵和包含训练信息的权重矩阵来对每一个节点进行邻域节点的信息聚合,从而最大化利用图的结构性特征将不同节点信息以及关系信息进行有效和充分的表达。
7.根据权利要求6所述的一种基于图神经网络的RTL级硬件木马检测方法,其特征在于,图卷积神经网络中图卷积的过程包括消息传播、聚合和更新阶段;
消息传递通过节点将特征向量传递给它们的直接邻居,并通过迭代过程积累信息作为节点嵌入;每次迭代为一层图卷积,通过增加卷积层,节点可以到达更多的节点,并收集图中更深的信息;
消息传播阶段涉及两个子函数:AGGREGATE和COMBINE函数,具体如下:
其中,N(v)是连接到节点v的节点集,AGGREGATE收集相邻节点的特征向量以产生层l的聚集特征向量COMBINE将把前一个节点特征/>与/>组合以产生下一个特征向量
消息传递的聚合和更新阶段由图卷积神经网络执行,所有v∈V的聚集消息向量级联形成特征矩阵X(l),称为节点嵌入矩阵;每一个图卷积层按如下方式更新消息传播的每次迭代l的节点嵌入:
其中,W(l)是在GCN层中使用的可训练权重,为初始图A的邻接矩阵的归一化过程,/>是用于聚集相邻节点的特征向量的邻接矩阵,而I是增加自环连接以确保在当前迭代中也考虑先前计算的特征的单位矩阵,/>是图的度矩阵,X(l)是图在第l轮时的特征矩阵,σ是图卷积层的激活函数;
图卷积神经网络中采用的训练loss为真实label与预测label的交叉熵以最大化不同类的嵌入向量的欧式距离,公式如下:
其中,Y为真实标签,为预测标签。
8.根据权利要求1所述的一种基于图神经网络的RTL级硬件木马检测方法,其特征在于,在S6之前,所述基于图神经网络的RTL级硬件木马检测方法还包括:
使用测试集对训练好的图神经网络进行测试;
根据测试结果综合评估训练好的图神经网络的检测效果。
9.一种存储介质,其特征在于,用于存储执行权利要求1至权利要求8任一项的基于图神经网络的RTL级硬件木马检测方法的代码。
10.一种电子设备,其特征在于,用于执行权利要求1至权利要求8任一项的基于图神经网络的RTL级硬件木马检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310281789.1A CN116522334A (zh) | 2023-03-21 | 2023-03-21 | 基于图神经网络的rtl级硬件木马检测方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310281789.1A CN116522334A (zh) | 2023-03-21 | 2023-03-21 | 基于图神经网络的rtl级硬件木马检测方法及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116522334A true CN116522334A (zh) | 2023-08-01 |
Family
ID=87401956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310281789.1A Pending CN116522334A (zh) | 2023-03-21 | 2023-03-21 | 基于图神经网络的rtl级硬件木马检测方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116522334A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117435511A (zh) * | 2023-12-20 | 2024-01-23 | 厦门市唯云网络科技有限公司 | 一种基于图神经网络的流量监测软件的测试方法和装置 |
-
2023
- 2023-03-21 CN CN202310281789.1A patent/CN116522334A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117435511A (zh) * | 2023-12-20 | 2024-01-23 | 厦门市唯云网络科技有限公司 | 一种基于图神经网络的流量监测软件的测试方法和装置 |
CN117435511B (zh) * | 2023-12-20 | 2024-03-19 | 厦门市唯云网络科技有限公司 | 一种基于图神经网络的流量监测软件的测试方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhu et al. | Within‐project and cross‐project just‐in‐time defect prediction based on denoising autoencoder and convolutional neural network | |
CN109918505B (zh) | 一种基于文本处理的网络安全事件可视化方法 | |
CN111949535B (zh) | 基于开源社区知识的软件缺陷预测装置及方法 | |
CN109299258A (zh) | 一种舆情事件检测方法、装置及设备 | |
CN110414277B (zh) | 基于多特征参数的门级硬件木马检测方法 | |
CN111860981B (zh) | 一种基于lstm深度学习的企业国民行业类别预测方法及系统 | |
CN114722746B (zh) | 一种芯片辅助设计方法、装置、设备及可读介质 | |
CN110019519A (zh) | 数据处理方法、装置、存储介质和电子装置 | |
CN115343676B (zh) | 密封电子设备内部多余物定位技术的特征优化方法 | |
CN109657461B (zh) | 基于梯度提升算法的rtl硬件木马检测方法 | |
CN106528527A (zh) | 未登录词的识别方法及识别系统 | |
CN116522334A (zh) | 基于图神经网络的rtl级硬件木马检测方法及存储介质 | |
CN116150757A (zh) | 一种基于cnn-lstm多分类模型的智能合约未知漏洞检测方法 | |
Usino et al. | Document similarity detection using k-means and cosine distance | |
Barr et al. | Vulnerability rating of source code with token embedding and combinatorial algorithms | |
CN112115326A (zh) | 一种以太坊智能合约的多标签分类和漏洞检测方法 | |
CN113904844B (zh) | 基于跨模态教师-学生网络的智能合约漏洞检测方法 | |
Khleel et al. | Deep convolutional neural network model for bad code smells detection based on oversampling method | |
Liu et al. | Defect prediction technology in software engineering based on convolutional neural network | |
CN114239083A (zh) | 一种基于图神经网络的高效状态寄存器识别方法 | |
CN112417147A (zh) | 训练样本的选取方法与装置 | |
CN116361788A (zh) | 一种基于机器学习的二进制软件漏洞预测方法 | |
CN115982037A (zh) | 一种基于抽象语法树的软件缺陷预测方法 | |
Zhang et al. | Hybrid multi‐level hardware Trojan detection platform for gate‐level netlists based on XGBoost | |
CN113486347A (zh) | 一种基于语义理解的深度学习硬件木马检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |