[发明专利]一种代码漏洞检测方法、装置、介质及设备有效
申请号: | 201810317123.6 | 申请日: | 2018-04-10 |
公开(公告)号: | CN110363004B | 公开(公告)日: | 2023-01-03 |
发明(设计)人: | 王凯 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F21/56 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 黄志华;李娟 |
地址: | 518044 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 漏洞 检测 方法 装置 介质 设备 | ||
本发明属于计算机技术领域,提供一种代码漏洞检测方法、装置、介质及设备,本发明提供的技术方案中,获取待检测程序代码以及预设污点数据规则;提取待检测程序代码中的线程;针对提取的每个线程,生成该线程的数据流图;根据预设污点数据规则以及该线程的数据流图,确定该线程的代码中的污点数据;将提取的各个线程的代码中的污点数据保存至污点数据集合;判断提取的各个线程中是否包括多个线程对污点数据集合中的同一污点数据进行了指定操作;若是,确定待检测程序代码中存在线程间释放后重用漏洞。本发明结合静态代码分析技术以及释放后重用漏洞的污点数据规则,可以确定线程间释放后重用漏洞。
技术领域
本申请涉及计算机技术领域,尤其涉及一种代码漏洞检测方法、装置、介质及设备。
背景技术
代码漏洞是在软件开发过程中进行程序代码编辑时有意或无意产生的代码缺陷。代码漏洞的存在会威胁开发出的软件的安全稳定运行。因此,需要对代码漏洞进行检测,以保证相应软件的稳定运行。
代码漏洞可以包括单线程对应的代码中的释放后重用漏洞(以下简称线程内释放后重用漏洞)和多个线程之间的释放后重用漏洞(以下简称线程间释放后重用漏洞)等漏洞。其中,线程间释放后重用漏洞会导致内存信息的泄露、代码执行异常以及线程所在的软件崩溃等问题。因此,如何检测出程序代码中的线程间释放后重用漏洞是一个需要考虑的问题。
发明内容
本申请提供一种代码漏洞检测方法、装置、介质及设备,用于解决现有技术中存在的无法检测程序代码中多个线程之间的释放后重用漏洞的问题。
一方面,本申请实施例提供一种代码漏洞检测方法,包括:获取待检测程序代码以及预设污点数据规则,所述预设污点数据规则用于识别线程的代码中针对释放后重用漏洞的污点数据;提取所述待检测程序代码中的线程;针对提取的每个线程,生成该线程的数据流图;根据所述预设污点数据规则以及该线程的数据流图,确定该线程的代码中的污点数据;将提取的各个线程的代码中的污点数据保存至污点数据集合;判断提取的各个线程中是否包括多个线程对所述污点数据集合中的同一污点数据进行了指定操作;若是,确定所述待检测程序代码中存在线程间释放后重用漏洞。利用本实施例,可确定该程序代码存在线程间释放后重用漏洞,从而结合静态代码分析技术以及释放后重用漏洞的污点数据规则,实现了线程间释放后重用漏洞的确定。
另一方面,本申请实施例提供一种代码漏洞检测装置,包括:获取模块,用于获取待检测程序代码以及预设污点数据规则,所述预设污点数据规则用于识别线程的代码中针对释放后重用漏洞的污点数据;提取模块,用于提取所述待检测程序代码中的线程;生成模块,用于针对提取的每个线程,生成该线程的数据流图;第一确定模块,用于根据所述预设污点数据规则以及该线程的数据流图,确定该线程的代码中的污点数据;保存模块,用于将提取的各个线程的代码中的污点数据保存至污点数据集合;判断模块,用于判断提取的各个线程中是否包括多个线程对所述污点数据集合中的同一污点数据进行了指定操作;第二确定模块,用于在所述判断模块判断是的情况下,确定所述待检测程序代码中存在线程间释放后重用漏洞。
再一方面,本申请实施例提供一种非易失性计算机存储介质,所述计算机存储介质存储有可执行程序,该可执行程序被处理器执行实现上述实施例提供的任一代码漏洞检测方法的步骤。
又一方面,本申请实施例提供一种计算机设备,其特征在于,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述程序时实现上述实施例提供的任一代码漏洞检测方法的步骤。
本申请实施例提供的代码漏洞检测方法、装置、介质及设备,生成待检测程序代码中每个线程的数据流图,并根据该数据流图和预先设定的污点数据规则,确定相应线程中针对释放后重用漏洞的污点数据以及将待检测程度代码的各个线程中的污点数据保存至污点数据集合,若待检测程序代码中包括多个线程对污点数据集合中的同一污点数据进行了指定的操作,则确定该待检测程序代码中存在线程间释放后重用漏洞,从而结合静态代码分析技术以及预设的污点数据规则,实现了线程间释放后重用漏洞的检测。。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810317123.6/2.html,转载请声明来源钻瓜专利网。