一种针对CPU内部隐藏指令型硬件木马的检测方法技术

技术编号:11956253 阅读:110 留言:0更新日期:2015-08-27 08:06
本发明专利技术提供一种针对CPU内部隐藏指令型硬件木马的检测方法,首先将CPU指令的机器码划分为操作码段和操作数段两个段,对操作数段,按照不同CPU架构的特点再划分为N个段。其次,对这划分过后N个操作数段,每个段按照一定的规则抽出一个样本,与操作码组成一个完成的指令。然后,对操作码段采用遍历的方法,对操作数段采用简单随机抽样的方法,从而形成一个待测指令样本集。最后对待测指令样本集中的所有指令进行测试,判断CPU中是否有隐藏指令型的硬件木马存在。本发明专利技术方法相对于传统的全部遍历方法,试验的次数大大减少,能够快速有效检测出隐藏指令类木马。

【技术实现步骤摘要】

本专利技术涉及一种针对CPU内部隐藏指令型硬件木马的检测方法,主要针对第三方提供的SOC内核IP和使用第三方进口内核的SOC芯片。
技术介绍
近年来发生的“斯诺登棱镜门”,“伊朗震网”和“利比亚、叙利亚战争”等事件表明集成电路内的硬件木马可以作为一种武器来进行信息战,网络战,甚至物理摧毁军事装备与关键设施,严重威胁着国家安全。因此采取有效措施来对集成电路内的硬件木马进行有效识别,保证集成电路的安全可信。国内外对硬件木马的检测的研宄都是针对纯硬件的木马检测方法,目前主要有破坏性检测,系统运行检测,逻辑测试和旁路分析四类。其中研宄最多的就是基于旁路分析的硬件木马检测技术。旁路分析即是利用芯片工作时的旁路信息(如电磁辐射,电流或者电路延时等信息)来对木马进行检测。其原理是因为电路中植入的硬件木马会对芯片的一些旁路信号,如电流,频率或路径延时产生影响,因此通过观察芯片的旁路信号并与原始芯片的旁路信息作比较,进而检测出芯片中是否有硬件木马的存在。对电路进行基于旁路分析的硬件木马检测的最大优点是可以使硬件木马不被触发的情形下被检测出来,但是其也有显著的缺点,即当待测电路的总体规模很大,电路内部被植入的硬件木马的规模很小,一些旁路信息,比如电流和路径延时,其变化幅度极小。考虑到测量过程中引入的噪声,以及芯片制造过程中由于工艺漂移带来的噪声,这种极小的旁路信号变化将无法被实际测量出来或者即使被测量出来也难以确定是由于硬件木马引起的,还是由于测量噪声,工艺漂移噪声引起的。但对于CPU,SoC等电路内部是否存在隐藏指令这一类固件型的硬件木马的研宄基本处于空白状态。且由于这类隐藏指令型硬件木马需要由软件控制来触发,因为传统的如基于旁路分析检测的技术,无法适用于这类硬件木马的检测,因此需要有全新的检测方法来专门应对CPU内隐藏指令型的硬件木马的检测。
技术实现思路
本专利技术的目的在于克服现有技术中存在的不足,提供一种针对CPU隐藏指令的快速检测方法。本专利技术为实现上述目的,采用如下技术方案: 一种针对CPU内部隐藏指令型硬件木马的检测方法,其特征在于,包括以下步骤: a)、对CPU指令进行分段,将其分为操作码段和操作数段; b)、对操作码段采用遍历的方法获得操作码,对操作数段采用简单随机抽样的方法获得操作数,将获得的操作码和操作数组合形成待测指令样本集; C)、对待测指令样本集的指令进行测试,若有指令样本不满足预先设计的运行要求,则认为该指令样本为隐藏指令,该CPU内部含有硬件木马。其进一步特征在于:所述操作数段按照CPU架构指令集的特点分成N段,其中N为自然数。进一步的:对操作数段进行分段时,按照以下原则: 1)每一段在整个指令中都是有意义的片段; 2)在满足I)的前提下,尽可能多分段。进一步的:上述步骤b)中形成的待测指令样本集样本数量与对操作码段进行遍历时产生的操作码样本数量相同。上述步骤b)中形成待测指令样本集时,按照以下步骤进行: 1)按次序在操作码段抽取操作码; 2)在N段操作数段中的每个操作数段采用简单随机抽样抽取操作数样本; 3)把步骤I)中抽取的操作码和步骤2)中抽取的N段操作数样本组合形成一个指令码; 4)重复以上步骤产生整个待测指令样本集。由于CPU的隐藏指令常隐藏在操作码段,由操作码触发。本专利技术通过遍历操作码和随机抽样的多段操作数组合形成指令码,进行指令测试,根据测试结果是否满足预先设计的运行要求来判断是否有隐藏指令型的硬件木马存在。本专利技术方法对操作码进行遍历,使得对由操作码触发的隐藏指令检测具有较高的准确性;又由于样本数量与操作码数量相同,因此相对于传统的全部遍历方法,试验的次数大大减少。本专利技术方法能够快速有效检测出隐藏指令类木马。【附图说明】图1为本专利技术的流程示意图。图2指令分段示意图 图3为本专利技术在一实施例中所使用的控制器电路的架构图4为本专利技术在一实施例中所述的硬件木马电路的示意图。【具体实施方式】下面结合具体附图和实施例对本专利技术作进一步说明。现在的CPU体系中,指令是重要的组成部分,用户对CPU的各种操作,都是通过指令来完成。由于当今最流行的CPU架构如Intel X86,MIPS,ARM等,其指令集都由国外公司开发,对于其是否存在不在指令列表中的隐藏指令无从得知,也缺乏相应的检测手段来识别其电路或者IP内部是否存在有隐藏指令触发的某种后门功能。一旦其存在隐藏指令,并且为攻击者所知,则攻击者就可以利用这些隐藏指令来取得芯片的控制权从而完成对电路或者系统的攻击。基于上述情形,本专利技术提供了一种专门针对CPU、SoC等核心芯片内部可能存在隐藏指令的检测方法。对于CPU来说,其指令码长度一般是固定的。指令码主要有操作码和操作数组成。操作码即是代表了不同的指令操作方式,如移位,加,减,取反等操作类型,而操作数即是代表了不同的操作内容,比如移一位,还是移二位等。在具体的实施过程,将指令码分成数段,如操作码段,操作数1,操作数2,操作数3,…操作数N。由于指令数的位数较多,对分成的N段都进行遍历,其消耗的时间将是天文数字,现实中无法完成。为了减小测试时间,对划分后的每一段操作数采用不同的抽样方法,并与操作码组合在一起形成待测指令样本集,再对样本集中的每一组指令进行测试,这样可以显著减小测试时间。图1为本专利技术的流程示意图。图2为一个指令码分段的示意图,此指令码被分成三段,对操作码段,采用遍历的方法取样,对操作数I段和操作数2段,则采用简单随机抽样的办法,每一个指令都由这三段组合而成,形成待测指令样本集。最后对产生的样本集内的所有指令操作进行检测,如果有指令操作的执行结果不符合预期,则认为其为隐藏指令操作。假设CPU指令码有m位,当前第1页1 2 本文档来自技高网
...

【技术保护点】
一种针对CPU内部隐藏指令型硬件木马的检测方法,其特征在于,包括以下步骤:a)、对CPU指令进行分段,将其分为操作码段和操作数段;b)、对操作码段采用遍历的方法获得操作码,对操作数段采用简单随机抽样的方法获得操作数,将获得的操作码和操作数组合形成待测指令样本集;c)、对待测指令样本集的指令进行测试,若有指令样本不满足预先设计的运行要求,则认为该指令样本为隐藏指令,该CPU内部含有硬件木马。

【技术特征摘要】

【专利技术属性】
技术研发人员:张荣周昱包小钰魏敬和于宗光徐静
申请(专利权)人:中国电子科技集团公司第五十八研究所
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1