【技术实现步骤摘要】
一种代码漏洞检测方法、装置、介质及设备
本申请涉及计算机
,尤其涉及一种代码漏洞检测方法、装置、介质及设备。
技术介绍
代码漏洞是在软件开发过程中进行程序代码编辑时有意或无意产生的代码缺陷。代码漏洞的存在会威胁开发出的软件的安全稳定运行。因此,需要对代码漏洞进行检测,以保证相应软件的稳定运行。代码漏洞可以包括单线程对应的代码中的释放后重用漏洞(以下简称线程内释放后重用漏洞)和多个线程之间的释放后重用漏洞(以下简称线程间释放后重用漏洞)等漏洞。其中,线程间释放后重用漏洞会导致内存信息的泄露、代码执行异常以及线程所在的软件崩溃等问题。因此,如何检测出程序代码中的线程间释放后重用漏洞是一个需要考虑的问题。
技术实现思路
本申请提供一种代码漏洞检测方法、装置、介质及设备,用于解决现有技术中存在的无法检测程序代码中多个线程之间的释放后重用漏洞的问题。一方面,本申请实施例提供一种代码漏洞检测方法,包括:获取待检测程序代码以及预设污点数据规则,所述预设污点数据规则用于识别线程的代码中针对释放后重用漏洞的污点数据;提取所述待检测程序代码中的线程;针对提取的每个线程,生成该线程的数据流图;根据所述预设污点数据规则以及该线程的数据流图,确定该线程的代码中的污点数据;将提取的各个线程的代码中的污点数据保存至污点数据集合;判断提取的各个线程中是否包括多个线程对所述污点数据集合中的同一污点数据进行了指定操作;若是,确定所述待检测程序代码中存在线程间释放后重用漏洞。利用本实施例,可确定该程序代码存在线程间释放后重用漏洞,从而结合静态代码分析技术以及释放后重用漏洞的污点数据规则,实现 ...
【技术保护点】
1.一种代码漏洞检测方法,其特征在于,包括:获取待检测程序代码以及预设污点数据规则,所述预设污点数据规则用于识别线程的代码中针对释放后重用漏洞的污点数据;提取所述待检测程序代码中的线程;针对提取的每个线程,生成该线程的数据流图;根据所述预设污点数据规则以及该线程的数据流图,确定该线程的代码中的污点数据;将提取的各个线程的代码中的污点数据保存至污点数据集合;判断提取的各个线程中是否包括多个线程对所述污点数据集合中的同一污点数据进行了指定操作;若是,确定所述待检测程序代码中存在线程间释放后重用漏洞。
【技术特征摘要】
1.一种代码漏洞检测方法,其特征在于,包括:获取待检测程序代码以及预设污点数据规则,所述预设污点数据规则用于识别线程的代码中针对释放后重用漏洞的污点数据;提取所述待检测程序代码中的线程;针对提取的每个线程,生成该线程的数据流图;根据所述预设污点数据规则以及该线程的数据流图,确定该线程的代码中的污点数据;将提取的各个线程的代码中的污点数据保存至污点数据集合;判断提取的各个线程中是否包括多个线程对所述污点数据集合中的同一污点数据进行了指定操作;若是,确定所述待检测程序代码中存在线程间释放后重用漏洞。2.根据权利要求1所述的方法,其特征在于,将各个线程的代码中的污点数据保存至污点数据集合,具体包括:提取各个线程的代码中未设置互斥机制的污点数据;将各个线程的代码中互不重复且未设置互斥机制的污点数据保存至所述污点数据集合。3.根据权利要求1所述的方法,其特征在于,生成该线程的数据流图,具体包括:将该线程的入口函数作为起始函数,生成该线程的函数调用图;根据所述函数调用图,生成该线程的函数间控制流图;根据所述函数间控制流图,生成该线程的函数间数据流图。4.根据权利要求1所述的方法,其特征在于,还包括:若所述待检测程序代码中仅包括一个线程对该污点数据进行指定操作,则确定所述待检测程序代码中存在线程内释放后重用漏洞。5.根据权利要求1~4任一所述的方法,其特征在于,所述确定该线程的代码中的污点数据,具体包括:将该线程的代码中已释放的数据确定为源污点数据;遍历该线程的代码中将所述源污点数据传递给线程间共享数据的语句,并将遍历到的语句作为污点陷入点;判断该线程的数据流图中是否包括从所述源污点数据到所述污点陷入点的数据流;若是,确定所述源污点数据以及所述线程间共享数据为该线程的代码中的污点数据。6.根据权利要求5所述的方法,其特征在于,所述污点数据为已释放的内存的指针,则判断提取的各个线程中是否包括多个线程对所述污点数据集合中的同一污点数据进行了指定操作,具体包括:获取从所述待检测程序代码提取的各个线程中,利用该已释放的内存的指针对该已释放的内存进行了读或写操作的线程,作为该已释放的内存的指针的操作线程;判断是否存在多个该已释放的内存的指针的操作线程。7.根据权利要求1~4任一所述的方法,其特征在于,所述污点数据为已释放的内存的指针,则判断提取的各个线程中是否包括多个线程对所述污点数据集合中的同一污点数据进行了指定操作,具体包括:获取从所述待检测程序代码提取的各个线程中,利用该已释放的内存的指针对该已释放的内存进行了读或写操作的...
【专利技术属性】
技术研发人员:王凯,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。