[发明专利]一种基于路径分析的缓冲区溢出漏洞自动利用方法有效
申请号: | 201810687808.X | 申请日: | 2018-06-28 |
公开(公告)号: | CN108959936B | 公开(公告)日: | 2021-05-25 |
发明(设计)人: | 董威;贾维熙;徐鲁杭;尹良泽;陈立前;陈振邦;王戟 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57 |
代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 周长清;胡君 |
地址: | 410073 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 路径 分析 缓冲区 溢出 漏洞 自动 利用 方法 | ||
1.一种基于路径分析的缓冲区溢出漏洞自动利用方法,其特征在于,步骤包括:
S1. 获取目标二进制程序的程序信息;
S2. 根据获取的所述程序信息使用符号执行方法对目标二进制程序进行遍历,搜索程序中存在的软件漏洞,并获取搜索到的软件漏洞的路径信息;
S3.获取当前系统的环境信息,根据获取的环境信息以及所述程序信息,生成所需的利用规约以绕过系统保护;
S4. 根据所述软件漏洞的路径信息以及生成的利用规约进行求解,最终生成所需的漏洞利用输入;
所述步骤S2中搜索程序中存在的软件漏洞的具体步骤为:
S21. 配置符号执行搜索策略为广度优先搜索策略,同时设定符号执行所需的参数;
S22. 构建符号执行的过滤器,以用于搜索缓冲区溢出漏洞;
S23. 利用符号执行对目标二进制程序进行遍历,遍历过程中使用构建的所述过滤器对程序的所有状态点进行检查,如果发现缓冲区结构以外的内存被外部输入覆盖时,判定为包含缓冲区溢出漏洞并筛选出当前路径,最终得到所述软件漏洞的路径信息。
2.根据权利要求1所述的基于路径分析的缓冲区溢出漏洞自动利用方法,其特征在于,所述步骤S1的具体步骤为:
S11. 获取目标二进制程序并进行反汇编,得到目标二进制程序的汇编代码;
S12. 根据步骤S11得到的汇编代码获取目标程序中包括控制流信息、程序属性信息的程序信息;
S13. 将所述步骤S11得到的目标二进制程序的汇编代码转换成中间表示VEX。
3.根据权利要求2所述的基于路径分析的缓冲区溢出漏洞自动利用方法,其特征在于,所述步骤S2中对目标二进制程序进行遍历时,具体对转换得到的所述中间表示VEX进行符号执行,寻找出存在缓冲区溢出漏洞的程序路径,得到所述软件漏洞的路径信息。
4.根据权利要求1~3中任意一项所述的基于路径分析的缓冲区溢出漏洞自动利用方法,其特征在于,所述步骤S2中对搜索到软件漏洞时,还包括对搜索的软件漏洞进行验证,判定是否缓冲区溢出可复现,如果无法复现,判定是误报,重新进行软件漏洞的搜索,否则转入执行步骤S3。
5.根据权利要求1~3中任意一项所述的基于路径分析的缓冲区溢出漏洞自动利用方法,其特征在于,所述步骤S3中生成所需的利用规约的具体步骤为:
S31. 获取系统属性信息,根据获取的系统属性信息确定系统是否存在地址空间分布随机化的防护措施,以及根据程序属性信息,确定程序是否存在堆栈保护和堆栈不可执行防护措施;
S32. 根据系统的防护措施判断当前是否能够生成可用的软件漏洞利用,如果是,根据当前开启的防护措施确定对应的软件漏洞利用实施方法,其中如若开启栈不可执行防护,则采用Ret2libc方法,如若开启地址空间随机化防护,则采用jump esp方法;如果系统中未开启任何防护措施,则直接将恶意代码写在输入的相应位置当中。
6.根据权利要求1~3中任意一项所述的基于路径分析的缓冲区溢出漏洞自动利用方法,其特征在于,所述步骤S4的具体步骤为:将所述软件漏洞的路径信息以及生成的利用规约进行整合后提交给约束求解器进行求解,最终生成所需的软件漏洞利用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810687808.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种漏洞插件批量执行方法及装置
- 下一篇:插件处理方法、装置和设备