一种基于RTL级特征提取的硬件木马检测方法与流程

文档序号:17928134发布日期:2019-06-15 00:34阅读:259来源:国知局
一种基于RTL级特征提取的硬件木马检测方法与流程

本发明涉及硬件木马检测技术领域,尤其涉及一种基于rtl级特征提取的硬件木马检测方法。



背景技术:

硬件是现代电子通讯和控制系统的重要组成部分,它们往往控制着极具价值的电子信息系统。长期以来,人们对软件的安全性高度关注,却忽视了硬件的安全性。近年来,随着硬件木马(hardwaretrojan,ht)的出现和发展,硬件的安全性受到了严峻的挑战。在我国,硬件安全的需求显得尤为迫切,我国的工业、军事和国防等关键机构均大量采用进口芯片、处理器和设备等,电路/半导体行业也大多依赖国外生产技术进行流片生产,因此硬件设备的安全性无法得到保障。

参考图1,硬件木马是对集成电路(integratedcircuit,ic)的恶意修改,其可以在集成电路生命周期中的各个阶段进行植入,比如功能描述阶段、设计阶段(包含寄存器传输级(register-transferlevel,rtl)、门级(gate-level)、布局布线级(layoutlevel)),以及制造生产阶段。硬件木马一般由触发模块和负载模块两个部分构成,其通常潜伏在电路中,只有在特定的情况下才会被触发。当硬件木马被激活时,其可能损毁系统的硬件设备,或导致系统拒绝服务,或为攻击者创建后门以使攻击者能够访问系统来获取敏感机密信息。在设计阶段的rtl级,通过设计团队的设计者在集成电路的rtl源码中或者通过第三方供应商在第三方知识产权核(third-partyintellectualproperty,3pip)中植入硬件木马是最为常见的硬件木马植入方式。在这个阶段,攻击者拥有高度的灵活性来实现任意的恶意功能及触发条件。因此,针对rtl级电路设计进行硬件木马检测是十分必要的。

rtl级硬件木马检测主要是基于信任验证(trustverification)的检测方法。信任验证技术通过分析电路设计中的未使用电路或几乎未使用的电路来检测硬件木马。这种分析可以分为基于源代码检查的动态检测方法和计算输入信号与输出信号之间的影响(如,控制值等指标)的静态检测方法。在动态检测方法中,有许多广泛使用的代码覆盖指标:线路、触发条件、切换、有限状态机(finitestatemachine,fsm)、分支和路径覆盖等。这类检测方法将未使用的电路简单的定义为未覆盖的电路,并集中对这部分电路进行分析以实现硬件木马检测。上述指标有助于识别某些硬件木马,但攻击者可以通过修改实现硬件木马的代码编写方式来逃脱这类硬件木马检测方法的检测。静态检测方法基于硬件木马的触发输入通常对输出信号具有弱影响这一现象,通过静态布尔函数分析识别几乎未使用的电路。然而这类方法通常只针对组合电路设计,并且对某些类型的硬件木马(如,时序型木马)会出现较多误判。

此外,现有的基于rtl级电路验证的硬件木马检测方法是从设计者的角度出发,针对特定的目标电路判断是否含有硬件木马,通常需要目标电路的干净参考,且可能出现较多误判。



技术实现要素:

本发明所要解决的技术问题在于提供一种能够提高木马检测效果的基于rtl级特征提取的硬件木马检测方法。

本发明是通过以下技术方案解决上述技术问题的:

一种基于rtl级特征提取的硬件木马检测方法,包括以下步骤:

步骤a:对样本库中的硬件木马样本进行行为特征分析;

步骤b:对硬件木马样本进行源码解析,构建符合行为特征的代码模型数据库;

步骤c:对待测电路按照步骤b所述方法进行源码解析,提取代码模型;

步骤d:将步骤c中得到的待测电路代码模型与步骤b中得到的硬件木马样本的代码模型数据库进行对比匹配,确定匹配程度并输出匹配系数;

步骤e:输出检测结果。

优选地,步骤a中所述的硬件木马样本行为特征分析包括对载体电路的脆弱性分析和对硬件木马的触发及负载模块的行为模式分析。

优选地,所述行为特征包括未使用输出、隐蔽信道、单组明文序列比较触发器、组合式触发器和计数器触发器。

优选地,步骤b所述的硬件木马样本的源码解析包括提取木马样本的电路设计中符合行为特征的触发及负载模块源码进行代码解析和转换,得到符合行为模式的代码模型;所述源码解析包括以下步骤:

-扫描过程:从文件中按字符读取硬件描述代码的源码,过滤掉代码中的注释内容并将原始语句拆分成单独的语义单位,输出包括变量、数字和运算符的token序列;

-设置module列表:每一个module列表包括输入列表、输出列表、寄存器列表、代码块列表和子模块列表,其中子模块列表中的元素与module的结构相同,输入列表、输出列表和寄存器列表均为包括变量名、长度和类型的变量;

-解析过程:读取已提取的token序列,根据保留字确定随后的字符类型并将对应代码块填写至module列表的相应位置。

优选地,判断硬件源码所述的行为特征的方法如下:

-未使用输出:在分析模块的代码块的同时,对代码中的右侧数值进行统计,得到输出变量与寄存器的使用次数,如果未被使用的输出列表或者该模块中的输出列表为空,则判定硬件源码没有匹配到此类特征;

-隐蔽信道:该特征在定义的代码结构中表现为,在同一always语句块中,代码段中的赋值语句每8位一组的右侧数值完全相同,左侧的值对应同一变量的连续不同比特位;

-基于单组明文序列比较的触发器:在循环中依次检测每个模块always语句块中的条件判断语句的右值,若为64比特以上的常量,则模块中存在该类型触发器;

-组合式触发器:检测所有与操作涉及的变量并寻找该变量的赋值语句;若对这些变量的赋值语句的右值中含有常量且常量比特位数的和超过64,则认为该模块存在组合式触发器;

-计数器式触发器:先检测计数器,遍历语句列表,检测对应指令的右侧数值列表是否包含对应的左侧数值与数字常量,即判断该指令是否用于计数器的自加操作;统计相同条件下对同一计数器的“自加”操作的语句数量,同时获取条件中比较语句的右侧数值的可取值范围,两者比值为单次触发率;再次遍历,检测条件列表中以该计数器变量名为左侧变量的判断语句,以右值为预定上限,计算总检测概率,如小于1/2的64次方,视为计数器式触发器。

优选地,步骤d中匹配程度的确定方法为:若待检测样本的代码模型完全覆盖待检测电路的某个特征,则匹配程度为1,若不能完全覆盖,则匹配程度为覆盖百分比,匹配系数pmc的计算方法为:

其中,i为匹配到负载特征的数量,每个特征的匹配程度为loadi(0≤loadi≤1);j为匹配到触发特征的数量,每个特征的匹配程度为trigj(0≤trigj≤1);a+b=1,a和b分别代表负载特征和触发特征对pmc的影响程度。

优选地,步骤e中的输出结果为:

若无匹配特征,则输出待检测样本是安全的;

若有匹配特征(完全或不完全匹配),则输出匹配系数pmc、特征信息及可疑代码。

本发明提供的基于rtl级特征提取的硬件木马检测方法的优点在于:从用户角度出发,结合传统计算机软件病毒的检测方法,通过将数据库中的硬件木马样本进行分析解码,能够针对未知硬件木马进行有效的检测和威胁响应,无需干净模型或芯片作为参考。

附图说明

图1是本发明的背景技术提供的一般的硬件木马的功能逻辑结构示意图;

图2是本发明的实施例所提供的基于rtl级特征提取的硬件木马检测方法的框架图;

图3是本发明的实施例所提供的aes加密芯片中易受硬件木马威胁模块示意图;

图4是本发明的实施例所提供的一直开启型硬件木马模型示意图;

图5是本发明的实施例所提供的触发型硬件木马模型示意图;

图6是本发明的实施例所提供的硬件木马通过码分多址方式调制信息建立隐蔽信道的示意图;

图7是本发明的实施例所提供的以明文序列作为触发条件的触发模块内部逻辑图;

图8是本发明的实施例所提供的以组合明文作为触发条件的触发模块内部逻辑图;

图9是本发明的实施例所提供的源码解析流程图;

