掌桥专利:专业的专利平台
掌桥专利
首页

基于数字孪生的软件供应链分析系统及构建方法

文献发布时间:2023-06-19 18:37:28


基于数字孪生的软件供应链分析系统及构建方法

技术领域

本发明涉及软件供应链技术,具体涉及一种基于数字孪生的软件供应链分析系统及构建方法。

背景技术

软件是数字经济的基础,软件供应链是软件的基石,软件供应链由开发、构建、发布、维护、运营软件所使用的软件包(Package)、工具(Tools)和流程(Process)组成的。面向复用的某个软件都可以叫软件包,更多指上传到包管理平台上的软件,近义词包括组件、库、包、框架、容器镜像。包管理平台是指便于项目复用软件包的平台,旨在优化软件开发过程中使用和产生的二进制软件包的下载和存储,常见包管理平台提供公开的第三方公开托管软件包、第二方内部发布的非公开托管软件包、以及内部发布的最终可运行的发布包。包管理平台一般附带有不同包格式的软件包的标准元数据,例如作者、生成时间、校验码以及下载量等,有些工具允许添加自定义属性,甚至可以存储所有构建的详尽构建信息(软件材料清单或SBOM)。包管理器是从包托管平台获取软件包供当前项目使用的开发工具,例如npm,maven,pip,docker等。工具是指工具链中的代码库、流水线、包管理平台、运行环境以及提供外部关联数据的人员信息等信息系统。如:gitlab、jenkins、artifactory、linux、ad等软件系统。

软件供应链简单可以理解为软件供应链中包含的软件以及软件之间的依赖关系。企业在数字化过程中,软硬件的边界变得模糊,一切和软件都有关系。但是目前缺乏覆盖软件研发运行全价值链、覆盖产品生命周期的软件供应链分析系统,缺乏应对复杂性不断增加的简化手段和方法。

供应链分析工具方面,以独立的专用工具为主,难以集成和运营。承载软件及其供应链信息的软件研发工具,都从功能性角度出发,侧重解决特定问题,不同工具之间数据没有统一模型,供应链相关的数据难以提取和关联。由于软件的开发语言、编译构建、分发部署、运行环境的多元化,软件供应链的分析技术越来越繁杂。导致传统供应链分析工具都是针对特定的研发工具或研发阶段,成为专用的第三方安全工具,专用工具的排查范围有限,容易出现空白区域,且数据难以关联和集成,成本高。

供应链安全分析流程方面,以某个时点、样品的快照分析为主,难以跨价值链、跨生命周期阶段。目前的供应链安全分析,都是对单一产品的某个版本、或某个运行状态进行单词分析。但是因为存在多个历史版本、多个生产线、多个分发渠道,因此难以进行动态的影响分析和溯源分析。流程方面,难以在供应链安全风险发生前进行预警,难以对风险处置后的效果进行持续跟踪和监测。

供应链安全分析方面,依赖网络安全人员的经验排查分析,处理的周期长。

以下以一个现有的例子来说明为何实时、准确、全面、低成本地分析软件供应链是软件行业和进行数字化的企业面临的难题。如图1所示,以史上最强、核弹级的log4j漏洞为例,需要排查、跟踪的范围大,单点的安全产品、单个岗位、快照式排查不能实现标本兼治。

以log4j高危漏洞的排查为例,需要排查范围包括:

1、代码库中所有修订版本,包括依赖管理的配置文件和源代码文件。该步骤必要,因为有部分代码不经过流水线(为了交付新版本的软件而必须执行的一系列步骤,尽管可以手动执行生产线的每个步骤,一般软件流水线是通过自动化的流水线实现的,软件流水线一般包含源代码的修订版本号、生成的交付软件包版本等标准元数据),就直接以代码形式交付给客户,还有部分代码不经过流水线发布即可在运行环境运行。此外,部分高危漏洞是否符合被利用条件需要通过源码解析进行判断。其中,代码库是一类负责管理对计算机程序、文档或其他信息集合的修订历史的系统,修订通常由数字或字母代码标识,例如,一组初始文件是“修订版1”。进行第一次更改时,结果集为“修订版2”,依此类推。每个修订都与时间戳和进行更改的人相关联。可以比较、恢复和合并某些类型的文件的修订。常见代码库软件包括gitlab,github等。

