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

文档序号:8543963阅读:来源:国知局
如果全部遍历的话需要2"7欠试验,由于当前常用的CPU都是32位以上,当m为32时,需要至少232或即约43亿次测试,才能把所有的指令操作遍历完,试验次数非常巨大,现实中难以实现。按照本方法,对CPU指令集进行分段,假设分为3段,长度分别为j位,k位,η位,分别对应操作码段和两个操作数段,产生样本时,首先采用遍历的方法依次从操作码段抽取操作码,然后用简单随机的方法分别在两个操作数段抽取操作数,然后进行组合形成一个完整的样本指令,最终样本集的大小由操作码段的长度来决定,即指令,且j〈m。
[0019]对CPU而言,一般来说,操作码段指明CPU的行为,操作数段是行为作用的对象,比如一个加法指令ADD rl r2,其中操作码ADD指明了 CPU行为是加法操作,操作数rl,r2是加的对象。在这种框架下,如果隐藏指令采用已有操作码加隐藏操作数的模式,那么在CPU正常使用过程中,隐藏指令极容易被误触发,所以如果CPU存在隐藏指令,操作码段很可能存在隐藏操作码,而操作数段则不一定,也就是说,操作码段存在隐藏操作码的概率远大于操作数段存在隐藏操作数的概率,因此对操作码段采用遍历的方法,对操作数采用简单随机抽样抽样的办法,相对于传统的全部遍历方法,试验的次数大大减少,并能有效检测出隐藏指令类木马。
[0020]下面结合在某SOC上的实例详细讲解本发明所使用的检测方法。
[0021]本SOC的框架如图3所示,以自主开发的简单控制CPU为内核,CPU指令码采用32位设计,操作码占8位,最多带2个操作数,位宽分别为8位和16位,见图4。操作码决定操作方式,操作数决定操作内容。本CPU总共设计了 64条指令,操作码从0x0到0x3f。在中断方面,如果CPU不能识别或执行载入的指令码,则产生未知指令中断。
[0022]现在产生一条木马指令,首先从0x40到Oxff中选择一个值作为操作码,假设选择0x5e作为操作码,根据CPU的设计,此操作码最多可以带2个操作数,这里假设此操作码只带一个操作数,即操作数1,位宽为8位,假设为0x34。此指令的作用是将指令所带操作数(0x34)覆盖CPU状态寄存器低8位,从而使CPU发生混乱,不能正常执行用户程序。
[0023]在检测时,首先对CPU指令码进行分段,首先分为操作码段和操作数段两部分,操作数段按照最大分段的原则分为两段,即操作数段1,位宽8位;操作数段2,位宽16位。
[0024]如此分段以后,操作数段从0x00到Oxff依次加I可形成256个样本,同理操作数段I可形成256个样本,操作数段2可形成216个样本。
[0025]在生成待测指令样本集时,由于操作码部分决定CPU的行为,操作数部分只是CPU行为作用的对象,所以对操作码样本集采用遍历的方法。对于操作数样本集合,在这种架构下,每个操作数的地位是平等的,故而操作数采用简单随机的方法。
[0026]在产生指令码时,首先从操作码样本集中取出操作码,然后再用简单随机的方式从操作段I样本集和操作数2样本集取出操作数,将此三段拼接形成指令码,按此方法生成整个待测样本集,大小为256,小于全随机方法的样本集232。
[0027]待测样本集中样本按操作码大小从小到大排列,即从0x00到Oxff依次排列。在检测时,按照顺序对待测样本集中的样本进行检测,如果CPU不能识别或执行载入的指令码,则产生未知指令中断。当检测到操作码为0x5e的指令时,并未发生预想的未知指令中断,可见此指令为木马指令。此时共执行了 95次操作。
[0028]可见,上述检测方法对CPU木马指令具有良好的检测效果。
【主权项】
1.一种针对CPU内部隐藏指令型硬件木马的检测方法,其特征在于,包括以下步骤: a)、对CPU指令进行分段,将其分为操作码段和操作数段; b)、对操作码段采用遍历的方法获得操作码,对操作数段采用简单随机抽样的方法获得操作数,将获得的操作码和操作数组合形成待测指令样本集; c)、对待测指令样本集的指令进行测试,若有指令样本不满足预先设计的运行要求,则认为该指令样本为隐藏指令,该CPU内部含有硬件木马。
2.根据权利要求1所述的针对CPU内部隐藏指令型硬件木马的检测方法,其特征在于:所述操作数段按照CPU架构指令集的特点分成N段,其中N为自然数。
3.根据权利要求2所述的针对CPU内部隐藏指令型硬件木马的检测方法,其特征在于:对操作数段进行分段时,按照以下原则: 1)每一段在整个指令中都是有意义的片段; 2)在满足I)的前提下,尽可能多分段。
4.根据权利要求1-3任一项所述的针对CPU内部隐藏指令型硬件木马的检测方法,其特征在于:所述步骤b)中形成的待测指令样本集样本数量与对操作码段进行遍历时产生的操作码样本数量相同。
5.根据权利要求2或3所述的针对CPU内部隐藏指令型硬件木马的检测方法,其特征在于:所述步骤b)中形成待测指令样本集时,按照以下步骤进行: O按次序在操作码段抽取操作码; 2)在N段操作数段中的每个操作数段采用简单随机抽样抽取操作数样本; 3)把步骤I)中抽取的操作码和步骤2)中抽取的N段操作数样本组合形成一个指令码; 4)重复以上步骤产生整个待测指令样本集。
【专利摘要】本发明提供一种针对CPU内部隐藏指令型硬件木马的检测方法,首先将CPU指令的机器码划分为操作码段和操作数段两个段,对操作数段,按照不同CPU架构的特点再划分为N个段。其次,对这划分过后N个操作数段,每个段按照一定的规则抽出一个样本,与操作码组成一个完成的指令。然后,对操作码段采用遍历的方法,对操作数段采用简单随机抽样的方法,从而形成一个待测指令样本集。最后对待测指令样本集中的所有指令进行测试,判断CPU中是否有隐藏指令型的硬件木马存在。本发明方法相对于传统的全部遍历方法,试验的次数大大减少,能够快速有效检测出隐藏指令类木马。
【IPC分类】G06F21-56
【公开号】CN104866766
【申请号】CN201510307347
【发明人】张 荣, 周昱, 包小钰, 魏敬和, 于宗光, 徐静
【申请人】中国电子科技集团公司第五十八研究所
【公开日】2015年8月26日
【申请日】2015年6月5日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1