一种私有仓库Docker镜像信息采集系统及其采集方法技术方案

技术编号:28622355 阅读:60 留言:0更新日期:2021-05-28 16:18
一种私有仓库Docker镜像信息采集系统,包括Docker镜像采集中心和私有仓库服务器;所述Docker镜像采集中心包括配置模块、采集任务模块、存储模块和网络模块;所述Docker镜像采集中心在待采集镜像的私有仓库服务器上设置采集代理;采集代理用于通过编译文件创建具有采集功能的新镜像和创建以新镜像为运行基础的容器。本申请还提供一种私有仓库Docker镜像信息采集方法,步骤具体包括:采集代理为待采集的镜像增加用于信息采集的镜像层以构建新镜像:其中,增加的镜像层具有能够将镜像内容压缩放入采集文件夹中,并向Docker镜像采集中心发送采集文件夹中的镜像文件压缩包的功能;根据增加镜像层后的新镜像,建立以新镜像为运行基础的容器。本申请提高了系统的运行效率。

【技术实现步骤摘要】
一种私有仓库Docker镜像信息采集系统及其采集方法
本申请涉及私有仓库Docker镜像信息漏洞扫描
,尤其涉及一种私有仓库Docker镜像信息采集系统及其采集方法。
技术介绍
随着虚拟化技术的高速发展,容器技术逐渐成为各类行业和业务的主流部署方式,但是其打包和叠加层存储的形式使得对其进行信息采集和深度分析的难度增加。开发人员的不规范使用、开源软件漏洞、恶意软件注入等在镜像中的打包注入让基于镜像的容器环境和业务环境存在很多安全隐患。同时,容器镜像通过容器镜像仓库服务器进行管理和维护已经成为业内的事实标准,针对其进行的镜像采集和分析成为行业内的重点方向。面对这样的情况,通常对于远程镜像仓库服务器上的远程镜像的信息采集和分析方式通过分层解析和合并分析的方式实现。如开源软件Clair通过分层的方式解析容器镜像,在调用其接口时需要传入镜像层地址及其与父层的关联关系,以进行解析和扫描,在返回结果时则根据层来返回其与其父层链的聚合分析结果。然而这样的方式在层的解析时需要人工解析,无法做到自动化,并且在层分析结果聚合时无法消除层之间相同结果的覆盖性问题,即上层解决了父层的问题无法在总体结果中体现,并且Clair需要集中式的存储和分析镜像,在分析中心需要消耗大量的计算和存储性能。专利CN109918911A提供了一种针对远程仓库的镜像信息采集方式,从远程仓库中读取镜像的manifest并逐层进行下载扫描,这样的方式同样以层为单位进行扫描,并对层之间的关系进行聚合反馈,然而该专利技术没有提及在层关联时对覆盖性内容的处理方式。通常在镜像分析时更注重以镜像为整体的分析结果,该专利技术同样根据单层分析结果进行聚合分析,在扫描分析结果呈现关系中带来额外的分析和资源消耗,并且可能进行覆盖性检测。综上,现有镜像扫描方式大多以层扫描并提供镜像层的聚合扫描结果,带来额外的计算消耗和资源消耗,而少数以镜像为单位的扫描需要适配不同的叠加存储引擎,通过外部构建叠加存储的方式进行信息镜像信息还原,这样的方式带来额外的适配和更多的故障点,对原有系统和业务可能带来稳定性影响,具有一定缺陷。
技术实现思路
本申请的提供一种私有仓库Docker镜像信息采集系统,包括Docker镜像采集中心和私有仓库服务器;所述私有仓库服务器包括镜像仓库,所述镜像仓库由Docker镜像组成;所述Docker镜像采集中心包括配置模块、采集任务模块、存储模块和网络模块;所述配置模块包括配置Docker镜像采集中心的网络通信地址以及配置私有仓库服务器的权限认证信息;所述采集任务模块用于获取私有仓库服务器中的镜像列表,根据获取的镜像列表创建采集任务,向私有仓库服务器下发采集任务,待私有仓库服务器完成采集任务后收集采集结果;其中,所述镜像列表至少包括镜像仓库名、镜像标签和镜像ID;存储模块用于提供系统底层存储以支撑整体系统;网络模块用于提供网络通讯,实现远程网络交互;其中,所述Docker镜像采集中心在待采集镜像的私有仓库服务器上设置采集代理;采集代理能够获取Docker镜像采集中心的配置模块的信息;通过获得私有仓库服务器的权限认证信息,采集代理获得对本地私有仓库服务器读写和调用的权限;通过获得的Docker镜像采集中心的网络通信地址,采集代理能够将采集到的镜像信息发送至Docker镜像采集中心;采集代理包括本地采集模块和远程任务执行模块;本地采集模块用于获取本地私有仓库服务器上待采集的镜像列表;远程任务执行模块用于执行Docker镜像采集中心下发的采集任务,通过编译文件创建具有采集功能的新镜像和创建以新镜像为运行基础的容器。其中,远程任务执行模块至少包括任务解析单元、任务执行单元和资源清理单元;其中,任务解析单元用于解析Docker镜像采集中心下发的采集任务;任务执行单元用于对解析后的采集任务进行逻辑组织和执行;资源清理单元用于清理采集任务结束后的各项资源,包括收集容器运行结果和容器运行日志、删除容器和镜像文件。其中,所述Docker镜像采集中心的网络通信地址包括IP地址和服务端口。其中,私有仓库服务器的权限认证信息包括私有仓库服务器类型、私有仓库服务器认证类型和私有仓库服务器认证信息;其中,私有仓库服务器认证类型包括但不限于账号密码方式和Token方式,其对应的私有仓库服务器认证信息包括用户名、密码和Token。其中,Docker镜像采集中心和采集代理通过容器指令接口或通过私有仓库服务器API获取私有仓库服务器中镜像列表。本申请还提供一种使用如上述的私有仓库Docker镜像信息采集系统的Docker镜像信息采集方法,步骤具体包括:S10,配置Docker镜像采集中心的网络通信地址以及私有仓库服务器的权限认证信息;S20,Docker镜像采集中心获取远程私有仓库服务器中的镜像列表;其中,镜像列表至少包括镜像仓库名、镜像标签以及镜像ID;S30,Docker镜像采集中心根据获得的镜像列表建立采集任务,在待采集的镜像所在的私有仓库服务器上设置采集代理;将采集任务发送至对应采集代理;其中,所述采集任务至少包括采集任务编号和待采集的镜像;S40,采集代理获得Docker镜像采集中心的本地私有仓库服务器的权限认证信息,采集代理获取本地私有仓库服务器上待采集的镜像列表,为待采集的镜像增加用于信息采集的镜像层以构建新镜像:其中,增加的镜像层具有能够将镜像内容压缩放入采集文件夹中,并向Docker镜像采集中心发送采集文件夹中的镜像文件压缩包的功能;根据增加镜像层后的新镜像,建立以新镜像为运行基础的容器;S50,在安全环境下启动容器,同时提供Docker镜像采集中心的网络通讯地址,容器自动将采集文件夹中的镜像文件压缩包发送给Docker镜像采集中心;S60,采集代理持续管理容器的状态,并在镜像采集任务结束时回收资源;当所有采集任务完成时,采集代理向Docker镜像采集中心反馈采集任务的结果。其中,在步骤S20中,还包括步骤S21,在建立采集任务时,当相同ID的镜像已经在采集任务列表中时,跳过该镜像的采集任务。其中,Docker镜像采集中心和采集代理使用DockerAPI或者容器指令获取私有仓库Docker镜像列表。其中,在步骤S40中,使用Dockerfile编译文件为基础镜像添加新镜像层,在基础镜像的相同目录下添加采集文件夹和压缩工具文件夹;增加的镜像层具有将基础镜像压缩成的压缩包放入采集文件夹中,并向Docker镜像采集中心发送采集文件夹中的镜像文件压缩包的功能。其中,Docker镜像采集中心向采集代理发送的采集任务和采集代理向Docker镜像采集中心反馈的采集任务的结果都以JSON表示。本申请实现的有益效果如下:本专利技术基于镜像为单位进行信息采集与扫描,从而减少分层采集时带来的存储消耗,同时以镜像为单位进行信息采集还可以去除不同层相同文件名文件的重复扫描消耗,提高扫描效率,降低扫描中计算消耗。另外,本专利技术基本文档来自技高网
...

【技术保护点】
1.一种私有仓库Docker镜像信息采集系统,包括Docker镜像采集中心和私有仓库服务器;所述私有仓库服务器包括镜像仓库,所述镜像仓库由Docker镜像组成;/n所述Docker镜像采集中心包括配置模块、采集任务模块、存储模块和网络模块;/n所述配置模块包括配置Docker镜像采集中心的网络通信地址以及配置私有仓库服务器的权限认证信息;/n所述采集任务模块用于获取私有仓库服务器中的镜像列表,根据获取的镜像列表创建采集任务,向私有仓库服务器下发采集任务,待私有仓库服务器完成采集任务后收集采集结果;其中,所述镜像列表至少包括镜像仓库名、镜像标签和镜像ID;/n存储模块用于提供系统底层存储以支撑整体系统;/n网络模块用于提供网络通讯,实现远程网络交互;/n其中,所述Docker镜像采集中心在待采集镜像的私有仓库服务器上设置采集代理;采集代理能够获取Docker镜像采集中心的配置模块的信息;通过获得私有仓库服务器的权限认证信息,采集代理获得对本地私有仓库服务器读写和调用的权限;通过获得的Docker镜像采集中心的网络通信地址,采集代理能够将采集到的镜像信息发送至Docker镜像采集中心;/n采集代理包括本地采集模块和远程任务执行模块;本地采集模块用于获取本地私有仓库服务器上待采集的镜像列表;远程任务执行模块用于执行Docker镜像采集中心下发的采集任务,通过编译文件创建具有采集功能的新镜像和创建以新镜像为运行基础的容器。/n...

