一种云原生应用漏洞复现环境的自动化构建方法及系统与流程

专利2022-06-29  29


本发明涉及漏洞复现环境构建领域,特别是涉及一种云原生应用漏洞复现环境的自动化构建方法及系统。



背景技术:

近年来,安全漏洞数量急剧增加,漏洞的存在造成了巨大的危害。2018年,根据第三方漏洞聚合平台cvedetails的统计数据,2018年全球公开漏洞数量为16555个,较2017年全年的漏洞总数14714个增长了12.51%,2018年8月台积电感染wannacry勒索软件损失2.56亿美元。因此,漏洞研究和防御工作的重要性不言而喻。

信息安全从业人员在针对安全事件中的漏洞进行研究和学习时,首先需要构建出漏洞复现环境。传统的漏洞复现环境构建主要由安全从业人员根据软件厂商以及第三方漏洞平台发布的漏洞信息先在虚拟机中手工搭建出软件环境,再对软件环境手工完成安装与复杂的服务依赖配置,最后对构建出的漏洞复现环境进行手工复现,从而完成漏洞复现环境的构建。

专利号为cn106295347a,发明名称为用于搭建漏洞复现环境的方法及装置的专利文件中采用提供要素库来搭建漏洞复现环境,侧重于解决手工搭建时搜集工具对测试人员能力要求较高的的问题,降低了搭建的漏洞复现环境的难度。但这种方法仍然需要手工操作完成,无法解决费时费力的问题。

专利号为cn109471658a,发明名称为一种基于容器的快速搭建靶机环境的方法的专利文件中采用容器技术快速搭建漏洞复现环境,侧重于解决传统的虚拟机搭建操作复杂的问题。虽然这种方法采用jenkins对漏洞复现环境构建和部署进行了自动化,降低了漏洞复现环境部署过程的手工操作,但这种方法需要先根据漏洞描述信息使用虚拟机模拟一遍构建过程继而编写dockerfile,存在着dockerfile编写复杂,对信息安全从业人员能力要求较高的问题。而且对没有编写完成dockerfile的漏洞复现环境无法实现自动化构建。

综上可知,现有的漏洞复现环境构建方法存在着对安全从业人员能力要求较高,需要繁琐的人工方式搭建漏洞复现环境的过程,浪费人力,而且无法根据漏洞情报快速且自动化构建出漏洞复现环境。



技术实现要素:

本发明的目的是提供一种云原生应用漏洞复现环境的自动化构建方法及系统,能够不需要借助人力,根据漏洞情报自动构建出云原生应用漏洞复现环境。

为实现上述目的,本发明提供了如下方案:

一种云原生应用漏洞复现环境的自动化构建方法,包括:

获取构建云原生应用漏洞所必要的漏洞情报元素信息;

根据所述漏洞情报元素信息编写漏洞情报数据包;

根据所述漏洞情报数据包构建漏洞复现环境;

将所述漏洞复现环境进行交付和部署。

可选的,所述根据所述漏洞情报元素信息编写漏洞情报数据包,具体包括:

根据所述漏洞情报元素信息编写漏洞情报;

获取受影响软件的docker镜像;

根据所述docker镜像,编写软件安装配置文件和软件依赖配置文件;

获取漏洞利用脚本;

根据所述漏洞利用脚本,编写漏洞利用脚本依赖配置文件;

根据所述漏洞情报、所述软件安装配置文件、所述软件依赖配置文件、所述漏洞利用脚本和所述漏洞利用脚本依赖配置文件,封装成面向机器处理的漏洞情报包。

可选的,所述根据所述漏洞情报数据包构建漏洞复现环境,具体包括:

将所述漏洞情报数据包提交到git代码托管仓库,触发ci/cd工具自动构建过程;

获取git代码托管仓库中的漏洞情报数据包,作为第一漏洞情报数据包;

将所述第一漏洞情报数据包进行编译;

根据所述受影响软件的docker镜像,生成软件环境;

将所述软件环境配置为具有目标漏洞的漏洞复现环境;

根据编译后的第一漏洞情报数据包中的漏洞利用元素信息,对所述漏洞复现环境进行漏洞存在性验证。

可选的,所述将所述漏洞复现环境进行交付和部署,具体包括:

将所述漏洞复现环境镜像交付到dockerregistry中进行存储;

从所述dockerregistry中获取漏洞复现环境镜像,运行容器实例部署到所需要的网络环境中。

一种云原生应用漏洞复现环境的自动化构建系统,包括:

漏洞情报元素信息获取模块,用于获取构建云原生应用漏洞所必要的漏洞情报元素信息;

漏洞情报数据包编写模块,用于根据所述漏洞情报元素信息编写漏洞情报数据包;

漏洞复现环境构建模块,用于根据所述漏洞情报数据包构建漏洞复现环境;

漏洞复现环境交付、部署模块,用于将所述漏洞复现环境进行交付和部署。

可选的,所述漏洞情报数据包编写模块,具体包括:

漏洞情报编写单元,用于根据所述漏洞情报元素信息编写漏洞情报;

docker镜像获取单元,用于获取受影响软件的docker镜像;

软件安装、依赖配置文件编写单元,用于根据所述docker镜像,编写软件安装配置文件和软件依赖配置文件;

漏洞利用脚本获取单元,用于获取漏洞利用脚本;

漏洞利用脚本依赖配置文件编写单元,用于根据所述漏洞利用脚本,编写漏洞利用脚本依赖配置文件;

漏洞情报包封装单元,用于根据所述漏洞情报、所述软件安装配置文件、所述软件依赖配置文件、所述漏洞利用脚本和所述漏洞利用脚本依赖配置文件,封装成面向机器处理的漏洞情报包。

可选的,所述漏洞复现环境构建模块,具体包括:

漏洞情报数据包提交单元,用于将所述漏洞情报数据包提交到git代码托管仓库,触发ci/cd工具自动构建过程;

第一漏洞情报数据包获取单元,用于获取git代码托管仓库中的漏洞情报数据包,作为第一漏洞情报数据包;

编译单元,用于将所述第一漏洞情报数据包进行编译;

软件环境生成单元,用于根据所述受影响软件的docker镜像,生成软件环境;

漏洞复现环境配置单元,用于将所述软件环境配置为具有目标漏洞的漏洞复现环境;

漏洞存在性验证单元,用于根据编译后的第一漏洞情报数据包中的漏洞利用元素信息,对所述漏洞复现环境进行漏洞存在性验证。

可选的,所述漏洞复现环境交付、部署模块,具体包括:

交付单元,用于将所述漏洞复现环境镜像交付到dockerregistry中,并进行存储;

部署单元,用于从所述dockerregistry中获取漏洞复现环境镜像,运行容器实例部署到所需要的网络环境中。

根据本发明提供的具体实施例,本发明公开了以下技术效果:

本发明提供一种云原生应用漏洞复现环境的自动化构建方法及系统,该方法通过获取构建云原生应用漏洞所必要的漏洞情报元素信息;根据所述漏洞情报元素信息编写漏洞情报数据包;根据所述漏洞情报数据包构建漏洞复现环境;将所述漏洞复现环境进行交付和部署,从而实现了根据漏洞情报自动构建出云原生应用漏洞复现环境。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明云原生应用漏洞复现环境的自动化构建方法流程图;

图2为本发明云原生应用漏洞复现环境的自动化构建系统结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的目的是提供一种云原生应用漏洞复现环境的自动化构建方法及系统,能够不需要借助人力,根据漏洞情报自动构建出云原生应用漏洞复现环境。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

在容器技术得到广泛应用后,已有部分专业人员采用docker容器技术,采用jenkins对漏洞复现环境进行自动化构建和部署,虽然与虚拟机相比降低了操作难度,实现了部分自动化过程。但dockerfile文件仍然需要人工方式,首先在虚拟机中根据漏洞描述文档模拟漏洞复现过程,然后记录下过程进行编写。这种方法对信息安全从业人员的专业能力要求较高,而且无法避免繁琐的手工操作。因此,无法实现从漏洞情报自动化构建漏洞复现环境的过程。

以下是本发明中提及的术语解释:

svid(自创术语):structuredvulnerabilityintelligenceforbuildingdeliberatedvulnerableenvironment(用于构建漏洞复现环境的结构化漏洞情报)。

svidbundle(自创术语):由svid及其相关依赖封装而成的一种面向机器处理的漏洞情报包。

docker技术:容器技术的一种,并且在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护,使得docker技术比虚拟机技术更为轻便、快捷。

云原生:云原生是一系列云计算技术体系和企业管理方法的集合,既包含了实现应用云原生化的方法论,也包含了落地实践的关键技术。云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式api。

harbor:一个开源的云原生私有镜像仓库,可以存储、签名和扫描容器镜像以查找漏洞。

gitlab:gitlab是一个基于web的devops生命周期工具,它提供了一个git仓库,使用由gitlabinc.开发的开源许可证提供wiki,问题跟踪和ci/cdpipeline功能。

dve(自创术语):deliberatedvulnerableenvironment(漏洞复现环境)。存在已知漏洞的环境,和本领域常见术语「靶标」相比,dve强调包含「真实漏洞」且「真实漏洞」已经是被验证过可以利用成功的软硬件系统环境。dve可以直接用于「靶标」构建基础,但「靶标」不仅包含dve,还包括其他一些网络攻防演练所需要的基础设施组件。例如,靶标还可以使用蜜罐、蜜信来构建。靶标可以不包含「真实漏洞」,靶标可以采用类似低交互蜜罐技术来伪装存在某些漏洞但这些漏洞无法被真实利用

devops:一个软件工程实践,旨在统一软件开发(dev)和软件操作(ops),与业务目标紧密结合,在软件构建、集成、测试、发布到部署和基础设施管理中大力提倡自动化和监控。devops的目标是缩短开发周期,增加部署频率,更可靠的发布。

ci/cd:持续集成/持续交付。

git:开源的分布式版本控制系统。

图1为本发明云原生应用漏洞复现环境的自动化构建方法流程图。如图1所示,一种云原生应用漏洞复现环境的自动化构建方法包括:

步骤101:获取构建云原生应用漏洞所必要的漏洞情报元素信息。

漏洞情报svid采用结构化的格式表示构建漏洞复现环境所需要的漏洞情报元素信息,在svid中有必要元素信息如下:软件操作系统信息(softwareoperatingsystem,os-s),用于描述受影响软件依赖的操作系统信息;漏洞利用所依赖的操作系统信息(exploitoperatingsystem,os-e),用于描述漏洞利用时所依赖的操作系统信息;软件名称(softwarename,sn),用于描述漏洞影响软件的名称;软件版本(softwareversion,sv),用于描述漏洞影响软件的版本;受漏洞影响软件安装配置(softwareinstallationconfiguration,sic),用于安装和配置受影响软件,使其具有目标漏洞;受影响软件依赖配置(softwaredependencyconfiguration,sdc),用于定义软件配置脚本中的依赖;漏洞影响软件运行配置(softwareruntimeconfiguration,src),用于定义软件配置脚本执行时所需要的方法;漏洞利用脚本配置(exploitscriptinstallationconfiguration,eic),用于进行漏洞利用的代码;漏洞利用脚本依赖配置(exploitscriptdependencyconfiguration,edc),用于定义漏洞利用脚本中依赖及配置;漏洞利用脚本运行配置(exploitscriptruntimeconfiguration,erc),用于定义漏洞利用脚本执行时所需要的方法;漏洞验证方法(vulnerabilityverificationmethod,vvm),用于定义验证漏洞利用效果的方法;预期利用结果(expectedexploitresult,eer),用于定义预期的漏洞效果。

步骤102:根据所述漏洞情报元素信息编写漏洞情报数据包,具体包括:

根据所述漏洞情报元素信息编写漏洞情报。

获取受影响软件的docker镜像。

根据所述docker镜像,编写软件安装配置文件和软件依赖配置文件。

获取漏洞利用脚本。

根据所述漏洞利用脚本,编写漏洞利用脚本依赖配置文件。

根据所述漏洞情报、所述软件安装配置文件、所述软件依赖配置文件、所述漏洞利用脚本和所述漏洞利用脚本依赖配置文件,封装成面向机器处理的漏洞情报包。

现有的漏洞情报主要是面向人阅读和理解,不同漏洞报告和漏洞库中的对漏洞情报元素信息表示方式不相同,并且缺少软件的安装配置,无法直接用于自动构建漏洞复现环境。因此,本发明全新设计了一种标准化、结构化、面向机器处理的漏洞情报,称为svid。并将svid与其所需的相关依赖配置,封装成包,即漏洞情报数据包,称为svidbundle。在svidbundle中包含有svid,受影响软件安装配置(configurationofsoftware,cos)、漏洞验证配置(proofofvulnerable,pov),svid中的字段只需要将面向人阅读和理解的漏洞情报按照规范的字段格式进行填充即可快速编写完成,其相关依赖配置也有标准化的编写流程,因此svidbundle编写简单,具有可复用性。这种svidbundle的设计对于自动构建漏洞复现环境是很有必要的。

受影响软件配置(configurationofsoftware,cos)是svid所依赖的受影响软件相关配置,包含软件安装配置文件(sic)、软件依赖配置文件(sdc)和软件运行时配置(src)。

漏洞利用脚本配置(proofofvulnerable,pov)是svid所依赖的漏洞验证相关配置,包含漏洞利用脚本配置文件(eic)、漏洞利用脚本依赖配置文件(edc)、漏洞利用脚本运行时配置(erc)、漏洞验证方法(vvm)和预期漏洞利用结果(eer)。

因为漏洞情报svid采用了标准化、结构化设计,所以只需要由安全从业人员搜集必要漏洞元素信息按照漏洞情报文件的结构标准进行填充即可快速编写完成,而漏洞利用脚本配置也可从漏洞利用库中获取,漏洞利用脚本依赖配置可以根据漏洞利用脚本快速编写完成,因为常用的漏洞利用脚本开发语言有限,所以大多数漏洞利用脚本运行配置具有高相似性,不需要为每个漏洞利用脚本进行定制。受影响软件安装配置文件编写需要首先由安全从业人员使用docker容器技术模拟进行软件安装配置,记录下安装配置过程中所需要的安装和配置信息,然后编写安装配置脚本文件,而软件依赖配置文件只需要根据软件安装配置文件快速编写完成,与漏洞利用脚本运行配置类似,因为常用软件安装配置脚本开发语言有限,所以软件运行配置具有高相似性,不需要为每个软件安装配置脚本进行定制。因此只有软件安装配置文件需要专门编写。因为软件环境使用docker容器生成,模拟安装过程也较为简单,软件安装配置脚本编写可以使用安全从业人员擅长使用任意语言。并且编写完成的面向机器处理的漏洞情报包提交后会保存在git代码托管仓库中,可重复使用,降低了对安全从业人员专业能力的要求和减少了人力的耗费,提高了构建漏洞复现环境的效率。

步骤103:根据所述漏洞情报数据包构建漏洞复现环境,具体包括:

将所述漏洞情报数据包提交到git代码托管仓库,触发ci/cd工具自动构建过程。

获取git代码托管仓库中的漏洞情报数据包,作为第一漏洞情报数据包。

将所述第一漏洞情报数据包进行编译。

根据所述受影响软件的docker镜像,生成软件环境。

将所述软件环境配置为具有目标漏洞的漏洞复现环境。

根据编译后的第一漏洞情报数据包中的漏洞利用元素信息,对所述漏洞复现环境进行漏洞存在性验证。

将编写完成的面向机器处理的漏洞情报包提交到git代码托管仓库,ci/cd工具(例如:gitlabci)检测到有新的漏洞情报提交后,将会进行自动化构建和部署。将在ci阶段中,完成漏洞复现环境的构建,而在cd阶段将对构建完成的漏洞复现环境进行交付和部署。

在git代码托管仓库中,将会为每个漏洞情报建立一个分支,在ci阶段可以根据提交时的commit信息或者分支信息下载相应的漏洞情报副本执行自动化漏洞复现环境构建。首先将会对漏洞情报进行编译,编译完成后将会由漏洞影响软件环境和漏洞利用所依赖的基本操作系统信息获取基础的操作系统环境,基础操作系统环境通过从dockerregistry(例如:harbor)获取基础镜像生成,根据软件名称和软件版本从dockerregistry获取漏洞影响软件镜像,再由镜像生成软件环境,使用漏洞影响软件配置文件对漏洞对软件环境进行安装和配置,生成含有目标漏洞的软件环境。接着根据漏洞利用脚本配置文件对执行漏洞利用脚本的执行环境进行配置。然后执行漏洞利用脚本,利用完成后根据漏洞复现方法复现是否成功触发漏洞。

步骤104:将所述漏洞复现环境进行交付和部署,具体包括:

将所述漏洞复现环境镜像交付到dockerregistry中进行存储。

从所述dockerregistry中获取漏洞复现环境镜像,运行容器实例部署到所需要的网络环境中。

在ci阶段构建完成漏洞复现环境后,如果构建成功,则将漏洞情报由漏洞分支merge到master分支,执行cd阶段。在cd阶段,将构建成功的漏洞复现环境镜像交付到dockerregistry中,最后运行容器实例部署到所需要的网络环境中。本发明的容器云基础设施不限于docker,还可以使用docker-swarm和rancher。

在本发明中,设计了一种面向机器处理的漏洞情报,然后采用git代码托管平台对漏洞情报进行管理,采用docker容器技术构建漏洞复现环境,采用ci/cd工具实现漏洞复现环境构建、交付和部署的自动化过程,采用dockerregistry存储构建完成的漏洞复现环境镜像,供安全从业人员进行漏洞学习和研究时使用,同样可以应用于蜜罐和靶场等场景中作为靶标构建基础。

本发明的云原生应用漏洞复现环境的自动化构建方法与背景技术中提到的现有技术用于搭建漏洞复现环境的方法及装置相对比,具备下列优点:

1、本发明采用面向机器的svidbundle而不采用需要人工选择的要素库。

2、本发明创建靶机环境采用容器镜像,相比于采用虚拟机镜像搭建操作更加简单、时间短并且容器镜像易于管理。

3、本发明构建靶机环境和漏洞存在性复现都是自动化方式。

本发明的云原生应用漏洞复现环境的自动化构建方法与背景技术中提到的现有技术一种基于容器的快速搭建靶机环境的方法相对比,具备下列优点:

1、本发明的容器云基础设施不限于kubernetes,还可以使用docker,docker-swarm,rancher等。

2、本发明构建靶机镜像不需要编写dockerfile文件,而是编写svidbundle。相比于编写dockerfile编写难度更小,不需要人工方式模拟完整的漏洞复现过程,只需要模拟软件安装过程即可。而且对配置脚本编写语言未作限制,更加灵活。svidbundle中的pov可以用于自动化验证构建出的漏洞复现环境是否包含指定漏洞。

3、本发明创建的靶机环境不仅是web程序,而是应用类型更丰富的云原生应用。

4、本发明通过版本控制工具管理同一个漏洞复现环境的不同版本。

5、本发明提交的是svidbundle,构建发布的目的不局限于web端而是容器镜像仓库。

6、本发明使用标准化、结构化的面向机器的svid代替了面向人类阅读和理解的漏洞描述文档

7、本发明的特征在于使用了svid docker gitlabpipeline harbor,能够根据漏洞情报自动构建出云原生应用漏洞复现环境。

