针对IP软核的多维分层式硬件木马评估方法

未命名 08-15 阅读:85 评论:0

针对ip软核的多维分层式硬件木马评估方法
技术领域
1.本发明涉及芯片安全检测技术领域,具体涉及一种针对ip软核的多维分层式硬件木马评估方法。


背景技术:

2.近年来,从应用软件到操作系统,再到芯片,黑客在电子系统方面的渗透日趋广泛,对安全的威胁也正呈指数级增长;除了应用层和操作系统中的病毒与恶意软件之外,大量隐藏在底层芯片设计中的硬件木马,尤其是全球分工细化的今天,大量非可控第三方ip软核的使用才会给用户带来真正灾难性的安全问题,云计算和物联网的普及更是急速放大了这种影响,因此,对ip软核硬件木马的检测技术成为一个新的研究热点。现有硬件木马的检测方法主要集中在以下两个方面:一是集中在rtl级代码综合形成网表之前,侧重于代码审查,相关研究有代码覆盖率自检分析、翻转率自检分析方法等,但此类方案对测试激励要求较高,且无法检测加密后ip软核内部信号翻转情况,存在无法普适的问题;另一种主要集中在流片后芯片侧信道硬件木马检测的扩展应用,大多通过测量功耗、时延等侧信道信息进行识别,但这些方法都需要基准数据,相关人工智能的检测方法也需要大量测试数据训练,实际条件下基准数据的噪声干扰很大,测试精度和可信度有待进一步研究提升。
3.目前关于ip软核中硬件木马识别的研究大多针对某一具体类型,如加密类/泄露类等,或者某一常用功能体,如加法器/rsa算法等,识别过程中只考虑一种表现特征,且无法对加密ip软核进行检测,在大规模第三方ip软核中,代码混淆等新技术可以改变木马代码的表达方式,如拆分监视计数器、改变状态机编码方式等,进一步增加了木马代码的识别难度,且在rtl级层面无法实现加密ip软核的硬件木马检测,还没有形成一套完备且可靠的针对加密/非加密ip软核中硬件木马检测方法,给当前芯片安全自主可控带来隐患。


技术实现要素:

4.本发明提出了一种针对ip软核的多维分层式硬件木马评估方法,以解决在rtl级层面无法实现加密ip软核的硬件木马检测,还没有形成一套完备且可靠的针对加密/非加密ip软核中硬件木马检测方法的技术问题。
5.为解决上述技术问题,本发明提供了一种针对ip软核的多维分层式硬件木马评估方法,包括以下步骤:
6.步骤s1:提取硬件木马的数据,并进行特征提取,以构建木马多维特征库;
7.步骤s2:对待检测ip软核进行功能完整性分析,以识别可能存在木马的第一模块;对于未能发现异常的模块,当所述待检测ip软核为加密状态时,在fpga中进行验证,并通过fpga逆向提取的方法获得等效的rtl级代码;
8.步骤s3:以所述rtl级代码各个模块为节点,并以各个模块之间的调用关系为权值,建立信息流图;对所述信息流图进行特征提取并与所述木马多维特征库进行比对,得到可能存在木马的第二模块;对所述信息流图进行分析,所述信息流图中调用小于设定阈值
的模块、孤立节点的模块和孤立节点相邻的模块为可能存在木马的第三模块;
9.步骤s4:对所述第一模块、第二模块和第三模块进行分析,计算代码覆盖率、信号翻转率、信号与时钟延迟异常、功耗异常和版图分块异常,并进行综合评估以定位所述待检测ip软核中存在木马的模块。
10.优选地,步骤s1中进行特征提取的方法包括以下步骤:
11.步骤s11:提取所有训练样本的行为特征bc={bc1,bc2,...,bci},统计各行为特征bci在硬件木马程序t中出现的频率及在合法程序n中出现的频率
12.步骤s12:计算各行为特征的总出现频率均值e(bci):
[0013][0014]
步骤s13:计算各行为特征的类间频率均方差:
[0015][0016]
步骤s14:按照均方差大小排序,选取前15个组成模糊特征集,即木马多维特征库。
[0017]
优选地,步骤s4中所述代码覆盖率包括声明覆盖率、路径覆盖率、状态机覆盖率、触发覆盖率和表达式覆盖率。
[0018]
优选地,所述代码覆盖率的计算方法包括:通过测试程序ise组找到不执行的程序段;根据反向网表的分析结果与对程序段的采集情况添加测试程序组,以增加代码覆盖率;进行仿真测试后得到代码覆盖率f(n)。
[0019]
优选地,步骤s4中所述信号翻转率的计算方法包括:对所述rtl级代码进行综合后得到电路的门级网表,对所述门级网表施加随机激励得到信号翻转率z(n)。
[0020]
优选地,步骤s4中所述信号与时钟延迟异常的计算方法包括:在所述待检测ip软核的寄存器与寄存器之间加入影子寄存器,所述影子寄存器的工作时钟clk2,与所述待检测ip软核的工作时钟clk1频率相同,clk2与clk1相比有一个负的相移,比较每一个时钟周期内寄存器与影子寄存器的值,得到信号与时钟延迟异常s(n)。
[0021]
优选地,步骤s4中通过主成分分析pca计算所述功耗,包括以下步骤:
[0022]
步骤s401:基于参照软核构建原始功耗数据矩阵:
[0023][0024]
式中,n表示样本数量,p表示每个样本的采样点数量;
[0025]
步骤s402:对原始功耗数据矩阵x的p个向量x1,