【技术特征摘要】
1.一种私有仓库Docker镜像信息采集系统,包括Docker镜像采集中心和私有仓库服务器;所述私有仓库服务器包括镜像仓库,所述镜像仓库由Docker镜像组成;
所述Docker镜像采集中心包括配置模块、采集任务模块、存储模块和网络模块;
所述配置模块包括配置Docker镜像采集中心的网络通信地址以及配置私有仓库服务器的权限认证信息;
所述采集任务模块用于获取私有仓库服务器中的镜像列表,根据获取的镜像列表创建采集任务,向私有仓库服务器下发采集任务,待私有仓库服务器完成采集任务后收集采集结果;其中,所述镜像列表至少包括镜像仓库名、镜像标签和镜像ID;
存储模块用于提供系统底层存储以支撑整体系统;
网络模块用于提供网络通讯,实现远程网络交互;
其中,所述Docker镜像采集中心在待采集镜像的私有仓库服务器上设置采集代理;采集代理能够获取Docker镜像采集中心的配置模块的信息;通过获得私有仓库服务器的权限认证信息,采集代理获得对本地私有仓库服务器读写和调用的权限;通过获得的Docker镜像采集中心的网络通信地址,采集代理能够将采集到的镜像信息发送至Docker镜像采集中心;
采集代理包括本地采集模块和远程任务执行模块;本地采集模块用于获取本地私有仓库服务器上待采集的镜像列表;远程任务执行模块用于执行Docker镜像采集中心下发的采集任务,通过编译文件创建具有采集功能的新镜像和创建以新镜像为运行基础的容器。


2.如权利要求1所述的私有仓库Docker镜像信息采集系统,其中,远程任务执行模块至少包括任务解析单元、任务执行单元和资源清理单元;其中,任务解析单元用于解析Docker镜像采集中心下发的采集任务;任务执行单元用于对解析后的采集任务进行逻辑组织和执行;资源清理单元用于清理采集任务结束后的各项资源,包括收集容器运行结果和容器运行日志、删除容器和镜像文件。


3.如权利要求1所述的私有仓库Docker镜像信息采集系统,其中,所述Docker镜像采集中心的网络通信地址包括IP地址和服务端口。


4.如权利要求1所述的私有仓库Docker镜像信息采集系统,其中,私有仓库服务器的权限认证信息包括私有仓库服务器类型、私有仓库服务器认证类型和私有仓库服务器认证信息;其中,私有仓库服务器认证类型包括但不限于账号密码方式和Token方式,其对应的私有仓库服务器认证信息包括用户名、密码和Token。


5.如权利要求1所述的私有仓库Docker镜像信息采集系统,其中,Docker镜像采集中心和采集代理通过容器指令接口或通...

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

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

1