CN115688104A - 一种基于子图同构的rtl级硬件木马检测方法 - Google Patents

一种基于子图同构的rtl级硬件木马检测方法 Download PDF

Info

Publication number
CN115688104A
CN115688104A CN202211424243.9A CN202211424243A CN115688104A CN 115688104 A CN115688104 A CN 115688104A CN 202211424243 A CN202211424243 A CN 202211424243A CN 115688104 A CN115688104 A CN 115688104A
Authority
CN
China
Prior art keywords
trojan
matching
flow graph
file
graph
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
Application number
CN202211424243.9A
Other languages
English (en)
Inventor
李东方
刘诗宇
沈炜
王志昊
杨光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Computer Technology and Applications
Original Assignee
Beijing Institute of Computer Technology and Applications
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Computer Technology and Applications filed Critical Beijing Institute of Computer Technology and Applications
Priority to CN202211424243.9A priority Critical patent/CN115688104A/zh
Publication of CN115688104A publication Critical patent/CN115688104A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种基于子图同构的RTL级硬件木马检测方法,属于RTL级硬件安全性分析技术领域。本发明提供的基于子图同构的RTL级硬件木马检测方法通过添加约束和剪枝条件优化子图同构算法,以较低的代价,快速、精确地确定木马的位置,并给出检测结果的置信度与图形化表征,不依赖参考模型,便于使用、推广。

Description

