CN102663312B - 一种基于虚拟机的rop攻击检测方法及系统 - Google Patents
一种基于虚拟机的rop攻击检测方法及系统 Download PDFInfo
- Publication number
- CN102663312B CN102663312B CN201210075159.0A CN201210075159A CN102663312B CN 102663312 B CN102663312 B CN 102663312B CN 201210075159 A CN201210075159 A CN 201210075159A CN 102663312 B CN102663312 B CN 102663312B
- Authority
- CN
- China
- Prior art keywords
- storehouse
- stack
- rop
- virtual machine
- breakpoint
- 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
Links
Abstract
本发明公开了一种基于虚拟机的ROP攻击检测方法及系统,属于系统安全技术领域。本方法为:1)将待保护的操作系统运行在虚拟域环境中;2)定位设定的目标进程,获取目标进程的进程信息;3)监控该系统中进程运行,当上下文切换到目标进程时,将当前目标进程的堆栈标记为只读;4)拦截当内存页面错误引发自对一个可写堆栈内存区域标记为只读后发生的写操作,并将相应堆栈页面标记为可写;5)定位当前目标进程在执行过程中下一需堆栈检查的地方,设置断点;6)截获断点并检测ROP攻击是否存在;当检测到ROP攻击时,停止当前目标进程,否则使目标进程继续运行,同时将目标进程的堆栈标记为只读。本方法具有检测率高,误报率低等特点。
Description
技术领域
本发明属于系统安全技术领域,具体涉及一种基于虚拟机的ROP攻击检测方法和系统。
背景技术
随着计算机系统在社会各领域应用的不断加深,其安全性问题成为产业界和学术界共同关注的焦点。恶意代码一直是计算机系统安全的主要威胁和隐患之一,其危害性随着社会对计算机系统的依存性的提高不断加重。计算机技术持续发展的同时,恶意代码技术也不断升级,新攻击技术的产生以及对抗手段的提升,均对传统的检测和防范技术带来了严峻的挑战。
利用返回导向编程(Return Oriented Programming,ROP)构造的恶意代码攻击,由于其隐蔽性等技术优势成为恶意攻击防范研究的难点之一。俄罗斯安全专家Alexander Peslyak于1997年提出了“return-to-libc”攻击,通过堆栈溢出的方法将控制流转到libc中的exec系统调用,从而实现对特定应用程序的提权。2007年,Hovav Shacham提出了ROP攻击的概念,利用ROP技术实现了一种基于x86的恶意代码构造方法。该方法中利用指令(而非函数)使用“return-to-libc”攻击,通过堆栈溢出将控制流转到库中某条ret指令的前一条指令。通过精心构造堆栈,配合如伽利略算法等在库中查找可用指令,可以实现每条指令执行完成之后由ret跳到下一条所需指令,由此通过构造的返回地址序列将库中已有的指令根据需要拼接起来成为指令序列,从而实现具有所需攻击效果的恶意代码的构造。该方法的特点是构造恶意代码实现了攻击却没有任何代码注入问题,因此可以躲避代码完整性校验等传统防范方法。此后,ROP攻击方法被移植到其他架构中,包括ARM,Power PC等RISC架构上,其危害范围不断扩大,其相关检测防范研究也引起了国内外学者的广泛关注。
针对ROP攻击,已有一些研究人员提出了一定的对策。现有的检测及防范方法主要包括:
(1)通过识别指令流中大量出现的ret指令检测ROP攻击
由于ROP恶意代码构造方法中,代码是通过取ret前的一条指令拼接而成的,因此指令序列中会出现大量甚至一半的ret指令,这是与正常程序的重要区别。根据ROP攻击代码的这一特性,通过检测指令流中的ret指令实现ROP构造的恶意代码攻击的检测。
(2)通过检查堆栈使用规范检测ROP攻击
由于ROP攻击中的调用堆栈使攻击者构造出来,而非call指令生成的,据此通过在检测到ret指令时检测其是否有对应的call指令的方法,实现ROP攻击的检测。
(3)通过在被攻击库中去掉ret指令防范ROP攻击
被攻击库指的是构造ROP攻击代码所使用的库(如libc或kernel等)。由于构造ROP攻击代码需要被攻击库中含有ret指令(x86下指令码0xC3),因此通过使用编译技巧将该指令码从库中移除,由此防范了ROP攻击的形成。
上述的检测及防范方法均基于ret指令进行,然而ROP攻击技术进一步发展,其指令序列形成方式不再局限于ret指令。例如使用pop指令和jmp指令配合替代ret指令实现同样的作用;或者使用二级跳转的方法,将pop和jmp代码的位置放入通用寄存器,然后在库中查找jmp[reg]实现控制流转移,从而实现ROP攻击的构造。对于这些ROP攻击构造方法,目前的检测及防范方法已显露出不足。另外,由于当前的防范方法均在操作系统上实现,依赖于操作系统本身的安全性,当被攻击系统自身的可信性无法保障时,对ROP攻击的防护则会失效。因此,如何能够提供一种ROP攻击的检测及防范方法成为保障系统安全的重要需求。
发明内容
针对现有技术中存在的技术问题,本发明的目的在于提出一种基于虚拟机的ROP攻击检测防御方法,针对在不注入其他代码的情况下利用操作系统中已有的二进制代码构造恶意代码的ROP攻击方法,本发明的目的即在于检测系统中运行的某服务进程中是否包含ROP恶意代码攻击,对其进行防范从而保障服务中的进程的可用性和持续性。通过在需要防护的系统硬件上运行虚拟机,将被保护的操作系统运行在虚拟域环境中,从而全面获取系统运行信息,基于ROP恶意代码的特点,即利用操作系统中已有库中的指令,结合构造堆栈内容以连接成攻击所需的指令序列,本发明通过识别堆栈内容中是否包含大量的在库(如libc)的地址范围内的地址信息,来检测是否存在ROP攻击。进一步地,当检测到ROP攻击以后,通过攻击隔离来阻止ROP攻击的实现,从而保护操作系统服务的可用性。
本发明的主要内容如下:
1、在需要防护的系统硬件上运行虚拟机,然后将被保护的操作系统运行在虚拟域环境中,全面监控系统运行信息;
2、修改虚拟机中的事件处理程序,以实现在程序运行过程中对堆栈的写操作的拦截,和对堆栈的内容的检查等;
3、定位需要保护的进程在执行过程中需要进行堆栈检查的地方,并设置断点;
4、当系统上下文切换到被保护进程,或者正在执行堆栈检查时,将堆栈进行标记,目的是拦截对堆栈的写操作并进行处理;
5、当执行到已设置的需要进行堆栈检查的断点处时,检查堆栈内容,通过识别算法,检测ROP攻击是否存在;
6、当检测到ROP攻击后,通过攻击隔离,阻止ROP攻击。
本发明方法流程如图1所示,本发明的步骤如下:
1)在需要防护的系统的硬件上运行虚拟机,将被保护的操作系统运行在虚拟域环境中;
2)利用定位程序定位设定的目标进程,从CPU控制寄存器CR3中定位目标进程的进程控制块结构体,从进程控制块结构体中获取目标进程的进程信息;
3)修改虚拟机进程上下文切换事件处理程序,监控系统中进程运行,当上下文切换到目标进程时,将堆栈标记为只读;
4)修改虚拟机内存页面错误事件处理程序,拦截对堆栈的写操作,并将相应的堆栈标记为可写;
5)通过反汇编定位到被保护进程在执行过程中下一个需要进行堆栈检查的地方,在需要进行堆栈检查处设置断点;
6)修改虚拟机调试异常事件处理程序,截获断点,将目标进程堆栈内存页面标为只读,并调用堆栈检测模块;
7)堆栈检测模块执行堆栈内容检查,并结合动态链接库地址范围,检查堆栈内容中是否包含大量的在动态链接库的地址范围内的地址信息,根据事先设置的阈值,检测是否存在ROP攻击;
8)当检测到ROP攻击时,停止相应进程,等待修复,其他进程继续运行服务,以保护系统的可用性。
9)如果此时没有ROP攻击,则使目标进程继续运行,同时将目标进程的堆栈标记为只读,继续进行实时监控。
进一步的,在步骤1)中,在所述虚拟机上,本发明于监控层添加监控模块,从而全面监控在虚拟域中运行的系统中的进程、堆栈、动态链接库等信息。
在步骤2)中,定位程序定位设定的目标进程信息的具体方法是:当前运行进程的内核堆栈可以通过任务寄存器定位。在内核堆栈的底部,可以找到进程的控制块结构体。该结构体是一个指向任务描述符的指针。通过任务描述符,可以获得关于一个进程的所有所需要的信息,例如描述虚拟内存结构,调度信息,动态链接库地址信息等等。进一步,通过任务描述符中的任务指针,可以定位所有客户操作系统的进程,从而得到所有进程的信息。
在步骤4)中,所述的拦截堆栈写操作的方法,是通过修改页面错误事件处理程序实现的。由于在步骤3)中,当被保护进程运行时,堆栈被标记为已读,因此对堆栈的写操作将会引起页面错误。本发明在修改的页面错误事件处理程序中识别该错误是否引发自对一个可写内存区域标记为只读后发生的写操作,若是,本发明加入处理程序将调用断点定位模块。
在步骤5)中,所述的反汇编定位断点的方法是:在虚拟机中编写反汇编代码,从当前指令寄存器开始的位置反汇编用来查找下一个返回指令或与其作用相同指令(即有类似返回指令地址跳转功能的指令),该查找通过识别操作码完成。当查找到下一个需要设置断点的位置时,用调试寄存器DR0来保存该断点,并设置调试寄存器DR7的相关比特(全局断点位,地址长度位和读写执行位)以允许这一中断。
在步骤7)中,所述的具体检测方法是:首先找到潜在被攻击库得地址范围集合,然后检查堆栈顶的n个元素内容,看其是否属于潜在被攻击库的地址范围之内,计算其在该地址范围内的元素的比例,根据检测需要设置门限值,以判定是否存在ROP攻击,n为自然数。
本发明提供了一种基于虚拟机的ROP攻击防御系统,该系统基于虚拟机,由六个主要部分组成:事件处理模块、堆栈标记模块、断点定位模块、堆栈检查模块、动态链接库定位模块和攻击隔离模块。其中,事件处理模块修改虚拟机中的事件处理程序实现堆栈写操作拦截和断点中断的拦截,并在对应时刻调用断点定位模块和堆栈检查模块。堆栈标记模块负责在上下文切换到需保护进程时以及进行堆栈检查后,将堆栈标记为只读,从而唤起页面错误致使对于堆栈的写操作能被拦截及处理。断点定位模块的作用是定位到需要执行堆栈检查的地方,从而使需要检查堆栈内容的地方之外的指令能够常规执行。动态链接库定位模块用于定位目标程序使用的动态链接库的地址范围。堆栈检查模块负责检测ROP攻击是否存在。攻击隔离模块是在系统其他进程功能继续运行的情形下阻止攻击在系统中扩散。
与现有技术相比,本发明的优点在于:
本发明采用了基于硬件虚拟化技术实现的ROP攻击检测及防御方法,此方法对于被保护的系统是高透明的,并且不依赖于被保护操作系统的安全性,可以在操作系统不可信时正确完成检测及防范工作。本发明提出了一种通过检查当前线程堆栈的内容来检测ROP攻击的算法,并可通过可调节的参数,对ROP攻击具有检测率高,误报率低等特点。进一步地,本发明在检测到ROP攻击以后,通过停止进程有效阻止了ROP攻击的危害,保护系统不会被ROP恶意代码攻击,从而保护了系统服务的可用性。
附图说明
图1为本发明方法流程图;
图2为基于虚拟机的ROP攻击防御系统结构图。
具体实施方式
下面结合附图详细说明本发明的技术方案:
如图2所示,本发明的基于虚拟机的ROP攻击防御系统,该系统基于虚拟机,由六个主要部分组成:事件处理模块、堆栈标记模块、断点定位模块、堆栈检查模块、动态链接库定位模块和攻击隔离模块。为了实现ROP检测及攻击防范过程中对于堆栈的写操作的拦截以及执行堆栈内容检查,在事件处理模块中修改了虚拟机中的三个事件处理程序。当上下文切换到需保护进程时以及进行堆栈检查时,堆栈标记模块负责将堆栈标记为只读,从而唤起页面错误致使对于堆栈的写操作能被拦截及处理。由断点定位模块从当前指令开始计算,定位到需要执行堆栈检查的地方,在检查点之前的指令按照常规执行。动态链接库定位模块定位目标程序使用的动态链接库的地址范围;堆栈内容检查模块利用动态链接库的地址范围信息检测ROP攻击是否存在。若存在攻击,则停止相应进程,从而保护系统的可用性。
(1)事件处理模块
为了拦截堆栈的写操作,以及正确地执行堆栈内容检查,本发明中的方法和系统修改了虚拟机中的三个事件处理程序,即上下文切换事件处理程序、页面错误事件处理程序和调试异常事件处理程序。
a)上下文切换事件处理程序的修改
本发明针对特定进程的保护,因此通过修改虚拟机中的上下文切换事件处理程序,来识别下一个预定执行的进程是否是被保护进程。当下一个进程是被保护进程时,堆栈标记模块在影子页表中将该进程的堆栈标记为只读。
针对上下文切换事件处理程序,本发明中修改结构体CR_ACCESS,以便在虚拟机层捕捉到进程上下文切换,当上下文切换发生时,通过内核数据结构信息定位堆栈范围,并将堆栈范围数据保存下来。
b)页面错误事件处理程序的修改
本发明通过修改虚拟机中的页面错误事件处理程序,以拦截对于堆栈的写操作,并调用断点定位模块。由于在对上下文切换事件处理程序的修改后,当被保护进程运行时,堆栈被标记为只读,因此对于堆栈的写操作将会引起页面错误。本发明在页面错误事件处理程序中识别该错误是否引发自对一个可写内存区域标记为只读后发生的写操作,若是,本发明中加入的处理程序将调用断点定位模块,寻找硬件断点的位置,同时将堆栈页面标记为可写。
具体实现方式是,本发明编写了页面错误事件处理程序替换原有的处理程序。页面错误事件处理程序的返回值为“0”或“1”,返回“0”代表是一个真实的常规的页面错误因此操作系统应该进行处理,返回1表示该页面错误由影子页表的不一致引起。
10)本发明定义当下列三种情况满足时,页面错误由堆栈的写操作引起:1)原有的页面错误事件处理程序返回“1”;2)页面错误的线性地址空间在堆栈范围内;3)页面错误代码代表一个写访问。对于写访问,将通过系统调试机制在执行过程中下一个需要进行堆栈检查的地方设置一个硬件断点。
c)调试异常事件处理程序的修改
硬件断点将触发一个调试异常,本发明修改调试异常事件处理程序,使之完成两个操作:调用堆栈检查模块以识别ROP攻击是否存在;将堆栈再次标记为只读。
具体实现方式是,在该处理程序中将调试寄存器DR0的内容清除以停止当前断点,然后触发堆栈检查模块识别ROP攻击,之后触发堆栈标记模块将堆栈再次标记为只读,以便下一个检查循环的执行。
(2)堆栈标记模块
利用虚拟机,从操作系统数据结构中读堆栈范围,并将相应的内存页标记为只读。具体方法是,在虚拟环境中,利用影子页面实现内存虚拟化,用影子页表实现地址转换,将其条目设置为只读。
在以下两种情况下,堆栈标记模块将堆栈标记为只读:(a)当上下文切换发生,并且下一个调度的进程为被保护进程时;(b)进行堆栈检查后。
将堆栈标记为只读的目的是:唤起页面错误,实现对于堆栈的写操作的拦截以及处理。
具体实现方式是:首先检查影子页表中是否有特定的堆栈内存页线性地址。从该检查结构中获取相应的页表项并且重置读写位,然后将此页表项写入影子页表,最后执行TLB刷新以提升访问权限。
(3)断点定位模块
本发明中的断点是指堆栈内容需要被检查的点。断点定位模块由修改后的页面错误事件处理程序调用,该模块输出应设置断点的位置值。
由于ROP攻击产生在返回指令执行时刻,该模块将从当前运行指令开始在指令流中查找下一个返回指令。在当前指令和下一个断点之间的指令将不被干扰地执行。由于系统中堆栈操作的频繁性,这一方法保障了本系统的执行能力,降低了执行负载。
具体实现方式是,在虚拟机中编写反汇编代码,在虚拟机内核中执行从当前指令开始的反汇编以查找下一个返回指令或与其作用相同指令。本发明中只考虑找到返回指令和与其作用相同指令,其他指令只需分析出长度而非具体的反汇编结果,因此,只需要识别操作码(因为操作码决定了寻址方式和指令长度)。当查找到下一个需要设置断点的位置时,用调试寄存器DR0保存该断点,并设置调试寄存器DR7的相关比特以允许这一中断。
(4)动态链接库定位模块
此模块在虚拟机监控层分析目标进程的进程控制块结构体。该结构体中一般会包含以下内容:
1)进程标识符(内部,外部);
2)处理机的信息(通用寄存器,指令计数器,PSW,用户的栈指针);
3)进程调度信息(进程状态,进程的优先级,进程调度所需的其它信息,事件);
4)进程控制信息(程序的数据的地址,资源清单,进程同步和通信机制,链接指针)
不同的操作系统根据自己的特点又对进程控制块结构体的内容做了一些调整。此动态链接库定位模块,通过分析受保护操作系统的进程控制块结构体,获得进程载入的动态链接库的地址范围,供堆栈检查模块使用。
(5)堆栈检查模块
当执行到断点时,本系统执行堆栈内容检查,以识别ROP攻击是否存在。
本发明提出的堆栈内容检查方法为:
a)将攻击者可能利用的潜在被攻击库的地址集合设为SPA;
b)将堆栈顶的n个堆栈元素数组设为AST,其中每一个元素为4字节,由此AST占虚拟地址空间的堆栈顶部至堆栈顶部-4n字节的范围,AST(i)表示数组中第i个元素,则其位置为堆栈顶部-4*(i-1);
c)设在AST数组中的元素属于SPA的个数占AST组的比例为R(n),则
可以看出R(n)∈[0,1]。
由于组成ROP恶意代码时,攻击者将会在堆栈中填充大量返回至被攻击库SPA中的返回地址,因此若ROP攻击存在时,函数R(n)的值将会很大(例如大于0.8)。通过检测需要设置门限值,并将其与R(n)比较,以识别是否有ROP攻击。
(6)攻击隔离模块
此模块是要在检测到攻击的情况下,从虚拟机监控层修改操作系统中的信息,停止被攻击进程继续运行,并且使得其他进程无法和被攻击进程进行交互。在隔离攻击的同时,使得其他不相关进程可以继续运行。
本发明提出的ROP攻击检测方法,对于本领域的技术人员而言,可以根据需要自己配置检测门限信息,获得需要的检测精确率和误报率下的检测效果。
尽管为说明目的公开了本发明的具体实施例和附图,其目的在于帮助理解本发明的内容并据以实施,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例和附图所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
Claims (9)
1.一种基于虚拟机的ROP攻击检测方法,其步骤为:
1)将待保护的操作系统运行在虚拟机提供的虚拟域环境中;
2)利用定位程序定位设定的目标进程,从CPU控制寄存器CR3中定位目标进程的进程控制块结构体,从进程控制块结构体中获取目标进程的进程信息;
3)修改该虚拟机的进程上下文切换事件处理程序,监控该系统中进程运行,当上下文切换到目标进程时,将当前目标进程的堆栈标记为只读;
4)修改该虚拟机的内存页面错误事件处理程序,拦截当内存页面错误引发自对一个可写堆栈内存区域标记为只读后发生的写操作,并将相应堆栈页面标记为可写;
5)通过反汇编定位当前目标进程在执行过程中下一需堆栈检查的地方,在需堆栈检查处设置断点;
6)修改该虚拟机的调试异常事件处理程序,截获断点并执行堆栈内容检查,然后结合动态链接库地址范围,检查堆栈内容中是否包含大量的在动态链接库的地址范围内的地址信息,根据事先设置的阈值检测ROP攻击是否存在;
7)当检测到ROP攻击时,停止当前目标进程;如果没有ROP攻击,则使目标进程继续运行,同时将目标进程的堆栈标记为只读。
2.如权利要求1所述的方法,其特征在于修改虚拟机中的上下文切换事件处理程序的方法为:修改结构体CR_ACCESS,使其能够识别出目标进程。
3.如权利要求1所述的方法,其特征在于所述步骤3)中,在拦截的写操作处设置一硬件断点;然后调用断点定位模块,寻找硬件断点的位置并将相应堆栈页面标记为可写。
4.如权利要求1所述的方法,其特征在于所述步骤5)中,通过反汇编定位当前目标进程在执行过程中下一个需要进行堆栈检查的地方并设置断点,即从当前指令寄存器开始的位置反汇编用来查找下一个返回指令或与其作用相同指令,当查找到下一个需要设置断点的位置时,用调试寄存器DR0来保存该断点,并设置调试寄存器DR7以允许这一中断。
5.如权利要求4所述的方法,其特征在于通过识别反汇编结果中的操作码,查找下一个返回指令或与其作用相同指令。
6.如权利要求1所述的方法,其特征在于检测ROP攻击是否存在的方法为:
a)将攻击者可能利用的潜在被攻击库的地址集合设为SPA;
b)将堆栈顶的n个堆栈元素数组设为AST;其中,每一个元素为4字节,AST(i)表示数组中第i个元素,则其位置为堆栈顶部-4*(i-1);
c)设在AST数组中的元素属于SPA的个数占AST数组的比例为R(n),则
d)执行堆栈内容检查,如果R(n)的值大于设置门限值,则识别为有ROP攻击。
7.一种基于虚拟机的ROP攻击检测系统,其特征在于包括一虚拟机,所述虚拟机包括事件处理模块、堆栈标记模块、断点定位模块、堆栈检查模块、动态链接库定位模块和攻击隔离模块;其中:
所述事件处理模块,用于修改虚拟机中的事件处理程序实现堆栈写操作拦截和断点中断的拦截,并在对应时刻调用断点定位模块和堆栈检查模块;
所述堆栈标记模块,用于在上下文切换到目标进程时以及进行堆栈检查后,将堆栈标记为只读,从而唤起页面错误致使对于堆栈的写操作能被拦截及处理;
所述断点定位模块,用于定位到需要执行堆栈检查的地方,从而使需要检查堆栈内容的地方之外的指令能够执行;
所述动态链接库定位模块,用于定位目标进程使用的动态链接库的地址范围;
所述堆栈检查模块,用于检测ROP攻击是否存在。
8.如权利要求7所述的系统,其特征在于所述断点定位模块通过反汇编定位当前目标进程在执行过程中下一个需要进行堆栈检查的地方并设置断点,即从当前指令寄存器开始的位置反汇编用来查找下一个返回指令或与其作用相同指令,当查找到下一个需要设置断点的位置时,用调试寄存器DR0来保存该断点,并设置调试寄存器DR7以允许这一中断。
9.如权利要求7所述的系统,其特征在于所述堆栈检查模块中设有一地址集合SPA和一数组AST;所述地址集合SPA用于将攻击者可能利用的潜在被攻击库的地址;所述数组AST用于存储堆栈顶的n个堆栈元素,其中,每一个元素为4字节,AST(i)表示数组中第i个元素,则其位置为堆栈顶部-4*(i-1);所述堆栈检查模块执行堆栈内容检查,如果R(n)的值大于设置门限值,则识别为有ROP攻击;其中,R(n)为AST数组中的元素属于SPA的个数占AST数组的比例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210075159.0A CN102663312B (zh) | 2012-03-20 | 2012-03-20 | 一种基于虚拟机的rop攻击检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210075159.0A CN102663312B (zh) | 2012-03-20 | 2012-03-20 | 一种基于虚拟机的rop攻击检测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102663312A CN102663312A (zh) | 2012-09-12 |
CN102663312B true CN102663312B (zh) | 2014-10-01 |
Family
ID=46772798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210075159.0A Active CN102663312B (zh) | 2012-03-20 | 2012-03-20 | 一种基于虚拟机的rop攻击检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102663312B (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9223979B2 (en) * | 2012-10-31 | 2015-12-29 | Intel Corporation | Detection of return oriented programming attacks |
CN103885863B (zh) * | 2012-12-24 | 2018-12-11 | 腾讯科技(深圳)有限公司 | 系统故障的处理方法及虚拟机 |
US9135435B2 (en) * | 2013-02-13 | 2015-09-15 | Intel Corporation | Binary translator driven program state relocation |
US9411597B2 (en) * | 2014-05-06 | 2016-08-09 | Nxp B.V. | Return-oriented programming as an obfuscation technique |
US9800592B2 (en) * | 2014-08-04 | 2017-10-24 | Microsoft Technology Licensing, Llc | Data center architecture that supports attack detection and mitigation |
CN104268471B (zh) * | 2014-09-10 | 2017-04-26 | 珠海市君天电子科技有限公司 | 一种检测面向返程的编程攻击的方法及装置 |
US9519773B2 (en) * | 2014-09-12 | 2016-12-13 | Intel Corporation | Returning to a control transfer instruction |
WO2016041592A1 (en) * | 2014-09-17 | 2016-03-24 | Irdeto B.V. | Generating and executing protected items of software |
SG10201504066QA (en) * | 2015-05-25 | 2016-12-29 | Huawei Internat Pte Ltd | Method and system for defense against return oriented programming (rop) based attacks |
US9852295B2 (en) * | 2015-07-14 | 2017-12-26 | Bitdefender IPR Management Ltd. | Computer security systems and methods using asynchronous introspection exceptions |
CN105488397B (zh) * | 2015-12-02 | 2018-01-12 | 国网智能电网研究院 | 一种基于情境的rop攻击检测系统及方法 |
CN106096407B (zh) * | 2016-05-31 | 2020-02-18 | 华中科技大学 | 一种代码复用攻击的防御方法 |
CN106055385B (zh) * | 2016-06-06 | 2019-04-16 | 四川大学 | 监控虚拟机进程的系统和方法、过滤page fault异常的方法 |
CN106326747B (zh) * | 2016-08-26 | 2018-11-27 | 华中科技大学 | 一种针对rop攻击的检测方法 |
US10437990B2 (en) | 2016-09-30 | 2019-10-08 | Mcafee, Llc | Detection of return oriented programming attacks in a processor |
CN106713277A (zh) * | 2016-11-28 | 2017-05-24 | 北京奇虎科技有限公司 | 一种目标样本文件的检测方法和装置 |
CN107194249A (zh) * | 2017-05-22 | 2017-09-22 | 福州汇思博信息技术有限公司 | 系统攻击检测方法及其系统 |
CN107229862B (zh) * | 2017-06-06 | 2019-11-12 | 电子科技大学 | 基于模拟栈和线程注入的一种rop攻击栈溢出防护方法 |
CN109558726B (zh) * | 2018-09-29 | 2022-02-11 | 四川大学 | 一种基于动态分析的控制流劫持攻击检测方法与系统 |
CN109829313B (zh) * | 2019-02-28 | 2020-11-24 | 中国人民解放军战略支援部队信息工程大学 | 一种基于代码复用编程防御sgx侧信道攻击的方法及装置 |
CN110188540B (zh) * | 2019-04-17 | 2021-06-22 | 中国科学院软件研究所 | 一种基于控制状态跟踪的rop攻击检测方法 |
CN110737888B (zh) * | 2019-09-12 | 2022-09-20 | 北京理工大学 | 虚拟化平台操作系统内核数据攻击行为检测方法 |
CN112199669B (zh) * | 2020-09-25 | 2022-05-17 | 杭州安恒信息技术股份有限公司 | 一种检测rop攻击的方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080022129A1 (en) * | 2005-06-30 | 2008-01-24 | David Durham | Secure platform voucher service for software components within an execution environment |
CN101183331A (zh) * | 2007-12-12 | 2008-05-21 | 上海华为技术有限公司 | 一种任务栈溢出检测方法、装置及计算机系统 |
CN101206692A (zh) * | 2006-12-20 | 2008-06-25 | 联想(北京)有限公司 | 检测进程的方法及设备 |
CN101373502A (zh) * | 2008-05-12 | 2009-02-25 | 公安部第三研究所 | 基于Win32平台下病毒行为的自动化分析系统 |
CN101499016A (zh) * | 2008-01-31 | 2009-08-05 | 联想(北京)有限公司 | 虚拟机监视器、虚拟机系统及客户操作系统进程处理方法 |
-
2012
- 2012-03-20 CN CN201210075159.0A patent/CN102663312B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080022129A1 (en) * | 2005-06-30 | 2008-01-24 | David Durham | Secure platform voucher service for software components within an execution environment |
CN101206692A (zh) * | 2006-12-20 | 2008-06-25 | 联想(北京)有限公司 | 检测进程的方法及设备 |
CN101183331A (zh) * | 2007-12-12 | 2008-05-21 | 上海华为技术有限公司 | 一种任务栈溢出检测方法、装置及计算机系统 |
CN101499016A (zh) * | 2008-01-31 | 2009-08-05 | 联想(北京)有限公司 | 虚拟机监视器、虚拟机系统及客户操作系统进程处理方法 |
CN101373502A (zh) * | 2008-05-12 | 2009-02-25 | 公安部第三研究所 | 基于Win32平台下病毒行为的自动化分析系统 |
Non-Patent Citations (1)
Title |
---|
《针对ROP攻击的动态运行时检测系统》;韩浩,茅兵,谢立;《计算机工程》;20120228;第38卷(第4期);第122-125页 * |
Also Published As
Publication number | Publication date |
---|---|
CN102663312A (zh) | 2012-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102663312B (zh) | 一种基于虚拟机的rop攻击检测方法及系统 | |
CN108090346B (zh) | 一种基于数据流监控的代码复用攻击防御方法及系统 | |
Kawakoya et al. | Memory behavior-based automatic malware unpacking in stealth debugging environment | |
CN109583200B (zh) | 一种基于动态污点传播的程序异常分析方法 | |
Graziano et al. | Hypervisor memory forensics | |
US10984096B2 (en) | Systems, methods, and apparatus for detecting control flow attacks | |
CN104809401A (zh) | 一种操作系统内核完整性保护方法 | |
CN107479980B (zh) | 一种检测应用中死锁的方法与设备 | |
CN105224864A (zh) | 一种抵御代码重用攻击的工作进程随机化方法及系统 | |
CN102651062A (zh) | 基于虚拟机架构的恶意行为跟踪系统和方法 | |
CN103064784A (zh) | 面向Xen环境的运行时内存泄漏检测方法及其实现系统 | |
CN103955649B (zh) | 一种安全启动终端设备的方法 | |
CN103793651A (zh) | 基于Xen虚拟化的内核完整性检测方法 | |
CN108920253B (zh) | 一种无代理的虚拟机监控系统和监控方法 | |
TWI515597B (zh) | 安全保護方法和處理器 | |
CN107368739B (zh) | 一种内核驱动的监视方法和装置 | |
Kollenda et al. | Towards automated discovery of crash-resistant primitives in binary executables | |
CN103019865B (zh) | 虚拟机监控方法和系统 | |
Allende et al. | Towards linux for the development of mixed-criticality embedded systems based on multi-core devices | |
CN111931191A (zh) | Linux平台二进制软件堆溢漏洞动态检测方法及系统 | |
CN109726115B (zh) | 一种基于Intel处理器跟踪的反调试自动绕过方法 | |
Jianming et al. | PVDF: An automatic patch-based vulnerability description and fuzzing method | |
Gao et al. | Debugging classification and anti-debugging strategies | |
Xu et al. | Memory Error Detection Based on Dynamic Binary Translation | |
CN111143851B (zh) | 适用于操作系统内核对象地址泄露的检测方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |