[发明专利]一种基于主动构造的离线堆溢出漏洞挖掘方法在审
| 申请号: | 201711266952.8 | 申请日: | 2017-12-05 |
| 公开(公告)号: | CN108073817A | 公开(公告)日: | 2018-05-25 |
| 发明(设计)人: | 贾相堃;苏璞睿;杨轶;黄桦烽;和亮;闫佳 | 申请(专利权)人: | 中国科学院软件研究所 |
| 主分类号: | G06F21/57 | 分类号: | G06F21/57 |
| 代理公司: | 北京君尚知识产权代理事务所(普通合伙) 11200 | 代理人: | 余功勋 |
| 地址: | 100190 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | 本发明提供一种基于主动构造的离线堆溢出漏洞挖掘方法,通过分析程序动态执行记录(即使未发生程序崩溃),对执行中涉及的堆分配和堆访问操作进行关联性分析,对于每一个堆分配‑访问对,分析其可控属性(是否受外部输入影响)和溢出条件,结合路径约束条件,求解是否存在能够触发潜在的堆溢出的输入,并构造漏洞样本(PoC文件)进行验证,从而挖掘潜在的堆溢出漏洞。对比于通用的堆溢出漏洞挖掘方法更具针对性,直接从堆溢出的本质(即存在堆分配和访问不一致的情况)出发,结合外部输入是否能够影响堆操作,挖掘潜在的堆溢出漏洞。同时能够直接指出堆溢出发生的位置(不同于崩溃位置),便于安全人员分析和开发者修复。 | ||
| 搜索关键词: | 溢出 漏洞挖掘 潜在的 主动构造 离线 漏洞 分配 崩溃 路径约束条件 关联性分析 动态执行 访问操作 分析程序 人员分析 溢出条件 不一致 通用的 挖掘 触发 求解 外部 可控 样本 访问 验证 修复 记录 分析 安全 开发 | ||
【主权项】:
1.一种基于主动构造的离线堆溢出漏洞挖掘方法,其步骤如下:在动态分析环境中执行目标程序,获取动态执行过程的指令记录;对指令记录进行扫描,寻找并跟踪堆分配函数,根据堆分配函数的参数,重构并维护程序运行过程时的堆状态;在扫描过程中,进行指针污点传播;当通过堆指针进行堆访问操作时,通过堆指针的污点信息回溯到相应的堆分配操作,建立堆分配-访问操作的关联;标记外部输入为污点源,进行数据污点传播;当发现堆分配操作或堆访问操作时,检测堆分配或堆访问操作的相关参数是否被数据污点标记,记录污点信息以及堆状态信息;对关联的每一个堆分配-访问操作,根据其数据污点状态和堆状态以及堆溢出的类型,构造潜在溢出条件;再次对指令记录进行扫描,提取从外部污点数据进入程序开始,到存在潜在溢出可能的堆分配-访问对的程序执行路径上的路径约束条件,结合堆溢出条件,形成该堆分配-访问对的最终溢出条件;求解最终溢出条件,如有解,则根据求解结果生成样本文件,再次运行程序并输入样本文件,用以验证堆溢出漏洞。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201711266952.8/,转载请声明来源钻瓜专利网。
- 上一篇:信息处理装置
- 下一篇:一种基于动态重定向的文档防护方法及系统