一种基于子图同构的RTL级硬件木马检测方法
技术领域
本发明属于RTL级硬件安全性分析技术领域,具体涉及一种基于子图同构的RTL级硬件木马检测方法。
背景技术
随着集成电路设计和制造的全球化协作愈发凸显,芯片设计和制造的各个关键环节可能分散在世界各地,依靠不同厂商完成,少部分大公司掌握了大量的设计、制造资源。这种全球化的模式,为在芯片设计制造的过程中引入恶意木马创造了极佳条件,在芯片设计和制造的各个环节都可能被植入木马,一旦芯片被植入木马,便可通过一定的方式激活木马或利用木马,从而造成目标芯片失效或机密信息的泄露,最终导致严重后果,对以集成电路设计制造为基础的现代电子技术行业造成巨大的安全隐患。我国近年来大力发展集成电路产业,但由于集成电路设计制造空前的复杂度,我国的集成电路产业短期内仍将在一定程度上依赖国外供应链与技术,由于技术壁垒各类芯片产品与工具极易被植入木马并被攻击者利用,从而危害我国集成电路产业健康发展。
硬件木马一般是集成电路设计制造过程中,通过对原始设计进行增删添改等方式,被有意或无意引入的,在未被触发时难以觉察,具有一定的隐蔽性;而在一定条件下触发后可能导致电路失效、毁坏、性能降低或信息泄露等后果;也可能为内外部恶意行为的实施提供便利,进一步扩大危害。如图1所示,其结构通常包含触发逻辑和载荷逻辑两部分,触发逻辑以正常电路的某些信号作为输入,当达到触发条件后将激活载荷逻辑,载荷逻辑执行预先设定的恶意逻辑。根据触发条件的不同,硬件木马的触发条件一般有组合逻辑触发、时序逻辑触发以及时间触发;根据载荷逻辑的危害行为,硬件木马的危害行为一般有功能改变,性能下降,数据泄露以及拒绝服务。在硬件木马检测中,随着设计制造流程的推进,木马的检测难度、所需的时间以及成本等也逐步增长,故应尽快在设计早期发现木马。RTL级硬件描述语言(Hardware Description Language,HDL)在芯片设计、基于现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)的设计、知识产权(IntellectualProperty,IP)核开发等领域被广泛使用,因此对RTL级电路木马检测方法的研究具有重要意义。
静态分析技术在软件木马检测领域已有较为充分的研究,因此基于静态特征分析的硬件木马检测技术正得到越来越多的关注。这类方法的静态特征可以来自多个方面,例如解析得到代码的AST、跟踪信息流或利用控制流信息,往往可以通过较低的代价,得到较为准确的检测结果,且适用于待测设计与可疑木马的量级相差悬殊的情况。结合RTL级代码特点与图论中的有向图概念,可将木马代码与待测工程代码映射为有向图,从而将RTL级硬件木马检测转换为子图同构匹配,并通过添加约束和剪枝条件设计匹配算法,从而提高检测精度与检测效率。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何设计一种能够提高木马检测效果的RTL级硬件木马检测方法。
(二)技术方案
为了解决上述技术问题,本发明提供了。
(三)有益效果
本发明提供的基于子图同构的RTL级硬件木马检测方法通过添加约束和剪枝条件优化子图同构算法,以较低的代价,快速、精确地确定木马的位置,并给出检测结果的置信度与图形化表征,不依赖参考模型,便于使用、推广。
附图说明
图1是现有技术提供的一般的硬件木马的结构的示意图;
图2是本发明的实施例所提供的基于子图同构的RTL级硬件木马检测方法的框架图;
图3是本发明的实施例所提供的将RTL文件转换为数据流图与控制流图的步骤示意图;
图4是本发明的实施例所提供的对RTL文件进行语法分析和词法分析的流程图;
图5是本发明的实施例所提供的控制流图分支概率计算的流程图;
图6是本发明的实施例所提供的获取的数据流图(a)与控制流图(b)的示意图;
图7是本发明的实施例所提供的获取的特征有向图的示意图,其中(a)为数据流图,(b)为控制流图;
图8是本发明的实施例所提供的精确匹配算法的流程图;
图9是本发明的实施例所提供模糊匹配算法的流程图;
图10是本发明的实施例所提供的节点剪枝算法的示意图;
图11是本发明的实施例所提供的置信度1的来源的示意图;
图12是本发明的实施例所提供的置信度3的来源的示意图;
图13是本发明的实施例所提供的置信度4来源的示意图;
图14是本发明的实施例所提供的检测结果的图形化表征中,方法一的示意图;
图15是本发明的实施例所提供的检测结果的图形化表征中,方法二的示意图。
具体实施方式
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明实施例,部分内容以AES载体电路为例进行说明,需要指出的是,本发明所述方法并不局限于AES载体电路或安全算法IP核的RTL级硬件木马检测,而对各类RTL级载体电路的硬件木马均有检测能力。
如图2所示,一种基于子图同构的RTL级硬件木马检测方法,包括以下步骤:
步骤1:对已知硬件木马文件进行分析,将其转换为特征有向图:
如图3所示,转换的过程包括对木马文件(包括一个或多个RTL文件)进行词法分析与语法分析,生成抽象语法树,解析抽象语法树获取其数据流图与控制流图,采用静态分支概率计算获得控制流图概率,并将两者关联为特征有向图。具体地,所述转换的过程包括以下步骤:
语法树生成:读取硬件木马的RTL文件(一个或多个RTL文件),通过词法分析与语法分析,如图4所示,构建抽象语法树;
数据流图与控制流图获取:通过对所述抽象语法树进行模块解析,端口、变量及代码块解析,获得表达式与条件语句,然后对表达式与条件语句进行解析,根据变量关系获取数据流图边权值,形成数据流图与控制流图;
其中,所述数据流图表示数据在系统中被处理的过程,体现了数据之间的关系,其定义如下:
DFG(G)=(V,E,ρe,h,t)
其中,V={v0,v1,…,vn}表示节点的有限集合,节点是代码中变量的抽象表示;
Figure BDA0003941303000000041
为相连节点的边的集合,如(v0,v1)∈E表示节点v0和v1表示的变量之间存在赋值、条件等关系;ρe为边权值函数,ρe(e0)表示边e0的权值;h,t分别表示第一个和最后一个节点。
所述控制流图表示系统状态的变化和转移,体现了系统运行状态之间的关系,其定义如下:
CFG(G)=(V,E,ρe,p,h,t)
其中,V={v0,v1,…,vn}表示节点的有限集合,一般为条件语句的抽象状态;
Figure BDA0003941303000000051
为相连节点的边的集合,(v0,v1)∈E表示节点(此处表示状态)v0在满足一定条件后进入节点(此处表示状态)v1;ρe为边权值函数,ρe(e0)表示边e0的权值;p为概率函数,p(v0,v1)表示从节点(此处表示状态)v0转换为节点(此处表示状态)v1的概率;h,t分别表示第一个和最后一个节点。
为充分利用RTL代码中的邻域信息,对于数据流图,通过边权值表示节点之间的关系,数据流图有以下三种节点关系:赋值关系,条件关系以及条件赋值关系,对应的三种边权值分别用1,2,3表示,权值表达式解析步骤即可获得。
对于控制流图,通过边权值表示分支概率。
分支概率获取:通过对所述抽象语法树与所述控制流图进行静态分支概率计算,得到所述控制流图的分支概率;如图5所示,由语法树解析的结果得到端口、变量及条件语句,之后进一步解析将待计算的语句调整为树形结构。
例如,对于一个包含if…else if…else…结构的控制流图,将if语句作为树的上层节点,节点信息中包含了if判断条件中的变量信息及表达式,类似地,将else if作为树的下层节点,else作为底层节点。
之后根据可满足性模理论,将节点与表达式信息转换成约束信息,当这一层的节点信息添加完成后,若存在上一层则应将上层节点信息一并添加。
例如,在计算else if时需将if的条件一并添加。之后检查模型的可算性,若可计算则计算结果并记录,之后计算下一层。若结果不可计算,则直接输出控制流图并将分支概率置零。
特征有向图获取:通过将所述数据流图的节点与所述控制流图(如图6所示)关联(一个节点关联一个或多个控制流图),获得特征有向图,如图7所示。关联的方法有多种,例如通过节点名进行关联,在数据流图的节点名中包含控制流图的索引,可通过数据流图检索到对应的控制流图。
步骤2:根据步骤1中获取的(木马)特征有向图及木马相关信息构建木马库;所述木马库中包含(木马)特征有向图及木马库配置信息,木马库配置信息记录相关木马信息用于对其木马库进行组织。
例如通过JSON文件进行组织:
Figure BDA0003941303000000061
第一行的“AES-T100”表示木马名;“is_netlist”字段表示该木马是否来自网表文件,“True”表示该木马来自网表文件,该字段为必要字段;“netlist type”记录了网表文件的类型,若木马描述中“is_netlist”为“True”则必须指明该字段;“structure name”表示特征有向图中参与匹配的有效结构的名称,该字段为必要字段,且必须按照可疑木马、触发逻辑、载荷逻辑、其他结构的顺序来填写;“description”表示其他额外信息,该字段为非必要字段。字段的描述及必要性如下表所示:
Figure BDA0003941303000000071
通过以上的配置,系统只要读取并解析info.json文件即可得到木马库中木马的各类信息,且利用该文件来组织木马库时不需要频繁的增删木马库中的特征有向图,而只需要更新该配置文件,仅在新增木马时需要操作库中的特征有向图,而回滚、删除等操作时仅需要对该文件进行操作,从而提高了效率。
构建木马库具体包括以下步骤:
生成配置文件:根据木马文件的信息生成配置文件,包括木马名称、端口列表、触发结构名称、载荷结构名称、其他有效信息等;
添加木马特征:根据所述配置文件,更新木马库配置文件,并添加所述特征有向图到木马库中。
步骤3:对待测工程文件采取步骤1中的方法进行处理,得到待测工程文件的特征有向图。
步骤4:将待测工程文件的特征有向图与木马库中的特征有向图,利用子图同构匹配的方法,得到匹配结果;所述子图同构匹配的方法包括:
精确匹配:如图8所示,将待测工程文件与木马库中的木马特征(即从木马RTL代码中生成的特征有向图)利用精确匹配算法进行一一匹配,若匹配时间超出设定时间,则记录本次匹配的信息,之后进行下一次匹配;若匹配通过,则标记为检测到木马,生成匹配结果;若匹配不通过,则标记为未检测到该木马,并进行模糊匹配;循环执行以上过程,直至所有输入的待测工程文件匹配完毕。
模糊匹配:如图9所示,首先读取超时记录,延长匹配时间进行匹配,利用模糊匹配算法将该超时记录的条目中记录的输入待测工程文件与木马的全部有效结构(例如触发逻辑和载荷逻辑)进行匹配,若匹配仍超时,则记录该条目,并标记为无法处理,继续处理下一记录;若匹配通过,则标记为检测到该木马,并生成结果,之后处理下一条记录;若匹配不通过,则标记为未检测到该木马,继续处理下一条目;循环执行以上过程,直至所有条目处理完毕。
所述精确匹配的算法包括:
基于邻域信息的节点剪枝算法:对于节点的匹配,考虑节点对应边权值约束,仅将满足约束的节点集作为候选节点集,例如:利用节点与边的关系,在进行匹配时对待匹配节点进行限制,子图中对应节点的所有边中,相同属性的边的数目必须小于待匹配图,如图10所示。在未执行以上规则时,传统子图同构算法会将左侧节点与右侧节点作为节点候选集,而在执行以上规则后,该节点对被排除,从而减小了节点候选集。
基于邻域信息的边剪枝算法:对于边的匹配,考虑数据流图边的权值约束,仅将满足约束的边集作为候选边集,在匹配时认为权值1(赋值关系)与权值2(条件关系)不同;权值3(条件赋值关系)与权值1(赋值)或权值2(条件关系)等同,如下表所示,当返回值为真时,将当前边对添加到边候选集中,若返回值为假则该边对被排除,从而减小了边候选集。
Figure BDA0003941303000000081
Figure BDA0003941303000000091
所述模糊匹配算法中,将木马数据流图所有有效结构的频繁子图与待测工程文件的数据流图进行精确匹配。
所述子图同构匹配的方法还包括:
强制模糊匹配:将待测工程文件与木马库中木马特征利用模糊匹配算法进行一一匹配,若匹配时间超出设定时间,则记录本次匹配的信息,之后进行下一次匹配;若匹配通过,则标记为检测到该木马,生成匹配结果;若匹配不通过,则标记为未检测到该木马,并进行下一次匹配;循环进行以上过程,直至所有输入匹配完毕。
以上精确匹配和强制模糊匹配可以手动直接执行,是两个独立的方法,模糊匹配的前置条件是“精确匹配不通过”。
步骤5:步骤5中,若检测到木马(全部或部分木马),则获取木马代码的详细位置信息,并计算置信度;若未检测到木马(全部或部分木马),则记录匹配条目信息;所述置信度的计算公式如下所示:
confidence=k1c1+k2c2+k3c3+k4c4
其中,c1、c2、c3、c4为计算置信度的4个参数,ki是参数的权值,其具体取值由木马特征决定,
Figure BDA0003941303000000092
c1表示匹配结果中数据流图变量和木马数据流图关键变量(如计数器等)间用途相同的变量数与木马数据流图总关键变量数的比率,计算公式如下所示:
Figure BDA0003941303000000093
其中,vr为匹配结果中的数据流图变量,vs为木马数据流图中的关键变量(如计数器等),s(vr,vs)为vr和vs的最大相似变量个数(用途相同的变量数),n(vs)为vs的个数,例如通过节点度的差异来衡量相似度,如图11所示,vr=5,vs=4,当节点度的差异在容许范围内时,认为两节点是相似变量。例如,认为节点度完全相同的节点为相似时,图11的s(vr,vs)=3,
Figure BDA0003941303000000101
c2表示匹配结果是否包含时钟和复位逻辑,计算公式如下:
c2=b(reset,clk)
其中b(reset,clk)为0或1,如果对时钟和复位之一有操作则为1,均无操作则为0;例如通过查找匹配结果中的节点是否有与顶层模块的时钟或复位信号相连的赋值路径,且该节点的边中是否包含额外的权值为1(赋值关系)的边,若同时满足以上条件,则返回1,否则返回0。即首先搜索匹配结果中位于时钟或复位树中的节点,之后检查这些节点是否被“操作”。
c3表示匹配结果和木马控制流图的边概率平均差,计算公式如下:
c3=1-[|ρr(b1,b2)-ρs(b1,b2)|+…|ρr(bn,bn+1)-ρs(bn,bn+1)|]
其中,ρr(b1,b2)是匹配结果控制流图中节点b1流向节点b2的概率,ρs(b1,b2)是木马控制流图中节点b1流向节点b2的概率。首先检索并解析匹配结果的数据流图,获得对应的控制流图信息;用同样的方法获得可疑木马的控制流图信息;之后将两者进行匹配,并计算匹配的控制流图的对应边的概率差,如图12所示。由于匹配的控制流图可能不唯一,故计算所有结果的算数平均值用于计算最后的置信度的参数c3
c4为匹配结果中触发和载荷之间的依赖度,计算公式如下:
Figure BDA0003941303000000102
其中,vtirger为触发的变量,vpayload为载荷的变量,s(vtirgger,vpayload)为触发和载荷之间共享变量的数量,n(vpayload)为载荷变量的总数,如图13所示,
Figure BDA0003941303000000103
步骤5中若检测到木马,则输出的结果为:
检测到的木马在待测工程文件中的详细位置、置信度及木马描述信息,以及匹配结构的图形化显示:所述详细位置包括木马所在文件的文件名,模块名,行号等信息;所述木马描述信息包括木马的名称、来源、危害等信息;
采用两种方法来给出结果的图形化表征:第一种方法通过在匹配到的可疑漏洞数据流图中,标注被检测模块(待测工程文件中的代码)的节点名来显示结果,如图14所示;第二种方法则通过在被检测模块的数据流图中,用不同颜色标出匹配到的可疑漏洞节点来显示结果,如图15所示。
若未检测到木马,则输出“未检出到木马”的信息。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (10)

