基于有界模型的微型木马检测方法与流程

文档序号:15559023发布日期:2018-09-29 01:48阅读:212来源:国知局

本发明涉及微型木马检测方法,尤其是涉及一种基于有界模型的微型木马检测方法。



背景技术:

硬件木马通常是指在原始电路中植入的具有恶意功能的冗余电路。硬件木马在电路中一般处于潜伏状态,只有在特定条件下才能被触发,触发后将被攻击者利用而产生极大危害。它可以泄露或篡改数据,修改或破坏电路功能等。硬件木马也属于计算机病毒,不同的是,病毒对于其攻击的主机的原始功能有必然的危害,而硬件木马对于设备的大部分操作保持顺从,并且不干涉原始功能。

硬件木马的研究纷繁复杂,主要体现在其三个特征:

(1)隐蔽性:主要体现在硬件木马通常拥有很小的面积,对于超大规模集成电路,其面积相比于原设计甚至可以忽略不计。硬件木马可以分布在电路的任何位置,在未被触发时,对电路原有功能无影响。

(2)存在的多样性:主要体现在硬件木马的不同行为目的,包括窃取机密信息,改变或破坏电路功能以及改变电路的性能等。目的的不同导致存在物理特性的差异,如是否增加电路、是否改变电路的原有尺寸参数、是否需要通过主/侧信道输出内部信息以及是否需要进行硬件木马激活及如何激活等。

(3)植入节点和层次的多样性:在现代集成电路的设计流程中,通常会引入ip核,包括软核、固核和硬核。由于集成电路产业链的全球化以及攻击领域向底层硬件渗透的现实,硬件木马的植入可能发生在流程中的几乎所有环节。

硬件木马体积小,触发条件罕见,电路执行正常功能时处于休眠状态。有些硬件木马甚至可以检测到测试状态并自动隐身以躲避检测,传统的测试方法并不能将其检测出来。

微型木马指的是通过细微修改原始电路而注入的硬件木马。由于微型木马对原始电路的改进较小,注入后在时延和功耗上的变化甚至低于工艺偏差对时延和功耗的影响,因此现有基于分析时延和功耗的旁路木马检测方法难以检测这种微型木马。



技术实现要素:

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于有界模型的微型木马检测方法。

本发明的目的可以通过以下技术方案来实现:

一种基于有界模型的微型木马检测方法,包括以下步骤:

1)将一批具有相同功能的芯片分为训练组和测试组;

2)对所述训练组进行物理检测,提取可疑电路对;

3)使用有界模型检验法对所述可疑电路对进行功能检测,根据检测结果判断是否存在微型木马,并建立基于反例的测试序列库;

4)以所述测试序列库对测试组进行微型木马检测。

进一步地,所述物理检测具体为:

切割芯片模制涂层,显示出电路表面结构,重复扫描芯片的表面,获得芯片布局。

进一步地,所述提取可疑电路对具体为:

对比所述训练组中每一芯片对的芯片布局,若存在某一芯片对的两个芯片布局不同,则从所述芯片布局中提取每个含有差异的电路以及其周围电路,形成可疑电路对。

进一步地,所述使用有界模型检验法对所述可疑电路对进行功能检测具体为:

301)判断是否存在可疑电路对,若是,则执行步骤302),若否,则结束;

302)取出一可疑电路对,用smv语言描述所述可疑电路对,形成两个电路模型,以相同信号作为所述两个电路模型的输入;

303)设置所述两个电路模型的ltl属性;

304)采用有界模型检验法进行ltl属性验证,判断是否存在反例,若是,则采集所述反例加入反例集合中,若否,则判定可疑电路对不存在微型木马,返回步骤301)。

进一步地,步骤304)具体为:

341)初始化有界模型检验法的边界值k;

342)判断通过有界模型检验法是否找到一个反例,若是,则采集所述反例加入反例集合中,若否,则执行步骤343);

343)判断当前边界值k是否大于或等于界限阈值n,若是,则返回步骤301),若否,则令k=k+i,i为设定步长,返回步骤342)。

进一步地,所述边界值k的初始值为芯片的时序电路的时序深度。

进一步地,所述建立基于反例的测试序列库具体为:

获得反例对原始电路功能的影响,确定微型木马的实际功能,建立一个包含微型木马功能和芯片输入的数据库,作为测试序列库。

与现有技术相比,本发明具有以下优点:

1.本发明所设计的木马检测方法能够检测通过轻微修改原始设计注入的微型木马。

2.本发明所设计的木马检测方法能够在优化的计算时间内,利用bmc,发现检测序列时序深度较大的微型木马。

3.本发明采用有界模型检验进行微型木马检测,判断电路对的功能是否一致,可以准确区分可疑电路对中的微型木马与无关位的电路优化。

附图说明

图1是不同电路变换示意图;

图2是电路真值表中无关位示意图;

图3是微型木马检测方法整体框架图;

图4是边界阈值k的设置流程图;

图5是有界模型检验流程图;

图6是使用扫描atpg的等价检测方法图;

图7是功耗和时延变化范围图,其中,(a)为功耗变化范围图,(b)为时延变化范围图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

本发明提供一种基于有界模型的微型木马检测方法,通过考虑时序逻辑电路的时序性以及有界模型检验的特点,快速高效地对芯片进行木马检测,可以用于提高微型木马的检测效率。

有界模型检验是一种重要的软件形式化方法,模型检测的基本思想是用状态迁移系统(s)表示系统的行为,用模态/时序逻辑公式(f)描述系统的性质。这样“系统是否具有所期望的性质”就转化为数学问题“状态迁移系统s是否是公式f的一个模型”,用公式表示为s|=f。对有穷状态系统,这个问题是可判定的,即可以用计算机程序在有限时间内自动确定。模型检验的一个主要优点是能够给出反例,以解释命题不成立的原因。

时序逻辑电路的输出不仅与电路的输入有关,还与电路上一个时间状态的输出有关,它的状态主要由存储电路来记忆和表示。典型的时序逻辑电路器件包括计数器、寄存器、顺序脉冲发生器等。时序深度指的是时序电路初始状态和其他所有可达状态之间所有最短路径中最长的一个。计算时序深度的方法是找到初始状态所能达到的最长的距离,寻找的过程可以是迭代的。

本发明检测方法主要分成三部分:第一部分是将具有相同功能的芯片分为训练组和测试组,对训练组进行物理检测,并通过芯片上的两两比较提取可疑电路对;第二部分使用bmc来检测可疑电路对上的不一致的功能;第三部分将这些不一致的功能及其相应的输入序列收集到漏洞扫描程序库中,建立基于反例的测试序列库,并使用该测试序列库来对测试组进行检测。该方法能够在优化的计算时间内,时序电路中检测序列时序深度较大的微型木马。此外,该方法可以准确区分逻辑综合中的微型木马与无关位的电路优化。本发明检测方法中,若在第一部分中未提取到可疑电路对,则不进行第二部分和第三部分;若在第二部分中未检测到不一致的功能,则不进行第三部分,有效提高了检测效率。

实施例

1.木马注入

本实施例通过在原始电路设计中稍微改变部分电路的真值表来注入微型木马。然后修改原始电路表示新的真值表,并将修改后的电路与原始电路组成一个可疑电路对。

具体而言,本实施例随机提取原始设计中的部分电路,并将这些门生成真值表。被选择的电路通常在原始电路内部,远离输入和输出端口,这样注入的木马会隐藏在一定的时序深度内,随机向量难以检测到。

图1为不同的电路变换示意图。在原始设计中选择六个门,当输入信号为"000"、"010"、"100"时,它们的真值表分别为真。然后本发明按照以下两种方式将电路替换(c1和c2)注入到原始设计中去。

c1:改变选定门的真值表,并尝试产生不一致的功能。例如,当输入为"001"时,将真值表的取值修改为真(1)。优化真值表后,该变换产生一个修改后的电路。如果这种取值改变发生在真值表的无关位上,这种电路变换就是无关位的电路优化,它影响会被电路内部信号屏蔽,不会影响电路输出,因此这种变化是无影响的,不是硬件木马。否则,这种改动会产生不一致的功能,本发明将这种电路变化成为一个微型木马电路。

图2是电路真值表中无关位的示意图。其中,本电路是一个五位计数器,内部信号从“000”开始,加1变化到“100”,最后在变会“000”。真值表表示信号o0在下一个时间片的取值与当前内部信号的取值的关系。由于内部信号不可能取“101”,“110”和“111”,因此这三种取值就是真值表中的无关位(x),电路优化时这些信号可以取任意值而不影响电路的功能。

