一种本地Docker镜像信息采集系统及其采集方法技术方案

技术编号:28622605 阅读:13 留言:0更新日期:2021-05-28 16:18
一种本地Docker镜像信息采集系统,包括获取基础信息模块、挂载采集文件夹模块、建立新镜像模块、执行采集模块以及存储模块;所述获取基础信息模块用于确定待采集的本地Docker镜像;建立新镜像模块用于建立能够将镜像信息拷贝到采集文件夹的新镜像;执行采集模块用于启动新镜像对应的容器。本申请还提供一种镜像信息采集方法,步骤具体包括:获取Docker镜像的基础信息,确定待采集的本地Docker镜像;为待采集的Docker镜像提供采集文件夹挂载目录;在镜像的原始镜像层上增加能够将镜像文件内容拷贝到采集文件夹的新镜像层,形成新镜像;在安全环境下,运行以新镜像为运行基础的容器,在运行中执行将镜像文件内容拷贝到采集文件夹的操作。本申请提高了系统的运行效率。

【技术实现步骤摘要】
一种本地Docker镜像信息采集系统及其采集方法
本申请涉及对Docker镜像信息的漏洞扫描的
,尤其涉及一种本地Docker镜像信息采集系统及其采集方法。
技术介绍
随着虚拟化技术的高速发展,容器技术逐渐成为各类行业和业务的主流部署方式,容器是基于镜像来创建生成的,镜像是构建容器的基础。具体的说,镜像可以是一种文件系统,而容器是镜像运行的实例。其中,作为容器基础的Docker镜像是一种分层结构,镜像的每一层都称为一个镜像层,其中,下层镜像层是上层镜像层的变更基础,镜像的变更都发生在上一层,也就是说,上层镜像层是在下层镜像层的基础上进行变更。随着容器技术应用的推广和普及,容器安全问题也日益引起关注,当需要使用容器技术时,需要获得容器的镜像,Docker镜像安全从而成为容器安全的一个重要方面。Docker镜像包含了容器运行时的基本系统环境,包括文件系统和应用软件,若其中存在安全漏洞,当容器基于包含漏洞的Docker镜像运行时,攻击者即可利用Docker镜像中携带的漏洞进行攻击,因此,检查Docker镜像的安全性是一个重要的环节。而镜像文件中的打包和叠加层存储的形式使得对其进行信息采集和深度分析的难度增加。开发人员的不规范使用、开源软件漏洞、恶意软件注入等在镜像中的打包注入让基于镜像的容器环境和业务环境存在很多安全隐患。面对这样的情况,通常使用的漏洞扫描的方法是通过镜像信息采集和分析对其进行解析以供进一步分析,一般是使用开源软件Clair通过分层的方式解析Docker镜像,将Docker镜像按逐层解压分析的方式来进行,但这样的方式无法以镜像为单位进行分析,在镜像层与层之间具有文件覆盖情况时,还需要进行额外的分析,并且这种解析方法需要在主机内存中解压文件,这就对主机资源带来了额外的性能消耗。另外,专利号为CN109933342A的申请文件公开了一种从本地docker镜像中提取文件内容的方法及装置,该专利技术专利首先对本地镜像进行存储引擎解析,并根据存储引擎的不同进行不同的适配,以逐层叠加的还原镜像文件,这种方式采用了以镜像为单位进行解析的方式,然而其对不同存储引擎的适配和调用带来了额外的计算消耗,同时适配的工作还带来了额外的系统故障点,对本地Docker镜像系统可能带来一定的稳定性影响。综上,现有镜像的漏洞扫描大多基于层信息进行逐层分析,这样就会带来额外的计算消耗和资源消耗,而少数以镜像为单位的扫描需要适配不同的叠加存储引擎,通过外部构建叠加存储的方式进行信息镜像信息还原,这样的方式带来额外的适配和更多的故障点,对原有系统和业务可能带来稳定性影响,具有一定缺陷。
技术实现思路
本申请提供一种本地Docker镜像信息采集系统,包括获取基础信息模块、挂载采集文件夹模块、建立新镜像模块、执行采集模块以及存储模块;所述获取基础信息模块用于获取本地待采集的Docker镜像的基础信息;所述镜像基础信息至少包括ID、标签和仓库名;所述挂采集文件夹模块能够为每个待采集的镜像配置相应的采集文件夹和挂载路径;建立新镜像模块用于在镜像上增加新镜像层,建立能够将镜像信息拷贝到采集文件夹的新镜像;执行采集模块用于启动新镜像对应的容器,容器运行,将镜像信息拷贝到采集文件夹,完成采集任务;所述存储模块用于提供底层存储基础。其中,还包括容器管理模块,用于维护和管理以新镜像为运行基础的容器的运行状态;容器管理模块包括获取容器状态模块、处理容器异常模块以及回收容器模块。所述获取容器状态模块用于持续性的获取容器状态信息;所述处理容器异常模块用于通过获取到的容器状态信息判断容器是否异常;所述回收容器模块用于将完成信息采集的容器回收。其中,所述存储模块包括镜像基础信息存储模块、采集任务存储模块以及采集结果存储模块;所述基础信息获取模块与所述存储模块交互存储。其中,所述镜像基础信息还包括扫描时间、镜像大小和镜像架构。本申请还包括一种本地Docker镜像信息采集系统的镜像信息采集方法,步骤具体包括:S10,获取本地待采集的Docker镜像的基础信息,所述镜像基础信息至少包括ID、标签和仓库名;S20,建立镜像信息采集任务,为待采集的Docker镜像提供采集文件夹挂载目录;S30,在镜像的原始镜像层上增加能够将镜像文件内容拷贝到采集文件夹的新镜像层,从而形成新镜像;S40,在以新镜像为运行基础的容器运行时,执行将镜像文件内容拷贝到采集文件夹的操作。其中,在步骤S40中,还包括:所述采集文件夹为虚拟文件夹,在通过新镜像启动容器时,增加外部磁盘映射指令,将虚拟的采集文件夹内容映射至根目录下的实体文件夹,作为容器的运行基础。其中,在步骤S10中,使用DockerAPI或者容器指令获取本地待采集的Docker镜像的基础信息,形成基础信息列表。其中,遍历基础信息列表,判断是否已经为内容相同的镜像进行过镜像信息的采集,如果已经为内容相同的镜像进行过采集,则将已完成的采集结果关联至该镜像,跳过该镜像,进行下一个任务。其中,在步骤S40之后,还包括步骤S50,在逐步启动以新镜像为运行基础的容器后,对容器状态持续监控,当容器正常停止运行时,删除容器;当容器异常停止运行时,记录错误并删除容器。本申请实现的有益效果如下:本专利技术基于原生容器环境构建采集系统,为待扫描镜像添加镜像层形成新镜像,并基于新镜像构造新容器,在安全环境下运行新容器进行信息采集,通过这样的方式能够屏蔽对镜像存储方式的不同而引起的额外适配和程序处理工作,从而提高系统运行效率。同时,在采集任务构建中,通过镜像ID区别镜像唯一性,以去除重复内容镜像的采集任务,从而实现更高性能的镜像信息采集。并且,本专利技术使用技术主要基于原生容器环境,基于原生API或指令构建镜像和容器编译、运行、状态维护、存储等功能,没有外部运行时环境的引入和适配,因此可以极大程度降低采集系统故障点、减少采集系统对原有系统的影响,保障系统整体稳定性。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域技术人员来讲,还可以根据这些附图获得其他的附图。图1a、1b为Docker镜像的内容进行更改时镜像层文件的逻辑结构图。图1c为容器运行时将镜像作为一个整体进行读取时的逻辑结构图。图2为本申请本地Docker镜像信息采集系统的逻辑结构图。图3位本申请本地Docker镜像信息采集方法的步骤流程图具体实施方式下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。Docker是一个开本文档来自技高网
...

【技术保护点】
1.一种本地Docker镜像信息采集系统,包括获取基础信息模块、挂载采集文件夹模块、建立新镜像模块、执行采集模块以及存储模块;/n所述获取基础信息模块用于获取Docker镜像的基础信息,确定待采集的本地Docker镜像;所述基础信息至少包括ID、标签和仓库名;/n所述挂载采集文件夹模块能够为每个待采集的镜像配置相应的采集文件夹和挂载路径;/n建立新镜像模块用于在镜像上增加新镜像层,建立能够将镜像信息拷贝到采集文件夹的新镜像;/n执行采集模块用于启动新镜像对应的容器,容器在安全环境下运行,将镜像信息拷贝到所述采集文件夹;/n所述存储模块用于提供底层存储基础。/n

【技术特征摘要】
1.一种本地Docker镜像信息采集系统,包括获取基础信息模块、挂载采集文件夹模块、建立新镜像模块、执行采集模块以及存储模块;
所述获取基础信息模块用于获取Docker镜像的基础信息,确定待采集的本地Docker镜像;所述基础信息至少包括ID、标签和仓库名;
所述挂载采集文件夹模块能够为每个待采集的镜像配置相应的采集文件夹和挂载路径;
建立新镜像模块用于在镜像上增加新镜像层,建立能够将镜像信息拷贝到采集文件夹的新镜像;
执行采集模块用于启动新镜像对应的容器,容器在安全环境下运行,将镜像信息拷贝到所述采集文件夹;
所述存储模块用于提供底层存储基础。


2.如权利要求1所述的本地Docker镜像信息采集系统,其中,还包括容器管理模块,用于维护和管理以新镜像为运行基础的容器的运行状态;容器管理模块包括获取容器状态模块、处理容器异常模块以及回收容器模块。
所述获取容器状态模块用于持续性的获取容器状态信息;所述处理容器异常模块用于通过获取到的容器状态信息判断容器是否异常;所述回收容器模块用于将完成信息采集的容器回收。


3.如权利要求1所述的本地Docker镜像信息采集系统,其中,所述存储模块包括镜像基础信息存储模块、采集任务存储模块以及采集结果存储模块;所述获取基础信息模块与所述存储模块交互存储。


4.如权利要求1所述的本地Docker镜像信息采集系统,其中,所述镜像基础信息还包括扫描时间、镜像大小和镜像架构。


5.一种使用如权利要求1-4任一项所述的本地Docker镜像信息采集系统的镜像信息...

【专利技术属性】
技术研发人员:胡毅勋姚雪郭春梅
申请(专利权)人:启明星辰信息技术集团股份有限公司北京启明星辰信息安全技术有限公司北京网御星云信息技术有限公司
类型:发明
国别省市:北京;11

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

1