基于静态扫描的漏洞检测方法、装置、设备及存储介质制造方法及图纸

技术编号:36605980 阅读:22 留言:0更新日期:2023-02-04 18:28
本申请涉及一种基于静态扫描的漏洞检测方法、装置、设备及存储介质。所述方法包括:通过对项目文件执行静态扫描,得到项目文件的开源组件的标识信息和开源组件的版本号信息,根据开源组件的标识信息,判断预设漏洞库中是否存在与所述标识信息对应的漏洞开源组件,当存在与所述标识信息对应的漏洞开源组件时,读取漏洞开源组件的版本号区间,根据开源组件的版本号信息与漏洞开源组件的版本号区间,检测所述开源组件是否为存在漏洞的开源组件。本申请通过对静态扫描可以避免动态编译时因编译错误导致扫描结果出错的问题,且由于静态扫描速度更快,可以快速检测出项目文件中存在漏洞的开源组件。开源组件。开源组件。

【技术实现步骤摘要】
基于静态扫描的漏洞检测方法、装置、设备及存储介质


[0001]本申请涉及计算机
,尤其涉及一种基于静态扫描的漏洞检测方法、装置、设备及存储介质。

技术介绍

[0002]目前,不同类型的应用程序均对应有项目源代码,应用程序中通常含有大量第三方开源组件供项目源代码调用,若第三方组件开源组件存在漏洞,会对应用程序的数据安全造成隐患,因此需要检测应用程序中的开源组件是否存在漏洞。现有技术中通常是对代码进行编译后对编译结果进行扫描以检测开源组件是否存在漏洞,但该方式扫描速度较慢,且由于可能出现编译错误导致扫描结果出错的问题。

技术实现思路