图2为本发明云原生应用漏洞复现环境的自动化构建系统结构图。如图2所示,一种云原生应用漏洞复现环境的自动化构建系统包括:

漏洞情报元素信息获取模块201,用于获取构建云原生应用漏洞所必要的漏洞情报元素信息。

漏洞情报数据包编写模块202,用于根据所述漏洞情报元素信息编写漏洞情报数据包。

漏洞复现环境构建模块203,用于根据所述漏洞情报数据包构建漏洞复现环境。

漏洞复现环境交付、部署模块204,用于将所述漏洞复现环境进行交付和部署。

所述漏洞情报数据包编写模块202,具体包括:

漏洞情报编写单元,用于根据所述漏洞情报元素信息编写漏洞情报。

docker镜像获取单元,用于获取受影响软件的docker镜像。

软件安装、依赖配置文件编写单元,用于根据所述docker镜像,编写软件安装配置文件和软件依赖配置文件。

漏洞利用脚本获取单元,用于获取漏洞利用脚本。

漏洞利用脚本依赖配置文件编写单元,用于根据所述漏洞利用脚本,编写漏洞利用脚本依赖配置文件。

漏洞情报包封装单元,用于根据所述漏洞情报、所述软件安装配置文件、所述软件依赖配置文件、所述漏洞利用脚本和所述漏洞利用脚本依赖配置文件,封装成面向机器处理的漏洞情报包。

所述漏洞复现环境构建模块203,具体包括:

漏洞情报数据包提交单元,用于将所述漏洞情报数据包提交到git代码托管仓库,触发ci/cd工具自动构建过程。

第一漏洞情报数据包获取单元,用于获取git代码托管仓库中的漏洞情报数据包,作为第一漏洞情报数据包。

编译单元,用于将所述第一漏洞情报数据包进行编译。

软件环境生成单元,用于根据所述受影响软件的docker镜像,生成软件环境。

漏洞复现环境配置单元,用于将所述软件环境配置为具有目标漏洞的漏洞复现环境。

漏洞存在性验证单元,用于根据编译后的第一漏洞情报数据包中的漏洞利用元素信息,对所述漏洞复现环境进行漏洞存在性验证。

所述漏洞复现环境交付、部署模块204,具体包括:

交付单元,用于将所述漏洞复现环境镜像交付到dockerregistry中,并进行存储。

部署单元,用于从所述dockerregistry中获取漏洞复现环境镜像,运行容器实例部署到所需要的网络环境中。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。


技术特征:

1.一种云原生应用漏洞复现环境的自动化构建方法,其特征在于,包括:

获取构建云原生应用漏洞所必要的漏洞情报元素信息;

根据所述漏洞情报元素信息编写漏洞情报数据包;

根据所述漏洞情报数据包构建漏洞复现环境;

将所述漏洞复现环境进行交付和部署。

2.根据权利要求1所述的云原生应用漏洞复现环境的自动化构建方法,其特征在于,所述根据所述漏洞情报元素信息编写漏洞情报数据包,具体包括:

根据所述漏洞情报元素信息编写漏洞情报;

获取受影响软件的docker镜像;

根据所述docker镜像,编写软件安装配置文件和软件依赖配置文件;

获取漏洞利用脚本;

根据所述漏洞利用脚本,编写漏洞利用脚本依赖配置文件;

根据所述漏洞情报、所述软件安装配置文件、所述软件依赖配置文件、所述漏洞利用脚本和所述漏洞利用脚本依赖配置文件,封装成面向机器处理的漏洞情报包。

3.根据权利要求2所述的云原生应用漏洞复现环境的自动化构建方法,其特征在于,所述根据所述漏洞情报数据包构建漏洞复现环境,具体包括:

将所述漏洞情报数据包提交到git代码托管仓库,触发ci/cd工具自动构建过程;

获取git代码托管仓库中的漏洞情报数据包,作为第一漏洞情报数据包;