,x
p
进行线性组合,表示为:
[0026][0027]
式中,a
pp
表示线性系数;
[0028]
简写为:
[0029]fi
=a
1i
xi+a
2i
x2+

+a
pi
x
p i=1,

,p
[0030][0031]
式中,a=(a1,a2,

,a
p
)

,x=(x1,x2,

,x
p
)


[0032]
步骤s403:使a'x方差最大化,进行特征提取;
[0033]
步骤s404:基于所述特征提取的结果,将所述待检测ip软核与参照软核在维度空间上的分布进行对比,得到功耗异常g(n)。
[0034]
优选地,步骤s4中所述版图分块异常的计算方法包括:将所述待检测ip软核的fpga的电路版图与不含硬件木马的fpga电路版图特征库中的数据进行比较分析,得到版图分块b(n)。
[0035]
优选地,步骤s4中进行综合评估的方法包括以下步骤:
[0036]
步骤s411:计算参照软核的代码覆盖率fc(n)、信号翻转率zc(n)、信号与时钟延迟异常sc(n)、功耗异常gc(n)和版图分块异常bc(n),并通过以下公式计算参照异常值ec:
[0037]
ec=fc(n)*w1+zc(n)*w2+sc(n)*w3+gc(n)*w4+bc(n)*w5[0038]
式中,wi表示权重;
[0039]
步骤s412:通过步骤s411中的公式计算所述待检测ip软核的异常值e
t

