摘要
近年来,利用含有已知漏洞的函数作为准则,通过查找相似代码实现来检测未知漏洞的方法已被证明是有效的.但是,一个含有漏洞的函数通常也包含一些与已知漏洞无关的语句,严重影响相似度计算的结果,从而引发误报和漏报.提出了一种利用补丁来提高这种相似性检测准确性的漏洞发现方法.结合漏洞的补丁信息,引入程序切片技术去除原来含有漏洞的函数中与漏洞无关的语句,利用获得的切片生成去噪的漏洞特征来进行潜在未知漏洞检测.该方法已经在一些真实的代码集中实施,并且实验结果证明该方法确实能够有效减弱漏洞无关语句的干扰,达到提高检测准确性的目的.该方法还成功检测到了3个未知漏洞且已经得到确认.
In recent years, taking the known vulnerable function as the criteria to retrieve the similar implementation has been proven to be an effective vulnerabilities detection method. However, a vulnerable function often contains some statements that are irrelevant to the vulnerability of interest, which may heavily interfere with the similarity computation and lead to false positives and false negatives. This paper presents an approach to improve the precision of the retrieval-based vulnerabilities detection by leveraging the patch of the vulnerable function. The program slicing technique is adopted to exclude irrelevant statements from the original vulnerable function according to the patch. A denoised feature vector is generated from the obtained slice and is used to search the potential unknown vulnerabilities in the code base. This approach has been applied to some real-world projects. Experimental results show that the approach can effectively reduce the interference of irrelevant statements and improve the detection precision. Three confirmed unknown vulnerabilities are successfully detected from the projects.
作者
李赞
边攀
石文昌
梁彬
LI Zan, BIAN Pan, SHI Wen-Chang, LIANG Bin(School of Information, Renmin University of China, Beijing 100872, Chin)
出处
《软件学报》
EI
CSCD
北大核心
2018年第5期1199-1212,共14页
Journal of Software
基金
国家自然科学基金(91418206
61472429)~~
关键词
漏洞
补丁
切片
相似性
检测
vulnerability
patch
slicing
similarity
detection