2、流水线的所有编译构建信息。包括代码库修订版本号、编译构建参数、依赖信息、发布包信息。该步骤必要,因为缺乏该步骤,无法将发布包的二进制溯源到源代码的修订版本号,运行环境的高危漏洞也无法溯源。

3、依赖库。依赖库记录每个可重用组件的名称、版本、二进制哈希码以及依赖的可重用组件。该步骤必要,因为缺乏该步骤,将缺乏基础的依赖关系信息,进而不能发现在流水线或发布包中将官方依赖包进行替换的情况。

4、发布包。发布包包含可运行软件以及软件的配置信息。该步骤必要,因为存在没有代码、不需要流水线构建,而从外部直接引入的软件包,例如容器镜像。

5、运行环境。运行环境记录软件运行的可观测信息,包括加载的包、函数和调用关系。改步骤必要,因为运行环境是随时在变的,例如可以在运行环境中进行调试、修改配置、修改代码、修改依赖包。

以log4j高危漏洞修复的跟踪为例,需要监测跟踪的范围包括:

1、代码库中新修订版本是否引入高危漏洞。

2、流水线的所有编译构建是否包含高危漏洞组件,流水线的环境,例如缓存,是否包含高危漏洞组件。

3、依赖库。依赖库中新增包是否包含高危漏洞,依赖库中的高危漏洞包是否存在新下载情况。

4、发布包。发布包是否包含高危漏洞,发布包的配置文件中是否引用包含高危漏洞的其他软件包。

5、运行环境。运行环境可观测信息是否发现高危漏洞运行和调用情况。

发明内容

以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。

本发明的目的在于解决上述问题,提供了一种基于数字孪生的软件供应链分析系统及构建方法,能够解决实时、准确、全面、低成本地分析软件供应链的难题,发现软件供应链安全风险,降低软件供应链安全事件的产生和带来的危害。

本发明的技术方案为:本发明揭示了一种基于数字孪生的软件供应链分析系统,系统包括建模与同步云计算平台、大数据平台以及可视化应用系统,其中:

建模与同步云计算平台用于将采集到的工具链原始数据转换为供应链事件数据,并保存到大数据平台;

大数据平台用于提供供应链事件的索引、检索和可视化;

可视化应用系统用于根据特定场景、角色的需求,对大数据平台中的数据进行可视化;

其中,软件供应链的工具链与软件供应链数字孪生体之间,通过建模与同步云计算平台,实现将工具链原始数据转换为供应链事件数据,并保存到大数据平台,实现数字孪生,再通过可视化应用系统,监控全工具链、全生命周期的供应链,实现供应链事件的预警、监控、持续跟踪。

根据本发明的基于数字孪生的软件供应链分析系统的一实施例,建模与同步云计算平台采用主从模式用于并行处理,主从模式允许应用程序通过主控模块和多个工作模块跨多台机器或进程同时执行处理。

根据本发明的基于数字孪生的软件供应链分析系统的一实施例,建模与同步云计算平台包括作业主控模块、代码库工作模块、流水线工作模块、包管理工作模块、运行环境工作模块,其中:

作业主控模块用于将工具链数据持续同步到供应链孪生体的作业控制;

代码库工作模块用于代码库的供应链数字孪生体构建和持续更新;

流水线工作模块用于流水线的供应链数字孪生体构建和持续更新;

包管理工作模块用于流水线的供应链数字孪生体构建和持续更新,也实现软件包依赖关系的持续更新;

运行环境工作模块用于运行环境的供应链数字孪生体构建和持续更新。

根据本发明的基于数字孪生的软件供应链分析系统的一实施例,作业主控模块进一步配置为:

首先,作业主控模块获取同步更新的工具资产列表,进一步包括:作业主控模块接收查询过滤条件,再对获取到的工具资产列表进行处理,处理包括拉取和推送,拉取是通过工具的接口或工具的数据来获取满足查询过滤条件的资产列表,推送是通过工具的接口将资产事件信息推送到作业主控模块,作业主控模块从资产事件信息中获取满足条件的工具资产列表并输出;

最后,作业主控模块将每个资产信息作为作业服务器,供各类工作模块领取并执行。

根据本发明的基于数字孪生的软件供应链分析系统的一实施例,代码库工作模块进一步配置为:

首先输入资产,然后根据供应链的事件模型将代码库中的代码数据转换为代码类供应链事件,并存入大数据平台的索引中,输出代码类索引至大数据平台。

根据本发明的基于数字孪生的软件供应链分析系统的一实施例,流水线工作模块进一步配置为:

首先输入资产,然后根据供应链的事件模型,将流水线资产数据转换为流水线供应链事件,并存入大数据平台的索引中,最后输出流水线类索引至大数据平台。

根据本发明的基于数字孪生的软件供应链分析系统的一实施例,包管理工作模块进一步配置为:

首先输入资产,然后,根据供应链的事件模型,将包管理平台中的软件包资产数据,转换为软件包供应链事件,并存入大数据平台的索引中,并行的,根据供应链的事件模型,读取软件包的包依赖配置文件,刷新、下载包管理平台的软件包,从而递归地获得软件包依赖关系;最后输出软件包类索引至大数据平台。

根据本发明的基于数字孪生的软件供应链分析系统的一实施例,运行环境工作模块进一步配置为:

输入资产,再根据供应链的事件模型,将运行环境中的运行态资产数据,转换为运行环境供应链事件,并存入大数据平台的索引中,输出运行环境类索引至大数据平台。

根据本发明的基于数字孪生的软件供应链分析系统的一实施例,可视化应用系统中包括影响分析模块、溯源分析模块、持续跟踪模块和场景编排模块,其中:

影响分析模块用于根据软件包的名称、版本,查询出受到影响的内容;

溯源分析模块用于根据软件包的名称、版本,还原在全价值链、全生命周期中引入该软件包的具体路径;

持续跟踪模块用于根据软件包的名称、版本,持续可视化其全价值链、全生命周期中的使用情况;

场景编排模块用于在影响分析、溯源分析、持续跟踪的基础上,结合作业主控模块、大数据平台,实现复杂工作流管理。

本发明还揭示了一种基于数字孪生的软件供应链的构建方法,方法在如上所述的基于数字孪生的软件供应链分析系统上实现,方法包括:

步骤1:建模与同步云计算平台与软件工具连接,并访问指定资产;

步骤2.1:建模与同步云计算平台获取资产的属性数据;

步骤2.2:针对存在结构化的依赖信息的情况,建模与同步云计算平台获取供应链依赖列表;

步骤2.3:针对非结构化的、复杂高级的供应链特征,建模与同步云计算平台获取供应链特征列表;

步骤3.1:建模与同步云计算平台整合获取到的供应链依赖列表和资产属性数据,生成供应链依赖事件列表;

步骤3.2:建模与同步云计算平台整合获取到的供应链特征列表和资产属性数据,生成供应链特征事件列表;

步骤4:将步骤3.1所生成的供应链依赖事件列表和步骤3.2所生成的供应链特征事件列表存入大数据平台,并持续更新,从而完成供应链孪生体的构建。