[0003]鉴于以上内容,本申请提供一种基于静态扫描的漏洞检测方法、装置、设备及存储介质,其目的在于解决上述技术问题。
[0004]第一方面,本申请提供一种基于静态扫描的漏洞检测方法,该方法包括:
[0005]获取待检测项目的项目文件;
[0006]对所述项目文件的代码进行扫描,判断所述项目文件中是否存在依赖文件,当存在依赖文件时,根据所述依赖文件的类型,读取所述依赖文件对应的开源组件的标识信息和开源组件的版本号信息;
[0007]根据所述开源组件的标识信息,判断预设漏洞库中是否存在与所述标识信息对应的漏洞开源组件;
[0008]当存在与所述标识信息对应的漏洞开源组件时,读取所述漏洞开源组件的版本号区间;
[0009]根据所述开源组件的版本号信息与所述漏洞开源组件的版本号区间,检测所述开源组件是否为存在漏洞的开源组件。r/>[0010]优选地,所述根据所述依赖文件的类型,读取所述依赖文件对应的开源组件的标识信息和开源组件的版本号信息,包括:
[0011]当所述依赖文件为直接依赖文件时,解析得到所述直接依赖文件中的开源组件的属性值;
[0012]对所述属性值执行替换操作后,定位所述直接依赖文件中开源组件所属的代码行号;
[0013]根据所述代码行号确定所述所述直接依赖文件中的开源组件的版本号信息。
[0014]优选地,所述根据所述依赖文件的类型,读取所述依赖文件对应的开源组件的标识信息和开源组件的版本号信息,包括:
[0015]当所述依赖文件为间接依赖文件时,利用预设编译工具获取所述间接依赖文件对应的开源组件的标识信息和开源组件的版本号信息。
[0016]优选地,在获取待检测项目的项目文件之后,所述方法还包括:
[0017]对所述项目文件的代码包进行扫描,得到所述代码包中开源组件的标识信息和开源组件的版本号信息。
[0018]优选地,所述对所述项目文件的代码包进行扫描,得到所述代码包中开源组件的标识信息和开源组件的版本号信息,包括:
[0019]对所述项目文件的代码包进行扫描,并判断扫描到的代码包的类型;
[0020]若所述代码包为zip类型的代码包,读取所述代码包的名称,基于所述名称得到所述代码包中开源组件的标识信息和开源组件的版本号信息;
[0021]若所述代码包为tar类型的代码包,解析lib目录下的文件得到所述代码包中开源组件的标识信息和开源组件的版本号信息。
[0022]优选地,所述根据所述开源组件的版本号信息与所述漏洞开源组件的版本号区间,检测所述开源组件是否为存在漏洞的开源组件,包括:
[0023]检测所述开源组件的版本号信息是否落入所述漏洞开源组件的版本号区间;
[0024]若是,判断所述开源组件为存在漏洞的开源组件;
[0025]若否,判断所述开源组件为不存在漏洞的开源组件。
[0026]优选地,所述获取待检测项目的项目文件,包括:
[0027]通过接口获取代码仓库的目录文件;
[0028]扫描所述目录文件,得到所述待检测项目中不同编译工具编译的项目文件。
[0029]第二方面,本申请提供一种基于静态扫描的漏洞检测装置,该基于静态扫描的漏洞检测装置包括:
[0030]获取模块:用于获取待检测项目的项目文件;
[0031]扫描模块:用于对所述项目文件的代码进行扫描,判断所述项目文件中是否存在依赖文件,当存在依赖文件时,根据所述依赖文件的类型,读取所述依赖文件对应的开源组件的标识信息和开源组件的版本号信息;
[0032]判断模块:用于根据所述开源组件的标识信息,判断预设漏洞库中是否存在与所述标识信息对应的漏洞开源组件;
[0033]读取模块:用于当存在与所述标识信息对应的漏洞开源组件时,读取所述漏洞开源组件的版本号区间;
[0034]检测模块:用于根据所述开源组件的版本号信息与所述漏洞开源组件的版本号区间,检测所述开源组件是否为存在漏洞的开源组件。
[0035]第三方面,本申请提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
[0036]存储器,用于存放计算机程序;
[0037]处理器,用于执行存储器上所存放的程序时,实现第一方面任一项实施例所述的基于静态扫描的漏洞检测方法的步骤。
[0038]第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项实施例所述的基于静态扫描的漏洞检测方法的步骤。
[0039]本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
[0040]通过对项目文件执行静态扫描,得到项目文件的开源组件的标识信息和开源组件的版本号信息,根据开源组件的标识信息,判断预设漏洞库中是否存在与所述标识信息对应的漏洞开源组件,当存在与所述标识信息对应的漏洞开源组件时,读取漏洞开源组件的版本号区间,根据开源组件的版本号信息与漏洞开源组件的版本号区间,可以检测扫描到的开源组件是否为存在漏洞的开源组件,通过对静态扫描可以避免动态编译时因编译错误导致扫描结果出错的问题,且由于静态扫描速度更快,可以快速检测出项目文件中存在漏洞的开源组件。
附图说明
[0041]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
[0042]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0043]图1为本申请基于静态扫描的漏洞检测方法较佳实施例的流程示意图;
[0044]图2为本申请基于静态扫描的漏洞检测装置较佳实施例的模块示意图;
[0045]图3为本申请电子设备较佳实施例的示意图;
[0046]本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0047]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于静态扫描的漏洞检测方法,其特征在于,所述方法包括:获取待检测项目的项目文件;对所述项目文件的代码进行扫描,判断所述项目文件中是否存在依赖文件,当存在依赖文件时,根据所述依赖文件的类型,读取所述依赖文件对应的开源组件的标识信息和开源组件的版本号信息;根据所述开源组件的标识信息,判断预设漏洞库中是否存在与所述标识信息对应的漏洞开源组件;当存在与所述标识信息对应的漏洞开源组件时,读取所述漏洞开源组件的版本号区间;根据所述开源组件的版本号信息与所述漏洞开源组件的版本号区间,检测所述开源组件是否为存在漏洞的开源组件。2.如权利要求1所述的基于静态扫描的漏洞检测方法,其特征在于,所述根据所述依赖文件的类型,读取所述依赖文件对应的开源组件的标识信息和开源组件的版本号信息,包括:当所述依赖文件为直接依赖文件时,解析得到所述直接依赖文件中的开源组件的属性值;对所述属性值执行替换操作后,定位所述直接依赖文件中开源组件所属的代码行号;根据所述代码行号确定所述所述直接依赖文件中的开源组件的版本号信息。3.如权利要求1所述的基于静态扫描的漏洞检测方法,其特征在于,所述根据所述依赖文件的类型,读取所述依赖文件对应的开源组件的标识信息和开源组件的版本号信息,包括:当所述依赖文件为间接依赖文件时,利用预设编译工具获取所述间接依赖文件对应的开源组件的标识信息和开源组件的版本号信息。4.如权利要求1所述的基于静态扫描的漏洞检测方法,其特征在于,在获取待检测项目的项目文件之后,所述方法还包括:对所述项目文件的代码包进行扫描,得到所述代码包中开源组件的标识信息和开源组件的版本号信息。5.如权利要求4所述的基于静态扫描的漏洞检测方法,其特征在于,所述对所述项目文件的代码包进行扫描,得到所述代码包中开源组件的标识信息和开源组件的版本号信息,包括:对所述项目文件的代码包进行扫描,并判断扫描到的代码包的类型;若所述代码包为zip类型的代码包,读取所述代码包的名称,基于所述名称得到所述代码包中开源组件的标识信息...

【专利技术属性】
技术研发人员:翁迟迟
申请(专利权)人:北京奇艺世纪科技有限公司
类型:发明
国别省市:

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

1