一种基于数据挖掘的软件成分分析系统技术方案

技术编号:39042489 阅读:16 留言:0更新日期:2023-10-10 11:55
本申请提供一种基于数据挖掘的软件成分分析系统,包括:静态构件分析模块,对软件组成进行静态分析检测,通过提取软件中包含的信息与特征,得到软件的组件分布信息;漏洞扫描模块,基于预设开源漏洞数据库,对所述软件的组件分布信息进行漏洞扫描和匹配;开源代码许可证分析模块,用于检测分析软件中的开源代码许可证,以获取所述软件的许可证信息;快速部署模块,基于虚拟化部署、分布式部署、镜像部署,通过多个API接口与外部系统进行无缝衔接。本申请识别高效、准确:扫描速度快、效率高。支持代码组件、代码文件、代码片段级别的扫描和匹配,保障识别精准;覆盖范围广泛,能够同时进行软件成分构成、分析开源代码许可证、安全漏洞等分析。等分析。等分析。

【技术实现步骤摘要】
一种基于数据挖掘的软件成分分析系统


[0001]本申请涉及软件分析
,尤其涉及一种基于数据挖掘的软件成分分析系统。

技术介绍

[0002]软件成分分析系统是一种可以识别出项目中所使用的第三方组件的产品。目前的软件成分分析系统,主要是通过组件依赖管理文件解析、二进制字符串特征比对、文件元数据特征比对等方式实现的第三方组件的识别。
[0003]目前采用文件元数据特征比对的方式识别第三方组件时,往往仅考虑单一维度的文件元数据特性,例如仅考虑项目级的文件元数据,或者仅考虑单文件的文件元数据,这就导致对第三方组件的检出率不足。

技术实现思路

[0004]有鉴于此,本申请的目的在于提出一种基于数据挖掘的软件成分分析系统,本申请能够针对性的解决现有的问题。
[0005]基于上述目的,本申请还提出了一种基于数据挖掘的软件成分分析系统,包括:
[0006]静态构件分析模块,对软件组成进行静态分析检测,通过提取软件中包含的信息与特征,得到软件的组件分布信息;
[0007]漏洞扫描模块,基于预设开源漏洞数据库,对所述软件的组件分布信息进行漏洞扫描和匹配;
[0008]开源代码许可证分析模块,用于检测分析软件中的开源代码许可证,以获取所述软件的许可证信息;
[0009]快速部署模块,基于虚拟化部署、分布式部署、镜像部署,通过多个API接口与外部系统进行无缝衔接。
[0010]进一步地,所述静态构件分析模块,包括:
[0011]执行二进制软件组件的二进制静态分析以确定二进制软件组件的一个或多个安全特性;
[0012]为二进制软件组件生成安全清单,包括已确定的二进制软件组件的一个或多个安全特性;
[0013]将所述安全清单确定为软件的组件分布信息。
[0014]进一步地,所述一个或多个安全特性是一个或多个编译器防御特性,指示由用于构建二进制软件组件的编译器采用的一种或多种防御技术,所述防御技术为地址空间布局随机化(ASLR)或堆栈cookie;或者,所述一个或多个安全特性是一个或多个常见漏洞暴露(CVE),表示二进制软件组件中存在的已知安全漏洞;或者,所述一个或多个安全特性是由二进制软件组件使用的一个或多个不安全的应用程序编程接口(API)。
[0015]进一步地,所述漏洞扫描模块,包括:
[0016]识别软件项目中使用的开源组件;
[0017]对于每个确定的开源组件,生成图数据库查询,该图数据库查询指示开源组件的标识并指示开源组件的版本;
[0018]将图数据库查询提交给开源组件漏洞的图形数据库,对所述软件的组件分布信息进行漏洞扫描和匹配,所述图形数据库为预设开源漏洞数据库;
[0019]使用所述图数据库查询的结果为软件项目生成漏洞报告。
[0020]进一步地,所述生成图数据库查询包括根据图形数据库的模式生成图数据库查询,该模式指示的图形结构包括:表示漏洞源的第一顶点、表示漏洞的第二顶点、表示软件组件版本或版本范围的第三顶点,所述顶点之间的边表示顶点之间的关系类型。
[0021]进一步地,所述开源代码许可证分析模块,包括:
[0022]获取开源代码和与开源代码关联的第一许可证信息,所述第一许可证信息包括每个许可的分类,所述许可的分类基于许可的属性,其中所述分类定义至少一个与每一类许可证相关的条款;
[0023]接收要针对至少一个术语或条件进行分析的输入软件代码;
[0024]解析输入软件代码以确定输入软件代码是否匹配所述开源代码;
[0025]确定与开源代码匹配的输入软件代码相关联的第二许可证以确定第二许可证的分类,
[0026]生成包含输入软件代码分类的输出报告。
[0027]进一步地,所述第二许可证的分类包括:
[0028]第一类,不要求衍生作品使用与其派生的原始代码相同的开源许可证;
[0029]第二类,包含源自原始代码的衍生作品必须使用相同的许可,但是不包含原始代码的文件可以任何方式获得许可;
[0030]第三类,任何与原始代码结合的文件都必须在与原始代码相同的许可下获得许可。
[0031]进一步地,所述快速部署模块,包括:
[0032]虚拟化部署单元,将所述安全清单、漏洞报告、包含输入软件代码分类的输出报告部署在服务器上,该服务器被配置为识别正在开发的包括源代码的目标应用程序的潜在错误;
[0033]分布式部署单元,在解决方案模板存储库中搜索与所述安全清单、漏洞报告、包含输入软件代码分类的输出报告相匹配的解决方案模板,找到匹配的解决方案模板:根据所述匹配的解决方案模板创建修改后的源文件,其中修改后的源文件包括软件缺陷缓解;根据修改后的源文件创建更新的软件分发;将更新的软件分发部署到多个电子计算设备;
[0034]镜像部署单元,根据所述安全清单、漏洞报告、包含输入软件代码分类的输出报告创建服务器的标记语言(yaml)文件;制作服务器的基础镜像;将软件成分检测的客户端集成至服务器的基础镜像中;将所述服务器部署至预设容器化应用中管理;触发服务器构建软件成分检测任务。
[0035]总的来说,本申请的优势及给用户带来的体验在于:
[0036]1、识别高效、准确:扫描速度快、效率高。支持代码组件、代码文件、代码片段级别的扫描和匹配,拥有完善的已知开源漏洞数据库,保障识别精准;
[0037]2、覆盖范围广泛:能够同时进行软件成分构成、分析开源代码许可证(License)、安全漏洞等分析;
[0038]3、快速部署能力:丰富的API接口,能够与其他系统进行无缝衔接。简单易用,提供多种落地使用方式,实现快速部署;
[0039]4、专业服务支持:不断跟踪开源组件中的安全漏洞、许可证和软件错误保障应用安全,提供完善的技术支持服务。
附图说明
[0040]在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本申请公开的一些实施方式,而不应将其视为是对本申请范围的限制。
[0041]图1示出根据本申请实施例的基于数据挖掘的软件成分分析系统的构成图。
[0042]图2示出根据本申请实施例的静态构件分析模块的具体实现方法示意图。
[0043]图3示出根据本申请实施例的漏洞扫描模块的具体实现方法示意图。
[0044]图4示出根据本申请实施例的开源代码许可证分析模块的具体实现方法示意图。
[0045]图5示出了本申请一实施例所提供的一种电子设备的结构示意图。
[0046]图6示出了本申请一实施例所提供的一种存储介质的示意图。
具体实施方式
[0047]下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释相关专利技术,而非对该专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于数据挖掘的软件成分分析系统,其特征在于,包括:静态构件分析模块,对软件组成进行静态分析检测,通过提取软件中包含的信息与特征,得到软件的组件分布信息;漏洞扫描模块,基于预设开源漏洞数据库,对所述软件的组件分布信息进行漏洞扫描和匹配;开源代码许可证分析模块,用于检测分析软件中的开源代码许可证,以获取所述软件的许可证信息;快速部署模块,基于虚拟化部署、分布式部署、镜像部署,通过多个API接口与外部系统进行无缝衔接。2.根据权利要求1所述的系统,其特征在于,所述静态构件分析模块,包括:执行二进制软件组件的二进制静态分析以确定二进制软件组件的一个或多个安全特性;为二进制软件组件生成安全清单,包括已确定的二进制软件组件的一个或多个安全特性;将所述安全清单确定为软件的组件分布信息。3.根据权利要求2所述的系统,其特征在于,所述一个或多个安全特性是一个或多个编译器防御特性,指示由用于构建二进制软件组件的编译器采用的一种或多种防御技术,所述防御技术为地址空间布局随机化(ASLR)或堆栈cookie;或者,所述一个或多个安全特性是一个或多个常见漏洞暴露(CVE),表示二进制软件组件中存在的已知安全漏洞;或者,所述一个或多个安全特性是由二进制软件组件使用的一个或多个不安全的应用程序编程接口(API)。4.根据权利要求3所述的系统,其特征在于,所述漏洞扫描模块,包括:识别软件项目中使用的开源组件;对于每个确定的开源组件,生成图数据库查询,该图数据库查询指示开源组件的标识并指示开源组件的版本;将图数据库查询提交给开源组件漏洞的图形数据库,对所述软件的组件分布信息进行漏洞扫描和匹配,所述图形数据库为预设开源漏洞数据库;使用所述图数据库查询的结果为软件项目生成漏洞报告。5.根据权利要求4所述的系统,其特征在于,所述生成图数据库查询包括根据图形数据库的模式生成图数据库查询,该模式指示的图形结构包括:表示漏洞源的第一顶点、表示漏洞的第二顶点、表示软件组件版本或版本范围的第三顶点,所述顶点之间的边表示顶点之间的关系类型。6.根据权利要求5所述的系统,其特征在于,所述开源代码许可证分析模块,包括:获取开源代码和与开...

【专利技术属性】
技术研发人员:温胤鑫黄永军谢耘
申请(专利权)人:北京东方通网信科技有限公司
类型:发明
国别省市:

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

1