一种针对软件制品库中制品进行安全检测的方法及系统与流程

文档序号:35651835发布日期:2023-10-06 11:57阅读:33来源:国知局
一种针对软件制品库中制品进行安全检测的方法及系统与流程

本发明涉及软件安全,尤其涉及一种针对软件制品库中制品进行安全检测的方法及系统。


背景技术:

1、在软件开发和交付过程中,制品通常是指由程序代码、配置文件以及其他构建工具生成的结果,例如二进制文件、依赖包、库文件、docker镜像等;这些制品作为开发人员构建的成果,将成为应用程序部署和生产过程中的重要组成部分。制品库软件是一种用于存储、管理和分发软件项目制品(如二进制文件、源代码、文档等)的工具。它通常用于构建和部署软件的自动化流程中,以便可重复地生成相同的制品,并在需要时快速将其分发到不同的环境中。一般公司会采常用的制品管理软件如artifactory或nexus等在公司内网搭建起自己的制品管理平台(简称私服)来统一管理公司内部项目迭代时制作的或者通过网络拉取的第三方开源的制品包,一般的制品管理软件都对常见的包管理器类型如maven,npm,pypi的制品包提供了强大的管理支持。

2、与此同时,在软件安全问题日益严峻的今天,大量开源的软件制品包不断被爆出各种安全漏洞;即使公司内部开发制作的制品包,也同样存在各种安全问题。如果项目开发流程中对存在安全漏洞的各类型制品包不加诊断而盲目引入使用,势必会导致开发的应用程序存在极大的安全隐患。当今很多制品包的网络镜像仓库如maven的镜像仓库针对制品的相应版本都会标注其对应存在的安全漏洞以帮助用户选择更加安全的制品版本。然而,目前的制品包现在是交给制品管理软件统一管理,如何对制品包进行快捷有效的安全诊断,已然成为了当今制品管理重要的需求和职能。也是因为这个原因,现今很多的制品管理软件也都提供了与自身制品管理相适应的制品安全检测工具,如artifactory依赖的xray,nexus依赖的nexus iq,apache archiva依赖的dependency check等。一般情况下,利用制品管理软件自身提供的安全检测工具,也能帮助用户对使用的制品库中存储的制品存在的安全问题进行基础的诊断。但是,这种利用制品库自身的安全检测工具在对安全问题要求严苛的场景中有太多局限性,主要包括以下几个方面:1、一般的制品管理软件都是免费或限制性免费,但是其关联的诊断工具往往需要付费使用,对于用户来说,如果想要诊断制品库中相应组件的安全问题,需要付出额外的成本;2、制品管理软件自身的诊断工具基于产品定位和功能特点,对制品安全问题的诊断和诊断结果并不一定能满足用户自身的差异化需求,如是否能诊断制品的安全漏洞,是否能检测制品的许可证合规问题,是否能进行二进制检测等等;3、诊断工具和制品管理软件关联性太强,很难迁移适配,如果用户因为业务需求要更换制品管理软件,也就意味着同时要更换检测工具,如果业务场景基于之前的检测工具做了太多耦合性的业务逻辑,会导致迁移困难。也有采用第三方的各类型安全检测工具,比如black duck,snyk等,可以使用第三方独立检测工具针对相应制品管理软件开发的安全检测插件,通过在artifactory或nexus服务中加载插件包的方式以间接实现独立检测工具检测能力的接入。但是,这种基于插件化的检测能力接入依然有不少实践中的问题,如扩展插件是各类型安全检测工具基于自己的检测能力为了适配制品管理软件开发的,如果用户使用的某种安全检测工具没有官方支持的扩展插件提供,用户想将这种检测工具能力应用到制品管理软件中的制品,则必须独自针对性的开发插件,插件的开发和维护成本无疑是巨大的;而且这种插件无法移植,针对不同的制品管理软件,需要开发维护对应的检测插件;而且插件化的检测工具因为插件集成的局限性,使得对检测工具自身检测能力的使用受限,无法发挥检测工具本身强大的检测能力。

3、需要说明的是,在上述背景技术部分公开的信息只用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现思路

1、本发明的目的在于克服现有技术的缺点,提供了一种针对软件制品库中制品进行安全检测的方法及系统,解决了现有技术存在的问题。

2、本发明的目的通过以下技术方案来实现:一种针对软件制品库中制品进行安全检测的方法,所述方法包括:

3、s1、针对不同的制品管理软件提供的接口文档封装业务数据标准化的数据接口开发工具包;

4、s2、根据制品的唯一特征值利用安全问题相关的数据源进行查询以获取相应制品的安全数据;

5、s3、通过数据接口开发工具包将检测工具进行问题诊断时需要的制品包作为检测工具的文件输入源,下载或分发到相应扫描位置,并通过检测工具检测出制品的安全数据结果;

6、s4、调用数据接口开发工具包接口以键值对的形式对制品的安全数据进行属性值回填。

7、所述数据接口开发工具包实现的功能包括:解析获取制品库中制品的相关数据、实现对制品文件的上传下载、通过调用接口对指定特征的制品或者指定制品仓库下的所有制品添加额外的属性或属性值的修改、实现根据业务条件筛选查询制品等。

8、所述s2步骤中安全问题相关的数据源获取方式包括:利用各类型管理器自身的网络镜像仓库,通过接口调用的方式利用制品的特征值查询获取相关制品的安全数据;或者根据制品名称相关的特征值查询相应制品的安全漏洞数据;或者利用检测工具本身维护的安全问题知识库提供的数据查询接口,利用解析的制品的特征名称查询相应制品的安全问题相关数据。

9、所述s3步骤具体包括以下内容:

10、针对接入的检测工具,设置检测工具命令行驱动脚本实现控制命令的输入和结果输出,驱动脚本实现对具体检测工具各个执行命令步骤的逻辑串联,根据前一步骤扫描命令的成功或失败情况决定是否进行下一步的命令执行,实现工具扫描的流程控制;

11、业务平台控制检测工具参数的输入和扫描任务的调度执行,在驱动脚本内部流程中当需要源文件时,通过调度制品管理数据接口开发工具包的标准api接口,下载相应的制品文件,按照检测流程依次调用后续步骤的检测命令对制品文件进行扫描分析,分析完成后驱动脚本内部判断前序流程是否都执行成功,在都执行成功后将检测工具进行安全分析的结果数据以固定格式写入以制品特征为命名的临时文件中;

12、当执行驱动脚本完成且判断前序流程都执行成功后,读取以制品特征命名的临时文件中的检测结果,将检测结果写入中间临时文件存储,业务平台在调用驱动脚本成功后,读取检测的结果文件获取检测结果数据。

13、一种针对软件制品库中制品进行安全检测的系统,它包括:数据接口开发工具包封装模块、制品特征值匹配模块、检测扫描模块和属性值回填模块;

14、所述数据接口开发工具包封装模块:用于针对不同的制品管理软件提供的接口文档封装业务数据标准化的数据接口开发工具包;

15、所述制品特征值匹配模块:用于根据制品的唯一特征值利用安全问题相关的数据源进行查询以获取相应制品的安全数据;

16、所述检测扫描模块:用于通过数据接口开发工具包将检测工具进行问题诊断时需要的制品包作为检测工具的文件输入源,下载或分发到相应扫描位置,并通过检测工具检测出制品的安全数据结果;

17、所述属性值回填模块:用于调用的数据接口开发工具包接口以键值对的形式对制品的安全数据进行属性值回填。

18、所述检测扫描模块包括:驱动脚本设置单元、检测工具调度执行单元和检测结果获取单元;

19、所述驱动脚本设置单元:用于针对接入的检测工具,设置检测工具命令行驱动脚本实现控制命令的输入和结果输出,驱动脚本实现对具体检测工具各个执行命令步骤的逻辑串联,根据前一步骤扫描命令的成功或失败情况决定是否进行下一步的命令执行,实现工具扫描的流程控制;

20、所述检测工具调度执行单元:用于业务平台控制检测工具参数的输入和扫描任务的调度执行,在驱动脚本内部流程中当需要源文件时,通过调度制品管理数据接口开发工具包的标准api接口,下载相应的制品文件,按照检测流程依次调用后续步骤的检测命令对制品文件进行扫描分析,分析完成后驱动脚本内部判断前序流程是否都执行成功,在都执行成功后将检测工具进行安全分析的结果数据以固定格式写入以制品特征为命名的临时文件中;

21、所述检测结果获取单元:用于当执行驱动脚本完成且判断前序流程都执行成功后,读取以制品特征命名的临时文件中的检测结果,将检测结果写入中间临时文件存储,业务平台在调用驱动脚本成功后,读取检测的结果文件获取检测结果数据。

22、所述数据接口开发工具包实现的功能包括:解析获取制品库中制品的相关数据、实现对制品文件的上传下载、通过调用接口对指定特征的制品或者指定制品仓库下的所有制品添加额外的属性或属性值的修改、实现根据业务条件筛选查询制品等。

23、本发明具有以下优点:一种针对软件制品库中制品进行安全检测的方法及系统,通过将各类型制品管理软件的开放接口进行标准化封装,统一了不同制品管理软件的接口实现,上层业务与具体的制品管理软件解耦,数据交互通过工具包间接实现,业务变化要变更制品管理软件或接入新的制品管理软件数据,上层业务基本不用改动,以此实现制品管理软件的灵活切换;利用制品特征值匹配查询的方式,使得获取制品安全问题的流程变的十分简单,且不需要真的购买或会使用检测工具,对于有基础安全需求的用户来说,实施成本也极低;通过自定义回填制品的一些属性数据,可以十分灵活的控制业务用户对制品的使用场景。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1