根据本发明的基于数字孪生的软件供应链的构建方法的一实施例,步骤2.1中,代码类资产的属性数据包括提交人员、提交事件、文件名、项目名、修改的行号列表;软件包资产的属性数据包括创建者、创建事件、修改者、修改时间、库名称、包名称、文件名、包版本、路径、软件包哈希码、下载次数、最后下载时间;流水线任务的属性数据包括流水线执行的时间、流水线软件的版本、流水线的环境配置、执行流水线任务的人员;运行环境类资产的属性数据包括主机名称、环境名称、IP地址、进程号、进程对应的可执行软件包。

根据本发明的基于数字孪生的软件供应链的构建方法的一实施例,步骤2.2进一步包括:

针对代码类资产,如果文件类型为结构化的包管理软件的配置文件,则将包管理配置文件进行结构化解析,获取供应链依赖列表;

针对包管理平台上的软件包资产,分成两种情况来处理:如果存在包管理配置文件,则将包管理配置文件进行结构化解析,获取供应链依赖列表;如果存在包管理配置文件,则采用包管理软件,获取相关依赖的软件包,且可以构建软件包依赖关系图;

针对流水线任务,供应链信息为构建过程中的源码修订版本、依赖信息,以及部署过程的部署参数;

针对运行环境类资产,供应链信息为运行时运行进程的可观测数据,分成两种情况来处理:如果是Java类编程语言的软件包进程,则采用虚拟机字节码技术直观收集运行时加载的类和函数调用关系;如果是非Java类型的软件包进程,则采用编译软件,收集软件包包含的依赖信息。

根据本发明的基于数字孪生的软件供应链的构建方法的一实施例,步骤2.3进一步包括:

如果资产类型为源代码,且需要通过源代码判断影响范围,则将源代码结构化解析后的每对调用关系及其他利用条件的值;

如果资产类型为二进制的软件包,则需要借助解压软件、解包软件、特定文件类型的二进制分析软件在内的手段,从内容中获得结构化的供应链信息;

如果为运行环境类资产,则综合运用可观测性软件、性能分析软件、底层分析软件,并与编译软件相结合,提取运行环境的供应链特征信息。

本发明对比现有技术有如下的有益效果:本发明通过供应链的事件模型将工具链数据转化为供应链事件,并将供应链事件存入大数据平台,形成供应链数字孪生体(数字孪生是对象或系统的虚拟表示,该虚拟表示根据实时数据进行更新,更新时间范围跨越对象或系统的全生命周期,并使用仿真模拟、机器学习或推理来帮助决策),并持续更新。具体而言,本发明中有以下特点:

1、通过供应链的事件模型,一方面解决了应链分析方法、工具、数据关联领域复杂度不断增加的问题,提供了一个通用的、简洁、明确的信息提取和转换方法。另一方面,供应链的事件模型是供应链数据孪生的核心,实现对现有工具链无侵入、对开发人员体验无影响的供应链分析效果。

2、通过建模及同步云计算平台,一方面可以持续监控全价值链、全生命周期的供应链事件,另一方面实现了无状态的worker,可以自动扩缩容,应用云计算算力,对工具链上的海量数据进行新算法的重新建模和同步,实现供应链安全的“流调”。

3、通过供应链事件的大数据平台,一方面实现了供应链分析与工具链的完全解耦,形成了供应链的数字孪生体;另一方面实现了代码、流水线、软件包运行环境的单独数据查询和关联查询,提供多维度、可以进行正向影响分析、逆向溯源分析的功能。

附图说明

在结合以下附图阅读本公开的实施例的详细描述之后,能够更好地理解本发明的上述特征和优点。在附图中,各组件不一定是按比例绘制,并且具有类似的相关特性或特征的组件可能具有相同或相近的附图标记。

图1示出了现有的log4j漏洞的排查监测的流程示意图。

图2示出了本发明的基于数字孪生的软件供应链的构建方法的实施例的示意图。

图3示出了供应链的事件模型的示意图。

