用于检测面向返回编程攻击的方法、装置和系统制造方法及图纸

技术编号:15398985 阅读:38 留言:0更新日期:2017-05-22 23:21
本发明专利技术揭示用于检测面向返回编程ROP攻击的方法、装置和系统。系统包含处理器、主存储器和高速缓存存储器。高速缓存监视器通过监视对在所述高速缓存存储器中发现的经高速缓冲存储的指令的存取以及对当前不在所述高速缓存存储器中的指令的未中来形成指令加载简档。补救动作单元在所述指令加载简档指示涉及一或多个有效代码序列的ROP攻击的执行的情况下终止所述有效代码序列中的一或多者的执行。所述指令加载简档可为从相对于高速缓存未中监视高速缓存命中而导出的命中/未中比率。所述ROP攻击可包含若干代码片断,其各自包含来自有效代码序列的可执行指令和返回指令。

Method, apparatus and system for detecting a return oriented programming attack

A method, apparatus, and system for detecting a return programmed ROP attack are disclosed. The system consists of processor, main memory and cache memory. The cache monitor by monitoring found in the cache memory in the cache memory access instruction and the current is not in the cache memory instructions not to form the command load profile. One or more of the end of the code sequence in effective remedial action involving one or more unit indicates the effective code sequence of ROP attack in the instruction loading profile execution case execution. The instruction load profile can be a ratio of hit / miss derived from monitoring cache hits relative to cache misses. The ROP attack can contain a number of code fragments that each contain executable instructions and return instructions from the valid code sequence.

【技术实现步骤摘要】
【国外来华专利技术】用于检测面向返回编程攻击的方法、装置和系统
一个特征大体上涉及检测软件系统中的恶意代码,且更特定来说涉及检测软件系统中的面向返回编程攻击的方法和装置。
技术介绍
执行软件的计算系统正在经历增长的来自通常称为黑客的攻击者的大量攻击。这些攻击者已发现将恶意代码插入计算系统中且随后致使计算系统执行恶意代码的方式。恶意代码可执行许多不同操作,例如致使计算系统运行得比正常慢,监视计算系统上的活动,致使计算系统发射或接收用户可能不希望传送的信息,破坏持续和非持续存储器中的数据,以及使计算系统崩溃。最近已提出有时称为面向返回编程(ROP)攻击的攻击机制。一类ROP攻击经常称为返回到libc攻击,因为其使用驻留于许多软件系统中的标准C库。ROP攻击是有力的技术,其允许攻击者攻击软件程序中的有效代码序列而无需将任何新的恶意代码注入到处理器的地址空间中。有效代码序列的小片断(经常称为小工具)可能被攻击者发现,随后串接在一起以形成新的恶意代码序列,进而避开针对代码注入的防御。在ROP攻击中,小代码片断是代码的以返回指令结束的部分。当调用函数时,在向经调用函数的返回的地址完成时,在所述调用之后的指令的地址被推送到堆栈上。因此,所述堆栈可包含许多返回地址,用于处理器跳转到经调用函数完成的时间。如果攻击者可对堆栈写入信息,那么攻击者可用恶意返回地址覆写既定返回地址。此返回地址可到达由攻击者识别的小工具中的一者。通过操纵多个返回地址,控制调用堆栈的攻击者可将多个小工具链接在一起以产生恶意代码序列,而从不需要将任何新代码注入处理器地址空间。通过这些恶意代码序列及其布置的选择,攻击者可针对由小工具串组成的恶意程序而引起任意的(但仍是图灵完全的)行为。此类型的攻击是成功的,因为在大多数系统中代码和数据地址是可预测的。也就是说,攻击者可在其自己的计算机中加载特定代码,检视其堆栈以确定代码正如何加载,且当此代码加载在目标计算机中时使用此信息来攻击返回堆栈。此攻击可大体上依赖于在不同计算机上以相同方式加载代码。因此,需要稳健的计算机措施,其可检测对堆栈中的弱点的攻击且在检测到此些攻击时执行补救动作。
技术实现思路
可在设备、方法和计算机可读媒体中实施本专利技术的各种特征。此些特征可包含检测对堆栈中的弱点的攻击以及在检测到此些攻击时执行补救动作。在一个实例中,提供一种在包含高速缓存存储器的处理电路中操作的方法。所述方法可包含在所述高速缓存存储器中加载可执行代码序列的至少若干部分。在一个实例中,可执行代码序列可包含一系列可执行代码序列且所述系列中的所述可执行代码序列中的一或多者与调用堆栈上的指令相关联。所述方法还可包含:执行从所述高速缓存存储器的所述可执行代码序列的指令获取;以及相对于高速缓存未中监视所述指令获取以便动态地检测异常未中活动,其中所述高速缓存未中是在所述指令获取时不在所述高速缓存存储器中的所获取指令。在一个实例中,相对于高速缓存未中监视所述指令获取可包含监视所述指令获取中的一些是高速缓存命中,且所述异常未中活动指示所述高速缓存命中相对于所述高速缓存未中的命中/未中比率低于相对于指示有效代码序列的有效命中/未中比率选择的阈值。可报告所述异常未中活动以便执行关于所述可执行代码序列的补救动作。可通过响应于所述异常未中活动的所述报告终止所述可执行代码序列的执行来执行所述补救动作。在一个实例中,所述有效命中/未中比率可通过监视来自在所述监视期间不含面向返回编程攻击的多个所述可执行代码序列的命中/未中比率来确定。根据一个方面,监视可在选定操作周期期间暂停。举例来说,所述选定操作周期可包含新过程的引导阶段。根据一个方面,所述异常未中活动可在预定义数目的先前指令、预定义时间周期上和/或预定操作上下文内确定。根据一个特征,可确定所述异常未中活动指示面向返回编程攻击的装置。在第二实例中,提供一种处理装置,其包含处理电路、高速缓存存储器系统和高速缓存监视器。处理电路可经配置以用于获取和执行可执行代码序列。高速缓存存储器系统可操作地耦合到所述处理电路且包含至少一个高速缓存存储器。高速缓存监视器可经配置以相对于高速缓存未中监视指令获取以便动态地检测异常未中活动,其中所述高速缓存未中是在所述指令获取时不在所述高速缓存存储器中的所获取指令。在第三实例中,提供一种方法,其包含在处理电路中执行多个代码片断的非既定序列,其中每一代码片断包含包括控制转移指令的至少一个可执行指令。所述代码片断中的一或多者可包含不同于原始既定控制转移指令的经修改控制转移指令,且所述多个代码片断中的至少一个代码片断是在高速缓存存储器中未发现的未经高速缓冲存储的代码片断。所述方法还可包含通过相对于高速缓存未中监视指令获取而形成指令加载简档,其中所述高速缓存未中是在所述指令获取时不在所述高速缓存存储器中的所获取指令。可在所述指令加载简档指示所述非既定序列的所述代码片断中的某些代码片断的执行的情况下终止所述非既定序列的至少一个代码片断的执行。执行代码片断的所述非既定序列包含利用多级高速缓存作为所述高速缓存存储器,且经高速缓冲存储的指令是较靠近所述处理电路的高速缓存级中的指令,且未经高速缓冲存储的指令是主存储器或较远离所述处理电路的高速缓存级中的指令。可将所述指令加载简档形成或产生为经高速缓冲存储的指令相对于未经高速缓冲存储的指令的获取的命中/未中比率,所述命中/未中比率低于相对于指示有效代码序列的有效命中/未中比率选择的阈值。可通过监视来自已知在所述监视期间不含面向返回编程攻击的多个可执行代码序列的命中/未中比率来确定所述有效命中/未中比率。在第四实例中,提供一种处理装置,其包含处理电路、高速缓存监视器和补救动作单元。处理电路可经配置以用于获取和执行可执行代码序列,且高速缓存存储器系统可操作地耦合到所述处理电路且包含至少一个高速缓存存储器。所述高速缓存监视器可经配置以通过相对于高速缓存未中监视指令获取而形成指令加载简档,其中所述高速缓存未中是在所述指令获取时不在所述高速缓存存储器中的所获取指令。补救动作单元可经配置以用于在所述指令加载简档指示代码片断的非既定序列的情况下执行关于所述可执行代码序列的补救动作。每一代码片断包含包括控制转移指令的至少一个可执行指令,其中所述代码片断中的一或多者包含不同于原始既定控制转移指令的经修改控制转移指令,且所述多个代码片断中的至少一个代码片断是在高速缓存存储器中未发现的未经高速缓冲存储的代码片断。本专利技术的再其它方面包含一种处理器装置,其包含用于在处理电路中执行多个代码片断的非既定序列的装置。每一代码片断包含包括控制转移指令的至少一个可执行指令,其中所述代码片断中的一或多者包含不同于原始既定控制转移指令的经修改控制转移指令,且所述多个代码片断中的至少一个代码片断是在高速缓存存储器中未发现的未经高速缓冲存储的代码片断。所述处理装置还包含用于通过相对于高速缓存未中监视指令获取而形成指令加载简档的装置,其中所述高速缓存未中是在所述指令获取时不在所述高速缓存存储器中的所获取指令。本专利技术的其它方面包含一种其上存储有指令的计算机可读媒体,所述指令在由处理电路执行时致使所述处理电路执行多个代码片断的非既定序列。每一代码片断包含包括控制转移指令的至少一个可执行指令,其中所述代本文档来自技高网
...
用于检测面向返回编程攻击的方法、装置和系统

