CN113221119B - 嵌入式处理器分支预测漏洞检测方法、计算机设备和介质 - Google Patents

嵌入式处理器分支预测漏洞检测方法、计算机设备和介质 Download PDF

Info

Publication number
CN113221119B
CN113221119B CN202110524426.7A CN202110524426A CN113221119B CN 113221119 B CN113221119 B CN 113221119B CN 202110524426 A CN202110524426 A CN 202110524426A CN 113221119 B CN113221119 B CN 113221119B
Authority
CN
China
Prior art keywords
instruction
instructions
program
weight
branch prediction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110524426.7A
Other languages
English (en)
Other versions
CN113221119A (zh
Inventor
马瑶瑶
张大健
陈鑫峰
崔颖超
彭大千
石宗育
姚乾
夏立宁
赵红
骆炜
纪崇廉
曹中全
任彦宇
李华英
王晓颖
方兴园
王恩奇
孙思桐
宋鑫磊
郭哲
丁衍
许盛晨
曹博远
李军
庞帅
刘莘
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Financial Certification Authority Co ltd
Original Assignee
China Financial Certification Authority Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Financial Certification Authority Co ltd filed Critical China Financial Certification Authority Co ltd
Priority to CN202110524426.7A priority Critical patent/CN113221119B/zh
Publication of CN113221119A publication Critical patent/CN113221119A/zh
Application granted granted Critical
Publication of CN113221119B publication Critical patent/CN113221119B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种嵌入式处理器分支预测漏洞检测方法、计算机设备和介质,所述方法包括:编译校验程序集,所述校验程序集包含至少一个校验程序;反编译校验程序集,统计待测试指令集中每条指令的执行频率;根据指令的执行频率,对每条指令赋予相应的权值,所述权值与执行频率正相关;根据指令的权值,分配相应的检测资源,对指令进行分支预测攻击,所述分配的检测资源与所述权值正相关;检测嵌入式处理器执行指令的时间,记录与其他指令的执行时间差距大于预定阈值的指令。通过上述方法能够兼顾检测的准确性和效率。

Description

嵌入式处理器分支预测漏洞检测方法、计算机设备和介质
技术领域
本申请涉及嵌入式处理器检测技术领域,特别是涉及一种嵌入式处理器分支预测漏洞检测方法、装置、计算机设备和存储介质。
背景技术
随着现代处理器设计技术的不断迭代更新和发展,欧美发达国家以及我国嵌入式处理器已经从无指令集预测功能、指令集顺序执行的“第一代”处理器发展为更高效、更加智能化,具有指令集分支预测功能的“第二代”处理器。分支预测可以将原先顺序执行的重要指令提前执行,将指令运算结果预先存储在处理器内部的高速设备上,如高速缓存、寄存器标志位等,从而提高运行效率。但是可能会带来显著的安全问题,比如:由于原先不应被执行的指令被提前执行,比如:写有随机密码的代码,未被发送的密钥,硬编码设备密码、设备序列号等敏感信息等则会由于在没有保护机制的情况下提前执行而暴露。
由于我国自主嵌入式处理器研制起步较晚,在大规模集成电路的工艺、研究和设计上距离欧美发达国家约有30年左右的差距,与欧美顶尖大规模集成电路设计研究院,如:英特尔、德州仪器、意法半导体、荷兰飞利浦NXP、Arm英国设计院的同类产品相比较,在成熟度、稳定性、性能和安全性上存在明显的代差。在安全性方面,由于分支预测功能的加入和设计经验的欠缺,国产自主可控处理器存在大量的安全性漏洞,无疑给应用于国家机要部门的应用造成了很大的安全性隐患。
综上所述,如何能尽早的、有效的排查出上述安全性隐患,采用合理的安全性弥补措施予以杜绝重大信息安全事件的发生成为了一个非常紧要而且严肃、迫切的问题。
发明内容
基于此,有必要针对上述存在的安全性问题,提供一种嵌入式处理器分支预测漏洞检测方法、装置、计算机设备和存储介质。
本申请提供了一种嵌入式处理器分支预测漏洞检测方法,包括如下步骤:
编译校验程序集,所述校验程序集包含至少一个校验程序;
反编译校验程序集,统计待测试指令集中每条指令的执行频率;
根据指令的执行频率,对每条指令赋予相应的权值,所述权值与执行频率正相关;
根据指令的权值,分配相应的检测资源,对指令进行分支预测攻击,所述分配的检测资源与所述权值正相关;
检测嵌入式处理器执行指令的时间,记录与其他指令的执行时间差距大于预定阈值的指令。
本申请又提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
编译校验程序集,所述校验程序集包含至少一个校验程序;
反编译校验程序集,统计待测试指令集中每条指令的执行频率;
根据指令的执行频率,对每条指令赋予相应的权值,所述权值与执行频率正相关;
根据指令的权值,分配相应的检测资源,对指令进行分支预测攻击,所述分配的检测资源与所述权值正相关;
检测嵌入式处理器执行指令的时间,记录与其他指令的执行时间差距大于预定阈值的指令。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
编译校验程序集,所述校验程序集包含至少一个校验程序;
反编译校验程序集,统计待测试指令集中每条指令的执行频率;
根据指令的执行频率,对每条指令赋予相应的权值,所述权值与执行频率正相关;
根据指令的权值,分配相应的检测资源,对指令进行分支预测攻击,所述分配的检测资源与所述权值正相关;
检测嵌入式处理器执行指令的时间,记录与其他指令的执行时间差距大于预定阈值的指令。
作为对上述方法、计算机设备和计算机可读存储介质的进一步改进,所述统计待测试指令集中每条指令的执行频率,包括:对于任一指令,计算其在每个校验程序中的调用次数,以及每个校验程序中所有指令的总调用次数;统计该指令对整个校验程序集所有指令的高斯分布值;根据所述高斯分布值确定所述执行频率。
作为对上述方法、计算机设备和计算机可读存储介质的进一步改进,所述统计待测试指令集中每条指令的执行频率,包括:对于任一指令,计算其在每个校验程序中的运行时间,以及每个校验程序的总运行时间;对程序覆盖性进行检验;统计该指令对整个校验程序集运行时间的泊松分布值;根据所述泊松分布值确定所述执行频率。
作为对上述方法、计算机设备和计算机可读存储介质的进一步改进,所述统计待测试指令集中每条指令的执行频率,包括:对于任一指令,计算其在每个校验程序中的调用次数,以及每个校验程序中所有指令的总调用次数;统计该指令对整个校验程序集所有指令的高斯分布值;对于任一指令,计算其在每个校验程序中的运行时间,以及每个校验程序的总运行时间;对程序覆盖性进行检验;统计该指令对整个校验程序集运行时间的泊松分布值;根据所述高斯分布值和泊松分布值确定所述执行频率。
作为对上述方法、计算机设备和计算机可读存储介质的进一步改进,所述对程序覆盖性进行检验,包括以下覆盖方式的一种或两种以上的组合:分支覆盖、条件覆盖、判断覆盖、代码覆盖。
作为对上述方法、计算机设备和计算机可读存储介质的进一步改进,所述根据高斯分布权重和泊松分布权重综合确定所述执行频率;根据指令的执行频率,对每条指令赋予相应的权值,包括:权值=α*Gaussian(I,X1)+β*Poisson(I,X2),α为高斯分布修正系数,β为泊松分布修正系数;Gaussian(I,X1)表示指令I对整个校验程序集所有指令的高斯分布权值函数,X1为高斯分布值;Poisson(I,X2)表示指令I对整个校验程序集运行时间的泊松分布权值函数,X2为泊松分布值。
作为对上述方法、计算机设备和计算机可读存储介质的进一步改进,所述检测资源为检测时间和/或硬件资源;每个分支预测攻击之间的时间间隔为嵌入式处理器时间调用周期的100倍以上。
作为对上述方法、计算机设备和计算机可读存储介质的进一步改进,重复的执行分配检测资源、进行分支预测攻击、检测指令执行时间的步骤;或者重复的执行检测资源分配单元和指令执行时间检测单元,以对结果进行确认。
本申请通过对校验程序进行编译、反编译,确定每条指令的执行频率,从而可以根据每条指令的执行频率;根据该执行频率可以对每条指令赋予一个权值,该权值即可表示对应指令触发分支预测事件的概率。那么根据该权值,即可对每条指令的检测资源进行分配,并且使权值与检测资源正相关,从而可以做到对检测资源的合理分配,使得在有限的检测资源条件下,同时保证检测的准确性和效率。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:
图1为一种实施例中的嵌入式处理器分支预测漏洞检测装置的整体架构示意图;
图2为一个方法实施例的流程示意图;
图3为一个实施例中的统计指令执行频率的流程示意图;
图4为另一个实施例中的统计指令执行频率的流程示意图;
图5为又一个实施例中的统计指令执行频率、计算权值的流程示意图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
下面对本申请涉及的一些技术术语进行简单介绍。
嵌入式处理器,下文简称CPU,嵌入式处理器是嵌入式系统的核心,是控制、辅助系统运行的硬件单元;嵌入式处理器直接关系到整个嵌入式系统的性能。通常情况下嵌入式处理器被认为是对嵌入式系统中运算和控制核心器件总的称谓。当前具有嵌入式功能特点的处理器已经超过1000种,流行体系结构包括MCU,MPU等30多个系列,从单片机、DSP到FPGA有着各式各样的品种,大规模应用的包括8位、16位、32位和64位等类型。
指令集,是CPU中用来计算和控制计算机系统的一套指令的集合,而每一种CPU在设计时就规定了一系列与其他硬件电路相配合的指令系统。指令集是提高处理器效率的最有效的工具之一。
指令集中的指令一般是顺序执行的。而分支预测功能则可以将原先顺序执行的重要指令提前执行,将指令运算结果预先存储在处理器内部的高速设备上,如高速缓存、寄存器标志位等,从而提高运行效率。由于原先不应被执行的指令被提前执行,分支预测可能会带来安全问题,比如:写有随机密码的代码、未被发送的密钥、硬编码设备密码、设备序列号等敏感信息等则会由于在没有保护机制的情况下提前执行而暴露。这就产生了安全上的漏洞。
因此,需要对具有分支预测功能的指令集进行检测,以发现其安全漏洞。
然而,对于一个指令集,其中哪些指令会触发分支预测功能,哪些指令不会触发分支预测功能,以及,在哪些组合条件下会触发分支预测功能,处理器厂商并不会公开或者完全公开;因此,这就对用户进行检测造成了不小的障碍:例如,为了确定哪些指令存在漏洞,就不得不对每条指令均进行分支预测攻击,并且尽可能多的模拟可能触发分支预测功能的各种组合条件以发现漏洞。这种方式的缺点包括:第一,这会消耗过多的资源;第二,某些指令重复进行攻击才可能发现漏洞,也就是说,这种检测方式无法兼顾准确性和效率。
本申请的基本构思是:
虽然各CPU厂家在设计时,赋予CPU触发分支预测判断的算法和触发条件是不相同的,但是在目的上都是为了提高CPU的效率,才会对部分代码部分指令进行优化,乱序执行,预先计算某些指令执行的结果用以提高效率。基于此考虑可知,某指令的执行频率越高,其触发分支预测事件的概率也越大,反之则触发分支预测事件的概率越小。
本申请通过对校验程序进行编译、反编译,确定每条指令的执行频率,从而可以根据每条指令的执行频率;根据该执行频率可以对每条指令赋予一个权值,该权值即可表示对应指令触发分支预测事件的概率。那么根据该权值,即可对每条指令的检测资源进行分配,并且使检测资源与权值正相关,从而在有限的检测资源条件下,同时保证了检测的准确性和效率。
下面进行详细介绍,其中以国产嵌入式处理器为例进行介绍,但是本领域技术人员应当理解,本申请的方法不仅适用于国产嵌入式处理器,对于非国产的嵌入式处理器依然适用。
如图1为嵌入式处理器分支预测漏洞检测装置的整体架构图,在国产嵌入式处理器应用的上部署支持该嵌入式处理器的操作系统。在操作系统相应位置部署嵌入式处理器指令库,分支预测漏洞代码训练模块,时间基准校验模块,总体调度模块。
其中,嵌入式处理器指令库包含了待测试的指令集。分支预测漏洞代码训练模块是一个校验程序集,包含一系列的校验程序,可以根据需要增减其中的校验程序。时间基准校验模块用于对指令执行的时间进行计量。总体调度模块用于程序调用。分支预测漏洞代码训练模块,时间基准校验模块,总体调度模块均为计算机程序模块。在进行检测之前,指令集需要按照mips、alpha、arm、x86进行划分,以方便后续测试。
方法实施例
如图2所示为嵌入式处理器分支预测漏洞检测方法流程图,步骤如下:
S201,编译分支预测漏洞代码训练模块,将编译结果备份。
S202,反编译分支预测漏洞代码训练模块代码,统计待测试指令集中每条指令的执行频率。
S203,根据指令的执行频率,对指令赋予相应的权值;赋值的规则是:权值与执行频率正相关。
S204,根据指令的权值,分配相应的检测资源,对指令进行分支预测攻击;分配的规则是:权值与分配的检测资源正相关。
S205,通过时间基准校验模块判断嵌入式处理器执行指令的时间,若发现某指令的执行时间远小于或远长于其他指令的执行时间,则进行记录。
其原理是:普通密码存在内存中,CPU分支预测成功后并存在高速缓存中的情况下,从cache中读密码会远小于读内存密码的时间,这种情况下会出现“远小于”的情况。但是密码也可以反向处理,只处理错误密码,正确密码不处理,所以错误密码会记录在更快的cache中,正确的密码存储在较慢内存中,这种情况下则会出现“远长于”的情况。例如指令A执行时间远小于或者远长于其他指令,则说明该指令触发了分支预测,产生分支预测漏洞的可能性较大。
在一个实施例中,S202,S203中所谓“正相关”,可以通过定义相应的函数实现,例如正比例函数。
进一步的,还包括步骤S206,通过总体调度模块重复步骤S204-S205,进行确认。例如再次执行时,指令A执行时间仍然远小于其他指令,则确认该指令存在分支预测漏洞。
在一个实施例中,S201和S202中的分支预测漏洞代码训练模块采用C语言校验程序集,即一组C语言校验程序,例如,包括:C语言校验程序1#、C语言校验程序2#、C语言校验程序3#、C语言校验程序4#......。通过选择,应当使这些校验程序能够涵盖待测试指令集中的所有指令。
如图3所示为S202中统计待测试指令集中各指令的执行频率的方法:
S301,反编译上述C语言校验程序1#、C语言校验程序2#、C语言校验程序3#、C语言校验程序4#......。
S302,对于某指令(例如指令A),计算其分别在C语言校验程序1#中的调用次数a1,在C语言校验程序2#中的调用次数b1,在C语言校验程序3#中的调用次数c1……,以及C语言校验程序1#中所有指令的调用次数a0,C语言校验程序2#中所有指令的调用次数b0,C语言校验程序3#中所有指令的调用次数c0。
S303,根据得到的这些调用频率,可以统计某指令(例如指令A)对整个校验程序集所有指令的调用频率,本实施例中称为某指令(例如指令A)对整个校验程序集所有指令的高斯分布值X1,X1=a1+b1+c1/a0+b0+c0。
高斯分布(Gaussian distribution)又称正态分布(Normal distribution),也称“常态分布”,是一个在数学、物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力。如图1的步骤S203中,需要对指令赋予相应的权值。在图3的实施例中,“执行频率”表示为上述高斯分布值。不同的指令对应着不同的高斯分布值。若指令A的高斯值>指令B的高斯值,则指令A的权值大于指令B的权值,即指令的权值与其高斯分布值呈正相关的关系。用Gaussian(I,X1)表示权值,即指令I对整个校验程序集所有指令的高斯分布权值函数,X1为高斯分布值。Gaussian(I,X1)与X1成正相关关系。借助于高斯分布,可以反映指令在空间域上的重要性。重要性越高,指令被CPU优化触发分支预测的可能性也越大,导致分支预测漏洞的可能性也越大,因此在后续的步骤S204中应分配更多的检测资源,重点进行检测。
除了以上实施例,如图4所示,S202还可以通过以下手段实现:
S401,反编译上述C语言校验程序1#、C语言校验程序2#、C语言校验程序3#、C语言校验程序4#......。
S402,对于某指令(例如指令A),计算其分别在C语言校验程序1#中的运行时间u1,在C语言校验程序2#中的运行时间v1,在C语言校验程序3#中的运行时间w1……,以及C语言校验程序1#中所有指令的运行时间u0,C语言校验程序2#中所有指令的运行时间v0,C语言校验程序3#中所有指令的运行时间w0。
S403,对程序的代码覆盖性进行检验,包括:分支覆盖、条件覆盖、判断覆盖和语句覆盖。作为其他实施方式,也可以选择三种或者更少的覆盖方式,当然也可以综合选择多种覆盖方式。本步骤的目的在于保证指令的在程序中的出现的普遍性,本发明对覆盖的方式不再限定。S404,满足程序覆盖性后,根据每条指令的运行时间(每条指令运行时间是指运行该指令时所消耗的CPU时钟周期,指令运行多次时统计所消耗CPU时钟总周期),可以统计某指令(例如指令A)的对整个校验程序集在时间域的泊松分布。根据S402所叙述的,指令A的泊松分布值为X2,X2=u1+v1+w1/u0+v0+w0。
泊松分布(Poisson distribution),是一种统计与概率学里常见到的离散机率分布(discrete probability distribution)。在图4的实施例中,“执行频率”表示为泊松分布值。不同的指令对应着不同的泊松分布值。例如指令A的泊松分布值>指令B的泊松分布值,则指令A的权值大于指令B的权值,即指令的权值与其泊松分布值呈正相关的关系。用Poisson(I,X2)表示权值,即指令I对整个校验程序集运行时间的泊松分布权值函数,X2为泊松分布值。Poisson(I,X2)与X2成正相关关系。借助于泊松分布,可以反映指令在时间域上的重要性。重要性越高,指令被CPU优化触发分支预测的可能性也越大,导致分支预测漏洞的可能性也越大,因此在后续的步骤S204中应分配更多的检测资源,重点进行检测。
S202还可以通过如图5所示的实施例实现,“执行频率”表示为泊松分布权重与高斯分布权重两个方面。其中S501~S504与S401~S404相同,S505~S506与S302~S303相同,故不再赘述。S507(相当于图2中S203)中在计算权值时,将由泊松分布值、由高斯分布值进行合成,表示为:权值=Gaussian(I,X1)+Poisson(I,X2)。
作为其他实施方式,还可以引入系数α和β,表示为:权值=α*Gaussian(I,X1)+β*Poisson(I,X2),α为高斯分布修正系数,β为泊松分布修正系数。α和β可以由设计人员进行预设,例如若考虑高斯分布更能够体现CPU优化的可能性,则可以将α设置为大于β。
除了上述实施例提到的利用高斯分布和泊松分布来反映指令的重要性,作为其他实施方式,还可以利用其他类型的数理统计方法,甚至还可以在图5对应的实施例基础上再增加第三种数理统计方法进行合成。
如图2所示,S204中需要根据指令的权值,分配相应的检测资源。本实施例中的检测资源为分配的检测时间,例如指令A的权值大于指令B,为指令A分配的时间长于指令B,在指令A的检测时间内可以进行1000次的分支预测攻击,在指令B的检测时间内,则只能进行500次分支预测攻击。每个分支预测攻击之间的时间间隔为嵌入式处理器时间调用周期的100倍以上。该时间间隔用于保证CPU有足够的能力进行检测,避免CPU超载。
本实施例中,检测资源为检测时间,作为其他实施方式,也可以将检测资源设置为硬件资源,或者检测时间与硬件资源的组合。例如指令A的权值大于指令B,则为指令A分配更多的并行处理进程。
如图2所示,S205中需要对指令执行时间进行判断,主要是进行分支预测攻击时,判断指令执行时间是否远小于其他指令的执行时间。例如,对于某种CPU,一般指令执行时间为10-12数量级;若对指令A进行1000次分支预测攻击,其中600次的运行时间是在10-6数量级,而有400次是在10-12数量级,则说明指令A为触发了分支预测,产生分支预测漏洞的可能性也较大。
又如,对指令A进行1000次分支预测攻击,若前99次的运行时间是在10-6数量级,而第100次是在10-12数量级,则说明指令A为触发了分支预测,产生分支预测漏洞的可能性也较大。
上述10-6、10-12仅为举例,对于不同的CPU,应考虑进行不同的设置。在判断时,可以设定一个阈值,当某指令与其他指令的执行时间差距大于该阈值时,即可判断该指令需要进行记录。
应该理解的是,虽然图2-图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-图5中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
计算机设备实施例
在一个实施例中,提供了一种计算机设备,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种多传感数据融合方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的智慧基站的限定,具体的智慧基站可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
编译校验程序集,所述校验程序集包含至少一个校验程序;
反编译校验程序集,统计待测试指令集中每条指令的执行频率;
根据指令的执行频率,对每条指令赋予相应的权值,所述权值与执行频率正相关;
根据指令的权值,分配相应的检测资源,对指令进行分支预测攻击,所述分配的检测资源与所述权值正相关;
检测嵌入式处理器执行指令的时间,记录与其他指令的执行时间差距大于预定阈值的指令。
在一个实施例中,统计待测试指令集中每条指令的执行频率,包括:对于任一指令,计算其在每个校验程序中的调用次数,以及每个校验程序中所有指令的总调用次数;统计该指令对整个校验程序集所有指令的高斯分布值;根据所述高斯分布值确定所述执行频率。
在又一个实施例中,统计待测试指令集中每条指令的执行频率,包括:对于任一指令,计算其在每个校验程序中的运行时间,以及每个校验程序的总运行时间;对程序覆盖性进行检验;统计该指令对整个校验程序集运行时间的泊松分布值;根据泊松分布值确定所述执行频率。
在另一个实施例中,统计待测试指令集中每条指令的执行频率,包括:对于任一指令,计算其在每个校验程序中的调用次数,以及每个校验程序中所有指令的总调用次数;统计该指令对整个校验程序集所有指令的高斯分布值;对于任一指令,计算其在每个校验程序中的运行时间,以及每个校验程序的总运行时间;对程序覆盖性进行检验;统计该指令对整个校验程序集运行时间的泊松分布值;根据所述高斯分布值和泊松分布值确定所述执行频率。
在一个实施例中,对程序覆盖性进行检验,包括以下覆盖方式的一种或两种以上的组合:分支覆盖、条件覆盖、判断覆盖、代码覆盖。
在一个实施例中,根据高斯分布权重和泊松分布权重综合确定执行频率;根据指令的执行频率,对每条指令赋予相应的权值,包括:权值=α*Gaussian(I,X1)+β*Poisson(I,X2),α为高斯分布修正系数,β为泊松分布修正系数;Gaussian(I,X1)表示指令I对整个校验程序集所有指令的高斯分布权值函数,X1为高斯分布值;Poisson(I,X2)表示指令I对整个校验程序集运行时间的泊松分布权值函数,X2为泊松分布值。
在一个实施例中,检测资源为检测时间和/或硬件资源;每个分支预测攻击之间的时间间隔为嵌入式处理器时间调用周期的100倍以上。
在又一个实施例中,重复的执行分配检测资源、进行分支预测攻击、检测指令执行时间的步骤;或者重复的执行检测资源分配单元和指令执行时间检测单元,以对结果进行确认。
计算机可读存储介质实施例
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
编译校验程序集,所述校验程序集包含至少一个校验程序;
反编译校验程序集,统计待测试指令集中每条指令的执行频率;
根据指令的执行频率,对每条指令赋予相应的权值,所述权值与执行频率正相关;
根据指令的权值,分配相应的检测资源,对指令进行分支预测攻击,所述分配的检测资源与所述权值正相关;
检测嵌入式处理器执行指令的时间,记录与其他指令的执行时间差距大于预定阈值的指令。
在其他实施例中,,处理器执行计算机程序时还实现上述方法实施例中所描述的方法的步骤,由于在方法实施例中已经详细的进行了说明,在此就不再赘述了。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (14)

1.一种嵌入式处理器分支预测漏洞检测方法,其特征在于,包括如下步骤:
编译校验程序集,所述校验程序集包含至少一个校验程序;
反编译校验程序集,统计待测试指令集中每条指令的执行频率;
根据指令的执行频率,对每条指令赋予相应的权值,所述权值与执行频率正相关;
根据指令的权值,分配相应的检测资源,对指令进行分支预测攻击,所述分配的检测资源与所述权值正相关;
检测嵌入式处理器执行指令的时间,记录与其他指令的执行时间差距大于预定阈值的指令;
其中,所述统计待测试指令集中每条指令的执行频率,包括:
对于任一指令,计算其在每个校验程序中的调用次数,以及每个校验程序中所有指令的总调用次数;
统计该指令对整个校验程序集所有指令的高斯分布值;
根据所述高斯分布值确定所述执行频率;
其中,对每条指令赋予相应的权值,包括:
用函数Gaussian(I,X1)表示权值,即指令I对整个校验程序集所有指令的高斯分布权值函数,X1为高斯分布值。
2.根据权利要求1所述的方法,其特征在于,所述检测资源为检测时间和/或硬件资源;每个分支预测攻击之间的时间间隔为嵌入式处理器时间调用周期的100倍以上。
3.根据权利要求1所述的方法,其特征在于,重复的执行分配检测资源、进行分支预测攻击、检测指令执行时间的步骤,以对结果进行确认。
4.一种嵌入式处理器分支预测漏洞检测方法,其特征在于,包括如下步骤:
编译校验程序集,所述校验程序集包含至少一个校验程序;
反编译校验程序集,统计待测试指令集中每条指令的执行频率;
根据指令的执行频率,对每条指令赋予相应的权值,所述权值与执行频率正相关;
根据指令的权值,分配相应的检测资源,对指令进行分支预测攻击,所述分配的检测资源与所述权值正相关;
检测嵌入式处理器执行指令的时间,记录与其他指令的执行时间差距大于预定阈值的指令;
其中,所述统计待测试指令集中每条指令的执行频率,包括:
对于任一指令,计算其在每个校验程序中的运行时间,以及每个校验程序的总运行时间;
对程序覆盖性进行检验;
统计该指令对整个校验程序集运行时间的泊松分布值;
根据所述泊松分布值确定所述执行频率;
其中,对每条指令赋予相应的权值,包括:
用函数Poisson(I,X2)表示权值,即指令I对整个校验程序集运行时间的泊松分布权值函数,X2为泊松分布值。
5.根据权利要求4所述的方法,其特征在于,所述对程序覆盖性进行检验,包括以下覆盖方式的一种或两种以上的组合:分支覆盖、条件覆盖、判断覆盖、代码覆盖。
6.根据权利要求4所述的方法,其特征在于,所述检测资源为检测时间和/或硬件资源;每个分支预测攻击之间的时间间隔为嵌入式处理器时间调用周期的100倍以上。
7.根据权利要求4所述的方法,其特征在于,重复的执行分配检测资源、进行分支预测攻击、检测指令执行时间的步骤,以对结果进行确认。
8.一种嵌入式处理器分支预测漏洞检测方法,其特征在于,包括如下步骤:
编译校验程序集,所述校验程序集包含至少一个校验程序;
反编译校验程序集,统计待测试指令集中每条指令的执行频率;
根据指令的执行频率,对每条指令赋予相应的权值,所述权值与执行频率正相关;
根据指令的权值,分配相应的检测资源,对指令进行分支预测攻击,所述分配的检测资源与所述权值正相关;
检测嵌入式处理器执行指令的时间,记录与其他指令的执行时间差距大于预定阈值的指令;
其中,所述统计待测试指令集中每条指令的执行频率,包括:
对于任一指令,计算其在每个校验程序中的调用次数,以及每个校验程序中所有指令的总调用次数;统计该指令对整个校验程序集所有指令的高斯分布值;
对于任一指令,计算其在每个校验程序中的运行时间,以及每个校验程序的总运行时间;对程序覆盖性进行检验;统计该指令对整个校验程序集运行时间的泊松分布值;
根据所述高斯分布值和泊松分布值确定所述执行频率;
其中,对每条指令赋予相应的权值,包括:
用函数Gaussian(I,X1)表示指令I对整个校验程序集所有指令的高斯分布权值函数,X1为高斯分布值;函数Poisson(I,X2)表示指令I对整个校验程序集运行时间的泊松分布权值函数,X2为泊松分布值。
9.根据权利要求8所述的方法,其特征在于,所述对程序覆盖性进行检验,包括以下覆盖方式的一种或两种以上的组合:分支覆盖、条件覆盖、判断覆盖、代码覆盖。
10.根据权利要求8所述的方法,其特征在于,所述根据指令的执行频率,对每条指令赋予相应的权值,包括:
权值=α*Gaussian(I,X1)+β*Poisson(I,X2),α为高斯分布修正系数,β为泊松分布修正系数。
11.根据权利要求8所述的方法,其特征在于,所述检测资源为检测时间和/或硬件资源;每个分支预测攻击之间的时间间隔为嵌入式处理器时间调用周期的100倍以上。
12.根据权利要求8所述的方法,其特征在于,重复的执行分配检测资源、进行分支预测攻击、检测指令执行时间的步骤,以对结果进行确认。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12中任一项所述的方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12中任一项所述的方法的步骤。
CN202110524426.7A 2021-05-13 2021-05-13 嵌入式处理器分支预测漏洞检测方法、计算机设备和介质 Active CN113221119B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110524426.7A CN113221119B (zh) 2021-05-13 2021-05-13 嵌入式处理器分支预测漏洞检测方法、计算机设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110524426.7A CN113221119B (zh) 2021-05-13 2021-05-13 嵌入式处理器分支预测漏洞检测方法、计算机设备和介质

Publications (2)

Publication Number Publication Date
CN113221119A CN113221119A (zh) 2021-08-06
CN113221119B true CN113221119B (zh) 2024-03-29

Family

ID=77095659

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110524426.7A Active CN113221119B (zh) 2021-05-13 2021-05-13 嵌入式处理器分支预测漏洞检测方法、计算机设备和介质

Country Status (1)

Country Link
CN (1) CN113221119B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI789183B (zh) * 2021-09-15 2023-01-01 瑞昱半導體股份有限公司 用於處理器電路之檢測器及檢測方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1573712A (zh) * 2003-06-23 2005-02-02 英特尔公司 保存代码重新排序中的精确异常的方法和设备
CN103345445A (zh) * 2013-07-02 2013-10-09 华中科技大学 基于控制流检测的抗错误注入攻击的安全芯片设计方法
CN105468161A (zh) * 2016-01-21 2016-04-06 北京百度网讯科技有限公司 指令执行方法和装置
CN109064019A (zh) * 2018-08-01 2018-12-21 中国民航大学 一种用于管制员模拟训练效果自动测评的系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10437990B2 (en) * 2016-09-30 2019-10-08 Mcafee, Llc Detection of return oriented programming attacks in a processor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1573712A (zh) * 2003-06-23 2005-02-02 英特尔公司 保存代码重新排序中的精确异常的方法和设备
CN103345445A (zh) * 2013-07-02 2013-10-09 华中科技大学 基于控制流检测的抗错误注入攻击的安全芯片设计方法
CN105468161A (zh) * 2016-01-21 2016-04-06 北京百度网讯科技有限公司 指令执行方法和装置
CN109064019A (zh) * 2018-08-01 2018-12-21 中国民航大学 一种用于管制员模拟训练效果自动测评的系统及方法

Also Published As

Publication number Publication date
CN113221119A (zh) 2021-08-06

Similar Documents

Publication Publication Date Title
US11777705B2 (en) Techniques for preventing memory timing attacks
US10565379B2 (en) System, apparatus and method for instruction level behavioral analysis without binary instrumentation
CN109508536B (zh) 一种篡改程序流攻击的检测方法和装置
US10091216B2 (en) Method, apparatus, system, and computer readable medium for providing apparatus security
Evtyushkin et al. Covert channels through branch predictors: a feasibility study
US11055168B2 (en) Unexpected event detection during execution of an application
US20190042479A1 (en) Heuristic and machine-learning based methods to prevent fine-grained cache side-channel attacks
US11429511B2 (en) Device and method for reinforcing control flow integrity of software application
CN107301082A (zh) 一种实现操作系统完整性保护的方法和装置
US9477928B2 (en) System and method for comparing software frameworks
CN113221119B (zh) 嵌入式处理器分支预测漏洞检测方法、计算机设备和介质
US11847207B2 (en) Security-adaptive code execution
CN117149644A (zh) 内存溢出检测方法、装置、操作系统、设备及存储介质
CN108628620B (zh) Pos应用开发的实现方法、装置、计算机设备和存储介质
WO2020037115A1 (en) Systems and methods for defeating stack-based cyber attacks by randomizing stack frame size
CN109165509A (zh) 软件实时可信度量的方法、设备、系统及存储介质
CN115033411A (zh) 一种用于微处理器缓冲区溢出的硬件检测与防御机制
US20180004947A1 (en) Enhanced control transfer security
KR20110132202A (ko) 비휘발성 메모리 시스템 및 상기 메모리 시스템의 동작방법
US11061745B2 (en) Shared resource analysis for embedded multi-core systems
US20240160731A1 (en) Protecting computer systems
US20190042116A1 (en) Techniques for preventing memory corruption
CN116502239B (zh) 二进制程序的内存漏洞检测方法、装置、设备及介质
CN113722771B (zh) 处理单元、片上系统、电子设备和物联网设备
CN112380529B (zh) 一种基于操作的嵌入式裸机系统安全隔离系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant