CN110336803B - 一种目标主机分支预测单元的安全性评估方法 - Google Patents

一种目标主机分支预测单元的安全性评估方法 Download PDF

Info

Publication number
CN110336803B
CN110336803B CN201910541462.7A CN201910541462A CN110336803B CN 110336803 B CN110336803 B CN 110336803B CN 201910541462 A CN201910541462 A CN 201910541462A CN 110336803 B CN110336803 B CN 110336803B
Authority
CN
China
Prior art keywords
target
test
branch
branch instruction
predictor
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
CN201910541462.7A
Other languages
English (en)
Other versions
CN110336803A (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.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
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 Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN201910541462.7A priority Critical patent/CN110336803B/zh
Publication of CN110336803A publication Critical patent/CN110336803A/zh
Application granted granted Critical
Publication of CN110336803B publication Critical patent/CN110336803B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种目标主机分支预测单元的安全性评估方法,其步骤包括:1)将目标主机的分支预测单元BPU由一级预测器预测模式转变为二级预测器预测模式;然后将二级方向预测器中目标PHT项中饱和计数器的值设定为强不跳转状态,将目标PHT项中的饱和计数器值设定为弱跳转状态;2)目标主机在已执行过目标分支历史序列的基础上,执行目标程序中的目标分支指令,修改二级方向预测器中指定条目中的信息;3)目标主机执行测试代码中的测试分支指令,用于对目标PHT项的状态进行探测,如果探测时间超过设定阈值,则判定BPU预测错误;否则判断预测的跳转方向与目标分支指令真实执行的跳转方向是否一致,如果一致则判定目标主机不安全。

Description