【技术保护点】
一种在包含高速缓存存储器的处理电路中操作的方法,其包括:在所述高速缓存存储器中加载可执行代码序列的至少若干部分;执行从所述高速缓存存储器的所述可执行代码序列的指令获取;响应于所述指令获取而检测一个或多个指令获取高速缓存未中,其中单个指令获取高速缓存未中代表针对所述可执行代码序列的相应的指令获取的所获取指令不在所述高速缓存存储器中;相对于所述一个或多个指令获取高速缓存未中监视所述指令获取以便动态地检测异常指令获取高速缓存未中活动;以及确定所述异常指令获取高速缓存未中活动是否指示面向返回编程攻击。

【技术特征摘要】
【国外来华专利技术】2011.11.07 US 13/290,9321.一种在包含高速缓存存储器的处理电路中操作的方法,其包括:在所述高速缓存存储器中加载可执行代码序列的至少若干部分;执行从所述高速缓存存储器的所述可执行代码序列的指令获取;响应于所述指令获取而检测一个或多个指令获取高速缓存未中,其中单个指令获取高速缓存未中代表针对所述可执行代码序列的相应的指令获取的所获取指令不在所述高速缓存存储器中;相对于所述一个或多个指令获取高速缓存未中监视所述指令获取以便动态地检测异常指令获取高速缓存未中活动;以及确定所述异常指令获取高速缓存未中活动是否指示面向返回编程攻击。2.根据权利要求1所述的方法,其进一步包括:报告所述异常指令获取高速缓存未中活动,且响应于所述异常指令获取高速缓存未中活动而执行关于所述可执行代码序列的补救动作。3.根据权利要求2所述的方法,其进一步包括:通过响应于所述异常指令获取高速缓存未中活动的所述报告终止所述可执行代码序列的执行来执行所述补救动作。4.根据权利要求1所述的方法,其中相对于所述一个或多个指令获取高速缓存未中监视所述指令获取包含响应于所述指令获取而检测一个或多个指令获取高速缓存命中;响应于所检测的指令获取高速缓存命中和指令获取高速缓存未中而确定指令获取高速缓存命中/未中比率;以及通过检测命中/未中比率低于相对于指示有效代码序列的有效命中/未中比率而选择的阈值来检测所述异常指令获取高速缓存未中活动。5.根据权利要求4所述的方法,其中所述有效命中/未中比率是通过监视来自在所述监视期间不含面向返回编程攻击的多个所述可执行代码序列的指令获取高速缓存命中/未中比率来确定。6.根据权利要求1所述的方法,其中所述监视在选定操作周期期间暂停。7.根据权利要求6所述的方法,其中所述选定操作周期包含新过程的引导阶段。8.根据权利要求1所述的方法,其中所述异常指令获取高速缓存未中活动是在预定义数目的先前指令或预定义时间周期上确定。9.根据权利要求1所述的方法,其中所述异常指令获取高速缓存未中活动是在预定操作上下文内确定。10.一种包含高速缓存存储器的处理装置,其包括:处理电路,其经配置以获取和执行可执行代码序列;高速缓存存储器系统,其可操作地耦合到所述处理电路且包含至少一个高速缓存存储器;高速缓存监视器,其经配置以响应于指令获取而检测一个或多个指令获取高速缓存未中,其中单个指令获取高速缓存未中代表针对所述可执行代码序列的相应的指令获取的所获取指令不在所述高速缓存存储器中,且进一步经配置以相对于所述一个或多个指令获取高速缓存未中监视指令获取以便动态地检测异常指令获取高速缓存未中活动;以及补救动作单元,其经配置以确定所述异常指令获取高速缓存未中活动是否指示面向返回编程攻击。11.根据权利要求10所述的处理装置,其中所述补救动作单元进一步经配置以在所述高速缓存监视器报告所述异常指令获取高速缓存未中活动的情况下终止所述可执行代码序列中的一或多者的执行。12.根据权利要求11所述的处理装置,其中所述高速缓存监视器、所述补救动作单元、所述处理电路或其组合经配置以:响应于所述指令获取而检测一个或多个指令获取高速缓存命中;响应于所检测的指令获取高速缓存命中和指令获取高速缓存未中而确定指令获取高速缓存命中/未中比率;以及通过检测命中/未中比率低于相对于指示有效代码序列的有效命中/未中比率而选择的阈值来检测所述异常指令获取高速缓存未中活动。13.根据权利要求10所述的处理装置,其中所述高速缓存存储器系统包含数据高速缓存和指令高速缓存,且所述高速缓存监视器经配置以从所述指令高速缓存形成指令加载简档。14.根据权利要求10所述的处理装置,其中所述高速缓存存储器系统包含两级或两级以上高速缓存,且所述高速缓存监视器经配置以从所述两级或两级以上高速缓存中的至少一者形成指令加载简档。15.根据权利要求10所述的处理装置,其中所述高速缓存监视器经配置以在选定操作周期期间暂停监视。16.根据权利要求15所述的处理装置,其中所述选定操作周期包含新过程的引导阶段。17.根据权利要求15所述的处理装置,其中所述高速缓存监视器在预定义数目的先前指令或预定义时间周期上检测所述异常指令获取高速缓存未中活动。18.一种在包含高速缓存存储器的处理电路中操作的装置,其包括:用于在所述高速缓存存储器中加载可执行代码序列的至少若干部分的装置;用于执行从所述高速缓存存储器的所述可执行代码序列的指令获取的装置;用于响应于所述指令获取而检测一个或多个指令获取高速缓存未中的装置,其中单个指令获取高速缓存未中代表针对所述可执行代码序列的相应的指令获取的所获取指令不在所述高速缓存存储器中的;用于相对于所述一个或多个指令获取高速缓存未中监视所述指令获取以便动态地检测异常指令获取高速缓存未中活动的装置;以及用于确定所述异常指令获取高速缓存未中活动是否指示面向返回编程攻击的装置。19.根据权利要求18所述的装置,其进一步包括:用于报告所述异常指令获取高速缓存未中活动的装置;以及用于响应于所述异常指令获取高速缓存未中活动而执行关于所述可执行代码序列的补救动作的装置。20.根据权利要求18所述的装置,其进一步包括:用于在预定义数目的先前指令或预定义时间周期上确定所述异常指令获取高速缓存未中活动的装置。21.一种在包含高速缓存存储器的处理电路中操作的方法,其包括:在处理电路中执行多个代码片断的非既定序列,每一代码片断包含包括控制转移指令的至少一个可执行指令...

【专利技术属性】
技术研发人员:丹尼尔·科马罗米亚历克斯·甘特曼布莱恩·M·罗森贝格阿伦·巴拉克里沙南伦威·格格雷戈里·G·罗丝阿南德·帕拉尼古德
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:美国,US

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

1