倪林,刘子辉,张帅∗,韩久江,鲜明
(1.国防科技大学电子科学学院,湖南 长沙 410073;2.国防科技大学信息通信学院,湖北 武汉 430030)
近年来,从应用软件到操作系统再到硬件芯片,黑客在电子系统方面的渗透无孔不入,对信息安全的威胁也呈指数级增长。应用软件和操作系统中的病毒、恶意软件等恶意程序给信息安全带来了极大风险,此外,隐藏在底层硬件中的木马不仅难以发现且无法通过打补丁方式消除,给硬件安全带来更大的隐患。
随着各种智能设备的普及,嵌入式芯片被广泛使用,恶意硬件逻辑带来的危害也进一步放大[1]。在集成电路设计分工全球化的背景下,芯片供应链路的每个环节都可能存在风险[2-3]。集成电路的设计、生产等各个环节均存在不可控因素,一旦被别有用心的第三方插入硬件木马,则会带来巨大的安全威胁[4-5]。在航空航天、军事工业等特殊行业中,如果使用的这些非可控芯片发生了安全问题,产生的影响是不可估量的。在电子设计自动化(EDA)工具的辅助下,为加快设计进度,构成系统级芯片(SoC)的各个关键模块大量使用可复用第三方知识产权(IP)软核实现[6],这些可复用的第三方IP 软核的安全性难以保证,因此,实现IP 软核的“自主可控”与“自主可信”成为当前形势下各类信息系统的迫切需求。
目前,在国内对IP 软核硬件木马检测的方法中,基于流片后反向分析的破坏式检测不仅耗时而且费用昂贵,且这些检测方法不能很好地检测集成度不断提高、结构日趋复杂的芯片[7-8]。可测试性设计(DFT)辅助检测方法目前只支持Verilog 硬件描述语言(HDL)代码,不支持其他类型的代码。通过对旁路信号进行分析的硬件木马检测方法可能会被工艺变量和各种噪声影响,对微小恶意逻辑的检测准确度不高[9-10]。采用逻辑检测方法,其测试向量构造复杂,检测复杂逻辑时容易错漏。
为从源头进行IP 软核硬件木马检测分析,本文提出一种基于灰度图谱匹配的检测方法。以Trust-Hub 库中的“Golden”软核为基准,基于灰度图谱,以分块匹配原则为准则,实现对第三方“非可控”IP 软核硬件木马的检测,以确保IP 软核的安全性。
芯片安全性一直是国内外相关人员关注的重点,特别是最近几年,芯片集成度越来越高,工艺愈加复杂[11],如目前高端智能芯片常采用三维(3D)堆叠技术进行集成,在工艺环节引入的新步骤会导致额外的恶意逻辑风险,且多芯粒3D 堆叠技术容易造成芯片结构复杂化,多芯粒采用的IP 核也很难做到完全自主可控,导致集成后难以发现潜在的安全风险[12-14],这些都使得硬件木马被恶意植入的方式更加多样,植入的硬件木马种类与功能各不相同,一旦被植入后将很难去除,造成的破坏难以估量,最终使得集成电路(IC)的安全难以保证。
硬件木马是指芯片在设计、制造阶段被人为植入的具有恶意功能的电路模块[15],这些恶意电路模块如果被不法分子利用,就可对原始电路进行修改甚至破坏,以无条件触发或特定条件触发的启动方式达到篡改系统功能、破坏内部结构等目的[16-17]。虽然目前硬件木马的功能、种类、实现方法多种多样,且电路结构复杂,但是总体上主要由触发结构与有效载荷2 个部分组成[18]。硬件木马结构如图1所示。
图1 硬件木马结构Fig.1 Hardware Trojan structure
在一般情况下,硬件木马的触发结构设计是能否长期隐藏的关键所在,在激活前硬件木马处于休眠状态。而特殊情况下的硬件木马不具有触发逻辑,一直处于激活状态[19-20]。
硬件木马的有效载荷是其实现功能的核心,硬件木马被激活后的破坏方式主要有泄露信息、改变功能、拒绝服务等。
IP 软核一般采用寄存器传输级(RTL)HDL 硬件语言描述,作为IP 核形式之一,IP 软核是一个功能完整的模块,在电路设计中能够加速设计流程,为设计者提供较好的弹性空间。IP 软核硬件木马是硬件描述语言(Verilog 或VHDL)所描述的功能规范之外的冗余电路,其可能是被插入的恶意电路,也可能是被恶意利用的设计漏洞或用于测试的后门逻辑。这些冗余电路只要能产生功能规范外的电路输出或状态改变,对涉及国家重要领域的核心系统而言,都可能引发灾难性安全问题[21]。从IP 软核的设计制造全流程来看,在硬件设计源头对硬件木马进行检测可行性较强。
在RTL 层面进行电路设计时一般将逻辑电路分成不同的独立模块,未划分前即为原始模块,在植入硬件木马时根据实现方式的不同插入到对应的模块中,原始模块和独立模块中都有可能被植入硬件木马。如图2 所示,存在触发结构的硬件木马可以根据需求将有效载荷和触发结构在同一模块或不同模块中实现[22]。硬件木马实现的具体方式为修改原始功能或新增额外功能。
图2 硬件木马实现方式Fig.2 Hardware Trojan implementation method
在芯片设计过程中,通过使用RTL 级IP 软核可以降低设计复杂性,但同时也让植入的硬件木马更加灵活。在第三方IP 软核的使用中,厂商会直接提供HDL 代码,方便进行配置。植入的硬件木马一般会对代码进行改动,因此,从RTL 级对硬件木马进行检测是可行且有效的。
传统的RTL 级硬件木马检测方法主要有特征匹配、抽象检测、信号追踪[23-25]等3 种,这些检测方法均将RTL 级硬件木马的固有特性、Verilog HDL 代码结构或语法规则所体现出来的特征作为检测条件,在不同的场景下会存在一些缺陷。当IP 软核内的代码程序进行了加密处理,传统检测手段就难以对硬件木马进行有效检测。无论是加密还是不加密,其核心在于对原始代码是否改变。本文通过灰度图谱匹配进行硬件木马RTL 级检测,是将分析过程从易变的代码维度转换到静态的图谱维度,图谱检测所依赖的是RTL 级代码映射在灰度图像上反映出的数值信息,并非内部语法结构或语义信息,在硬件木马RTL 级检测方法中具有特殊优势,对加密或未加密IP 软核均适用。
IP 软核中恶意逻辑的检测一直是困扰安全人员的难题,由于IP 软核的知识产权保护特性,对其进行全覆盖测试不可能完备,使得隐藏在IP 软核正常功能描述代码中的硬件木马难以激活,尤其是针对加密IP 软核更加缺少可行的手段[26-27]。
硬件木马在设计过程中多通过关键词隐藏、语义融合等方式提高其隐蔽性,将IP 软核转成对应的灰度图谱时,在灰度图谱的维度只要改变功能描述,其反映出的特征将不一致。从灰度图谱差异的角度进行分析,选择合适的像素精度进行分块遍历匹配,分析遍历匹配后最大相似度的分布特性,可以实现硬件木马检测,且这种方法不需要考虑硬件木马隐藏逻辑的实现方式和功能特点,适应性较好。
本文以Trust-Hub 构建的“Golden”软核灰度图谱集作为标准,提出基于灰度图谱分析的IP 软核硬件木马检测方法,从IP 软核硬件描述语言程序上对硬件木马进行检测并完成初步实现。
实现灰度图谱匹配IP 软核中硬件木马检测的技术难点为:一是多领域、全覆盖的“Golden”软核集建立,并将其映射为灰度图谱;二是硬件木马匹配检测中的实现细节以及对映射的灰度图谱进行匹配时的算法设计。这2 个技术难点的突破是实现高效与准确检测的基础。基于灰度图谱特征的IP 软核硬件木马检测流程如图3 所示,具体步骤分为:
图3 IP 软核硬件木马检测流程Fig.3 Hardware Trojan detection procedure of IP soft core
1)硬件木马的RTL 级代码解析。硬件木马在IP软核中以Verilog HDL 硬件语言描述存储,该步骤主要是将HDL 语言转换成灰度图谱数据。
2)“Golden”标准软核集构建。以Trust-Hub 标准硬件木马库中的AES、DES、RS232 及其他基准电路为基础,通过对标准IP 软核实例进行处理,构建有效的“Golden”软核灰度图谱集。
3)灰度图谱匹配检测。待测IP 软核与“Golden”软核的图谱匹配是检测的核心,通过分块匹配算法实现。
4)可疑灰度图谱特征的筛选与定位。选定合适的像素矩阵大小,通过逐块遍历匹配的方式得到待测图谱每个分块与“Golden”软核灰度图谱的差异值,选择相关性最高的数值作为该块矩阵的相似特征,对输出图像进行判断,得到检测结果。
对于RTL 级IP 软核硬件木马检测而言,检测的关键在于找到待测IP 软核与“Golden”软核的差异,构建“Golden”软核的灰度图谱库。在此基础上,实现对灰度图谱的有效处理和特征显化,提出合理的硬件木马检测分析流程,在流程中最大限度地利用IP 软核的灰度图谱特征,分析待测软核与“Golden”软核的差异,从而实现硬件木马检测。
2.2.1 Trust-Hub 平台
硬件木马检测是一个热门研究方向,由于硬件木马性质的特殊性,使得公开的硬件木马设计实例极少。Trust-Hub 平台提供了硬件安全研究所需的资源,其包含多种被广泛应用的电路,如AES、RS232、MC8051、Basic RSA 等,并且针对每种电路都插入了由小到大不同规模的各种硬件木马,具有良好的通用性,因此,该网站基准电路数据集的可信度及检测的可行性较高。
2.2.2 “Golden”软核集构建流程
“Golden”软核集的构建以Trust-Hub 库中的标准电路为基础,可以快速建立并及时更新扩充标准电路,确保检测准确度。“Golden”软核集构建的整体流程为:从库中取出已知IP 软核的标准电路源代码,通过灰度图谱算法进行相关处理,得到“Golden”软核图谱,同理获得其他类型的标准电路,得到“Golden”软核集。上述过程实现流程如图4 所示。
图4 “Golden”软核集构建流程Fig.4 "Golden" soft core set construction procedure
“Golden”软核集的构建步骤如下:
1)从Trust-Hub 库中选取标准电路进行灰度图谱转换,得到RTL 级文件的二进制数据流,具体过程如算法1 所示。
算法1“Golden”数据图谱转换算法
灰度图谱匹配算法的核心在于将硬件木马RTL级程序映射成灰度图谱进行检测,对加密和非加密的IP 软核均适用,不需要借助硬件木马的语义特征、行为特征等进行筛选检测,而是通过RTL 级程序在灰度图谱上的数值进行分析。虽然硬件木马可能存在不同变种,这些变种的代码、结构等有一定区别,但是从同一个木马源文件演化出的变种依旧会有相似性,这种相似性可以体现在硬件木马对应的灰度图谱中。通过将灰度图谱的方法应用到硬件木马检测中,可以有效实现对IP 软核安全性的判定。
灰度图谱即只用黑白来表示图像中的亮度信息,不关注其中的色彩值。为了方便亮度值的量化,同时便于计算机进行处理,可以将灰度分成0~255共256 个级别,其中0 代表全黑(最暗),255 代表全白(最亮)。将IP 软核内的RTL 级程序通过算法得到对应的灰度图像,即程序文件的灰度图谱,具体流程如图5 所示。
图5 灰度图谱的产生流程Fig.5 Procedure of grayscale map generation
灰度图谱算法是把RTL 级程序映射成灰度图谱的具体实现过程,其步骤如算法3 所示。
算法3灰度图谱算法
正常转换后的灰度图谱较大,纹理特征无法明显表示出来,为提升检测精度,选取分块匹配的方式进行处理,从图谱中取出一个分块图谱A,从另一图谱中取出与A 相同尺寸的分块图谱B,对A 与B 进行像素值的差值计算,将得到对应像素的差值用矩阵K[i]进行保存,具体匹配过程如图6 所示。
图6 匹配检测过程Fig.6 Matching detection process
像素值的差值计算与矩阵的差值计算相似,计算方式为:
将得到的差值矩阵K[i]进行矩阵求和,将得到的求和值SSum保存到I[i,j]。矩阵求和运算公式为:
I[i,j]需要进行正值处理,将矩阵中所有元素变为正值,取绝对值即可,运算公式为:
经过正值化的I[i,j]就是图谱A 与图谱B 在对应像素的差值,差值的大小代表两者在图谱对应位置的差异,差值越大,表示两者区别越大;反之,两者相似度越高。
通过图谱匹配得到图谱A 与图谱B 的差异值I[i,j]。I[i,j]每一行代表从图谱A 中取出的每一个分块图谱与图谱B 中每一个分块图谱的差异,找到此行中最小的差异值,就代表取出的待测分块在“Golden”图谱最相似的位置。对I[i,j]的每一行进行取最小值处理,并把结果保存到Min[x],其最小值函数表达式为:
实验利用Winhex、Matlab 工具,实现灰度图谱转换、匹配检测等功能,并以Trust-Hub 库中典型的B19-T100、S38417-T200、Wb_conmax-T100 等系列IP 软核为例进行实验验证。
IP 软核B19-T100 中设计实现的是一种典型的硬件木马,该硬件木马触发器是一个特定的矢量(10110101)计数器,它会用另一个特定的矢量(11111111)重置,当计数器值在100~110 之间时木马触发器即被激活。木马的有效载荷是一个“或”门,通过重新连接设计网络。按照硬件木马分类原则,它属于在设计阶段插入的门级别、内部基于时间触发、改变系统功能的硬件木马,同时其物理特征表现为紧密、功能与布局相同。B19-T100 所植入的木马代码如下:
4.2.1 预处理
首先将待测样本IP 软核的RTL 级文件取出,通过处理得到待测样本的十六进制数据流,命名为“Sample to be tested”,“Golden”软核重复上述操作,文件命名为“Golden Set”。将处理得到的十六进制数据流作为Matlab 的输入,分别得到新矩阵G[i]与C[i,j],分别取 待测样本G[i]与“Golden Set”的C[i,j]并进行标准化,将数据量大小设为9×105,灰度图谱大小设为1 800×500,图谱大小的设定需要通过多次实验得到,太小会导致特征信息损失无法识别,太大不仅导致计算量过大,也会导致特征信息被淹没,识别效果不明显。
4.2.2 图谱匹配
设定分块图谱大小为5×500 并进行匹配,通过循环遍历进行滑动匹配,基于矩阵数值实现像素级的差值计算,循环得到所有待测样本分块在“Golden Set”相应位置上的差异值。对每一次差值计算完成的数据进行累加,差异值的大小反映在数值上而非符号上,因此,需要进行绝对值处理。
4.2.3 差异检测结果分析
对完成匹配检测后得到的数据进行取最小值处理,并记录取值的位置,使用plot 函数对结果进行展示输出。通过对Min[x]进行输出,观察最大相似度的分布特性,判断图像是否存在明显尖峰,若存在明显尖峰,则证明待测样本中含有硬件木马,反之,则不含有硬件木马。IP 软核B19-T100 实验结果如图7、图8 所示。
图7 B19-T100 含木马样本检测匹配结果Fig.7 Detection and matching results of samples containing Trojans in B19-T100
图8 B19-T100 不含木马样本检测匹配结果Fig.8 Detection and matching results of samples without Trojans in B19-T100
从含有硬件木马程序的IP 软核与“Golden”软核的灰度图谱匹配结果中可以发现明显的尖峰,这就表明待测样本中出现了与“Golden”软核较大的特征差异,说明待测样本此段代码与“Golden”软核内的代码不相符,极有可能是被恶意植入的硬件木马。从实验回溯情况来看,3 个尖峰对应的位置均为木马代码出现的位置,这种方法不仅可以检测是否存在木马,也可以用来定位木马所在位置。在图8 中,用不含硬件木马程序的IP 软核与“Golden”软核进行灰度图谱匹配检测,其中未发现明显尖峰,这就表明此软核含有硬件木马的概率极低。
同理,以相同的实验条件分别对S38417-T200、Wb_conmax-T100 进行检测,结果如图9~图12 所示。可以看出,3 种类型的硬件木马在结构、功能方面差异较大,且插入位置不唯一,本文方法对不同类型硬件木马进行检测时检测图像有较大区别,但均可以实现恶意逻辑的检测和定位。
图9 S38417-T200 含木马样本检测匹配结果Fig.9 Detection and matching results of samples containing Trojans in S38417-T200
图10 S38417-T200 不含木马样本检测匹配结果Fig.10 Detection and matching results of samples without Trojans in S38417-T200
图11 Wb_conmax-T100 含木马样本检测匹配结果Fig.11 Detection and matching results of samples containing Trojans in Wb_conmax-T100
图12 Wb_conmax-T100 不含木马样本检测匹配结果Fig.12 Detection and matching results of samples without Trojans in Wb_conmax-T100
为进一步验证并分析算法的有效性,选取5 个类型共18 种硬件木马进行实验。表1 列出了B19、B15、S38417、S38584、Wb_conmax 系列硬件木马的功能与所占源程序的体量,通过图谱检测,对以上木马的检测识别率达到了92%以上。
表1 图谱检测的木马识别率Table 1 Trojan recognition rate for graph detection
上述实验结果充分说明了灰度图谱检测的有效性,该算法在多次测试的基础上,选取检测效率最高的分块大小进行分析,将待测软核中的每一个分块图谱在“Golden”软核的灰度图谱中进行一次遍历,若此待测分块中没有硬件木马,遍历后会在“Golden”软核图谱中有一个位置与之对应。虽然匹配过程中会出现位移偏差,但是经过求和统计后,偏差可忽略不计。此外,通过取最小值处理,也可以降低误差,提高检测的准确性。从差异值分布特性的结果可以明显看出硬件木马是否存在,从而实现对IP 软核RTL 级硬件木马的检测识别。
随着集成电路产业的飞速发展,IP 软核被恶意植入硬件木马的风险与日俱增,通过在IP 软核的RTL 级设计阶段进行硬件木马检测可以避免被恶意攻击。本文提出的灰度图谱匹配检测方法实现了对IP 软核硬件木马的有效检测,与传统基于功能测试和特征匹配的方法相比,该方法能有效应对硬件木马变种多、加密处理失效的问题,具有硬件木马检测效率高、不受加密处理影响等特点,对于保证芯片使用安全具有一定的现实意义。下一步将对“Golden”软核库进行完善,扩充检测适用范围,可引入神经网络进行硬件木马种类识别,实现对硬件木马的精准分类。