Double Free漏洞检测方法、终端及存储介质技术

技术编号:26066167 阅读:16 留言:0更新日期:2020-10-28 16:39
本发明专利技术所提供的Double Free漏洞检测方法、终端及存储介质,其中,所述方法包括:获取待检测的程序,对待检测的程序进行函数分析,识别出对应的函数;获取所识别函数,根据所识别函数生成用于为待检测的程序分配存储空间的func_addr对象;判断是否存在与func_addr对象所分配存储空间重复的内存地址;若存在,存在Double Free漏洞,反馈检测结果。本发明专利技术通过判断存在与func_addr对象所分配存储空间重复的内存地址时,说明有Double Free漏洞,则提示存在Double Free漏洞的信息给用户,保证程序运行的安全性,保障用户权益。

【技术实现步骤摘要】
DoubleFree漏洞检测方法、终端及存储介质
本专利技术涉及DoubleFree漏洞检测
,尤其涉及的是DoubleFree漏洞检测方法、终端及存储介质。
技术介绍
DoubleFree漏洞指同一个指针free两次,只要是free一个指向堆内存的指针都有可能产生可以利用的漏洞。攻击者通过unlink这个双向链表删除的宏来利用,通过自己来伪造整个chunk并且欺骗操作系统,从而达到运行攻击者的病毒代码,进而窃取用户信息或者阻止程序正常运行,造成用户的信息泄露或者信息篡改,给用户带来损失,侵害用户权益。因此,现有技术存在缺陷,有待改进与发展。
技术实现思路
本专利技术要解决的技术问题在于,针对现有技术的上述缺陷,提供DoubleFree漏洞检测方法、终端及存储介质,旨在解决现有技术中的同一套基于Android开发的软件系统搭载不同芯片方案时,设计复杂,迭代维护性差的问题。本专利技术解决技术问题所采用的技术方案如下:DoubleFree漏洞检测方法,其中,包括:获取待检测的程序,对待检测的程序进行函数分析,识别出对应的函数;获取所识别函数,根据所识别函数生成用于为待检测的程序分配存储空间的func_addr对象;判断是否存在与func_addr对象所分配存储空间重复的内存地址;若存在,存在DoubleFree漏洞,反馈检测结果。进一步地,所述获取待检测的程序,对待检测的程序进行函数分析,具体包括:使用angr加载待检测的程序,并初始化待检测的程序;对初始化的待检测程序进行分析,生成cfg对象。进一步地,对初始化的待检测程序进行分析,其中,使用CFGFast对初始化的待检测程序进行分析,识别初始化的待检测程序所对应的函数。进一步地,对初始化的待检测程序进行分析,生成cfg对象,之后包括:获取与cfg对象对应的malloc函数的函数信息,生成func_addr对象。进一步地,获取与cfg对象对应的malloc函数的函数信息,生成func_addr对象,具体包括:使用cfg.get_any_node获取与cfg对象对应的malloc函数地址;通过.predecessors属性访问所获取malloc函数的函数信息;获取malloc函数的调用函数地址,生成func_addr对象。进一步地,获取与cfg对象对应的malloc函数的函数信息,生成func_addr对象,之后包括:对所获取的malloc函数和与malloc函数对应的free函数分别执行hook操作;检测是否存在重复申请的malloc函数内存地址;若重复,存在DoubleFree漏洞,反馈检测结果。进一步地,对所获取的malloc函数和与malloc函数对应的free函数分别执行hook操作,之后包括:调用hook函数对所获取的malloc函数进行处理;Malloc函数遍历func_addr对象对应的用于记录空闲地址内存的链表,为func_addr对象分配存储空间,保存所申请的存储空间的内存地址;Free函数释放malloc函数分配的存储空间,检测是否有两个重复的内存地址。进一步地,检测是否存在重复申请的malloc函数内存地址,之后还包括:若不存在,使用explore接口从func_addr对象所在函数的首地址进行分析。本专利技术还公开一种终端,其中,包括处理器,以及与所述处理器连接的存储器,所述存储器存储有DoubleFree漏洞检测方法的配置程序,所述DoubleFree漏洞检测方法的配置程序被所述处理器执行时实现如上所述的DoubleFree漏洞检测方法。本专利技术还公开一种存储介质,其中,所述存储介质存储有计算机程序,所述计算机程序能够被执行以用于实现如上所述的DoubleFree漏洞检测方法。本专利技术所提供的DoubleFree漏洞检测方法、终端及存储介质,其中,所述方法包括:获取待检测的程序,对待检测的程序进行函数分析,识别出对应的函数;获取所识别函数,根据所识别函数生成用于为待检测的程序分配存储空间的func_addr对象;判断是否存在与func_addr对象所分配存储空间重复的内存地址;若存在,存在DoubleFree漏洞,反馈检测结果。本专利技术通过对待检测的程序进行函数分析,根据识别出的函数生成func_addr对象,进而通过func_addr对象为待检测的程序分配存储空间,通过判断所分配的存储空间的内存地址是否重复,进而判断是否存在DoubleFree漏洞,当存在重复的内存地址时,说明有DoubleFree漏洞,则提示存在DoubleFree漏洞的信息给用户,保证程序运行的安全性,保障用户权益。附图说明图1是本专利技术中DoubleFree漏洞检测方法的较佳实施例的流程图。图2是本专利技术中图1具体实施例的流程图。图3是本专利技术中终端的较佳实施例的功能原理框图。具体实施方式为使本专利技术的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本专利技术进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。请参见图1,图1是本专利技术中DoubleFree漏洞检测方法的流程图。如图1所示,本专利技术实施例所述的DoubleFree漏洞检测方法包括以下步骤:S100、获取待检测的程序,对待检测的程序进行分析,识别出对应的函数。在一具体实施例中,如图2所示,所述步骤S100中:加载待检测的程序,对待检测的程序进行分析具体包括:S110、使用angr加载待检测的程序,并初始化待检测的程序。Angr包含分析以恢复二进制程序的控制流程图,还包括功能边界的恢复,以及有关间接跳转和其他有用原数据的推理。具体地,使用angr.Project接口加载待检测的程序,通过angr将待检测的程序对应的二进制文件加载到project中,对加载的二进制文件进行分析,生成proj对象(即projiect对象,表示程序的一个已初始化映像)。S120、对初始化的待检测程序进行分析,生成cfg对象。其中,对初始化的待检测程序进行分析,具体包括:使用CFGFast对初始化的待检测程序进行分析,识别初始化的待检测程序所对应的函数。Project中定义了许多的analyses,其中,包括proj.analyses.CFGFast。在anger中包括两种类型的CFG:静态CFG(CFGFast)和动态CFG(cfgem);CFGFast用于在二进制文件中识别函数,并创建控制流图,使用静态分析来生成cfg对象。具体地,使用proj.analyses.CFGFast接口加载生成的cfg对象,对cfg对象作进一步分析,即对cfg对象对应的二进制文件进行进一步分析,采用较完整的静态分析CFGFast(分析依赖关系、程序分块)。其中,C本文档来自技高网...