1.一种基于子图同构的RTL级硬件木马检测方法,其特征在于,包括以下步骤:
步骤1:对已知硬件木马文件进行分析,将其转换为木马特征有向图;
步骤2:根据步骤1中获取的木马特征有向图及木马相关信息构建木马库;
步骤3:对待测工程文件采取步骤1中的方法进行处理,得到待测工程文件的特征有向图;
步骤4:将待测工程文件的特征有向图与木马库中的木马特征有向图,利用子图同构匹配的方法,得到匹配结果;
步骤5:基于匹配结果输出检测结果。
2.如权利要求1所述的方法,其特征在于,步骤1中转换的过程包括对木马文件进行词法分析与语法分析,生成抽象语法树,解析抽象语法树获取其数据流图与控制流图,采用静态分支概率计算获得控制流图概率,并将数据流图与控制流图关联为木马特征有向图,所述木马文件包括一个或多个RTL文件。
3.如权利要求1所述的方法,其特征在于,步骤1中转换的过程具体包括以下步骤:
语法树生成:读取硬件木马的RTL文件,通过词法分析与语法分析,构建抽象语法树;
数据流图与控制流图获取:通过对所述抽象语法树进行模块解析,端口、变量及代码块解析,获得表达式与条件语句,然后对表达式与条件语句进行解析,根据变量关系获取数据流图边权值,形成数据流图与控制流图;
其中,所述数据流图表示数据在系统中被处理的过程,体现了数据之间的关系,其定义如下:
DFG(G)=(V,E,ρe,h,t)
其中,V={v0,v1,…,vn}表示节点的有限集合,节点是代码中变量的抽象表示;
Figure FDA0003941302990000021
为相连节点的边的集合,如(v0,v1)∈E表示节点v0和v1表示的变量之间存在赋值、条件关系;ρe为边权值函数,ρe(e0)表示边e0的权值;h,t分别表示第一个和最后一个节点;
所述控制流图表示系统状态的变化和转移,体现了系统运行状态之间的关系,其定义如下:
CFG(G)=(V,E,ρe,p,h,t)
其中,V={v0,v1,…,vn}表示节点的有限集合,为条件语句的抽象状态;
Figure FDA0003941302990000022
为相连节点的边的集合,(v0,v1)∈E表示节点v0在满足一定条件后进入节点v1;ρe为边权值函数,ρe(e0)表示边e0的权值;p为概率函数,p(v0,v1)表示从节点v0转换为节点v1的概率;h,t分别表示第一个和最后一个节点;
对于数据流图,通过边权值表示节点之间的关系,数据流图有以下三种节点关系:赋值关系,条件关系以及条件赋值关系,对应的三种边权值分别用1,2,3表示;
对于控制流图,通过边权值表示分支概率;
分支概率获取:通过对所述抽象语法树与所述控制流图进行静态分支概率计算,得到所述控制流图的分支概率;由语法树解析的结果得到端口、变量及条件语句,之后进一步解析将待计算的语句调整为树形结构;
木马特征有向图获取:通过将所述数据流图的节点与所述控制流图关联,获得木马特征有向图。
4.如权利要求3所述的方法,其特征在于,步骤2中构建的木马库中包含木马特征有向图及木马库配置信息,木马库配置信息记录相关木马信息用于对其木马库进行组织。
通过JSON文件进行组织时,利用“AES-T100”表示木马名;“is_netlist”字段表示该木马是否来自网表文件,“True”表示该木马来自网表文件,字段“True”为必要字段;利用“netlist type”记录网表文件的类型,若木马描述中“is_netlist”为“True”则必须指明该字段;“structure name”表示特征有向图中参与匹配的有效结构的名称,字段“structurename”为必要字段,且按照可疑木马、触发逻辑、载荷逻辑、其他结构的顺序来填写。
5.如权利要求4所述的方法,其特征在于,步骤2中构建木马库具体包括以下步骤:
生成配置文件:根据木马文件的信息生成配置文件,包括木马名称、端口列表、触发结构名称、载荷结构名称;
添加木马特征:根据所述配置文件,更新木马库配置文件,并添加所述特征有向图到木马库中。
6.如权利要求4所述的方法,其特征在于,步骤4中所述子图同构匹配的方法包括:
精确匹配:将待测工程文件与木马库中的木马特征,即从木马RTL代码中生成的木马特征有向图利用精确匹配算法进行一一匹配,若匹配时间超出设定时间,则记录本次匹配的信息,之后进行下一次匹配;若匹配通过,则标记为检测到木马,生成匹配结果;若匹配不通过,则标记为未检测到该木马,并进行以下的模糊匹配;
模糊匹配:首先读取超时记录,延长匹配时间进行匹配,利用模糊匹配算法将该超时记录的条目中记录的输入待测工程文件与木马的全部有效结构进行匹配,若匹配仍超时,则记录该条目,并标记为无法处理,继续处理下一记录;若匹配通过,则标记为检测到该木马,并生成结果,之后处理下一条记录;若匹配不通过,则标记为未检测到该木马,继续处理下一条目;
所述精确匹配算法包括:
基于邻域信息的节点剪枝算法:对于节点的匹配,考虑节点对应边权值约束,仅将满足约束的节点集作为候选节点集,其中,利用节点与边的关系,在进行匹配时对待匹配节点进行限制,子图中对应节点的所有边中,相同属性的边的数目必须小于待匹配图;
基于邻域信息的边剪枝算法:对于边的匹配,考虑数据流图边的权值约束,仅将满足约束的边集作为候选边集,在匹配时认为权值1即赋值关系与权值2即条件关系不同,权值3即条件赋值关系与权值1或权值2等同,当返回值为真时,将当前边对添加到边候选集中,若返回值为假则该边对被排除,从而减小边候选集;
所述模糊匹配算法中,将木马数据流图所有有效结构的频繁子图与待测工程文件的数据流图进行精确匹配。
7.如权利要求6所述的方法,其特征在于,步骤4中,所述子图同构匹配的方法还包括:
强制模糊匹配:将待测工程文件与木马库中木马特征利用模糊匹配算法进行一一匹配,若匹配时间超出设定时间,则记录本次匹配的信息,之后进行下一次匹配;若匹配通过,则标记为检测到该木马,生成匹配结果;若匹配不通过,则标记为未检测到该木马,并进行下一次匹配。
8.如权利要求5所述的方法,其特征在于,步骤5中,若检测到木马,则获取木马代码的位置信息,并计算置信度;若未检测到木马,则记录匹配条目信息;所述置信度的计算公式如下:
confidence=k1c1+k2c2+k3c3+k4c4
其中,c1、c2、c3、c4为计算置信度的4个参数,ki是参数的权值,其具体取值由木马特征决定,
Figure FDA0003941302990000041
c1表示匹配结果中数据流图变量和木马数据流图关键变量间用途相同的变量数与木马数据流图总关键变量数的比率,计算公式如下:
Figure FDA0003941302990000042
其中,vr为匹配结果中的数据流图变量,vs为木马数据流图中的关键变量,s(vr,vs)为vr和vs的最大相似变量个数,n(vs)为vs的个数,例如通过节点度的差异来衡量相似度,vr=5,vs=4,当节点度的差异在容许范围内时,认为两节点是相似变量;
c2表示匹配结果是否包含时钟和复位逻辑,计算公式如下:
c2=b(reset,clk)
其中b(reset,clk)为0或1,如果对时钟和复位之一有操作则为1,均无操作则为0;
c3表示匹配结果和木马控制流图的边概率平均差,计算公式如下:
c3=1-[|ρr(b1,b2)-ρs(b1,b2)|+…|ρr(bn,bn+1)-ρs(bn,bn+1)|]
其中,ρr(b1,b2)是匹配结果控制流图中节点b1流向节点b2的概率,ρs(b1,b2)是木马控制流图中节点b1流向节点b2的概率;首先检索并解析匹配结果的数据流图,获得对应的控制流图信息;用同样的方法获得可疑木马的控制流图信息;之后将两者进行匹配,并计算匹配的控制流图的对应边的概率差,计算所有结果的算数平均值用于计算最后的置信度的参数c3
c4为匹配结果中触发和载荷之间的依赖度,计算公式如下:
Figure FDA0003941302990000051
其中,vtirgger为触发的变量,vpayload为载荷的变量,s(vtirgger,vpayload)为触发和载荷之间共享变量的数量,n(vpayload)为载荷变量的总数,
Figure FDA0003941302990000052
步骤5中若检测到木马,则输出的结果为:
检测到的木马在待测工程文件中的位置信息、置信度及木马描述信息,以及匹配结构的图形化显示:所述位置信息包括木马所在文件的文件名,模块名,行号信息;所述木马描述信息包括木马的名称、来源、危害信息;
若未检测到木马,则输出“未检出到木马”的信息。
9.如权利要求8所述的方法,其特征在于,步骤5中,采用两种方法来给出结果的图形化表征:第一种方法通过在匹配到的可疑漏洞数据流图中,标注待测工程文件中的代码的节点名来显示结果;第二种方法则通过在待测工程文件中的代码的数据流图中,用不同颜色标出匹配到的可疑漏洞节点来显示结果。
10.如权利要求3所述的方法,其特征在于,步骤1将所述数据流图的节点与所述控制流图关联的方法包括通过节点名进行关联,在数据流图的节点名中包含控制流图的索引,可通过数据流图检索到对应的控制流图。
CN202211424243.9A 2022-11-14 2022-11-14 一种基于子图同构的rtl级硬件木马检测方法 Pending CN115688104A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211424243.9A CN115688104A (zh) 2022-11-14 2022-11-14 一种基于子图同构的rtl级硬件木马检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211424243.9A CN115688104A (zh) 2022-11-14 2022-11-14 一种基于子图同构的rtl级硬件木马检测方法