c2:保持真值表不变,优化真值表的公式,为新公式产生一个电路。这种电路上的改变保证了电路功能上的不变,称之为等价的电路变换。图1中用"~i2&~i0+~i1&~i0"代替公式"~i2&~i0+i2&~i1&~i0",并优化选中的门。

2.提取可疑电路对

木马检测方法的第一部分为提取可疑电路对。

给两个电路相同的输入,若相应部分的输出在同一时序状态时不相同,我们称这两个电路为可疑电路对。这是因为有些芯片在物理检测后虽然显示出不同,但不能把所有含有差异的两个电路对都视为木马。有三个原因导致不同批次的芯片可能并不完全相同:

(1)使用高质量ip核进行升级。ip核在集成电路里为芯片设计的可重用部分。由于ip核的升级,基于ip核为基础进行的集成电路设计将被改变。

(2)在保持功能相同时,对电路布局进行升级,包括无关位的电路优化和等价的电路变换。由于物理检测的对象为具有相同功能的电路模块,电路模块的布局升级后,电路的布局设计在物理检测的扫描下的物理构造将被改变。

(3)微型木马的注入。由于注入木马后的电路在设计上违背了原始电路设计者的设计意图,物理检测很容易将检测出这种改动。

具体方法如图3所示。首先,从相同功能但不同来源的芯片组中采集一些芯片,并将所选择的芯片作为训练组,而剩下的芯片作为测试组。训练组通常限定在芯片总数的1%以内,以降低物理检测成本。其次,在训练组中对这些芯片进行物理检测。具体来说,切割芯片模制涂层,并显示出电路的表面结构。然后重复扫描芯片的表面,并获得芯片布局。第三,通过成对比较来检查这些芯片的布局,直到该方法检查完所有芯片对。一旦两个芯片不相同,从这些布局中提取每个含有差异的电路以及其周围电路,并将它们视为可疑电路对。另外,如果两个芯片使用不同的技术库,直接将芯片对中每个相应组件的网表设置为可疑电路对。第四,将可疑电路对存储到数据库中以供进一步分析。

3.有界模型检验

木马检测方法的第二部分为有界模型检验。

导致不同批次的芯片可能并不完全相同的原因,可疑电路对可以分为三种。前两种可疑电路对虽然在结构和设计上做了改动,但其改动意图是为了提高芯片的性能,与原始电路设计者的设计意图相同。第三种可疑电路对由黑客改动,与原始电路设计者的设计意图相违背,也就是功能不一致。

为了区分前两种可疑电路对与微型木马,使用bmc来检测可疑电路对是否包含不一致的功能。一旦存在这样的功能,我们假设黑客恶意更改了可疑电路对中的一个电路,两个不一致的功能中,有一个由微型木马的注入引起。

具体而言,检测两电路在相同的输入信号到达时,输出信号是否保持相同。首先,使用smv语言描述两个电路,并将相同的信号施加到其输入上。

g((u1=v1)&(u2=v2)&…(ui=vi))(1)

令u={u1,u2,...,ui}表示一个电路的输出信号,v={v1,v2,...,vi}表示另一个电路的输出信号。公式(1)为一个属性命题:即两电路的对应输出分别相等。一旦命题失败,这意味着可疑电路对的输出变得不一致,并且其中一个电路里包含微型木马。此外,bmc工具提供了一个激发不一致输出的反例,而反例中的输入序列就是微型木马的测试序列。

bmc的基本思想是检测给定边界阈值k内的所有路径(或状态)的属性。当边界阈值k的值增加时,bmc的计算时间迅速增加。如果将k直接设置为时序电路时序深度的数倍,则计算时间将是巨大的。如图4所示,本发明提出了一种算法来寻找合适的k值并减少计算时间。首先,将k设置为较小的初始界限t(等于时序电路的时序深度),如果bmc找不到反例,则将k逐渐增大i,i为设定步长,。通过上述步骤,本方法避免直接采用过大的k值,能够快速找到合适的k值,减少检测时间。

图5给出了检测电路对是否含有不一致功能的流程图,具体步骤如下:

第一步:检查数据库是否仍然包含可疑电路对。如果是,从数据库中取出一对并进入下一步;否则,方法的第二部分结束。

第二步:用smv语言描述两个电路,并将相同的信号分配给它们作为输入。

第三步:根据公式(1)为该电路对提出ltl属性。