图4示出了本发明的基于数字孪生的软件供应链的分析系统的实施例的系统结构图。

图5示出了图4实施例中的建模与同步云计算平台的示意图。

具体实施方式

以下结合附图和具体实施例对本发明作详细描述。注意,以下结合附图和具体实施例描述的诸方面仅是示例性的,而不应被理解为对本发明的保护范围进行任何限制。

构建方法是基于供应链的事件模型来构建供应链孪生体,在供应链的事件模型中,资产包含属性数据、供应链依赖列表、以及供应链特征列表,属性数据与供应链依赖形成供应链依赖事件,属性数据与供应链特征形成供应链特征事件,将两类供应链事件存入大数据平台,并持续更新,即完成供应链孪生体的构建。资产通常指工具链中所保存或运行的数据。如gitlab中的commit和文件,jenkins中的任务信息,artifactory中的制品信息,linux中的文件信息或进程信息,ad中的人员和部门等信息。

供应链的事件模型参考图3所示,在供应链模型中,1个软件资产包括1份资产和资产元数据对应的属性数据、多份供应链依赖以及多份供应链特征。每个供应链依赖和资产属性数据构成1个供应链依赖事件,每个供应链特征与资产属性数据构成1个供应链特征事件。供应链依赖事件和供应链特征事件共同构成供应链事件。在本实施例中,元数据的定义为:描述其他数据的数据。元数据有六种不同类型,分别是记叙性元资料、结构性元资料、管理性元资料、参考性元资料、统计性元资料,及法律性元资料。记叙性元数据描述了用于发现与辨别意义的资源。它可以包括如标题、摘要、作者和关键字等元素。结构性元数据是有关于资料容器的元资料,指示如何整理其中复合的物件。管理性元资料是用于管理资源的信息,例如资料产生的时间和方式、档案种类和其它技术信息,以及谁有权限存取它。参考性元数据是跟内容及统计数据质量相关的信息。统计性元数据,又称处理过程资料,会描述收集、处理或产生资料的过程。法律性元数据提供有关作者、版权持有者、及公共授权条款等信息。

具体参考图2所示,以下是本实施例的基于数字孪生的软件供应链的构建方法的实施步骤的详细描述。

步骤1:建模与同步云计算平台与软件工具连接,并访问指定资产。

步骤2.1:建模与同步云计算平台获取资产的属性数据。

本步骤的具体处理包括以下的内容:

如果为代码类资产,属性数据包括提交人员、提交事件、文件名、项目名、修改的行号列表等。

如果为软件包资产,属性数据(属性数据为某个资产某项元数据对应的值,如标题、创建事件等)包括创建者、创建事件、修改者、修改时间、库名称、包名称、文件名、包版本、路径、软件包哈希码、下载次数、最后下载时间等。

针对流水线,资产为流水线任务。其属性数据包括流水线执行的时间、流水线软件的版本、流水线的环境配置、执行流水线任务的人员。

如果为运行环境类资产,其属性数据包括主机名称、环境名称、IP地址、进程号、进程对应的可执行软件包。

步骤2.2:针对存在结构化的依赖信息的情况,建模与同步云计算平台获取供应链依赖列表。

本步骤的具体处理包括以下的内容:

针对代码类资产,如果文件类型为结构化的包管理软件的配置文件,如pom.xml,go.mod等,则将包管理配置文件进行结构化解析,获取供应链依赖列表,即依赖的一系列软件包名称、版本、哈希码等。

针对包管理平台上的软件包资产,分成两种情况来处理:如果存在包管理配置文件,则将包管理配置文件进行结构化解析,获取供应链依赖列表;如果存在包管理配置文件,则采用包管理软件,获取相关依赖的软件包,且可以构建软件包依赖关系图。

针对流水线,资产为流水线任务。供应链信息为构建过程中的源码修订版本、依赖信息,以及部署过程的部署参数。