【技术保护点】
1.Double Free漏洞检测方法,其特征在于,包括:/n获取待检测的程序,对待检测的程序进行函数分析,识别出对应的函数;/n获取所识别函数,根据所识别函数生成用于为待检测的程序分配存储空间的func_addr对象;/n判断是否存在与func_addr对象所分配存储空间重复的内存地址;/n若存在,存在Double Free漏洞,反馈检测结果。/n

【技术特征摘要】
1.DoubleFree漏洞检测方法,其特征在于,包括:
获取待检测的程序,对待检测的程序进行函数分析,识别出对应的函数;
获取所识别函数,根据所识别函数生成用于为待检测的程序分配存储空间的func_addr对象;
判断是否存在与func_addr对象所分配存储空间重复的内存地址;
若存在,存在DoubleFree漏洞,反馈检测结果。


2.根据权利要求1所述的DoubleFree漏洞检测方法,其特征在于,所述获取待检测的程序,对待检测的程序进行函数分析,具体包括:
使用angr加载待检测的程序,并初始化待检测的程序;
对初始化的待检测程序进行分析,生成cfg对象。


3.根据权利要求2所述的DoubleFree漏洞检测方法,其特征在于,对初始化的待检测程序进行分析,其中,使用CFGFast对初始化的待检测程序进行分析,识别初始化的待检测程序所对应的函数。


4.根据权利要求2所述的DoubleFree漏洞检测方法,其特征在于,对初始化的待检测程序进行分析,生成cfg对象,之后包括:
获取与cfg对象对应的malloc函数的函数信息,生成func_addr对象。


5.根据权利要求4所述的DoubleFree漏洞检测方法,其特征在于,获取与cfg对象对应的malloc函数的函数信息,生成func_addr对象,具体包括:
使用cfg.get_any_node获取与cfg对象对应的malloc函数地址;
通过.predecessors属性访问所获取malloc函数的函数信息;
获取malloc函数的调用函数地址,生成func_addr对象。


6.根据权利要求4所...

【专利技术属性】
技术研发人员:余少高
申请(专利权)人:北京智游网安科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1