一种目标主机分支预测单元的安全性评估方法
技术领域
本发明涉及一种针对目标主机分支预测单元的安全性评估和防御方法,属于系统安全技术领域。
背景技术
分支预测单元(Branch Prediction Unit,BPU)是现代处理器中用以提升处理器性能的重要组件之一。它会对程序执行的分支跳转指令的方向和地址进行预测,并允许处理器投机执行预测的结果以充分利用流水线资源。如果由于预测错误而导致投机执行失败,处理器会对错误执行的整个路径进行刷新。
BPU设计如图1所示,主要包括模式历史表(Pattern History Table,简称PHT)、分支目标缓存(Branch Target Buffer,简称BTB)、分支历史缓存(Branch History Buffer,简称BHB)等。模式历史表主要负责分支指令跳转方向的预测(即该分支taken还是不taken),是BPU中方向预测器中的核心器件;分支目标缓存主要负责预测本次分支跳转的目标地址;分支历史缓存主要用于记录之前出现的历史分支跳转。其中,方向预测器一般包括一级预测器(即双峰预测器),二级方向预测器,循环预测器等,这些预测器协同工作保证BPU分支预测的正确率。对于一个新到来的分支指令,BPU会首先选择一级方向预测器来预测该分支指令可能的跳转方向;而当数次预测错误后,BPU会转为使用二级方向预测器进行预测。一级预测器仅会根据当前分支跳转指令的PC(program counter)值来进行PHT索引,而二级预测器在此基础上,同时还会考虑分支历史缓存(BHB)中的历史信息来进行PHT索引。
BPU在为处理器带来巨大性能提升的同时,也为侧信道入侵提供了机会。目前存在大量针对BPU的侧信道安全问题,例如2018年1月暴露的Spectre测试就是一种利用BPU来窃取目标用户私密信息的典型测试实例,该测试可以对现有的绝大部分Intel、AMD以及ARM处理器造成危害。为了更好地防御BPU侧信道测试,针对处理器中BPU的安全性进行评估显得尤为重要。针对BPU安全性评估的通用方法是监测BPU中目标器件的微架构状态变化,进而检测该状态变化是否可以推测出目标程序中的私密数据。本发明重点关注与BPU中的二级方向预测器相关的侧信道安全。对目标主机进行基于侧信道测试的安全性评估是亟待解决的技术问题,从而基于评估可以提出相应的防御措施。
发明内容
针对现有技术中存在的技术问题,本发明的目的在于提供一种针对目标主机分支预测单元的安全性评估方法,通过是否能够推测目标主机进程的执行路径对目标主机的分支预测单元安全性进行评估,并根据评估结果给出目标主机进程中私密数据的是否安全。
在安全评估时被测试的程序称为目标程序,而将该程序中与私密信息相关的分支指令称为目标分支指令。在目标分支指令执行前,目标程序中所执行过的分支历史序列称为目标分支历史序列。目标分支指令在二级方向预测器中进行预测时,所使用的PHT项被称为目标PHT项。
与此同时,将对目标程序进行安全测试评估的程序称为测试程序,测试程序中与目标程序中的目标分支指令位于相同程序位置(即具有相同PC值)的分支指令被称为测试分支指令。在测试分支指令执行前,测试程序中所执行过的分支历史序列称为测试分支历史序列。
本发明采用的技术方案如下:
一种针对目标主机分支预测单元的安全性评估方法,其步骤包括:
1)初始化阶段。设置一测试程序,该测试程序通过多次构造一级方向预测器的预测错误,
使得BPU由一级预测器预测模式转变为二级预测器预测模式,即放弃一级方向预测器而改用二级方向预测器来对目标分支指令的执行方向进行预测。而后,测试程序会将测试分支历史序列和测试分支指令(这里测试分支指令的执行方向被设定为都不跳转)重复交替执行8次,用于将二级方向预测器中目标PHT项中3位饱和计数器的值设定为二进制的000状态,该状态为“强不跳转”状态。这是由于每执行一次测试分支历史序列和不跳转的测试分支指令,目标PHT项的值会减1(如果PHT值为0则保持)。无论目标PHT项之前的初始值是多少,在执行过8次不跳转的指令后,目标PHT项的值最终会减至0;最后,测试程序会再将测试分支历史序列和测试分支指令(测试分支指令的方向都设定为跳转)重复执行4次,用于将目标PHT项中的饱和计数器值设定为二进制的100状态,该状态为“弱跳转”状态。这是由于每执行一次测试分支历史序列和跳转的测试分支指令,目标PHT项的值会加1(如果PHT值为7则保持)。由于目标PHT项之前的值为0,在执行过4次跳转的指令后,目标PHT项的值会加至4。
2)执行阶段。目标主机在已执行过目标分支历史序列的基础上,执行目标程序中的目标分支指令,修改二级方向预测器中指定条目中的信息。
3)探测阶段。测试程序执行其中的测试分支指令(该指令和目标程序中的目标分支指令位于各自程序中的相同偏移位置,且真实执行方向应为跳转),用于对二级方向预测器中目标PHT项的状态进行探测。如果测试程序执行此分支跳转指令的耗时较长,
则说明此时BPU预测错误(即测试分支指令被预测为不会发生跳转),这是因为目标程序执行了一次不跳转的目标分支指令将PHT项中的饱和计数器值由二进制的100变成了011;反之,则说明BPU预测正确并且目标分支指令是一个跳转指令。
如果测试程序最终推测出的目标分支指令的跳转方向结果与目标分支指令真实执行的跳转方向一致,则判定目标主机不安全。
进一步的,按照BPU中一级方向预测器和二级方向预测器协同工作的机制,通过多次执行测试分支指令(每次的执行方向随机),从而构造多次的一级方向预测器预测错误,进而诱导BPU使用二级预测器对测试分支指令(和目标分支指令)进行预测,从而确保在测试的时候进入二级预测模式。
进一步的,构建测试分支历史序列,该测试分支历史序列与目标程序执行的目标分支历史序列相同,从而可以构建与目标程序相同的分支历史。经过逆向工程我们发现,对于Intel六代之后的处理器,分支历史缓存最多可以记录94条方向为跳转的分支跳转指令信息。也就是说,在执行过94个方向为跳转的分支跳转指令后,分支历史信息缓存中的信息就会固定在一个特定的值。在安全评估时,为了便于测试,我们直接将测试分支历史序列和目标分支历史序列都设定为连续的94个跳转指令,且两个序列的内容完全相同。在真实的入侵测试场景下,测试程序需要根据目标程序中的目标分支历史序列来设置自身的测试分支历史序列,以使得两边的历史序列完全一样。
进一步的,测试程序与目标程序之间建立二级方向预测器中的PHT项访问冲突。由于测试程序和目标程序分别运行于同一个物理核的两个不同逻辑核上,故两者共享二级方向预测器中的所有PHT项。又因为二级方向预测器的索引是由历史信息和当前分支指令的PC共同决定,所以测试程序只要保证测试分支指令执行时,其基于的历史信息和自身的PC值分别与目标分支指令运行时的状态相同,就可以确保与目标程序共享同一个二级方向预测器中的PHT项。测试程序可以首先执行与目标程序相同的历史分支序列达到与目标程序相同的分支历史状态,而后执行具有与目标程序中目标分支相同PC位置的分支指令从而构建PHT冲突。
进一步的,通过逆向分析二级方向预测器的结构,发现二级方向预测器的核心预测组件是模式历史表(PHT),这是一张包含多个3位饱和计数器的信息表。我们首先将测试分支历史序列和测试分支指令(执行方向为不跳转)重复执行8次,用于将二级方向预测器中目标PHT项中3位饱和计数器的值设定为二进制的000;而后,再将测试分支历史序列和测试分支指令(此时的执行方向为跳转)重复执行4次,用于将PHT项中的饱和计数器值设定为二进制的100。这样,我们就可以将与测试分支指令(或目标分支指令)相关的PHT项的状态设定为固定状态。该固定状态可以为后续的探测做好准备,如果目标程序中的目标分支指令的执行方向为跳转,则饱和计数器的值会由二进制的100变成二进制的101,故后续测试程序在使用相同PHT项时预测结果会为跳转;反之则饱和计数器会由二进制的100变为二进制的011,故提供给测试程序的预测结果会为不跳转。
进一步的,测试程序通过同步技术减缓并监控目标主机执行进度,在目标主机执行一次目标分支指令后,由测试程序探测该分支指令执行的时间。该时间的长短可以反映出BPU是否预测正确,进而推测出BPU在执行完目标程序中的目标分支指令后的状态,以及目标分支指令的真实跳转方向。
进一步的,基于二级方向预测器使用3位饱和计数器进行预测,测试程序可以根据目标PHT项状态的变化,推测出目标分支指令的真实执行方向,进而解析出目标进程中的私密信息。这是因为在获知了每一次目标程序中目标分支跳转指令的跳转方向后,测试程序就可以获知目标程序中相关指令的执行过程。由于该执行过程可以与目标程序中的私密数据相关(如RSA算法中分支指令的执行过程受到RSA密钥的影响),故目标程序中的私密数据信息最终会被测试程序获取到。
本发明的有益效果如下:
本发明是一种针对目标主机分支预测器的安全性评估方法。该方法利用对二级方向预测器结构、更新算法、哈希算法的逆向分析的结果,通过在测试程序和目标程序之间构建相同分支历史和相同PC位置的分支指令来达到构建二级方向预测器中PHT项冲突的目的,进而通过对目标程序执行路径的推测来对目标进程中数据的私密性进行评估。本方法对已有针对一级方向预测器的评估方法进行了扩展,增加了对二级方向预测器的评估,对于分支预测单元的安全性评估更加全面。而且,由于分支预测在选择了二级方向预测器来对目标分支指令进行预测后,可以稳定保持在二级方向预测器,除非所预测的分支指令的信息被从BPU中剔除掉,故相比于针对一级方向预测器的评估方法,本方法的适用性更强。同时,在评估的时候,对构建分支历史的方法进行了优化,只需要执行94个跳转的分支跳转指令就可以实现与目标程序相同的历史信息,所以本方法的评估效率和可靠性会更高。
附图说明
图1为BPU架构设计图。
图2为基于二级方向预测器的侧信道安全评估方法原理图。
具体实施方式
下面通过具体实施例和附图,对本发明做进一步详细说明。
图2是本发明的原理图。本发明通过对二级方向预测器结构、更新算法、哈希算法的逆向分析,在测试程序和目标程序之间建立冲突,以达到对目标主机进程执行路径的推测。对二级方向预测器的侧信道测试方法的关键是要在测试程序和目标程序之间构建PHT冲突,并通过同步方式检测目标主机执行进度并在合适时机进行分支执行流程的探测。
1.二级方向预测器模式固定方法
BPU针对当前PC处的if分支的预测可能处于两种模式下中的任意一种:一级预测模式(即使用一级方向预测器来预测分支指令的跳转方向)或二级预测模式(即使用二级方向预测器来预测分支指令的跳转方向)。每次当一个新的分支指令到来时,BPU会首先选择一级方向预测器来对其执行方向进行预测。而如果一级预测器在预测该分支指令的方向时出现多次错误,BPU则会转为选择二级预测器来对其进行预测。如果当前BPU处于一级预测的模式,本方法首先逆向分析出了从一级方向预测器转移到二级方向预测器的算法,然后利用该逆向结果构造诱使一级方向预测器发生预测错误的分支序列,从而确保当前预测器进入二级预测的模式。
2.冲突构建方法
本发明建立冲突策略是让测试程序和目标程序使用二级方向预测器中相同的PHT项。一级、二级预测器的核心组件都是PHT,其本质是一个n位饱和计数器。本方法首先通过逆向分析验证当一级方向预测器发生预测错误时会上升到二级方向预测器。而后通过执行与目标分支历史序列(即目标指令执行前的94个跳转的分支跳转指令)相同的测试分支历史序列和与目标分支指令具有相同PC值的测试分支指令,使测试进程和目标进程共享同一个二级方向预测器entry项,从而为后续的测试准备好条件。
具体使得测试程序和目标程序使用相同的二级方向预测器目标PHT项的方法如下:测试程序首先构建测试分支历史序列,用于将测试程序所在逻辑核的分支历史训练为与目标主机所在的逻辑核相同;而后,通过对代码的静态或动态分析,测试主机可以获得目标分支跳转指令在目标程序代码中的具体位置(PC值),并在测试代码中相同的位置放置测试分支指令,用于与目标主机分支代码对齐。由于在执行测试分支指令时,测试程序中的分支历史与目标程序中的相同,且测试分支指令的PC值也与目标分支指令的相同,故此时两个进程会共享同一个二级方向预测器entry项。
3.目标主机执行进度检测
利用缓存侧信道(如“Flush+Reload”或“Prime+Probe”方法),测试进程可以不断减缓和监控目标主机进程的执行进度。当测试进程和目标主机进程之间存在共享内存时,测试程序可以使用“Flush+Reload”方法,精准监测指定的缓存行使用状况;而当测试进程和目标主机进程之间没有共享内存时,测试程序则可以使用“Prime+Probe”方法,通过监测指定的缓存行所在缓存组的使用状况,间接获取目标主机进程的执行进度。
4.目标主机执行控制流探测
由于目标主机进程真正的执行流会影响二级方向预测器的状态,而该二级方向预测器的状态又会作用于同属于一个物理核的其他进程。所以,测试程序可以通过监测二级方向预测器获知分支指令预测结果的正确与否,间接获取目标主机的控制流。具体的方法如下:
首先,测试程序通过探测当前处理器PMC,获得当前处理器中已发生的分支预测错误的总次数,并记录下来作为h1;而后,测试程序会执行测试分支历史序列和测试分支指令,该指令的执行会受二级方向预测器状态的影响,并且预测结果的正确与否也会被记录在PMC中;最后,测试程序再次查看PMC,获得分支指令执行后分支预测错误的总次数,并记录下来作为h2。通过将h2与h1之间做差,测试程序便可以精确地知道当前目标分支是否被预测错误,从而间接地获取二级方向预测器当前的状态,以及目标主机进程的执行信息。
对本发明的实验验证:
本发明在带有Coffee Lake i7-8700处理器和32GB DDR4-2400内存的B360-HD3主板上进行测试。该平台运行Ubuntu 16.04,配备通用的64位Linux 4.15.0内核,配备SGX驱动程序2.0。
实验环境采用Coffee Lake i7-8700六核处理器,内存32G,硬盘1T;Ubuntu16.04,通用的64位Linux 4.15.0内核。由于有关二级方向预测器的入侵需要依赖于处理器中的SMT超线程模式,故本发明首先开启该处理器中的SMT超线程模式,并评估该处理器的安全性,并使用二级方向预测器相关的侧信道对其进行入侵测试;而后,关闭该处理器的SMT模式,再次评估该处理器的安全性并对其进行入侵测试,具体结果如表1。
表1为实验结果列表
开启SMT 关闭SMT
安全评估 不安全 安全
入侵测试 私密数据泄漏 私密数据未泄漏
从实验结果看出,本方法可以正确的评估当前处理器中针对BPU侧信道的安全状态。在开启SMT的情况下,安全评估结果为“不安全”,且在入侵测试中目标程序的私密数据被泄漏;而在关闭SMT的情况下,由于入侵者无法实时获取BPU的状态信息,安全评估中显示的结果为“安全”,且入侵测试中的结果也为私密数据未泄漏。
本发明方法主要针对目标主机BPU的二级方向预测器进行安全评估,适用于但不局限于对Intel多款处理器,同时也适用于AMD处理器的测试。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

