发明名称 一种基于虚拟机的ROP攻击检测方法及系统
摘要 本发明公开了一种基于虚拟机的ROP攻击检测方法及系统,属于系统安全技术领域。本方法为:1)将待保护的操作系统运行在虚拟域环境中;2)定位设定的目标进程,获取目标进程的进程信息;3)监控该系统中进程运行,当上下文切换到目标进程时,将当前目标进程的堆栈标记为只读;4)拦截当内存页面错误引发自对一个可写堆栈内存区域标记为只读后发生的写操作,并将相应堆栈页面标记为可写;5)定位当前目标进程在执行过程中下一需堆栈检查的地方,设置断点;6)截获断点并检测ROP攻击是否存在;当检测到ROP攻击时,停止当前目标进程,否则使目标进程继续运行,同时将目标进程的堆栈标记为只读。本方法具有检测率高,误报率低等特点。
申请公布号 CN102663312B 申请公布日期 2014.10.01
申请号 CN201210075159.0 申请日期 2012.03.20
申请人 中国科学院信息工程研究所 发明人 贾晓启;王蕊;姜军
分类号 G06F21/56(2013.01)I;G06F9/455(2006.01)I 主分类号 G06F21/56(2013.01)I
代理机构 北京君尚知识产权代理事务所(普通合伙) 11200 代理人 余长江
主权项 一种基于虚拟机的ROP攻击检测方法,其步骤为:1)将待保护的操作系统运行在虚拟机提供的虚拟域环境中;2)利用定位程序定位设定的目标进程,从CPU控制寄存器CR3中定位目标进程的进程控制块结构体,从进程控制块结构体中获取目标进程的进程信息;3)修改该虚拟机的进程上下文切换事件处理程序,监控该系统中进程运行,当上下文切换到目标进程时,将当前目标进程的堆栈标记为只读;4)修改该虚拟机的内存页面错误事件处理程序,拦截当内存页面错误引发自对一个可写堆栈内存区域标记为只读后发生的写操作,并将相应堆栈页面标记为可写;5)通过反汇编定位当前目标进程在执行过程中下一需堆栈检查的地方,在需堆栈检查处设置断点;6)修改该虚拟机的调试异常事件处理程序,截获断点并执行堆栈内容检查,然后结合动态链接库地址范围,检查堆栈内容中是否包含大量的在动态链接库的地址范围内的地址信息,根据事先设置的阈值检测ROP攻击是否存在;7)当检测到ROP攻击时,停止当前目标进程;如果没有ROP攻击,则使目标进程继续运行,同时将目标进程的堆栈标记为只读。
地址 100029 北京市朝阳区北土城西路3号
您可能感兴趣的专利