[0040]
步骤s413:计算异常值e
t
与参照异常值ec的偏差值u,当u设定阈值时,则认定对应模块存在木马。
[0041]
优选地,步骤s413中,所述偏差值u的计算公式为:
[0042][0043]
本发明的有益效果至少包括:本发明通过木马多维特征库、rtl级代码和信息流图的构建,并进行分析,对异常代码模块进行初步的定位,减少后期检测量,增加了工作效率,降低了检测成本,同时将加密的软核转化为rtl级代码,也可以对其进行正常的评估,整体方案上存在评估维度全、定位精度高和适用面广等优点,整体评估流程和计算难度更为全面,结果可信度更高。
附图说明
[0044]
图1为本发明实施例的方法流程图;
[0045]
图2为本发明实施例的硬件木马aes电路示意图;
[0046]
图3为本发明实施例的仿真测试模块覆盖率对比示意图;
[0047]
图4为本发明实施例的施加200000组随机激励的翻转率示意图;
[0048]
图5为本发明实施例的信号与时钟信号延迟仿真波形分析示意图。
具体实施方式
[0049]
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
[0050]
如图1所示,本发明实施例提供了一种针对ip软核的多维分层式硬件木马评估方法,包括以下步骤:
[0051]
步骤s1:提取硬件木马的数据,并进行特征提取,以构建木马多维特征库。
[0052]
本发明实施例根据硬件木马的结构与实现方式,对硬件木马的功耗、信号时延等数据分类采集并存入硬件木马库,建立多维特征库基础数据;同时按照对硬件木马行为特征的分析、提取,建立多维特征库,根据硬件木马的特性,需要经过对大量存有硬件木马的芯片与合法的芯片的对比实验及分析,并利用概率统计学中的均方差提取明显有别于合法ip软核中硬件木马行为特征。计算过程如下:
[0053]
步骤s11:提取所有训练样本的行为特征bc={bc1,bc2,...,bci},统计各行为特征bci在硬件木马程序t中出现的频率及在合法程序n中出现的频率
[0054]
步骤s12:计算各行为特征的总出现频率均值e(bci):
[0055][0056]
步骤s13:计算各行为特征的类间频率均方差:
[0057][0058]
步骤s14:按照均方差大小排序,选取前15个组成模糊特征集,即木马多维特征库。
[0059]
步骤s2:对待检测ip软核进行功能完整性分析,以识别可能存在木马的第一模块;对于未能发现异常的模块,当所述待检测ip软核为加密状态时,在fpga中进行验证,并通过fpga逆向提取的方法获得等效的rtl级代码。
[0060]
具体地,在开始检测识别之前,首先完成ip软核功能完整性分析的预处理操作。对于正常或可疑的硬件木马芯片,必须对其进行系统的功能测试,由于加入了硬件木马的芯片在功能体现上会与正常芯片存在异同,在功能完整性分析阶段,对功能篡改型硬件木马可以实现识别,但由于硬件木马一般依托少态点信号出发,非穷举测试无法保证能够发现。
[0061]
本发明实施例从rtl级ip软核的测试角度出发,采用ip软核的伪穷举测试法对芯片进行测试,进行测试的方法包括但不限于伪穷举测试,其他测试方法均可。
[0062]
伪穷举法的思路是将输入分成功能子块,每个功能子块的输入包括两部分,一部分是外界的输入,另一部分是其他子块的输入。将这两种输入看作功能子块的输入,使用伪穷举法进行测试,对其他的子块的输入取常数0。当一个电路被切分成若干功能子块,并且子块间在一种输入方式下,只存在单向的连接,那么用伪穷举法可以测试出所有的错误。
[0063]
在上述的功能完整性分析的基础上,如果未能发现异常,则需要进一步将ip软核的加密/非加密状态进行判别处置,过程分为两种情况:
[0064]
1)当ip软核为加密状态时,需要将ip加密后的软核在fpga中进行验证,并通过fpga逆向提取的方法获得等效的rtl级代码;
[0065]
2)当ip软核为非加密状态时,仅对ip软核进行正常功能验证,验证通过后进行后续检测模型的分析。
[0066]
步骤s3:以所述rtl级代码各个模块为节点,并以各个模块之间的调用关系为权值,建立信息流图;对所述信息流图进行特征提取并与所述木马多维特征库进行比对,得到可能存在木马的第二模块;对所述信息流图进行分析,所述信息流图中调用小于设定阈值
的模块、孤立节点的模块和孤立节点相邻的模块为可能存在木马的第三模块。
[0067]
具体地,信息流图在跟踪检测木马工作流程的技术关键是在于多重加密算法aes中函数的调用,工作流程交织着大量与木马不相关的活动。为了实现能够在诸多不相关的多重函数中发现木马工作流程并跟踪它们,其解决方法是假设一个工作流程是信息流图中的一个连通子图,该信息流图可以从rtl代码中分析得到。为了在该获取方法中取得成功,必须捕获所有可能的信息流。如果错过一个信息流链接,那么该工作流将不再是一个连通图,木马的主要函数将不能被发现。
[0068]
从信息流图理论出发,以rtl级代码各个模块为节点,以各个模块之间的调用关系为权值,形成一个信息流图。对信息流图进行特征提取并与木马多维特征库进行比对,可以比对出存在于木马多维特征库中的木马并定位。
[0069]
从信息流图还可以比较直观的看出一些模块被调用的较为频繁,权值较大。一些模块被调用较少,权值较少。而木马本身具有隐藏性,需要一定的触发条件才会被触发,所以木马程序应存在于信息流图中被调用较少的模块中,这样就达到了初步定位木马程序的目的。
[0070]
在信息流图中寻找少态模块则是评估检测中第二阶段的关键点。在本发明中,假设一个硬件电路模块是信息流图的连通子图,将各个模块的相互调用及频繁程度当做边和权重,以此形成一个完整的信息流图,这样可以较清晰的找到图中较为孤立的节点。这些节点就可能为硬件木马的一部分,再对这些木马相邻的模块进行分析、追溯,可大致确定硬件木马所在位置。
[0071]
步骤s4:对所述第一模块、第二模块和第三模块进行分析,计算代码覆盖率、信号翻转率、信号与时钟延迟异常、功耗异常和版图分块异常,并进行综合评估以定位所述待检测ip软核中存在木马的模块。
[0072]
本步骤是从代码覆盖率、信号翻转率、信号与时钟延迟、功耗以及版图分块五个并列因素的角度,分别进行仿真测试,以达到筛选的目的。综合各个要素的结果,形成一个多因素评估的结果,对第一步得到的可疑模块进行分析,精确定位木马程序位置。本发明实施例中代码覆盖率包括声明覆盖率、路径覆盖率、状态机覆盖率、触发覆盖率和表达式覆盖率。
[0073]
1)代码覆盖率分析
[0074]
代码覆盖率主要关注语句或电路结构的可控制性。例如,语句是否被执行、电路中的寄存器是否被翻转等。从理论上来讲,覆盖率可以达到100%,此时覆盖率可以完全作为一个理想的评估ip软核安全的指标,当代码覆盖率达到100%时,倘若代码中含有恶意逻辑或后门,此时隐藏的硬件木马必然被激活,具有篡改功能等显式功能的硬件木马将会被暴露无疑,其他如具有泄露旁路信息的硬件木马也将更容易被探测出。然而,随着设计规模的持续增长,验证工程师不可能对所有的内部信号实施结果检查——穷举观察所有的内部信号的波形显然是不现实的,再良好的测试激励也难以满足对设计的代码覆盖率能达到100%,同时如果采用模拟值与期望值之间的数据自动比较,由于实现细节上的不同,通常也很难为设计中的所有内部信号在参考模型中找到对应的信号以产生期望值,因此验证工程师通常选择输出信号和部分重要的内部信号作为观测信号,来检查功能的正确性。
[0075]
首先是对声明覆盖率的分析,即分析每个声明在验证过程中执行的次数。仿真过
程结束后将给出报告,说明整个仿真过程中每个声明执行了多少次。如果某些声明没有执行过,则需要进行补充仿真。其次是对路径覆盖率分析,由于在设计中使用分支控制语句来根据不同的条件进行不同的操作,通过对路径覆盖率的分析可以测试是否所有分支执行了。第三部分即是对状态机覆盖率的分析,采用统计的方法测试在仿真过程中状态机发生了哪些跳转。再者是对触发覆盖率的分析,检查在仿真过程中某些局部电路是否发生过由于某个信号的变化而触发进行运算和操作。最后是对表达式覆盖率的分析,该过程中通过检查布尔表达式来验证组合的充分性即针对组合在整个验证过程中是否出现过。
[0076]
本发明实施例中,整体代码覆盖率的分析过程先通过测试程序ise组找到不执行的程序段,而后根据反向网表的分析结果与对程序段的采集情况添加额外的测试程序组,来增加代码覆盖率,最后决定代码覆盖率的定量测度,即程序质量的间接测度。据此对每个可疑模块电路进行仿真测试后查看代码覆盖率。
[0077]
最终会得到不同可疑模块的代码覆盖率f(n),由于这些可疑模块中可能存在木马代码,所以这些可疑模块中一些模块的代码覆盖率f(n)会较低,因此以f(n)=1-f(n)来代表可疑模块的异常指数。因此代码覆盖率异常指数f(n)作为多维因素分析中的第一个要素对可疑模块进行定量分析。
[0078]
2)信号翻转率异常分析
[0079]
如果电路中含有木马,那么肯定难以触发,从翻转率的少态点入手,分析少态点的分布情况,如果较为离散那么在此少态点插入木马的可能性较小,如果较为集中则有可能是因为木马的整个触发逻辑与功能逻辑都未翻转,少态点便有可能是木马触发逻辑或者功能逻辑中的某个节点,利用这一特性,通过对可疑电路施加测试激励,然后观察、分析电路中未翻转的部分,查找到少态点并对少态点的分布加以分析,便很可能查找到电路中插入的木马。
[0080]
本发明实施例中识别流程如下:对rtl可疑代码进行综合后得到电路的门级网表,然后对门级网表施加随机激励查看翻转率。
[0081]
如果翻转率为100%,那么可以判断该电路中可能不含有木马,需要继续进行人工分析。如果翻转率没能达到100%,那么可以初步判断该电路可能含有木马,需要分析翻转率的数据,查找出相对较少翻转的少态点。查找到少态点之后,需要对少态点的分布加以分析,如果少态点的分布较为离散,则可以初步判断该电路中不含有木马,如果少态点的分布较为集中,那么可以初步判断该电路中可能含有木马。接下来便可追加测试激励以减少少态点,对于多次追加激励后的少态点进行分析,如果较为离散则可以初步判断该电路中不含有木马,需进一步进行人工分析。如果少态点的分布较为集中,那么可以初步判断该电路中可能含有木马,需要对集中的少态点进行人工分析。
[0082]
通过对各个可疑模块进行信号翻转率的测量,每个可疑模块将得到对应不同的信号翻转率z(n)。因为信号翻转率z(n)值较小,说明木马存在的可能性就较大,因此同样以异常指数z(n)=1-z(n),作为可疑模块在信号翻转率上的可疑指标。信号翻转率异常指数z(n)作为多维因素分析中的第二个要素对可疑模块进行定量分析。
[0083]
3)信号与时钟延迟异常分析
[0084]
信号、时钟延迟异常的检测可以借助时钟信号检测电路来辅助硬件木马检测,本发明中我们结合反向网表分析结果与rtl级ip软核的芯片构造情况做了前后波形图的对比
分析,而后对信号与时钟信号延迟的异常进行分析。
[0085]
主要原理是在原设计的寄存器与寄存器之间加入影子寄存器,影子寄存器的工作时钟clk2,与原设计的工作时钟clk1频率相同,clk2与clk1相比有一个负的相移。比较每一个时钟周期内寄存器与影子寄存器的值,如果比较的结果不相等,即表示路径延迟出现一个偏斜步长,由此断定原组合逻辑路径中被植入了硬件木马电路。
[0086]
根据以上理论对各可疑模块进行时钟的比较,可以得到不同的时钟延迟s(n)。由于时钟延迟的存在是由木马代码引起的,所以路径延迟的大小可以作为衡量模块是否存在木马代码的定量指标。时钟延迟s(n)作为多维因素分析中的第三个要素对可疑模块进行定量分析。
[0087]
4)功耗异常分析
[0088]
存在硬件木马的芯片中,功耗会表现出不同于正常芯片功耗特征的特点,我们利用功耗数据采集板卡实现电路旁路信息的采集,同时设计了基于特征矩阵的芯片功耗数据特征识别算法,进行芯片正常性检测与木马识别。
[0089]
本发明实施例采用主成分分析pca进行功耗异常的分析,具体地,对于n个参考样品,且每个样品有p个采样点;各样本可表示为样本点为xi(x1,x2…
x
p
),得到原始功耗数据阵:
[0090][0091]
x的p个向量x1,