第四步:使用bmc检查不一致的函数。最初设置一个小的k。如果bmc找到一个反例,那就意味着存在一个功能不一致的电路,返回到第一步;否则,进入下一步。

第五步:检查当前边界k是否不小于阈值n。如果是,边界k加i,重复bmc搜索反例;否则,认为当前电路对不存在不一致的功能。

上述步骤中使用的smv(symbolicmodelverifier)语言是卡内基梅隆大学开发设计的一种语言,以方便描述有限状态系统和ctl时态逻辑。smv基于的原理是:把实际中的系统建模为有限状态系统,系统所要满足的性质用ctl时态逻辑表示,然后把它们作为smv的输入,自动执行模型检测算法,得出性质在系统上是否成立,若不成立就给出反例,说明为什么不成立。

4.使用测试序列对芯片进行测试

木马检测方法的第三部分使用测试序列库对芯片做进一步测试。对于有界模型检验得到的结果,建立一个由反例中的输入序列组成的数据库,也就是测试序列库。测试序列库在bmc检测功能不同的电路对时,存在两种情况:

(1)出现反例。这意味着当这两个电路具有相同的输入时,反例中的输入序列会导致不一致的功能。这两个电路中的一个违反了设计者的设计意图,并且可能被注入了一些恶意功能。因此,我们收集输入和输出序列的反例,并建立一个数据库进一步分析。

(2)没有出现反例。尽管这两个电路是不同的,在界限阈值k增加到阈值n的过程中,它们的输出仍然是相同的。有两个原因会出现这样的情况。首先,这两个电路的差异实际上是等价的,没有不一致的功能存在。其次,差异是无关位的电路优化导致的。由于功率和延时优化的要求,逻辑综合常常将不同的值分配到无关信号上。由于其他内部信号阻塞了修改后的无关位传递到输出信号,所以电路差异是无意义的,它不是微型木马。

反例的触发输入序列成为建立测试库的宝贵材料。首先,工程师可以分析这些不一致的输出信号的影响,比较输出对原始电路功能的影响,然后确定微型木马的实际功能。其次,可以在反例中搜索对应于输入序列的芯片输入。最后,可以建立一个包含木马功能和芯片输入的数据库。这种方法不仅使物理检测的成本变得合理,工程师也可以使用库中的输入序列来测试其他芯片。

5.案例分析

本发明所提出的方法能够检测时序深度较大的时序电路中的微型木马。例如,iscas'89基准中的电路s510包含19个输入,7个输出,6个寄存器和179个门,其时序深度达到46。一旦一个微型木马隐藏在一个很深的时间框架内,工程师很难通过模拟随机输入序列来模拟出这个微型木马。但是,bmc使用sat求解器,并可以快速检测隐藏的微型木马。本发明使用bmc工具nusmv来验证公式(1)中的属性。首先设置一个时序界限k来减少bmc的计算时间。工具nusmv使用的初始界限为k=10。如果反例在k达到10时没有出现,那么当k不大于完备性阈值n时,将边界k增加值i。随后,再次验证属性,并在更深的时序范围内检查属性。本发明将i设为5,从而时序k可以很快达到合适的值。同时,逐步增加边界k比直接将k设置为阈值n更为合理,因为大的边界k通常需要大量的计算时间。最后,我们假设完备性阈值n等于设计的时序深度。当k达到46并且没有反例出现时,我们认为该属性是真实的,公式一得到满足,并且这个可疑电路对中没有不一致的功能存在。

为了说明本发明微型木马检测方法的性能,通过下列三个指标进行评价:

检测时间:传统的木马检测方法,如随机向量检测方法,因为需要尽可能穷尽测试序列,指数增长的测试向量使得这种方法不适用于时序电路。本发明微型木马检测方法不用穷尽所有的测试序列,检测时间较少,但是检测时间也受电路的规模和时序深度影响。为了测试bmc的运行时间,在bmc检测过后,我们使用”time”语句来调出系统运行时间t。

功率消耗:一种电路的旁路信号,它在一定程度上反映了电路的内部逻辑以及工作情况。当电路中注入硬件木马时,会引起旁路信号的变化,原电路的旁路信号和木马电路的旁路信号不相同。通常,旁路分析法通过对比原电路和木马电路的旁路信号特征的差异来判断芯片中是否含有木马。若旁路信号一致,则说明待测芯片不含有硬件木马,反之则含有木马。

