[发明专利]基于模拟栈和线程注入的一种ROP攻击栈溢出防护方法有效
申请号: | 201710417305.6 | 申请日: | 2017-06-06 |
公开(公告)号: | CN107229862B | 公开(公告)日: | 2019-11-12 |
发明(设计)人: | 刘小垒;张小松;牛伟纳;周旷;户宇宙 | 申请(专利权)人: | 电子科技大学 |
主分类号: | G06F21/52 | 分类号: | G06F21/52 |
代理公司: | 成都弘毅天承知识产权代理有限公司 51230 | 代理人: | 李春芳 |
地址: | 611731 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开基于模拟栈和线程注入的一种ROP攻击栈溢出防护方法,涉及ROP攻击防护技术领域,解决了现有技术由于程序加载位置固定导致不具有指令的ROP恶意代码能够绕过栈溢出防护技术问题,以及解决了在利用模拟栈监控目标进程时所使用的远程线程注入造成目标进程中出现栈溢出的技术问题。本发明包括利用线程注入到目标进程(要保护的进程),开辟一个模拟栈空间,监控模拟目标进程的指令流程,通过获取ROP攻击的call和ret指令间的有效代码串连,在模拟栈上执行,再使用传统的溢出防护机制,从而达到检测ROP攻击的目的。 | ||
搜索关键词: | 溢出 线程 攻击 目标进程 防护 指令 程序加载 恶意代码 防护机制 防护技术 攻击防护 监控目标 模拟目标 有效代码 远程线程 指令流程 进程 传统的 再使用 栈空间 串连 绕过 监控 检测 | ||
【主权项】:
1.基于模拟栈和线程注入的一种ROP攻击栈溢出防护方法,其特征在于,包括以下步骤:步骤1、对目标进程注入远程线程,通过远程线程获得目标进程的指令流;步骤2、通过目标进程函数的调用特征提取算法将指令流与受信的特征数据库进行比对,获得存在异常调用的指令序列;步骤3、构建模拟栈并完成指令序列的拼接,然后在模拟栈中压入拼接的指令序列和金丝雀值,再利用函数进行模拟栈的指令调用,在函数进行返回前检测指令调用过程中金丝雀值,获得检测结果;步骤4、根据检测结果通过远程线程回调控制目标进程的启停,并由检测结果选择地输出模拟栈上ROP攻击代码和溢出点;所述的步骤1,还包括以下步骤:步骤1.1、获得目标进程的句柄,用远程进程根据句柄索引出目标进程;步骤1.2、在远程进程中开辟出一段内存并根据目标进程动态链接库名称长度确定内存区间,在该内存中写入动态链接库的名称;步骤1.3、使用库加载函数和远程线程创建函数根据动态链接库的名称创建出远程线程;步骤1.4、关闭目标进程的句柄,再通过远程线程获得目标进程的指令流;所述的步骤2,其中,对cal l指令和ret指令之间的指令流进行比对。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710417305.6/,转载请声明来源钻瓜专利网。