基于上下文语义和补丁验证的漏洞代码克隆检测方法技术

技术编号:28060235 阅读:58 留言:0更新日期:2021-04-14 13:37
本发明专利技术公开了一种基于上下文语义和补丁验证的漏洞代码克隆检测方法,解决了现有漏洞代码克隆检测方法无法获取漏洞上下文及补丁修补的问题。实现步骤是:获取漏洞数据;对漏洞脆弱代码控制语句标记;对漏洞源代码和补丁进行抽象规范化预处理;构建漏洞函数和漏洞脆弱代码指纹库;对待检测代码克隆检测;检测结果判定及检测输出,完成软件的漏洞克隆检测。本发明专利技术基于代码指纹,避免了高级别抽象技术准确率低的问题;本发明专利技术对代码抽象预处理操作消除了重命名对检测准确率的影响;对上下文关系和补丁验证,降低误报率;对待检测代码做脆弱代码、控制语句及补丁检测,应用场景更广,降低漏报率。用于对软件中因代码克隆引起的漏洞的检测。测。测。

【技术实现步骤摘要】
基于上下文语义和补丁验证的漏洞代码克隆检测方法


[0001]本专利技术属于计算机
,特别涉及软件漏洞检测,具体是一种基于上下文语义和补丁验证的漏洞代码克隆检测方法,用于面向源代码的漏洞克隆检测。

技术介绍

[0002]随着科学技术的不断发展,软件的应用越来越广泛,软件规模也越来越大,各行各业对软件的需求也越来越多。同时也存在攻击者可以利用软件中存在的漏洞侵入其中,从而造成大量安全事故。开源软件(OSS)程序的数量以高速增长,OSS程序数量的大量增加自然导致了代码克隆引起的软件漏洞的增加,对软件系统的安全构成了严重的威胁,例如,OpenSSL的Heartbleed漏洞(CVE

2014

0160)已经影响了几种类型的系统(包括网站、web服务器、操作系统发行版和软件应用程序)。被广泛使用的开源加密工具OpenSSL在2016年3月暴露出的“水牢漏洞”导致全球三分之二的网站信息安全遭到严重威胁,我国有超过十万家网站受到影响
[0003]脆弱代码是指导致软件漏洞产生的关键代码,代码克隆是指复制和粘本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于上下文语义和补丁验证的漏洞代码克隆检测方法,其特征在于,包含有如下步骤:步骤1)获取数据:选定用于构建指纹的一个漏洞,从公开漏洞数据库中获取该漏洞信息,获取该漏洞源代码和补丁;步骤2)对漏洞脆弱代码对应控制语句标记:使用开源图生成工具Joern将漏洞源代码转换为代码属性图,从中找到脆弱代码对应的控制语句并标记;步骤3)对漏洞源代码和补丁进行具有针对重命名克隆的抽象规范化预处理:对漏洞源代码中漏洞函数、脆弱代码、对应控制语句及补丁进行规范化和针对重命名克隆的别名替换抽象,完成预处理,得到漏洞函数、脆弱代码、对应控制语句及补丁的规范化中间表示;步骤4)构建漏洞函数和漏洞脆弱代码指纹库:将预处理后脆弱代码的漏洞函数利用哈希函数生成漏洞函数的指纹并保存在漏洞函数指纹库中;对预处理后的脆弱代码、对应控制语句和补丁分别利用哈希函数生成指纹保存在漏洞脆弱代码指纹库中,将漏洞脆弱代码指纹库中的指纹与漏洞函数指纹库中的漏洞函数指纹对应关联,共同完成一个漏洞的指纹生成;获取可知范围内其他漏洞源代码和补丁,实现漏洞的指纹生成,完成漏洞函数和漏洞脆弱代码指纹库的构建;步骤5)通过构建的指纹库对待检测代码克隆检测:首先假设待检测代码所克隆的漏洞包含于构建的漏洞函数和漏洞脆弱代码指纹库中;再对待检测代码进行具有针对克隆重命名的抽象规范化预处理操作,再利用哈希函数对待检测代码生成函数级和行级指纹,进而通过对漏洞函数、脆弱代码、对应控制语句及补丁的指纹匹配检测实现对待检测代码的克隆检测并记录检测结果;步骤6)检测结果判定及检测输出:判定完成漏洞函数、脆弱代码、对应控制语句和补丁的克隆检测的检测结果是否满足判定条件,若满足判定条件,则待检测代码为脆弱性代码克隆并进行输出;判定条件是需满足条件1或条件2中的一个即可,其中,条件1和条件2表达如下:条件1:待检测代码在漏洞函数指纹库中检测到有对应的漏洞函数指纹;条件2:待检测代码能够完整检测到脆弱代码及对应控制语句且补丁代码没有检测到。2.根据权利要求1所述的基于漏洞指纹的流分析代码克隆检测方法,其特征在于,步骤3中所述的对漏洞源代码和补丁进行具有针对重命名克隆的抽象规范化预处理,包含:对代码中的参数名称、局部变量、数据类型及函数调用名分别做统一替换;从函数头的参数中收集形式参数,并用符号FPARAM替换体中出现的每次参数变量;用符号LVAR替换代码中出现的所有局部变量;用符号DTYPE替换数据类型;数据类型不仅包括标准的C数据类型和限定符,还包括定义的类型;用符号FUNCCALL替换每个被调用函数的名称。3.根据权利要求1所述的基于漏洞指纹的流分析代码克隆检测方法,其特征在于,步骤4中所述的构建...

【专利技术属性】
技术研发人员:郭军军李浩南王正源
申请(专利权)人:西安工业大学
类型:发明
国别省市:

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

1