然而旁路信号本身也含有多种噪声,包括电源噪声、量子化噪声、电路进行逻辑运算的转换噪声等。由于本发明检测的木马为微型木马,微型木马产生的旁路信号十分微弱,噪声就能掩盖了微型木马对旁路信号的影响,因此旁路分析法难以检测这类微型木马。

本发明使用designcompiler工具来检测每个可疑电路对在木马注入前后的功率消耗,并且证明木马检测方法的检测结果不受旁路信号的影响。

时间延迟:时序电路的一个特性,也属于旁路信号。由(2)的描述可知,当vlsi中注入微型木马时,相比于原电路,时间延迟的改变在旁路检测法的范围外。本发明使用designcompiler工具来检测每个可疑电路对在木马注入前后的时延,从而说明微型木马能够不被旁路方法发现。

作为对比实验,图6是扫描链下采用atpg技术的等价检测方法,简称扫描atpg。扫描链是检测故障和木马的强大工具,因为它可以把时序逻辑电路降级为组合逻辑电路。使用扫描链,工程师可以将任何值分配到每个寄存器的输出,并使输出像电路的伪主输入(ppi)一样;工程师还可以观察到达每个寄存器输入的信号,并使其像伪主输出(ppo)一样。在图6中,降级后可疑电路对的输出通过异或门连接。本方法通过采用atpg技术,检测这些xor门的输出端的固定为0故障,判断可疑电路对是否完全等价。不幸的是,该方法无法区分微型木马和无关位的电路优化。

表1展示了本发明和扫描atpg方法检测微型木马的实验结果,其中实验电路选取了iscas'89基准电路中的时序电路,并且将一定数量的c1和c2电路变换注入到基准电路中。首先,这两种方法都能准确的判断c2等价的电路变换不包含不一致功能,它们不是木马。然后,作为比较,扫描atpg方法未能检测到任何无关位的电路优化。存在这种情况的原因有两个。第一,这些无关位电路优化的信号只输出到了图6中的ppo类端口,在任何实际输出的端口前被屏蔽了。然而,由于扫描链增强了内部信号的可观察性,因此扫描atpg方法错误地将这些所有的c1电路变换认定为微型木马。其次,图6中的很多信号取值无法出现在ppi,如无关位取值,但扫描atpg方法会错误地将这些信号取值分配到ppi上。因此,扫描atpg方法无法区分微型木马和无关位的电路优化。如表1所示,本发明木马检测方法准确地区分了微型木马和无关位的电路优化。

表1不同方法的木马检测结果

总而言之,本发明使用的木马检测方法相较于现有木马检测方法有两个优点。

(1)本发明使用的木马检测方法不需要“金片”。旁路分析法需要对比原电路和木马电路的旁路信号特征,因此需要获取“金片”的旁路信号。然而,对于从第三方购买芯片的用户来说,一般无法得到“金片”,旁路分析法的使用受到了限制。本发明使用的木马检测方法在检测硬件木马时,不需要“金片”,被检测电路可以是任何第三方生产厂家生产的任何批次的芯片。省去“金片”的束缚,使得木马检测变得灵活,更适合作为购买方的用户进行木马检测。

(2)本发明使用的木马检测方法可以区分硬件木马和无关位的电路优化的情况,准确地发现真正的微型木马。与之相比,扫描atpg方法将所有的逻辑不等价电路对(c1变换电路对)视为注入了硬件木马,而c1变换中无关位并不是木马,扫描atpg方法误判严重。

1)检测时间

木马检测方法在检测电路对中的不一致功能时,可以使用优化后的计算时间。木马电路的时序界限最大范围在2至36之内,有界模型检验过程的平均运行时间在215秒之内。具体来说,检测不同电路对中微型木马在0.05s至214.8s之间,这些运行时间全都在可以接受的范围内。有界模型检验使用sat求解器,并行检查模型的状态和路径,因此该方法可以快速找到电路对中存在的不一致功能。

2)功率消耗

在植入木马后,电路的最大功率变化率的范围为0-8.2%,旁路分析法无法识别出其中较小的功率变化。图7(a)为实验功耗变化范围。

3)时间延迟

实验电路在注入硬件木马后的时间延迟变化范围在纳秒级,甚至变化为0。这一时间延迟变化在旁路分析法的检测范围之外,而本发明使用的木马检测方法不受时间延迟的限制,克服了旁路分析法的这一缺点。图7(b)为实验时间延迟变化范围。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

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