Publications (1)

Publication Number Publication Date
CN115688104A true CN115688104A (zh) 2023-02-03

Family

ID=85052151

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211424243.9A Pending CN115688104A (zh) 2022-11-14 2022-11-14 一种基于子图同构的rtl级硬件木马检测方法

Country Status (1)

Country Link
CN (1) CN115688104A (zh)

Similar Documents

Publication Publication Date Title
CN109426722B (zh) Sql注入缺陷检测方法、系统、设备及存储介质
Emerson Model Checking and the Mu-calculus.
Song et al. Efficient alignment between event logs and process models
US10346287B1 (en) Detection of degenerate software forms in object oriented code
US10409706B2 (en) Automated test generation for structural coverage for temporal logic falsification of cyber-physical systems
Lee et al. Test coverage criteria for software product line testing: Systematic literature review
Duley et al. A program differencing algorithm for verilog HDL
Zhang et al. Flow Chart Generation‐Based Source Code Similarity Detection Using Process Mining
Cheers et al. A novel graph-based program representation for java code plagiarism detection
Ahmad et al. Don't cweat it: Toward cwe analysis techniques in early stages of hardware design
Alomari et al. Clone detection through srcClone: A program slicing based approach
Enea et al. Compositional invariant checking for overlaid and nested linked lists
Deutschbein et al. Toward hardware security property generation at scale
Shen et al. Accelerating hardware security verification and vulnerability detection through state space reduction
Lin et al. Gdsmith: Detecting bugs in graph database engines
CN116702157A (zh) 一种基于神经网络的智能合约漏洞检测方法
Lingzi et al. An overview of source code audit
CN114996705B (zh) 基于脆弱性类型和Bi-LSTM的跨软件脆弱性检测方法及系统
Alian et al. Bridging semantics for automated web form testing
US20230100418A1 (en) Metadata-driven data ingestion
CN115688104A (zh) 一种基于子图同构的rtl级硬件木马检测方法
Hashemi et al. Graph centrality algorithms for hardware trojan detection at gate-level netlists
Liu et al. MVDLite: A fast validation algorithm for Model View Definition rules
Bidoit-Tollu et al. Type-based detection of XML query-update independence
CN107292027A (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