,x
p
作线性组合为:
[0092][0093]
式中a
pp
表示线性向量。
[0094]
对其进行简化,可表示为:
[0095]fi
=a
1i
xi+a
2i
x2+

+a
pi
x
p i=1,

,p
[0096][0097]
a=(a1,a2,

,a
p
)

[0098]
x=(x1,x2,

,x
p
)

[0099]
通过简化后的公式可以看到pca特征提取的问题为寻找x使a'x方差最大化,以进行降维,即
[0100]
var(a

x)=e(a

x-e(a

x))(a

x-e(a

x))

[0101]
设其协方差阵u的特征根为λ1≥λ2≥

≥λ
p
>0,相应的单位特征向量为u1,u2,

,u
p

[0102][0103][0104]
当a=u1时有
[0105][0106]
因此a=u1使var(a'x)=a'∑a达到最大值,且:
[0107]
var(u1′
x)=u1′
σu1=λ1[0108]
同时有:
[0109][0110]
通过上述特征抽取后,pca结果在维度空间上有不同的分布。对于两个不同的对比样本,x1=(x11,

,x1n)和x2=(x21,

,x2n),记x1分布为f,则有检验假设:
[0111]
h0:f∈γ0[0112]
其中,γ0为x2所属的分布,对立假设可设为:
[0113]

[0114]
γ1是f的分布,为检验假设是否成立,首先确定分布γ0和γ1之间差异为m(γ0,γ1),m满足以下条件:
[0115][0116]
m(γ0,γ1)其值愈大,表示γ0和γ1之间差异愈大。
[0117]
于是当m(γ0,γ1)较小时接受h0,较大时拒绝h0。
[0118]
也就是说各个可疑模块在进行基于特征矩阵的木马检测后都会得到一个m(γ0,γ1)的差异值,且该差异值越大时,表明木马存在的可能性越大。因此可以假设各个可疑模块功耗分析差异值g(n)=m(γ0,γ1),功耗分析差异值g(n)作为多维因素分析中的第四个要素对可疑模块进行定量分析。
[0119]
5)版图分块异常检查
[0120]
硬件木马就是在原始电路中插入恶意电路。所以通过查看版图分块是否异常可以判断电路中是否被植入硬件木马。将含有硬件木马的fpga的电路版图同不含硬件木马的fpga电路版图特征库中的数据进行比较分析,可以得出硬件木马的fpga的版图异常指数b(n),版图异常指数b(n)作为多维因素分析中的第五个要素对可疑模块进行定量分析。
[0121]
硬件木马安全性综合评估的目的是解决单一要素分析带来的误报率高和精度低的问题,本发明提出的多维硬件木马评估模型的核心在于考虑硬件木马电路植入以后对代码覆盖率、信号翻转率、延迟、功耗异常和版图异常等多种影响因素的综合考虑,对上述五个方面得到的五个代码覆盖率f(n)、信号翻转率z(n)、信号与时钟延迟s(n)、功耗异常g(n)
和版图分块b(n)来完成硬件木马检测和评估,本发明实施例中评估权重设置如表一所示。
[0122]
表一
[0123]
要素f(n)z(n)s(n)g(n)b(n)权重0.20.20.10.30.2
[0124]
在实际评估过程中,对于参考软核样本,通过上述五个要素的评估可以得到对应的fc(n)、zc(n)、sc(n)、gc(n)、bc(n)值,通过配合权重wi可以计算得到标准样本的异常值ec:
[0125]
ec=fc(n)*w1+zc(n)*w2+sc(n)*w3+gc(n)*w4+bc(n)*w5[0126]
对待检测ip软核进行计算,得到待测样本五个评估要素的评估值对应的f
t
(n)、z
t
(n)、s
t
(n)、g
t
(n)、b
t
(n)值,通过上述公式计算可以得到待检测ip软核的异常值的e
t
,并通过以下公式计算偏差值u:
[0127][0128]
若u大于设定的阈值0.05,则认为模块中存在硬件木马。
[0129]
以下通过具体的实施例对本发明作进一步的描述。
[0130]
以aes加密算法电路作为硬件木马的载体平台,实现了一个基于8bit序列检测器和4bit计数器的功能篡改组合型木马电路如图2所示,同时对电路功能在ise软件平台进行验证。硬件木马电路的设计在aes电路的基础上,在主调函数aesmain.v中加入序列检测器、计数器以及硬件木马程序的调用函数,当触发逻辑触发成功,木马函数即被调启动,在不对原始aes电路进行大规模修改的情况下完成木马电路的挂接工作,通过设计不同大小的触发逻辑实现不同规模的硬件木马挂接。
[0131]
在电路测试过程中,正常情况下要求有较高的代码覆盖率,这就需要根据电路不同结构选择合适的测试码,从而保证100%的代码覆盖率,从而对电路功能进行测试分析。通过加入最简单的随机测试向量,并不能实现电路的有效覆盖和激活,因此针对aes电路结构和实现的功能,编写尽可能覆盖全面的测试向量,对电路进行测试后查看代码覆盖率如图3所示。假定不同可疑模块的代码覆盖率f(n),由于这些可疑模块中可能存在木马代码,所以这些可疑模块中一些模块的代码覆盖率f(n)会较低,因此以f(n)=1-f(n)来代表可疑模块的异常指数。例如图中trojan_function模块的覆盖率f(n)=67%,它的异常指数f(n)=1-f(n)=1-0.67=0.33;trojan_trigger模块的覆盖率f(n)=81%,它的异常指数f(n)=1-f(n)=0.19。代码覆盖率异常指数f(n)作为多维因素分析中的第一个要素对可疑模块进行定量分析。
[0132]
施加200000组随机激励时,所产生的翻转率报告如图4所示。依据图所反映出各信号节点的翻转率情况,已经可以较为清晰的反映出少态点的信息。可以对少态点进行一个较为明确的判断。图4中net3、net7、net8、nn9、nn10和data_temp[0]-data_temp[7]模块,这些信号在翻转次数上已清晰显示出与其它信号存在较大的差异,因此可以确认将上述信号列为可疑信号,在后续的实验中进行重点检测。假定每个模块的信号翻转率为z(n),则信号翻转率z(n)值越小木马存在的可能性就越大,因此同样以异常指数z(n)=1-z(n),作为可疑模块在信号翻转率上的可疑指标。例如图中net3信号的翻转率z(n)=0.0018,它的异常指数z(n)=1-z(n)=0.9982。信号翻转率异常指数z(n)作为多维因素分析中的第二个要素对可疑模块进行定量分析。
[0133]
时钟延迟的仿真波形分析如图5所示,详细数据如表二所示。
[0134]
表二
[0135][0136]
由于时钟延迟的存在是由木马代码引起的,所以时钟延迟的大小可以作为衡量模块是否存在木马代码的定量指标,假定时钟延迟为s(n),则s(n)可作为多维因素分析中的第三个要素对可疑模块进行定量分析。
[0137]
功耗测试中输入的训练数据为四组正常芯片的功耗数据,待测数据为一组含木马芯片的功耗数据,结果应呈现归一状态。经过大量数据测试,最大匹配率大于60%均可认为其为非正常芯片,误差率小于0.5%,精度极高。
[0138]
本实例中版图检测因为实验环境问题,未给出具体计算实例,但一个评价因子的缺失不影响本发明的解释。
[0139]
本实施例测试进行五次实验,木马规模即木马逻辑占芯片逻辑的百分比分别为0.05%、3%、1%、0.5%、0.2%,可以看出本发明在对硬件木马进行评估的层面上,评估维度全、定位精度高、适用面广,评测结果稳定性高,可信度更高。
[0140]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,仅表达了本发明的较佳实施例而已,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0141]
应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