针对运行环境类资产,供应链信息为运行时运行进程的可观测数据,分成两种情况来处理:如果是Java类编程语言的软件包进程,可以采用虚拟机字节码技术直观收集运行时加载的类和函数调用关系;如果是其他类型的软件包进程,可以采用编译软件,收集软件包包含的依赖信息。

步骤2.3:针对非结构化的、复杂高级的供应链特征,建模与同步云计算平台获取供应链特征列表。

本步骤的具体处理包括以下的内容:

如果资产类型为源代码,且需要通过源代码判断影响范围,则将源代码结构化解析后的每对调用关系及其他利用条件的值。

如果资产类型为二进制的软件包,则需要借助解压软件、解包软件、特定文件类型的二进制分析软件等手段,从内容中获得结构化的供应链信息。

如果为运行环境类资产,则可综合运用可观测性软件、性能分析软件、底层分析软件,并与编译软件相结合,提取运行环境的供应链特征信息。

步骤3.1:建模与同步云计算平台整合获取到的供应链依赖列表和资产属性数据,生成供应链依赖事件列表。

例如,在步骤2.1中获取到资产属性数据1份,包含资产编号、名称等,在步骤2.2中获取到的供应链依赖列表包含该资产的多条事件,如依赖1、描述1,依赖2、描述2,形成步骤3.1中的两条依赖事件,即:资产编号、名称、依赖1、描述1;资产编号、名称、依赖2、描述2。

步骤3.2:建模与同步云计算平台整合获取到的供应链特征列表和资产属性数据,生成供应链特征事件列表。

供应链特征事件列表的生成和步骤3.1是相同的,在此不再赘述。

步骤4:将两类供应链事件(即所生成的供应链依赖事件列表和供应链特征事件列表)存入大数据平台,并持续更新,从而完成供应链孪生体的构建。

图4示出了基于数字孪生的软件供应链的分析系统的实施例的原理。请参见图4,本实施例的系统包括:建模与同步云计算平台、大数据平台以及可视化应用系统。系统外部和软件供应链相关的工具链交互。

软件供应链的工具链与软件供应链数字孪生体之间,通过建模与同步云计算平台,实现将工具链原始数据转换为供应链事件数据,并保存到大数据平台,实现数字孪生,再通过可视化应用系统,监控全工具链、全生命周期的供应链,实现供应链事件的预警、监控、持续跟踪。

以下是分别对系统中的各个组件的详细说明。

建模与同步云计算平台用于将工具链原始数据转换为供应链事件数据,并保存到大数据平台。具体而言,建模与同步云计算平台采用Master-Worker模式(主从模式)用于并行处理。主从模式遵循一种简单的方法,允许应用程序通过Master(主控模块)和多个Worker(工作模块)跨多台机器或进程同时执行处理。建模与同步云计算平台采集、生成数据使用的即为如图2所示的基于供应链事件模型的构建方法。

建模与同步云计算平台中又包括作业主控模块、代码库工作模块、流水线工作模块、包管理工作模块、运行环境工作模块。如图5所示,作业主控模块作为主控模块,和工具链上工具对应的是工作模块,工作模块可以自动扩缩容并行处理数据。

作业主控模块用于将工具链数据持续同步到供应链孪生体的作业控制。其内部处理为:首先,作业主控模块获取需要同步更新的工具资产列表,通常是根据查询条件获取工具资产列表。这一步的具体处理为:作业主控模块接收查询过滤条件,例如时间范围或者其他元数据的过滤条件。再对获取到的工具资产列表进行处理,包括拉取和推送,拉取是指通过工具的接口或工具的数据来获取满足查询过滤条件的资产列表,推送是指通过工具的接口将资产事件信息推送到作业主控模块,作业主控模块从资产事件信息中获取满足条件的工具资产列表并输出。

最后,作业主控模块将每个资产信息作为作业服务器,供各类工作模块领取并执行。