将所述第一漏洞情报数据包进行编译;

根据所述受影响软件的docker镜像,生成软件环境;

将所述软件环境配置为具有目标漏洞的漏洞复现环境;

根据编译后的第一漏洞情报数据包中的漏洞利用元素信息,对所述漏洞复现环境进行漏洞存在性验证。

4.根据权利要求1所述的云原生应用漏洞复现环境的自动化构建方法,其特征在于,所述将所述漏洞复现环境进行交付和部署,具体包括:

将所述漏洞复现环境镜像交付到dockerregistry中进行存储;

从所述dockerregistry中获取漏洞复现环境镜像,运行容器实例部署到所需要的网络环境中。

5.一种云原生应用漏洞复现环境的自动化构建系统,其特征在于,包括:

漏洞情报元素信息获取模块,用于获取构建云原生应用漏洞所必要的漏洞情报元素信息;

漏洞情报数据包编写模块,用于根据所述漏洞情报元素信息编写漏洞情报数据包;

漏洞复现环境构建模块,用于根据所述漏洞情报数据包构建漏洞复现环境;

漏洞复现环境交付、部署模块,用于将所述漏洞复现环境进行交付和部署。

6.根据权利要求5所述的云原生应用漏洞复现环境的自动化构建系统,其特征在于,所述漏洞情报数据包编写模块,具体包括:

漏洞情报编写单元,用于根据所述漏洞情报元素信息编写漏洞情报;

docker镜像获取单元,用于获取受影响软件的docker镜像;

软件安装、依赖配置文件编写单元,用于根据所述docker镜像,编写软件安装配置文件和软件依赖配置文件;

漏洞利用脚本获取单元,用于获取漏洞利用脚本;

漏洞利用脚本依赖配置文件编写单元,用于根据所述漏洞利用脚本,编写漏洞利用脚本依赖配置文件;

漏洞情报包封装单元,用于根据所述漏洞情报、所述软件安装配置文件、所述软件依赖配置文件、所述漏洞利用脚本和所述漏洞利用脚本依赖配置文件,封装成面向机器处理的漏洞情报包。

7.根据权利要求6所述的云原生应用漏洞复现环境的自动化构建系统,其特征在于,所述漏洞复现环境构建模块,具体包括:

漏洞情报数据包提交单元,用于将所述漏洞情报数据包提交到git代码托管仓库,触发ci/cd工具自动构建过程;

第一漏洞情报数据包获取单元,用于获取git代码托管仓库中的漏洞情报数据包,作为第一漏洞情报数据包;

编译单元,用于将所述第一漏洞情报数据包进行编译;

软件环境生成单元,用于根据所述受影响软件的docker镜像,生成软件环境;

漏洞复现环境配置单元,用于将所述软件环境配置为具有目标漏洞的漏洞复现环境;

漏洞存在性验证单元,用于根据编译后的第一漏洞情报数据包中的漏洞利用元素信息,对所述漏洞复现环境进行漏洞存在性验证。

8.根据权利要求5所述的云原生应用漏洞复现环境的自动化构建系统,其特征在于,所述漏洞复现环境交付、部署模块,具体包括:

交付单元,用于将所述漏洞复现环境镜像交付到dockerregistry中,并进行存储;

部署单元,用于从所述dockerregistry中获取漏洞复现环境镜像,运行容器实例部署到所需要的网络环境中。

技术总结
本发明涉及一种云原生应用漏洞复现环境的自动化构建方法及系统。该方法通过获取构建云原生应用漏洞所必要的漏洞情报元素信息;根据所述漏洞情报元素信息编写漏洞情报数据包;根据所述漏洞情报数据包构建漏洞复现环境;将所述漏洞复现环境进行交付和部署。本发明根据漏洞情报自动构建出云原生应用漏洞复现环境。

技术研发人员:黄玮;隋爱娜;董航;安靖;范文庆;巩微
受保护的技术使用者:中国传媒大学
技术研发日:2020.01.14
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-21974.html

最新回复(0)