技术特征:
1.一种针对ip软核的多维分层式硬件木马评估方法,其特征在于:包括以下步骤:步骤s1:提取硬件木马的数据,并进行特征提取,以构建木马多维特征库;步骤s2:对待检测ip软核进行功能完整性分析,以识别可能存在木马的第一模块;对于未能发现异常的模块,当所述待检测ip软核为加密状态时,在fpga中进行验证,并通过fpga逆向提取的方法获得等效的rtl级代码;步骤s3:以所述rtl级代码各个模块为节点,并以各个模块之间的调用关系为权值,建立信息流图;对所述信息流图进行特征提取并与所述木马多维特征库进行比对,得到可能存在木马的第二模块;对所述信息流图进行分析,所述信息流图中调用小于设定阈值的模块、孤立节点的模块和孤立节点相邻的模块为可能存在木马的第三模块;步骤s4:对所述第一模块、第二模块和第三模块进行分析,计算代码覆盖率、信号翻转率、信号与时钟延迟异常、功耗异常和版图分块异常,并进行综合评估以定位所述待检测ip软核中存在木马的模块。2.根据权利要求1所述的一种针对ip软核的多维分层式硬件木马评估方法,其特征在于:步骤s1中进行特征提取的方法包括以下步骤:步骤s11:提取所有训练样本的行为特征bc={bc1,bc2,...,bc
i
},统计各行为特征bc
i
在硬件木马程序t中出现的频率及在合法程序n中出现的频率步骤s12:计算各行为特征的总出现频率均值e(bc
i
):步骤s13:计算各行为特征的类间频率均方差:步骤s14:按照均方差大小排序,选取前15个组成模糊特征集,即木马多维特征库。3.根据权利要求1所述的一种针对ip软核的多维分层式硬件木马评估方法,其特征在于:步骤s4中所述代码覆盖率包括声明覆盖率、路径覆盖率、状态机覆盖率、触发覆盖率和表达式覆盖率。4.根据权利要求3所述的一种针对ip软核的多维分层式硬件木马评估方法,其特征在于:所述代码覆盖率的计算方法包括:通过测试程序ise组找到不执行的程序段;根据反向网表的分析结果与对程序段的采集情况添加测试程序组,以增加代码覆盖率;进行仿真测试后得到代码覆盖率f(n)。5.根据权利要求1所述的一种针对ip软核的多维分层式硬件木马评估方法,其特征在于:步骤s4中所述信号翻转率的计算方法包括:对所述rtl级代码进行综合后得到电路的门级网表,对所述门级网表施加随机激励得到信号翻转率z(n)。6.根据权利要求1所述的一种针对ip软核的多维分层式硬件木马评估方法,其特征在于:步骤s4中所述信号与时钟延迟异常的计算方法包括:在所述待检测ip软核的寄存器与寄存器之间加入影子寄存器,所述影子寄存器的工作时钟clk2,与所述待检测ip软核的工作时钟clk1频率相同,clk2与clk1相比有一个负的相移,比较每一个时钟周期内寄存器与影子寄存器的值,得到信号与时钟延迟异常s(n)。7.根据权利要求1所述的一种针对ip软核的多维分层式硬件木马评估方法,其特征在
于:步骤s4中通过主成分分析pca计算所述功耗,包括以下步骤:步骤s401:基于参照软核构建原始功耗数据矩阵:式中,n表示样本数量,p表示每个样本的采样点数量;步骤s402:对原始功耗数据矩阵x的p个向量x1,