图10是本发明的实施例所提供的源码分析结果的存储结构示意图;

图11是本发明的实施例所提供的代码块存储结构示意图;

图12是本发明的实施例所提供的硬件木马样本的代码模型示例。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。

本实施例以aes载体电路为例进行说明,aes算法由于具有较好的抗攻击性且易于实现,被广泛用于硬件加密实现。针对aes电路的攻击主要目的是泄漏加密密钥以及加密过程中的中间状态值,参考图2,斜线方格部分是针对aes载体电路的硬件木马的攻击重点。

如图3所示,一种基于rtl级特征提取的硬件木马检测方法,包括以下步骤:

步骤a:对样本库中的硬件木马样本进行行为特征分析;

硬件木马样本行为特征分析包括对载体电路的脆弱性分析和对硬件木马的触发及负载模块的行为模式分析。所述行为特征包括未使用输出、隐蔽信道、单组明文序列比较触发器、组合式触发器和计数器式触发器。

aes电路载体中植入的硬件木马的攻击方式多样化且具有代表性,参考图4和图5,根据硬件木马是否包含触发模块可以分为:一直开启型硬件木马模型和触发型硬件木马模型。

一直开启型硬件木马模型:以aes-t100为例,该木马的功能为在aes密码芯片运行加密算法的过程中建立隐蔽信道,并进一步通过该隐蔽通道泄露加密过程中的加密密钥。如图6所示,该类型硬件木马通过内置伪随机数发生器产生cdma代码序列,随后将该序列初始化为预设的一组明文;该代码序列被用于调制待泄露信息,随后将处理过的待泄露信息发送到泄露电路;信息处理的过程是将cdma序列的前8个比特与待泄露信息的对应比特进行“异或”操作。

一直开启型硬件木马没有触发模块,负载模块一直处于激活状态。因此我们无法从触发条件的角度进行分析并提取触发模块的代码模型;对此类型的硬件木马的检测只能依赖于对负载模块的检测。

触发型硬件木马模型:此类型的硬件木马的检测主要集中在分析其触发模块并针对触发模块的代码模型特点进行检测。由于硬件木马对可控性与潜伏性的要求,硬件木马的设计中大多会设置触发模块以管理硬件木马的活动状态。而要保证硬件木马顺利躲过测试阶段的逻辑测试,以及提高硬件木马植入者对植入的硬件木马的控制力,则必须在硬件木马的触发模块的设计中设置苛刻的触发条件以降低硬件木马被意外触发或逻辑测试时触发的可能性。硬件木马的触发方式主要有三种:明文序列触发;多组明文序列组合式触发;计数器式触发。图7和图8中分别给出了前两类硬件木马触发模块的示例。

触发型硬件木马的触发概率通常会设置的比较低,若触发条件只是匹配一组明文序列,那么该明文序列通常是很长的字符串;如图7所示,最左侧的圆形部件为比较器,用于判断两个128位输入是否是相同的明文序列,只有输入的明文序列和预设序列相同时,激活信号才会被置为1,进而触发负载模块。

在上述触发器的基础上,可以通过将多个触发器组合的方式形成更大规模的组合式触发器。图8所示的触发器共有4个单序列触发器,共需匹配4组128位明文序列;这种触发方式是对单明文序列触发器的扩展,以级联的方式对单明文序列触发器进行组合,使得总触发概率远低于一个单明文序列触发器。针对上述触发型硬件木马的行为特征,我们可以进一步进行源码解析,提取出对应的代码模型。

符合计数器式触发器类型行为特征的硬件木马通常对特定的信号序列进行检测,在该信号序列的部分或全部序列匹配预设序列时,计数器的计数值加1,当计数器的数值达到预设阈值时,硬件木马的负载模块被激活。

符合未使用输出类型行为特征的硬件木马可能将敏感或机密信息以功耗、声波、辐射等物理信号的方式泄漏到外界。未使用输出和隐蔽信道两项特征可以覆盖一直开启型硬件木马。

步骤b:对硬件木马样本进行源码解析,构建符合行为特征的代码模型数据库;

所述源码解析包括提取木马样本的电路设计中符合行为特征的触发及负载模块的源码进行代码解析和转换,得到符合行为模式的代码模型;所述源码解析包括以下步骤:

-扫描过程:参考图9,从文件中按字符读取硬件描述代码的源码,过滤掉代码中的空白字符和注释内容,并将原始语句拆分成单独的语义单位,包括关键字、运算符、数值等;最终输出包括变量、数字和运算符的token序列;

-设置module列表:参考图10,每一个module列表包括输入列表、输出列表、寄存器列表、代码块列表和子模块列表,其中子模块列表中的元素与module的结构相同,输入列表、输出列表和寄存器列表均为包括变量名、长度和类型的变量;

-解析过程:读取已提取的token序列,根据保留字确定随后的字符类型并将对应代码块填写至module列表的相应位置。

例如:读到module保留字刷新缓存并开始对新模块进行分析;读到endmodule保留字则将缓存中当前模块的内容保存至module列表并结束当前模块分析;读到input、output、wire/reg就将接下来数个变量的类型定义为输入、输出与寄存器类型;always表示应开始填写代码块等,代码块存储结构示意图如图11所示,最终得到图12所示的硬件木马样本的代码模型示例。

判断硬件源码所述的行为特征的方法如下:

-未使用输出:在分析模块的代码块的同时,对代码中的右侧数值进行统计,得到输出变量与寄存器的使用次数,如果未被使用的输出列表或者该模块中的输出列表为空,则判定硬件源码没有匹配到此类特征;

-隐蔽信道:该特征在定义的代码结构中表现为,在同一always语句块中,代码段中的赋值语句每8位一组的右侧数值完全相同,左侧的值对应同一变量的连续不同比特位;

-基于单组明文序列比较的触发器:在循环中依次检测每个模块always语句块中的条件判断语句的右侧数值,若为64比特以上的常量则模块中存在该类型触发器;

-组合式触发器:检测所有“与”操作涉及的变量并寻找该变量的赋值语句;若对这些变量的赋值语句的右值中含有常量且常量比特位数的和超过64,则认为该模块存在组合式触发器;

-计数器式触发器:先检测计数器,遍历语句列表,检测对应指令的右侧数值列表是否包含对应的左侧数值与数字常量,即判断该指令是否用于计数器的自加操作;统计相同条件下对同一计数器的“自加”操作的语句数量,同时获取条件中比较语句的右侧数值的可取值范围,两者比值为单次触发率;再次遍历,检测条件列表中以该计数器变量名为左侧变量的判断语句,以右值为预定上限,计算总检测概率,如小于1/2的64次方,视为计数器式触发器。

步骤c:对待测电路按照步骤b所述方法进行源码解析,提取待检测电路设计的存储结构的代码模型;

步骤d:将步骤c中得到的待测电路代码模型与步骤b中得到的木马样本的代码模型数据库进行对比匹配,根据匹配结果输出匹配系数pmc(patternmatchingcoefficient);

对于匹配到的特征,返回各个特征的匹配程度,对于第i个特征,判断待检测样本的代码模型是否能完全覆盖该特征,若能,则匹配程度为1;若不能,则返回覆盖百分比,模式匹配系数pmc计算方法如下:

若负载特征即未使用输出和隐蔽信道特征匹配到i个,每个特征的匹配程度为loadi(0≤loadi≤1);触发特征即基于单组明文序列比较的触发器、组合式触发器和计数器触发器特征匹配到j个,每个特征的匹配程度为trigj(0≤trigj≤1),则

其中,a+b=1,a和b分别代表负载特征和触发特征对pmc数值的影响程度;如果总特征数为5,其中用于匹配触发特征的特征数为3,用于匹配负载特征的特征数为2,则a=0.4,b=0.6。

步骤e:输出检测结果。

若无匹配特征,则结果输出待检测样本是安全的。

若有匹配特征(完全或不完全匹配),则输出危险系数pmc、特征信息及可疑代码;从而提醒用户做进一步验证。

上述步骤中的字母仅用于标记区分各步骤,不用于限定各步骤之间的顺序关系。

下表中给出了采用本实施例的检测方法对部分电路进行检测的结果:

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,在不脱离本发明的精神和原则的前提下,本领域普通技术人员对本发明所做的任何修改、等同替换、改进等,均应落入本发明权利要求书确定的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1