一种针对多软件组件成分扫描工具的数据融合方法及系统与流程
未命名
10-19
阅读:66
评论:0
1.本发明涉及软件安全技术领域,尤其涉及一种针对多软件组件成分扫描工具的数据融合方法及系统。
背景技术:
2.企业开发的应用开源代码占到了应用程序代码很大一部分。实际上应用程序是由不同的组件组成,企业需要保证所有的组件成分都是安全的,这样才能够有效地管理和降低风险。为了解决传统安全扫描工具所面临的问题,现有一些扫描工具可以配置多种软件组件的成分分析方式,例如静态分析、漏洞扫描、开源库扫描、二进制分析等,来提高扫描结果的准确性和广度,因此,使用多个sca扫描工具融合数据来分析代码成为了一种必要的方式。然而,不同的软件分析组件成分可能会产生重复的扫描结果,同时也存在不同成分之间的扫描结果冲突的情况,这些问题也会影响扫描结果的准确性进而影响到扫描的结果。
3.目前业界软件成分分析结果还没有一个公认的标准和基本规范,不同的sca工具检测方法、检测精度、检测参数设置以及展示侧重点不尽相同都会导致扫描出的结果差异较大,造成同类型的工具扫描结果由于无统一指标造成无法比对结果的差异性。
4.需要说明的是,在上述背景技术部分公开的信息只用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现要素:
5.本发明的目的在于克服现有技术的缺点,提供了一种针对多软件组成成分扫描工具的数据融合方法及系统,解决了现有技术中存在的问题。
6.本发明的目的通过以下技术方案来实现:一种针对多软件组成成分扫描工具的数据融合方法,所述数据融合方法包括:
7.步骤一、将适配sca扫描工具从统一授权入口接入,以及将统一项目维度下组件数据接口规范从工具侧适配接入,在代码扫描过程中通过sca扫描工具进行检测和分析,获得准确的扫描结果;
8.步骤二、将获取的扫描结果按照组件数据接口规范接入,并转换为统一格式数据进行存储,将获取的不同工具数据进行融合,统计分析以及比较各个扫描工具的结果;
9.步骤三、将数据融合结果按照项目和版本维度生成包括漏洞/问题的名称、严重程度、说明以及漏洞关联的代码或文件位置的报告,并进行数据展示。
10.所述步骤一中数据接口规范主要由组件基础信息、扩展数据、风险信息以及风险对应的解决方案组成;
11.所述组件基础信息包括检测出来的组件名称、版本信息、在应用中出现的路径以及获取组件的渠道;所述扩展数据包括提供兼容各个检测工具的特性;所述风险信息以及风险对应的解决方案包括针对有风险组件提供风险信息说明以及风险的修复建议为用户修复风险提供参考。
12.所述通过sca扫描工具进行检测和分析包括:根据不同的应用场景设置sca扫描工具不同的参数和规则,并将sca扫描工具应用于代码中进行扫描和分析,得到扫描结果。
13.所述将获取的不同工具数据进行融合,统计分析以及比较各个扫描工具的结果包括:
14.数据清洗和整合:针对不同sca扫描工具的扫描结果进行数据整合和去重,将同一问题或者风险通过加权算法对数据进行分析,消除重复或误差的报告;
15.问题分级:按照不同漏洞或问题的严重程度进行分级,确定解决问题的优先级;
16.数据比对和统计:对各个sca扫描工具的扫描结果中的漏洞类型、漏洞数量和严重程度分别进行统计和比较;
17.综合分析和归类:对比较和统计的结果进行综合分析和归类,提取出重点问题的原因和解决方案。
18.所述数据清洗和整合具体包括:
19.建立关于不同sca扫描工具的权重表,对于每个sca扫描工具都设置一个对应的权重系数,以表示其在报告中所占的比重;
20.对于同一漏洞或者风险,对不同sca扫描工具的编码方式、漏洞名称、等级、堆栈信息和文件路径进行比较;
21.根据权重表中的权重系数进行数据合并,消除重复或者误差的报告,得到准确的漏洞或者风险检测报告。
22.一种针对多软件组成成分扫描工具的数据融合系统,它包括扫描工具配置及组件规范模块、数据融合分析模块和报告生成展示模块;
23.所述扫描工具配置及组件规范模块:用于将适配sca扫描工具从统一授权入口接入,以及将统一项目维度下组件数据接口规范从工具侧适配接入,在代码扫描过程中通过sca扫描工具进行检测和分析,获得准确的扫描结果;
24.所述数据融合分析模块:用于将获取的扫描结果按照组件数据接口规范接入,并转换为统一格式数据进行存储,将获取的不同工具数据进行融合,统计分析以及比较各个扫描工具的结果;
25.所述报告生成展示模块:用于将数据融合结果按照项目和版本维度生成包括漏洞/问题的名称、严重程度、说明以及漏洞关联的代码或文件位置的报告,并进行数据展示。
26.所述数据融合分析模块包括数据清洗整合单元、问题分级单元、对比统计单元以及分析归类单元;
27.所述数据清洗整合单元:用于针对不同sca扫描工具的扫描结果进行数据整合和去重,将同一问题或者风险通过加权算法对数据进行分析,消除重复或误差的报告;
28.所述问题分级单元:用于按照不同漏洞或问题的严重程度进行分级,确定解决问题的优先级;
29.所述对比统计单元:用于对各个sca扫描工具的扫描结果中的漏洞类型、漏洞数量和严重程度分别进行统计和比较;
30.所述分析归类单元:用于对比较和统计的结果进行综合分析和归类,提取出重点问题的原因和解决方案。
31.所述数据清洗整合单元包括权重表构建子单元、扫描工具数据对比子单元和权重
系数合并子单元;
32.所述权重表构建子单元:用于建立关于不同sca扫描工具的权重表,对于每个sca扫描工具都设置一个对应的权重系数,以表示其在报告中所占的比重;
33.所述扫描工具数据对比子单元:用于对于同一漏洞或者风险,对不同sca扫描工具的编码方式、漏洞名称、等级、堆栈信息和文件路径进行比较;
34.所述权重系数合并子单元:用于根据权重表中的权重系数进行数据合并,消除重复或者误差的报告,得到准确的漏洞或者风险检测报告。
35.本发明具有以下优点:一种针对多软件组成成分扫描工具的数据融合方法及系统,可以适配多种类型的组件成分扫描工具,不同类型扫描工具对接标准接口,即可接入系统;接入规范化统一化,融合方法定义了统一的一套sca数据规范,融合方式方便,只需适配融合接口且融合的工具数据格式上保持统一;由于统一了多sca工具的组件规范,更方便用户比对不同工具扫描结果的差异,对工具扫描结果有直观的展示;通过结合不同扫描工具的优点和规则,减少了误报和漏报,并生成了更准确、更全面的综合报告,大大提高了源代码分析的检测效率和准确性,可以更好地保障代码的安全性。
附图说明
36.图1为本发明的流程示意图。
具体实施方式
37.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下结合附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的保护范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。下面结合附图对本发明做进一步的描述。
38.如图1所示,本发明具体涉及一种针对多软件组成成分扫描工具的数据融合方法,提供一套统一sca(软件成分分析)工具接入规范、接口接入方法以及系统,实现对不同工具对接以及不同工具扫描结果规范化、工程化,便于服务于软件质量安全;具体包括以下内容:
39.s1、提供统一授权入口,适配软件成分扫描工具接入。不同的工具api支持不同的接入方式,一般归类为两种:一种模式账号、密码方式,另一种模式就是授权码方式:在工具平台分配统一的授权码,授权码会对应不同的数据访问、操作权限,供api调用侧访问。
40.s2、提供统一项目维度下组件数据接口规范供工具侧适配接入,数据接口规范特征有主要由组件基础信息、扩展数据、风险信息以及风险对应的解决方案组成;基础信息里面主要提供检测出来的组件名称、版本信息、在应用中出现的路径、以及组件由哪些开源渠道获取,目的是方便用户定位风险组件在应用中的位置并提示风险信息;扩展数据提供一种方式方便兼容各个sca扫描工具独有的特性;风险信息以及风险对应的解决方案:针对有风险组件提供风险信息说明以及风险的修复建议为用户修复风险提供参考。
41.s3、在对代码进行扫描过程中,需要使用sca扫描工具进行检测和分析,以获取到准确的扫描结果。在收集每个sca扫描工具的扫描结果时,可以按照以下步骤进行:
42.s31、设置sca扫描工具参数和规则:根据具体的应用场景,设置不同的参数和规则,以便sca扫描工具可以进行最佳的分析,提高扫描的精度和速度;
43.s32、进行代码扫描:将扫描工具应用于代码中,进行扫描和分析,得到扫描结果。
44.s4、将s32获取到的扫描结果按s2中的数据接口规范接入,转换为统一格式数据存储。转换方法特征是通过适配器的方式:定义统一的接口,接口输入即扫描工具信息以及工具项目信息,接口输出为规范格式的组件列表数据,具体的转换实现可以放在不同的工具适配实现里面。
45.s5、将s4步骤获取到的统一格式数据进行融合,融合的目的是统计分析和比较各个扫描工具的结果,以确定真正存在的问题,并提供扫描分析的综合报告。下面是具体的分析流程和步骤:
46.s51、数据清洗和整合:针对不同sca扫描工具的扫描结果,需要进行数据整合和去重等操作,将同一问题或风险,使用加权算法对数据进行分析,消除重复或误差。其具体步骤如下:
47.s511、建立关于不同sca扫描工具的权重表,对于每个扫描工具都设置一个权重系数,代表其在报告中所占的比重;
48.s512、对于同一漏洞或风险,不同扫描工具的数据进行比较,包括编码方式、漏洞名称、等级、堆栈信息、文件路径等;
49.s513、根据权重表中的权重系数进行数据合并,消除重复或误差的报告,得到准确的漏洞或风险检测报告;
50.s52、按照问题严重程度分级:按照不同漏洞或问题的严重程度(高、中、低)进行分类,以确认哪些问题是应该优先解决的;
51.s53、数据比对和统计:对各个扫描工具的扫描结果进行分别统计和比较,包括漏洞类型、漏洞数量、严重程度等指标;
52.s54、综合分析和归类:对比对和统计的结果进行综合分析和归类,提取得出重点问题的原因和解决方案;
53.s6、将s5步骤融合后的组件数据按项目、版本维度生成综合报告,报告应包括:漏洞/问题的名称、严重程度、具体说明和建议,以及漏洞关联的代码或文件位置并展示,以便开发人员能够在代码或文件中快速定位并解决问题。
54.数据展示是展示入库的项目版本维度的组件列表数据、组件的详细信息、相同版本不同sca工具同步后的规范数据之间的比对信息,其中列表数据特征有组件的名称、组件的版本、组件的依赖关系、组件风险等级等数据,组件的详细信息特征有组件名称、组件版本、发布日期、安全风险列表以及解决方案、许可证列表以及许可证使用风险提示。相同版本不同sca工具同步后的规范数据之间的比对:是指同版本间不同工具组件交集和各自的差集,以及同一组件不同工具数据之间的差异。
55.本发明的另一种实施方式涉及一种针对多软件组成成分扫描工具的数据融合系统,它包括扫描工具配置及组件规范模块、数据融合分析模块和报告生成展示模块;
56.所述扫描工具配置及组件规范模块:用于将适配sca扫描工具从统一授权入口接
入,以及将统一项目维度下组件数据接口规范从工具侧适配接入,在代码扫描过程中通过sca扫描工具进行检测和分析,获得准确的扫描结果;
57.所述数据融合分析模块:用于将获取的扫描结果按照组件数据接口规范接入,并转换为统一格式数据进行存储,将获取的不同工具数据进行融合,统计分析以及比较各个扫描工具的结果;
58.所述报告生成展示模块:用于将数据融合结果按照项目和版本维度生成包括漏洞/问题的名称、严重程度、说明以及漏洞关联的代码或文件位置的报告,并进行数据展示。
59.所述数据融合分析模块包括数据清洗整合单元、问题分级单元、对比统计单元以及分析归类单元;
60.所述数据清洗整合单元:用于针对不同sca扫描工具的扫描结果进行数据整合和去重,将同一问题或者风险通过加权算法对数据进行分析,消除重复或误差的报告;
61.所述问题分级单元:用于按照不同漏洞或问题的严重程度进行分级,确定解决问题的优先级;
62.所述对比统计单元:用于对各个sca扫描工具的扫描结果中的漏洞类型、漏洞数量和严重程度分别进行统计和比较;
63.所述分析归类单元:用于对比较和统计的结果进行综合分析和归类,提取出重点问题的原因和解决方案。
64.所述数据清洗整合单元包括权重表构建子单元、扫描工具数据对比子单元和权重系数合并子单元;
65.所述权重表构建子单元:用于建立关于不同sca扫描工具的权重表,对于每个sca扫描工具都设置一个对应的权重系数,以表示其在报告中所占的比重;
66.所述扫描工具数据对比子单元:用于对于同一漏洞或者风险,对不同sca扫描工具的编码方式、漏洞名称、等级、堆栈信息和文件路径进行比较;
67.所述权重系数合并子单元:用于根据权重表中的权重系数进行数据合并,消除重复或者误差的报告,得到准确的漏洞或者风险检测报告。
68.以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
技术特征:
1.一种针对多软件组成成分扫描工具的数据融合方法,其特征在于:所述数据融合方法包括:步骤一、将适配sca扫描工具从统一授权入口接入,以及将统一项目维度下组件数据接口规范从工具侧适配接入,在代码扫描过程中通过sca扫描工具进行检测和分析,获得准确的扫描结果;步骤二、将获取的扫描结果按照组件数据接口规范接入,并转换为统一格式数据进行存储,将获取的不同工具数据进行融合,统计分析以及比较各个扫描工具的结果;步骤三、将数据融合结果按照项目和版本维度生成包括漏洞/问题的名称、严重程度、说明以及漏洞关联的代码或文件位置的报告,并进行数据展示。2.根据权利要求1所述的一种针对多软件组成成分扫描工具的数据融合方法,其特征在于:所述步骤一中数据接口规范主要由组件基础信息、扩展数据、风险信息以及风险对应的解决方案组成;所述组件基础信息包括检测出来的组件名称、版本信息、在应用中出现的路径以及获取组件的渠道;所述扩展数据包括提供兼容各个检测工具的特性;所述风险信息以及风险对应的解决方案包括针对有风险组件提供风险信息说明以及风险的修复建议为用户修复风险提供参考。3.根据权利要求1所述的一种针对多软件组成成分扫描工具的数据融合方法,其特征在于:所述通过sca扫描工具进行检测和分析包括:根据不同的应用场景设置sca扫描工具不同的参数和规则,并将sca扫描工具应用于代码中进行扫描和分析,得到扫描结果。4.根据权利要求1所述的一种针对多软件组成成分扫描工具的数据融合方法,其特征在于:所述将获取的不同工具数据进行融合,统计分析以及比较各个扫描工具的结果包括:数据清洗和整合:针对不同sca扫描工具的扫描结果进行数据整合和去重,将同一问题或者风险通过加权算法对数据进行分析,消除重复或误差的报告;问题分级:按照不同漏洞或问题的严重程度进行分级,确定解决问题的优先级;数据比对和统计:对各个sca扫描工具的扫描结果中的漏洞类型、漏洞数量和严重程度分别进行统计和比较;综合分析和归类:对比较和统计的结果进行综合分析和归类,提取出重点问题的原因和解决方案。5.根据权利要求4所述的一种针对多软件组成成分扫描工具的数据融合方法,其特征在于:所述数据清洗和整合具体包括:建立关于不同sca扫描工具的权重表,对于每个sca扫描工具都设置一个对应的权重系数,以表示其在报告中所占的比重;对于同一漏洞或者风险,对不同sca扫描工具的编码方式、漏洞名称、等级、堆栈信息和文件路径进行比较;根据权重表中的权重系数进行数据合并,消除重复或者误差的报告,得到准确的漏洞或者风险检测报告。6.一种针对多软件组成成分扫描工具的数据融合系统,其特征在于:它包括扫描工具配置及组件规范模块、数据融合分析模块和报告生成展示模块;所述扫描工具配置及组件规范模块:用于将适配sca扫描工具从统一授权入口接入,以
及将统一项目维度下组件数据接口规范从工具侧适配接入,在代码扫描过程中通过sca扫描工具进行检测和分析,获得准确的扫描结果;所述数据融合分析模块:用于将获取的扫描结果按照组件数据接口规范接入,并转换为统一格式数据进行存储,将获取的不同工具数据进行融合,统计分析以及比较各个扫描工具的结果;所述报告生成展示模块:用于将数据融合结果按照项目和版本维度生成包括漏洞/问题的名称、严重程度、说明以及漏洞关联的代码或文件位置的报告,并进行数据展示。7.根据权利要求6所述的一种针对多软件组成成分扫描工具的数据融合系统,其特征在于:所述数据融合分析模块包括数据清洗整合单元、问题分级单元、对比统计单元以及分析归类单元;所述数据清洗整合单元:用于针对不同sca扫描工具的扫描结果进行数据整合和去重,将同一问题或者风险通过加权算法对数据进行分析,消除重复或误差的报告;所述问题分级单元:用于按照不同漏洞或问题的严重程度进行分级,确定解决问题的优先级;所述对比统计单元:用于对各个sca扫描工具的扫描结果中的漏洞类型、漏洞数量和严重程度分别进行统计和比较;所述分析归类单元:用于对比较和统计的结果进行综合分析和归类,提取出重点问题的原因和解决方案。8.根据权利要求7所述的一种针对多软件组成成分扫描工具的数据融合系统,其特征在于:所述数据清洗整合单元包括权重表构建子单元、扫描工具数据对比子单元和权重系数合并子单元;所述权重表构建子单元:用于建立关于不同sca扫描工具的权重表,对于每个sca扫描工具都设置一个对应的权重系数,以表示其在报告中所占的比重;所述扫描工具数据对比子单元:用于对于同一漏洞或者风险,对不同sca扫描工具的编码方式、漏洞名称、等级、堆栈信息和文件路径进行比较;所述权重系数合并子单元:用于根据权重表中的权重系数进行数据合并,消除重复或者误差的报告,得到准确的漏洞或者风险检测报告。
技术总结
本发明涉及一种针对多软件组成成分扫描工具的数据融合方法,包括:将适配SCA扫描工具从统一授权入口接入,以及将统一项目维度下组件数据接口规范从工具侧适配接入,在代码扫描过程中通过SCA扫描工具进行检测和分析,获得准确的扫描结果;将获取的扫描结果按照组件数据接口规范接入,并转换为统一格式数据进行存储,将获取的不同工具数据进行融合,统计分析以及比较各个扫描工具的结果;将数据融合结果按照项目和版本维度生成报告,并进行数据展示。本发明通过结合不同扫描工具的优点和规则,减少了误报和漏报,并生成了更准确、更全面的综合报告,大大提高了源代码分析的检测效率和准确性,可以更好地保障代码的安全性。可以更好地保障代码的安全性。可以更好地保障代码的安全性。
技术研发人员:朱辉 蒋刚
受保护的技术使用者:软安科技有限公司
技术研发日:2023.07.03
技术公布日:2023/10/8
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/