代码库工作模块用于代码库的供应链数字孪生体构建和持续更新。其内部处理为:首先输入资产,然后根据基于供应链事件模型的构建方法(如图2所示),将代码库中的代码数据转换为代码类供应链事件,并存入大数据平台的索引中,输出代码类索引至大数据平台。

流水线工作模块用于流水线的供应链数字孪生体构建和持续更新。其内部处理为:首先输入资产,然后根据基于供应链事件模型的构建方法,将流水线资产数据转换为流水线供应链事件,并存入大数据平台的索引中,最后输出流水线类索引至大数据平台。

包管理工作模块用于流水线的供应链数字孪生体构建和持续更新,也实现了软件包依赖关系的持续更新。其内部处理为:首先输入资产,然后,根据供应链的事件模型,将包管理平台中的软件包资产数据,转换为软件包供应链事件,并存入大数据平台的索引中,并行的,根据供应链的事件模型,读取软件包的包依赖配置文件,刷新、下载包管理平台的软件包,从而递归地获得软件包依赖关系;最后输出软件包类索引至大数据平台。

运行环境工作模块用于运行环境的供应链数字孪生体构建和持续更新。其内部处理为:输入资产,再根据基于供应链事件模型的构建方法,将运行环境中的运行态资产数据,转换为运行环境供应链事件,并存入大数据平台的索引中,输出运行环境类索引至大数据平台。

大数据平台用于提供供应链事件的索引、检索和可视化。

可视化应用系统用于根据特定场景、角色的需求,对大数据平台中的数据进行可视化。

可视化应用系统中包括影响分析模块、溯源分析模块、持续跟踪模块和场景编排模块。

影响分析模块用于根据软件包的名称、版本,查询出受到影响的内容,包括:代码库中的具体修订版本,代码库中符合漏洞列用条件的具体修订版本和文件,流水线中的构建任务,包管理平台中依赖该软件包的其他软件包(包括第三方、第二方的软件包、发布包和镜像),相关运行环境。

溯源分析模块用于根据软件包的名称、版本,还原在全价值链、全生命周期中引入该软件包的具体路径。溯源内容包括:代码库中的具体修订版本,代码库中符合漏洞列用条件的具体修订版本和文件,流水线中的构建任务,包管理平台中依赖该软件包的软件包(包括第三方、第二方的软件包,发布包和镜像),相关运行环境。

持续跟踪模块用于根据软件包的名称、版本,持续可视化其全价值链、全生命周期中的使用情况。跟踪内容包括:代码库中的具体修订版本,代码库中符合漏洞列用条件的具体修订版本和文件,流水线中的构建任务,包管理平台中依赖该软件包的软件包(包括第三方、第二方的软件包,发布包和镜像),相关运行环境。

场景编排模块用于在影响分析、溯源分析、持续跟踪的基础上,结合作业主控模块、大数据平台,实现更复杂的工作流管理。例如可以包括:供应链特征的“流调”,对某特征的代码、包、运行调用情况,调整worker算法,全量重新生成历史供应链事件。

尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。

本领域技术人员将进一步领会,结合本文中所公开的实施例来描述的各种解说性逻辑板块、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。

结合本文所公开的实施例描述的各种解说性逻辑板块、模块、和电路可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文所描述功能的任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协作的一个或多个微处理器、或任何其他此类配置。

结合本文中公开的实施例描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读取和写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在ASIC中。ASIC可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在用户终端中。

在一个或多个示例性实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现为计算机程序产品,则各功能可以作为一条或更多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或能被用来携带或存储指令或数据结构形式的合意程序代码且能被计算机访问的任何其它介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、DSL、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据,而碟(disc)用激光以光学方式再现数据。上述的组合也应被包括在计算机可读介质的范围内。

提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员来说都将是显而易见的,且本文中所定义的普适原理可被应用到其他变体而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖性特征相一致的最广范围。

技术分类

06120115631245