Claims (8)

1.一种目标主机分支预测单元的安全性评估方法,其步骤包括:
1)初始化阶段,将目标主机的分支预测单元BPU由一级预测器预测模式转变为二级预测器预测模式;然后将测试分支历史序列和测试分支指令重复交替执行,用于将目标PHT项中的饱和计数器值设定为弱跳转状态;其中,测试程序中所执行过的分支历史序列称为测试分支历史序列,测试程序中与目标程序中的目标分支指令位于相同程序位置的分支指令被称为测试分支指令,目标程序中与设定私密信息相关的分支指令称为目标分支指令,目标分支指令在二级方向预测器中进行预测时所使用的PHT项称为目标PHT项;
2)执行阶段,目标主机在已执行过目标分支历史序列的基础上,执行目标程序中的目标分支指令,修改二级方向预测器中指定条目中的信息;目标程序中所执行过的分支历史序列称为目标分支历史序列;
3)探测阶段,目标主机执行测试代码中的测试分支指令,用于对二级方向预测器中目标PHT项的状态进行探测,如果探测时间超过设定阈值,则判定BPU预测错误;否则判定BPU预测正确并且目标分支指令是一个跳转指令,然后测试程序预测该目标分支指令的跳转方向,如果预测的跳转方向与目标分支指令真实执行的跳转方向一致,则判定目标主机不安全。
2.如权利要求1所述的方法,其特征在于,步骤1)中,构造诱使一级方向预测器发生预测错误的分支序列给目标主机,使得目标主机产生一级方向预测器的预测错误。
3.如权利要求1所述的方法,其特征在于,通过逆向分析出从一级方向预测器转移到二级方向预测器的算法,然后利用该算法构造诱使一级方向预测器发生预测错误的分支序列。
4.如权利要求1所述的方法,其特征在于,步骤1)中,按照BPU中一级方向预测器和二级方向预测器协同工作的机制,构造测试分支指令并发送给目标主机,从而使得目标主机产生一级方向预测器的预测错误。
5.如权利要求1所述的方法,其特征在于,所述测试分支历史序列与所述目标分支历史序列相同。
6.如权利要求1所述的方法,其特征在于,测试程序和目标程序分别运行于同一个物理核的两个不同逻辑核上,二者共享二级方向预测器中的所有PHT项。
7.如权利要求1所述的方法,其特征在于,将测试分支历史序列和测试分支指令重复执行8次,且设置测试分支指令的执行方向为不跳转,用于将二级方向预测器中目标PHT项中3位饱和计数器的值设定为强不跳转状态;将测试分支历史序列和测试分支指令重复执行4次,且设置测试分支指令的执行方向为跳转,用于将PHT项中的饱和计数器值设定为弱跳转状态。
8.如权利要求1所述的方法,其特征在于,步骤1)中,将目标PHT项中的饱和计数器值设定为弱跳转状态的方法为:将测试分支历史序列和测试分支指令重复交替执行,用于将二级方向预测器中目标PHT项中3位饱和计数器的值设定为强不跳转状态;然后将测试分支历史序列和测试分支指令重复执行,用于将目标PHT项中的饱和计数器值设定为弱跳转状态。
CN201910541462.7A 2019-06-21 2019-06-21 一种目标主机分支预测单元的安全性评估方法 Active CN110336803B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910541462.7A CN110336803B (zh) 2019-06-21 2019-06-21 一种目标主机分支预测单元的安全性评估方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910541462.7A CN110336803B (zh) 2019-06-21 2019-06-21 一种目标主机分支预测单元的安全性评估方法

Publications (2)

Publication Number Publication Date
CN110336803A CN110336803A (zh) 2019-10-15
CN110336803B true CN110336803B (zh) 2020-08-11

Family

ID=68142546

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910541462.7A Active CN110336803B (zh) 2019-06-21 2019-06-21 一种目标主机分支预测单元的安全性评估方法

Country Status (1)

Country Link
CN (1) CN110336803B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111209047B (zh) * 2020-02-24 2023-08-15 江苏华创微系统有限公司 支持混合模式的分支历史计数器
CN113504943B (zh) * 2021-09-03 2021-12-14 广东省新一代通信与网络创新研究院 用于降低资源使用的混合分支预测装置实现方法及系统
CN113761540B (zh) * 2021-09-07 2023-07-14 中国科学院上海高等研究院 BranchScope及其编译器防护方法的验证方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102306093A (zh) * 2011-08-04 2012-01-04 北京北大众志微系统科技有限责任公司 实现现代处理器间接转移预测的装置及方法
CN102360282A (zh) * 2011-09-26 2012-02-22 杭州中天微系统有限公司 快速处置分支指令预测错误的流水线处理器装置
CN107209662A (zh) * 2014-09-26 2017-09-26 高通股份有限公司 指令的相依性预测
CN109308191A (zh) * 2017-07-28 2019-02-05 华为技术有限公司 分支预测方法及装置
US10255197B2 (en) * 2016-07-20 2019-04-09 Oracle International Corporation Adaptive tablewalk translation storage buffer predictor

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7203824B2 (en) * 2001-07-03 2007-04-10 Ip-First, Llc Apparatus and method for handling BTAC branches that wrap across instruction cache lines
CN102306094B (zh) * 2011-08-16 2014-03-26 北京北大众志微系统科技有限责任公司 实现现代处理器间接转移预测的装置及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102306093A (zh) * 2011-08-04 2012-01-04 北京北大众志微系统科技有限责任公司 实现现代处理器间接转移预测的装置及方法
CN102360282A (zh) * 2011-09-26 2012-02-22 杭州中天微系统有限公司 快速处置分支指令预测错误的流水线处理器装置
CN107209662A (zh) * 2014-09-26 2017-09-26 高通股份有限公司 指令的相依性预测
US10255197B2 (en) * 2016-07-20 2019-04-09 Oracle International Corporation Adaptive tablewalk translation storage buffer predictor
CN109308191A (zh) * 2017-07-28 2019-02-05 华为技术有限公司 分支预测方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于符号执行的软件缓存侧信道脆弱性检测技术;杨超,郭云飞,扈红超,刘文彦,霍树民;《电子学报》;20190615;第47卷(第6期);第1194-1200页 *
基于轻量操作系统的虚拟机内省与内存安全监测;马乐乐,岳晓萌,王玉庆,杨秋松;《计算机应用》;20150610;第35卷(第6期);第1555-1559页 *

