[发明专利]一种代码漏洞检测方法、装置、介质及设备有效
申请号: | 201810317123.6 | 申请日: | 2018-04-10 |
公开(公告)号: | CN110363004B | 公开(公告)日: | 2023-01-03 |
发明(设计)人: | 王凯 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F21/56 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 黄志华;李娟 |
地址: | 518044 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 漏洞 检测 方法 装置 介质 设备 | ||
1.一种代码漏洞检测方法,其特征在于,包括:
获取待检测程序代码以及预设污点数据规则,所述预设污点数据规则用于识别线程的代码中针对释放后重用漏洞的污点数据;
提取所述待检测程序代码中的线程;
针对提取的每个线程,生成该线程的数据流图;
根据所述预设污点数据规则以及该线程的数据流图,确定该线程的代码中的污点数据;
将提取的各个线程的代码中的污点数据保存至污点数据集合;
判断提取的各个线程中是否包括多个线程对所述污点数据集合中的同一污点数据进行了指定操作;
若是,确定所述待检测程序代码中存在线程间释放后重用漏洞。
2.根据权利要求1所述的方法,其特征在于,将各个线程的代码中的污点数据保存至污点数据集合,具体包括:
提取各个线程的代码中未设置互斥机制的污点数据;
对各个线程的代码中未设置互斥机制的污点数据进行去重处理,将各个线程的代码中互不重复且未设置互斥机制的污点数据保存至所述污点数据集合。
3.根据权利要求1所述的方法,其特征在于,生成该线程的数据流图,具体包括:
将该线程的入口函数作为起始函数,生成该线程的函数调用图;
根据所述函数调用图,生成该线程的函数间控制流图;
根据所述函数间控制流图,生成该线程的函数间数据流图。
4.根据权利要求1所述的方法,其特征在于,还包括:
若所述待检测程序代码中仅包括一个线程对该污点数据进行指定操作,则确定所述待检测程序代码中存在线程内释放后重用漏洞。
5.根据权利要求1~4任一所述的方法,其特征在于,所述确定该线程的代码中的污点数据,具体包括:
将该线程的代码中已释放的数据确定为源污点数据;
遍历该线程的代码中将所述源污点数据传递给线程间共享数据的语句,并将遍历到的语句作为污点陷入点;
判断该线程的数据流图中是否包括从所述源污点数据到所述污点陷入点的数据流;
若是,确定所述源污点数据以及所述线程间共享数据为该线程的代码中的污点数据。
6.根据权利要求5所述的方法,其特征在于,所述污点数据为已释放的内存的指针,则判断提取的各个线程中是否包括多个线程对所述污点数据集合中的同一污点数据进行了指定操作,具体包括:
获取从所述待检测程序代码提取的各个线程中,利用该已释放的内存的指针对该已释放的内存进行了读或写操作的线程,作为该已释放的内存的指针的操作线程;
判断是否存在多个该已释放的内存的指针的操作线程。
7.根据权利要求1~4任一所述的方法,其特征在于,所述污点数据为已释放的内存的指针,则判断提取的各个线程中是否包括多个线程对所述污点数据集合中的同一污点数据进行了指定操作,具体包括:
获取从所述待检测程序代码提取的各个线程中,利用该已释放的内存的指针对该已释放的内存进行了读或写操作的线程,作为该已释放的内存的指针的操作线程;
判断是否存在多个该已释放的内存的指针的操作线程。
8.一种代码漏洞检测装置,其特征在于,包括:
获取模块,用于获取待检测程序代码以及预设污点数据规则,所述预设污点数据规则用于识别线程的代码中针对释放后重用漏洞的污点数据;
提取模块,用于提取所述待检测程序代码中的线程;
生成模块,用于针对提取的每个线程,生成该线程的数据流图;
第一确定模块,用于根据所述预设污点数据规则以及该线程的数据流图,确定该线程的代码中的污点数据;
保存模块,用于将提取的各个线程的代码中的污点数据保存至污点数据集合;
判断模块,用于判断提取的各个线程中是否包括多个线程对所述污点数据集合中的同一污点数据进行了指定操作;
第二确定模块,用于在所述判断模块判断是的情况下,确定所述待检测程序代码中存在线程间释放后重用漏洞。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810317123.6/1.html,转载请声明来源钻瓜专利网。