,x
p
进行线性组合,表示为:式中,a
pp
表示线性向量;简写为:f
i
=a
1i
x
i
+a
2i
x2+

+a
pi
x
p i=1,

,p式中,a=(a1,a2,

,a
p
)

,x=(x1,x2,...,x
p
)

;步骤s403:使a'x方差最大化,进行特征提取;步骤s404:基于所述特征提取的结果,将所述待检测ip软核与参照软核在维度空间上的分布进行对比,得到功耗异常g(n)。8.根据权利要求1所述的一种针对ip软核的多维分层式硬件木马评估方法,其特征在于:步骤s4中所述版图分块异常的计算方法包括:将所述待检测ip软核的fpga的电路版图与不含硬件木马的fpga电路版图特征库中的数据进行比较分析,得到版图分块b(n)。9.根据权利要求1所述的一种针对ip软核的多维分层式硬件木马评估方法,其特征在于:步骤s4中进行综合评估的方法包括以下步骤:步骤s411:计算参照软核的代码覆盖率f
c
(n)、信号翻转率z
c
(n)、信号与时钟延迟异常s
c
(n)、功耗异常g
c
(n)和版图分块异常b
c
(n),并通过以下公式计算参照异常值e
c
:e
c
=f
c
(n)*w1+z
c
(n)*w2+s
c
(n)*w3+g
c
(n)*w4+b
c
(n)*w5式中,w
i
表示权重;步骤s412:通过步骤s411中的公式计算所述待检测ip软核的异常值e
t
;步骤s413:计算异常值e
t
与参照异常值e
c
的偏差值u,当u设定阈值时,则认定对应模块存在木马。10.根据权利要求9所述的一种针对ip软核的多维分层式硬件木马评估方法,其特征在于:步骤s413中,所述偏差值u的计算公式为:

技术总结
本发明提供了一种针对IP软核的多维分层式硬件木马评估方法,构建木马多维特征库;进行功能完整性分析,以识别可能存在木马的第一模块;对于未能发现异常的模块,获得等效的RTL级代码;以RTL级代码各个模块为节点,并以各个模块之间的调用关系为权值,建立信息流图;信息流图与木马多维特征库进行比对,得到可能存在木马的第二模块;对信息流图进行分析,信息流图中调用小于设定阈值的模块、孤立节点的模块和孤立节点相邻的模块为可能存在木马的第三模块;对第一模块、第二模块和第三模块进行分析,计算代码覆盖率、信号翻转率、信号与时钟延迟异常、功耗异常和版图分块异常,并进行综合评估以定位待检测IP软核中存在木马的模块。合评估以定位待检测IP软核中存在木马的模块。合评估以定位待检测IP软核中存在木马的模块。


技术研发人员:倪林 何俊 吴波 张帅 李国朋 耿君峰 瞿志强 牟卫峰
受保护的技术使用者:中国人民解放军国防科技大学
技术研发日:2023.05.04
技术公布日:2023/8/14
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