基于多信号特征融合的硬件木马识别技术
2021-12-23赵聪慧严迎建刘燕江朱春生
赵聪慧,严迎建,刘燕江,朱春生
(信息工程大学 信息安全重点实验室,河南 郑州 450000)
0 引 言
近年来,半导体行业的设计和生产流程分工越来越明确,为了加快研发周期和缩短上市时间,第三方IP核广泛应用在电路设计中。然而,由于第三方国家和人员的参与,作为“黑盒”设计的第三方IP核存在硬件木马的安全风险。由于缺乏市场监管,第三方IP核的可信性更加难以有效保证。因此,亟需开展面向IP核的硬件木马检测技术研究。
J. Zhang等设计了VeriTrust[1],将硬件木马的检测问题转换为对冗余输入的检测问题,但是VeriTrust只对紧密分布的硬件木马展现出较好的检测效果,如果硬件木马分布较为分散,则无法有效识别。随后,Hassan Salmani提出的COTD[2],认为信号的高可控制性CC和可观察性CO是硬件木马的信号特征,利用k-means无监督聚类学习算法将信号分类来识别出木马节点。然而,仅仅使用
总的来说,目前基于信号特征的硬件木马检测方法主要关注于硬件木马触发节点的检测,且大多集中在静态翻转率或者低可控性节点的寻找方面。然而此类拓扑分析方法只涵盖部分信号逻辑值分布特征,而信号翻转特征尚未覆盖。此外,该类方法可准确计算小规模电路的木马信号特征,然而在大规模集成电路计算中会出现难以收敛、计算成本高和偏差大等问题。特征集的完备程度直接决定了硬件木马的检测效率和可扩展性,为此,本文在基于低静态翻转率和低控制节点的木马触发信号特征的基础上,融合了动态翻转率的逻辑翻转信号特征,进一步完善了硬件木马的触发特征集。同时提出了基于低观测节点的硬件木马载荷信号特征,进而构造了硬件木马的五维特征向量空间,并利用优化的KNN分类算法来建立硬件木马特征分类器,根据类号确定硬件木马信号和原始信号,实现了集成电路安全可信的早期评测。
1 基于信号特征的硬件木马隐藏性分析
硬件木马由触发部分和有效载荷两部分组成,硬件木马的植入分为触发植入和载荷植入。为了进一步降低硬件木马被发现的风险,攻击者往往选择具有高隐藏性的节点进行硬件木马的植入。因此,本文从硬件木马的触发隐藏性植入和载荷隐藏性植入两个角度进行分析,建立更加完备的硬件木马隐藏性模型。
在触发隐藏性方面,通常会选择隐蔽的触发条件来作为硬件木马的激活条件[4]。目前主要用静态翻转率和可控性来表征电路内部节点的隐蔽性。其中静态翻转率Ptp的计算方法如式(1)所示,Ptp为该节点出现逻辑“0”的概率P0与该节点出现逻辑“1”的概率P1的乘积[5,6]
Ptp=P0×P1
(1)
获取电路中节点的静态翻转率通常有两种方法,一是拓扑分析法,又称几何分布法,二是随机仿真法。拓扑分析法主要依据电路的拓扑结构来确定节点的翻转概率,图1通过一个简单的电路来介绍该方法的计算规则。
图1 拓扑分析法计算规则
假设输入信号I1,I2,I3,I4,I5出现逻辑“0”和“1”的概率相等,均为1/2,根据与门和或门的布尔逻辑关系可以计算得出内部节点A、B出现逻辑“0”和“1”的概率分别为3/4和1/4,C出现逻辑“0”和“1”的概率分别为9/16和7/16,D出现逻辑“0”和“1”的概率分别为3/8和5/8,从而计算出输出节点O出现逻辑“0”和“1”的概率分别为93/128和35/128。这种方法对于规模较小、结构简单的电路可以起到较好的效果,但当结构复杂、反馈路径较多时,考虑到内部节点的相关性,依据电路的拓扑结构计算节点静态翻转率可能会与电路的实际运行情况存在较大的偏差。为了更加准确地描述节点的静态翻转率,本文采用随机仿真法来计算节点的静态翻转率,其计算如式(2)所示
(2)
此式中将电路节点出现逻辑“0”或“1”的概率转换为电路工作中该节点为逻辑“0”或“1”的时间与总时间的比值[6],其中T0和T1是在整个仿真周期T内出现逻辑“0”或者“1”的时间,T为整个仿真时间。当T0=T1时,Ptp达到最大值0.25。节点的静态翻转率越低,节点的逻辑不平衡性越强,越容易出现逻辑罕见值,此逻辑罕见值可用来作为硬件木马的触发条件。
可控性是可测试性的一种量化方法,用来衡量测试向量控制内部节点逻辑值的难易程度,包括组合0可控性CC0和组合1可控性CC1[7]。节点的可控性与逻辑门的布尔函数有关,图2给出了基本逻辑门的可控性计算规则。以二输入与非门为例,计算节点z的可控性。为使输出节点z=0,节点a和b均需为1,因此节点z的组合0可控性为CC0(z)=CC1(a)+CC1(b)+1;为使输出节点z=1,只要输入节点a或者b为0即可,因此z的组合1可控性为CC1(z)=min(CC0(a),CC0(b))+1。
图2 基本逻辑门的可控性计算规则
节点可控性粗略地反映了用于控制内部节点z达到特定逻辑值的难易程度,节点的可控值越高,外部输入向量控制该节点达到特定逻辑值的难度越高,即该逻辑值在测试与验证阶段越难被覆盖到,则该节点的可控性越差。因此,低可控性节点集之间可组合形成隐蔽性触发条件,也是硬件木马隐藏的有效节点。
通过以上分析可以看出,静态翻转率表征的是节点的逻辑值分布情况,可控性从电路拓扑的角度衡量控制内部节点逻辑值的难度,二者从逻辑分布和拓扑结构两个角度阐述了节点的静态特征,然而二者不能反映节点的动态翻转情况[8]。硬件木马的触发条件包括逻辑值、逻辑翻转以及状态机等多种条件,单一的静态特征无法涵盖所有的硬件木马,为了更加全面地反映节点的隐蔽程度,本文加入了信号的动态翻转率特征,与可控性和静态翻转率共同表征触发节点的隐藏性。
电路中节点的动态翻转率Ptc表征节点的翻转情况,可以定义为该节点的翻转次数TC与内部节点最大翻转次数TCmax的比值[8],如式(3)所示。在时序电路中,TCmax为与时钟信号一级相连的节点的翻转次数。节点的动态翻转率越低,表明节点在仿真过程中的活性越低,在整个仿真周期中翻转次数越少,如果作为触发节点更能降低硬件木马被激活的概率
(3)
目前硬件木马的植入大多停留在触发隐藏性植入方面,以尽可能降低硬件木马被误激活的概率,尚未展开对载荷性植入的研究。硬件木马的载荷是恶意功能的执行单元,相比触发部分来说,载荷部分的结构更加复杂。如果载荷部分不加隐藏,一旦恶意功能被开启并传递到输出端,很容易被传统的功能测试所识别。载荷隐藏性植入是对硬件木马隐藏性植入的补充与完善,有助于建立更加完备的硬件木马隐藏性模型。
可观测性作为可测试性的另一种量化方法,是衡量从电路输出端观察电路内部节点逻辑值的困难程度的指标。图3给出了基本逻辑门的可观测性计算规则。同样以二输入与非门为例,计算电路节点a的可观测性CO(a)。由于与非门的逻辑关系,输入a和b存在逻辑关联性,为了计算a的可观测性,须使输入b保持逻辑1,使输入a的结果直接反映在输出z上。所以,输入a的组合可观测性为CO(a)=CO(z)+CC1(b)+1。
图3 基本逻辑门的可观测性计算规则
可观测性粗略地反映了内部信号逻辑值的可传递性,节点的可观测值越高,其可观测性越低,其逻辑值越难传递到输出,即通过电路的原始输出观察该节点逻辑值变化越困难。因此,该属性可以用来隐藏硬件木马的有效载荷,尤其是功能改变型硬件木马。一旦硬件木马被误触发,载荷所在节点的逻辑值被改变,然而改变的逻辑值难以传递到输出端,进而可以绕过功能测试手段。因此选择低观测节点作为硬件木马的载荷节点,可以有效隐藏其恶意功能,是载荷隐藏性植入的理想植入位置。
综上所述,低控制、低静态翻转率和低动态翻转率节点是硬件木马触发部分的理想植入点,可以保证输入测试向量难以激活硬件木马,而低观测节点是硬件木马载荷部分的有效隐藏点,可以保证硬件木马的影响难以传递到输出端。因此,本文将节点的可控制性、静态翻转率、动态翻转率和可观察性共同作为表征木马隐藏性的信号特征。
2 基于KNN的硬件木马检测方法
K近邻(k-nearest neighbor,KNN)[9,10]是一种广泛应用于分类的有监督机器学习算法,该算法准确性高,对异常值和噪声的容忍能力强,广泛应用在统计分析、模式识别等领域。本文利用K近邻算法来量化数据集差异性分布,通过分析Trust-Hub中已知木马电路的门级网表特征并建立分类器,应用建立的KNN分类器完成对未知电路的硬件木马识别。
2.1 基于KNN的硬件木马检测模型构建
通过对信号的触发隐藏性分析和载荷隐藏性分析,本文提取信号的静态翻转率、动态翻转率、组合0可控性、组合1可控性和可观察性,作为表征木马信号的有效特征,每个信号用一个五维的特征向量表示,如式(4)所示
V={Ptp,Ptc,CC0,CC1,CO}
(4)
该五维向量作为机器学习中训练分类器的特征向量,构造分类模型,当输入任意一个信号的特征向量V时,该分类模型能够判断此信号是否为木马信号并输出相应的标识,硬件木马的检测问题由此转换为机器学习领域的分类问题。
K近邻算法的基本思路是:如果一个待分类样本在特征空间中的k个最相似(即特征空间中k近邻)的样本中的大多数属于某一个类别,则该样本也属于这个类别[9,10]。K近邻算法的优势体现在它没有过多需要迭代优化的参数,只需要选择合适的k值来规定待分类的样本由与其相邻的多少样本来决定,大大简化了后期调整分类器模型的过程,而且还具有准确性高,对异常值和噪声的容忍能力强等优点,在中小规模的数据集训练中展现出优异的训练能力,因此本文选择KNN算法对分类器模型进行训练。
2.2 基于KNN的硬件木马检测模型优化
在KNN分类器的训练过程中,数据集的处理方法和参数k的选择都将对最终的训练结果产生很大的影响。由于硬件木马电路规模很小,通过分析电路直接获取的数据集一般是不平衡的,用不平衡的数据集训练出的分类器容易导致结果偏向多数类,使分类结果不准确。K近邻算法中k值决定待分类样本由与其相邻的多少样本来决定,k值的大小直接影响分类结果。本节从这两方面入手对检测模型进行调整优化。
2.2.1 基于SMOTETomek的数据集平衡方法
在分类器的学习过程中,数据集的好坏对学习的结果有很大的影响。攻击者为了使木马不易被检测,植入电路中的木马模块在整个电路中的占比非常小,这就导致我们通过分析已知木马电路而获取的数据集是极度不平衡的,其中绝大多数特征向量的标签为0,只有极少部分标签为1。用这样不平衡的数据集训练出的分类器,由于缺乏对少数类的学习,很容易导致结果偏向多数类。因此,在分类器学习数据之前,需要先对数据集进行平衡处理。
由于木马电路规模极小的特点,硬件木马的特征候选集较少,可能导致建立的检测模型不够完善,很容易陷入局部最优。SMOTE[11](synthetic minority oversampling technique)过采样技术由Nitesh V. Chawla等在2002年提出,其基本策略是对每个少数类样本a,随机选一个最近邻的样本b,然后在a、b之间的连线上随机选一个点c作为新合成的少数类样本[11]。该算法通过对少数类样本进行分析,根据少数类样本人工合成新样本,而不是简单地复制少数类样本,一定程度上解决了随机过采样算法通过简单复制样本而带来的模型过拟合的问题,但由于其对每个少数类样本都生成新样本,导致类之间更加容易发生重叠,边界模糊,从而使分类器的学习能力下降。Tomek Links[12]是目前广泛应用的一种数据清洗技术,由Tomek在1976年提出,它通过确定Tomek Links样本对来删除类间的重复项,使分类界面更加清晰。其中,Tomek Links定义如下:如果不存在任何样本xt,使得d(xi,xt) 为了解决过拟合和边界模糊问题,本文采用上述两种方法相结合的SMOTETomek[13]采样技术,先通过SMOTE算法生成少数类样本,再利用Tomek Links进行数据清洗,删除噪声样本或者处于边界位置的样本。具体算法步骤如下: 步骤1对少数类点应用KNN算法,得到其k个近邻,按采样比例在这k个近邻中选择若干个样本; 步骤2对于选中的近邻x′,根据xnew=x+rand(0,1)(x′-x)生成新的样本,得到样本集S0; 步骤3对任意xi1∈S1(少数类),计算xi1到S2(多数类)中任意样本点的距离di1j1,记录最小距离di1min及相应样本标号j1;对任意xi2(多数类),计算xi2到S1中任意样本点的距离di2j2,记录最小距离di2min及相应样本标号j2; 步骤4若di1min=di2min且j1=j2,删除xi1和xi2。 2.2.2 基于交叉验证和网格搜索融合的k参数选取策略 在训练KNN分类器的过程中,需要确定k值来规定待分类的样本,由与其相邻的多少样本决定,k值直接决定了分类器的分类效果,因此参数k的选取则变得至关重要。本文采用网格搜索和交叉验证相结合的方法来进行参数k的优化选取。 网格搜索是一种常用的调参手段,其基本思想是通过穷举搜索,将可能的k取值一一列出,并对每个k值对应的分类模型进行比较评估,最终找出表现最好的参数。在训练每个k值对应的分类器时,本文采用K折交叉验证的方法,通过K次训练获取平均的检测准确度。 交叉验证是建模应用中常用的一种评估模型的方法,在K折交叉验证中,将数据集分为K份,每次选择其中一份作为测试集,其余K-1份作为训练集(带标签),用带标签的训练集训练分类器,然后对测试集中的数据进行分类,并据此计算其检测准确度。训练集和测试集划分方法的不同,将导致测试结果不同程度的波动,本文采用K折交叉验证的方法以降低测试结果对数据划分方法的敏感度,从而更加准确地评估每个k值对应的分类模型,找出最优的k值。具体流程如图4所示。 首先设定参数k的取值集合Q={q1,q2,…,qn},对Q中每一个k的取值qi,进行KNN分类器的训练。训练过程采用K折交叉验证的方法,将数据集分为K份,每一份轮流作为测试集,其余K-1份作为训练集,计算K次分类模型的平均准确率作为k=qi时分类器的准确率。比较所有k值对应的分类模型的准确率大小,选择具有最高准确率的分类模型所对应的k值作为最终的k值,并将该模型保存下来,作为最终的分类器模型,对待测电路进行检测。 完成分类模型的优化后,需要选取合适的测试基准,以检验该分类模型的有效性。Trust-hub[14]网站是一个资源共享平台,它为硬件安全的研究者提供测试电路、工具和硬件平台。网站提供的测试电路按插入阶段、抽象层次、插入位置等的不同分别进行了分类,其中按抽象层次分类中的门级这一类别提供了各个功能模块经DC综合后的门级网表,即各功能模块的IP固核。本文选取应用广泛的接口电路RS232和10Gb以太网媒体访问控制器(EthernetMAC10GE)的IP固核作为本文实验的测试基准,其具体功能描述见表1。 图4 KNN分类器中参数k的调节流程 表1 对木马电路的具体描述 采用EthernetMAC10GE、RS232等11个功能模块的IP固核作为测试基准,对所提出的硬件木马检测方法进行验证和评估,具体实验流程如图5所示。 图5 基于多信号特征融合的硬件木马识别流程 基于Trust-Hub网站提供的门级网表对电路进行触发隐藏性分析和载荷隐藏性分析,利用Synopsys公司的Modelsim仿真工具和TetraMAX自动测试向量生成(automatic test pattern generation,ATPG)工具进行信号特征提取。首先,使用Python语言编写测试向量生成算法,随机生成大量测试向量,将生成的测试向量输入Modelsim仿真工具,对电路进行仿真验证,将仿真结果输出保存。统计各节点在整个仿真周期中出现逻辑“0”和逻辑“1”的时间以及翻转次数,根据式(1)和式(3)计算节点的静态翻转率Ptp和动态翻转率Ptc。然后,使用TetraMAX自动测试向量生成工具进行可测性分析,根据ATPG流程依次读取门级网表和库文件,创建ATPG模型,读取测试协议文件进行设计规则检查(DRC design rule check),随后直接将引脚参数设置为“scoap_data”进行输出,便可得到电路中各节点的组合0可控性CC0、组合1可控性CC1和组合可观察性CO等数值。应该注意TetraMAX在输出电路中各信号的CC0-CC1-CO值时,会将超过254的值用 星号“*”表示,为了不影响后续机器学习的学习效果,本文用255替代星号“*”。 获取各信号的翻转概率和可测性值后,构造表征木马信号特征的五维特征向量V={Ptp,Ptc,CC0,CC1,CO}。为每个信号的特征向量添加标签,木马信号标记为1,普通信号标记为0,形成数据集,采用SMOTETomek算法对数据集进行平衡处理。用平衡后的数据集训练KNN分类器,采用网格搜索和交叉验证的方法,选出最优的分类模型,对待测电路进行检测,得到木马信号列表和正常信号列表。 对测试基准进行统计分析,得到其线网信息见表2。 表2 测试基准网表信息 为了评估本文所提出的硬件木马检测方法的有效性,本文选取TPR和TNR这两个常用指标,定义如式(5)和式(6)所示 (5) (6) 其中,TP(true positive)指被正确识别的木马信号数量,TN(true negative)指被正确识别的正常信号数量,FP(false positive)指正常信号被错误识别为木马信号的数量,FN(false negative)指木马信号被错误识别为正常信号的数量。 将本文方法应用于测试电路集上,得到实验结果见表3。 表3 基于KNN分类的实验结果 由表3可以看出,本文方法在所有的测试电路上都达到了非常高的准确率,对于RS232系列通信电路可以达到100%的TPR,即所有的木马信号均可被检测出来。对于控制器EthernetMAC系列电路也达到90%以上的TPR,实现了较高的木马检出率。对所有测试电路的木马信号平均检出率达到98.23%,在木马识别方面展现出巨大的优势。 与现有方法相比,进一步验证了本文所提方法的有效性。表4对文献[3]、文献[15]以及本文所提方法进行了比较,可以看出,本文方法在木马检出率方面得到了很大的提高,与文献[3]、文献[15]相比,分别提高了16.30%和10.24%,展现出明显的优势,具体如图6所示。 表4 本文方法与现有方法的比较 图6 本文方法与现有方法的分类结果比较 本文测试基准选取的是在SOC设计中常用的接口电路RS232和媒体访问控制器EthernetMAC,虽然只有2组基准电路,但包含了11种不同的硬件木马,且这11组硬件木马模块可以植入到其它电路中,本文方法不受基准电路的限制,对各种类型的电路均具有很好的适用性。随着木马设计方法的不断发展,还可进一步扩展硬件木马的信号特征,提高检测算法应对新型木马的能力。总的来说,该方法是一种兼具灵活性和扩展性的硬件木马检测方法。 本文提出了一种基于多信号特征融合的硬件木马智能识别方法,在触发隐藏性植入的基础上,补充了载荷隐藏性植入,建立了更加完备的硬件木马隐藏性模型。并且在触发节点的寻找方面,在常用的静态翻转率和可控性特征的基础上,加入了动态翻转率,扩充了木马特征,形成了低静态翻转率、低动态翻转率、低组合0可控性、低组合1可控性和低组合可观察性的硬件木马特征集。应用KNN分类器对待测电路进行分类,大大提高了检测效率。由实验结果可知,本文方法达到了98.23%的硬件木马平均识别率,与文献[3]、文献[15]的方法相比,大大提高了硬件木马的检出率,是一种灵活且可扩展的硬件木马检测方法。今后将重点研究电路的结构特征,在现有基础上继续扩充木马特征库,进一步提高检测精度。3 实验结果与分析
3.1 测试基准
3.2 实验流程
3.3 实验结果
4 结束语