基于补丁比对和污点分析的漏洞检测方法、设备及介质技术

技术编号:32567733 阅读:20 留言:0更新日期:2022-03-09 16:53
本发明专利技术公开了一种基于补丁比对和污点分析的漏洞检测方法、设备及介质,其中漏洞检测方法包括:漏洞代码片段获取:获取与漏洞类型相关的漏洞补丁信息,通过对漏洞补丁文件进行分析获取漏洞代码片段;污点分析:对漏洞代码片段进行污点分析确定污点数据的来源source点和漏洞触发位置的sink点,并对从source点到sink点的污点路径进行污点传播分析,生成相应的漏洞规则,并加入到漏洞规则库中;漏洞检测:利用漏洞规则库中的漏洞规则,对目标代码项目编译后的代码工程进行扫描,匹配到与其类型相匹配的漏洞,并输出漏洞代码位置和路径。本发明专利技术可自动判断并定位目标软件代码中的漏洞,极大减少漏洞检测中的人工介入。大减少漏洞检测中的人工介入。大减少漏洞检测中的人工介入。

【技术实现步骤摘要】
基于补丁比对和污点分析的漏洞检测方法、设备及介质


[0001]本专利技术涉及漏洞检测
,尤其涉及一种基于补丁比对和污点分析的漏洞检测方法、设备及介质。

技术介绍

[0002]软件漏洞是存在于系统或者应用软件中,可导致攻击者在未授权情况下访问或破坏系统的安全缺陷。软件漏洞形成的原因具有多样性,包括开发人员疏忽及水平受限、编译器安全缺陷、程序功能逻辑复杂、程序测试不充分等因素。新的信息环境下,软件规模越来越大,软件复杂度越来越高,涉及代码规模、功能组成、多线程并发、数据资源共享等复杂机制。
[0003]同时,现有的一些针对软件源代码的漏洞检测工具往往具有较高的误报率和漏报率。即使是经验丰富的安全分析员也需要耗费大量的时间去确认每一个漏洞相关信息,以致严重阻碍了软件源代码漏洞检测的效率。
[0004]手动漏洞分析方法主要存在人工经验依赖度强且难以满足软件规模需求等问题,尤其是随着软件规模的不断提升,该过程往往需要配合程序分析工具进行。而诸如抽象语法树(AST)、控制流图(CFG)、程序依赖图(PDG)等传统源代码分析工具的效果较为初级,直接用于表征漏洞模式效果不佳。随着程序分析技术的不断发展,尤其是污点分析技术不断成热,当前已有多个基于污点分析进行漏洞检测的研究及成果,如Avgerinos等提出的AEG,Shih

Kun Huang提出的CRAX、Shellphish提出的angr等。但这些方法都存在人工干预过多、误报率高、不能精确定位等问题。

技术实现思路

[0005]为了解决上述问题,本专利技术提出一种基于补丁比对和污点分析的漏洞检测方法、设备及介质,通过提取漏洞代码信息中污点数据的注入点(source)到关键的程序敏感点(sink)之间的数据流切片,将软件漏洞补丁信息和污点分析方法相结合生产漏洞规则,利用漏洞规则匹配检测出软件源代码中的漏洞点位。
[0006]本专利技术采用的技术方案如下:
[0007]一种基于补丁比对和污点分析的漏洞检测方法,包括:
[0008]漏洞代码片段获取:获取与漏洞类型相关的漏洞补丁信息,通过对漏洞补丁文件进行分析获取漏洞代码片段;
[0009]污点分析:对漏洞代码片段进行污点分析确定污点数据的来源source点和漏洞触发位置的sink点,并对从source点到sink点的污点路径进行污点传播分析,生成相应的漏洞规则,并加入到漏洞规则库中;
[0010]漏洞检测:利用漏洞规则库中的漏洞规则,对目标代码项目编译后的代码工程进行扫描,匹配到与其类型相匹配的漏洞,并输出漏洞代码位置和路径。
[0011]进一步地,针对公开漏洞库、代码仓库以及漏洞代码管理平台,分别采用不同的自
动化方法来采集漏洞补丁信息:
[0012]针对代码仓库,先后通过commit id分析、文本过滤筛选和命令行调用引擎获取漏洞补丁文件;
[0013]针对公开漏洞库,先后通过提取reference链接、url过滤筛选和爬虫引擎获取漏洞补丁文件;
[0014]针对漏洞代码管理平台,先后通过提取reference链接、url过滤筛选和爬虫引擎获取漏洞补丁文件,或直接通过爬虫引擎获取漏洞补丁文件。
[0015]进一步地,针对漏洞数据集中的某一种漏洞类型,对漏洞补丁文件进行分析,通过漏洞补丁diff文件中的commit id,基于命令行调用从对应软件的代码仓库中获取漏洞修补前/后代码,然后通过diff文件的+/

行,定位到漏洞修补前/后代码中的漏洞代码片段。
[0016]进一步地,漏洞补丁文件包括漏洞diff文件,即软件漏洞修复前后差异比对文件。
[0017]进一步地,代码仓库包括GitHub仓库和SVN仓库。
[0018]进一步地,漏洞代码管理平台包括BugZilla和Issues Report。
[0019]进一步地,污点分析包括以下步骤:
[0020]S201.选取漏洞类型;
[0021]S202.获取漏洞代码片段;
[0022]S203.确定漏洞source点相关变量与应用程序接口API;
[0023]S204.进行污点传播分析,判断source点是否依赖其他变量或条件,若是,则递归分析其他变量或条件,再执行步骤S203;否则,执行下一步;
[0024]S205.确定漏洞sink点相关API;
[0025]S206.判断是否分析完所有漏洞代码片段,若是,则生成当前漏洞类型的(source,sink)集合,结束;否则,重复执行步骤S202~S205。
[0026]进一步地,漏洞检测包括以下步骤:
[0027]S301.获取目标软件源代码;
[0028]S302.基于漏洞规则对目标软件源代码进行扫描;
[0029]S303.进行控制流分析,判断目标软件源代码中是否有与漏洞规则相匹配的漏洞,若是,则定位到具体的漏洞行和漏洞语句,执行下一步;否则,直接进行下一步;
[0030]S304.判断是否检测完所有源代码文件,若是,则结束;否则,分析下一个源代码文件,重复执行步骤S302~S303。
[0031]一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,述处理器执行所述计算机程序时实现上述基于补丁比对和污点分析的漏洞检测方法的步骤。
[0032]一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述基于补丁比对和污点分析的漏洞检测方法的步骤。
[0033]本专利技术的有益效果在于:
[0034]本专利技术以基于补丁比对和污点分析的源代码漏洞自动检测为驱动,综合利用公开漏洞信息库的信息进行查询推导分析,提取漏洞代码信息中污点数据的注入点(source)到关键的程序敏感点(sink)之间的数据流切片,将软件漏洞补丁信息和污点分析方法相结合生产漏洞规则,利用漏洞规则匹配检测出软件源代码中的漏洞点位。自动判断并定位目标
软件代码中疑似存在的诸如SQL注入、跨站脚本、恶意执行、隐私泄露等漏洞,可极大减少漏洞检测中的人工介入,达到提升目标软件漏洞检测效率的目的。有益效果具体包括:
[0035]1、本专利技术可以基于多源异构漏洞信息库获取的信息,自动得到漏洞补丁信息和漏洞代码片段。
[0036]2、本专利技术通过对漏洞补丁信息使用污点分析方法,完成漏洞代码片段的污点传播上下文分析,可自动生成漏洞规则(污点传播路径)。
[0037]3、本专利技术还可以根据自动生成的漏洞规则,对软件源代码进行检测,自动判断出代码中是否含有可疑漏洞,并明确漏洞代码位置,这样可以极大减少人工审查的工作量,提升整个漏洞检测过程的效率。
附图说明
[0038]图1是本专利技术实施例1的基于补丁比对和污点分析的漏洞检测方法的流程图。
[0039]图2是本专利技术实施例1的漏洞补丁信息获取流程图。
[0040]图3是本专利技术实施例1本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于补丁比对和污点分析的漏洞检测方法,其特征在于,包括:漏洞代码片段获取:获取与漏洞类型相关的漏洞补丁信息,通过对漏洞补丁文件进行分析获取漏洞代码片段;污点分析:对漏洞代码片段进行污点分析确定污点数据的来源source点和漏洞触发位置的sink点,并对从source点到sink点的污点路径进行污点传播分析,生成相应的漏洞规则,并加入到漏洞规则库中;漏洞检测:利用漏洞规则库中的漏洞规则,对目标代码项目编译后的代码工程进行扫描,匹配到与其类型相匹配的漏洞,并输出漏洞代码位置和路径。2.根据权利要求1所述的基于补丁比对和污点分析的漏洞检测方法,其特征在于,针对公开漏洞库、代码仓库以及漏洞代码管理平台,分别采用不同的自动化方法来采集漏洞补丁信息:针对代码仓库,先后通过commit id分析、文本过滤筛选和命令行调用引擎获取漏洞补丁文件;针对公开漏洞库,先后通过提取reference链接、url过滤筛选和爬虫引擎获取漏洞补丁文件;针对漏洞代码管理平台,先后通过提取reference链接、url过滤筛选和爬虫引擎获取漏洞补丁文件,或直接通过爬虫引擎获取漏洞补丁文件。3.根据权利要求2所述的基于补丁比对和污点分析的漏洞检测方法,其特征在于,针对漏洞数据集中的某一种漏洞类型,对漏洞补丁文件进行分析,通过漏洞补丁diff文件中的commit id,基于命令行调用从对应软件的代码仓库中获取漏洞修补前/后代码,然后通过diff文件的+/

行,定位到漏洞修补前/后代码中的漏洞代码片段。4.根据权利要求2所述的基于补丁比对和污点分析的漏洞检测方法,其特征在于,漏洞补丁文件包括漏洞diff文件,即软件漏洞修复前后差异比对文件。5.根据权利要求2所述的基于补丁比对和污点分析的漏洞检测方法,其特征在于,代码仓库包括GitHub...

【专利技术属性】
技术研发人员:刘杰饶志宏毛得明和达王一凡
申请(专利权)人:中国电子科技网络信息安全有限公司
类型:发明
国别省市:

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

1