Also Published As

Publication number Publication date
CN110336803A (zh) 2019-10-15

Similar Documents

Publication Publication Date Title
CN110336803B (zh) 一种目标主机分支预测单元的安全性评估方法
Shin et al. An empirical model to predict security vulnerabilities using code complexity metrics
US8533685B2 (en) Processing apparatus, trace unit and diagnostic apparatus
Malone et al. Are hardware performance counters a cost effective way for integrity checking of programs
JP6345623B2 (ja) 条件付き非ブランチング命令の非実行を予測するための方法および機器
CN109508536B (zh) 一种篡改程序流攻击的检测方法和装置
Gay Generating effective test suites by combining coverage criteria
US8738971B2 (en) Limiting certain processing activities as error rate probability rises
CN109635568B (zh) 一种基于静态分析和模糊测试相结合的并发漏洞检测方法
US20140229721A1 (en) Dynamic branch hints using branches-to-nowhere conditional branch
Sanchez et al. On the functional test of branch prediction units
US20140282448A1 (en) Operating system support for contracts
US9715377B1 (en) Behavior based code recompilation triggering scheme
Mouzarani et al. Smart fuzzing method for detecting stack‐based buffer overflow in binary codes
US11216279B2 (en) Loop exit predictor
US9495138B1 (en) Scheme for verifying the effects of program optimizations
US10108419B2 (en) Dependency-prediction of instructions
CN111241599B (zh) 一种处理器芯片安全依赖的动态识别及维护方法
CN109522048B (zh) 一种同步多线程中断验证方法及系统
US20200225952A1 (en) Method and system for detection of thread stall
Barr Applying Reliability Engineering to Expert Systems.
Zhu et al. Test Case Prioritization Algorithm Based on Improved Code Coverage.
Sheikh et al. Value prediction for security (VPsec): Countering fault attacks in modern microprocessors
CN112256332B (zh) 一种处理器芯片假安全依赖冲突的识别方法及系统
US9436473B2 (en) Scheduling program instructions with a runner-up execution position

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