[发明专利]基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法有效
申请号: | 201910509701.0 | 申请日: | 2019-06-13 |
公开(公告)号: | CN110287693B | 公开(公告)日: | 2023-07-21 |
发明(设计)人: | 谢海;朱涛;陈水全 | 申请(专利权)人: | 成都积微物联集团股份有限公司 |
主分类号: | G06F21/52 | 分类号: | G06F21/52;G06F21/57 |
代理公司: | 成都智言知识产权代理有限公司 51282 | 代理人: | 徐金琼 |
地址: | 610000 四川省成都市青白江区香岛大道*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 符号 执行 路径 剪枝 缓冲区 溢出 漏洞 自动检测 方法 | ||
1.基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法,其特征包括:
A.初始化缓存:预先选取相应的路径,符号执行所述的路径,并将执行后的结果添加到缓存中;
B.获取待测试的二进制程序的控制流图,并且对控制流图中的基本块的内部不存在跳转的指令进行约简,以及对基本块之间的直接跳转指令进行合并;
C.根据缓存中已符号执行完的路径的历史触发漏洞情况,对当前符号执行的跳转路径进行动态评分;
D.根据评分结果,调整待执行路径队列中待执行路径的执行顺序;
E.对于和已符号执行的路径具有相同路径后缀的待执行路径,直接调用已符号执行路径的执行结果,不再执行该待执行路径;
F.对缓冲区溢出的约束条件进行求解,判断当前的符号执行路径是否能够触发缓冲区溢出,并将已经求解的路径加入缓存中;
G.从步骤C重复执行,直到所有根据评分判断为可能缓冲区溢出的路径执行完毕,则认为符号执行结束,统计步骤E得到的缓冲区溢出漏洞路径并输出结果;
步骤C包括:对已经符号执行完成的路径的结果进行缓存,根据当前符号执行的跳转路径是否为已检测路径的子路径,以及该跳转路径和已缓存路径的相似度,结合已缓存路径的历史触发漏洞情况,对所有当前各跳转路径进行动态评分;
步骤D所述的调整待执行路径队列中待执行路径的执行顺序为:让更可能存在缓冲区溢出漏洞的路径优先执行,对评分低于设定阈值的路径认为其不具备缓冲区溢出的可能,将其从待执行路径队列中删除。
2.如权利要求1所述的基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法,其特征为:步骤F中,先将缓冲区溢出的约束条件添加到当前符号执行路径中得到新的约束条件集,然后对所述的约束条件集进行求解,判断当前的符号执行路径是否能够触发缓冲区溢出,并将已经求解的路径加入缓存中。
3.如权利要求1至2之一所述的基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法,其特征为:步骤B中,先对待测试的二进制程序进行逆向分析,获取其程序的类源码信息,再根据所述的类源码信息获取待测试的二进制程序的控制流图。
4.如权利要求3所述的基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法,其特征为:待测试的二进制程序通过二进制程序分析框架Angr进行读取解析,然后进行逆向分析。
5.如权利要求1至2之一所述的基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法,其特征为:在每次循环执行到步骤C时,动态更新有变动部分的评分。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都积微物联集团股份有限公司,未经成都积微物联集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910509701.0/1.html,转载请声明来源钻瓜专利网。