基于自建知识库的容器方法技术

技术编号:31916108 阅读:14 留言:0更新日期:2022-01-15 12:58
本发明专利技术涉及一种基于自建知识库的容器方法,其包括以下步骤:对漏洞发布平台进行漏洞信息获取,建立知识库;提取镜像至本地;扫描镜像包;结果展示。由此,能够实现镜像包的扫描,并脱离本地私有仓库环境、网络环境等依赖约束。弥补了镜像扫描的缺陷,支持CNNVD/NVD等国内漏洞库。能够实现镜像的持续管理,当出现了新的漏洞后,能够及时进行检测解析。能够及时进行检测解析。能够及时进行检测解析。

【技术实现步骤摘要】
基于自建知识库的容器方法


[0001]本专利技术涉及一种容器建立方法,尤其涉及一种基于自建知识库的容器方法。

技术介绍

[0002]随着越来越多的企业将数据和工作负载迁移到云上,很多企业都依赖与容器——将代码及其相关项封装在一起的软件单元,以便应用程序在不同的计算环境之间迁移时能够可靠运行。Clemson大学云架构师ColemcKnight表示,容器化被认为是一种以安全方式部署应用程序和服务的强大技术。
[0003]容器提供了将应用程序的代码、配置、依赖项打包到单个对象的标准方法。容器建立在两项关键技术之上:Linux Namespace和Linux Cgroups。
[0004]常见的容器一共有7个攻击面:Linux Kernel、Namespace/Cgroups/Aufs、Seccomp

bpf、Libs、Language VM、User Code、Container(Docker)engine。容器的内核与宿主内核共享,使用Namespace与Cgroups这两项技术,使容器内的资源与宿主机隔离,所以Linux内核产生的漏洞能导致容器逃逸。因此,容器的安全检测尤为重要。
[0005]现有容器检测如clair,可以对本地容器进行检测,依赖于nvd漏洞知识库。Clair定期从配置的源获取漏洞元数据然后存进数据库。客户端使用Clair API处理镜像,获取镜像的特征并存进数据库。客户端使用Clair API从数据库查询特定镜像的漏洞情况,为每个请求关联漏洞和特征,避免需要重新扫描镜像。当更新漏洞元数据时,将会有系统通知产生。
[0006]另外,还有webhook用于配置将受影响的镜像记录起来或者拦截其部署。Clair可以直接集成到容器仓库中,以便仓库负责代表用户与Clair进行交互。这种类型的设置避免了手动扫描,并创建了一个合理的接收端以便Clair的漏洞通知到位。仓库还可用于授权,以避免泄露用户不应当访问的镜像漏洞信息。Clair可以集成到CI/CD管道中,如此一来当生成镜像时,将镜像推送到仓库之后触发Clair扫描该镜像的请求。
[0007]但是,现有的知识库扫描建立时存在如下的缺陷:
[0008]1、使用如clair等工具扫描,因涉及到知识库更新,解析前需更新知识库解析速度慢。
[0009]2、目前主流镜像扫描工具都是用的NVD(美国国家漏洞库),不支持其他漏洞来源,对国内软件、漏洞支持不到位。同时,不能支持未公开的漏洞。
[0010]3、若使用clair等工具扫描,只能扫描本地的镜像仓库,对代码中DockerFile里配置的镜像,不能自动扫描。同时,不能扫描远端镜像仓库里的镜像。
[0011]4、无法支持自定义策略,对特定漏洞、依赖包没有黑白名单等检测机制。
[0012]5、操作及界面均为英文,本地化支持差。
[0013]有鉴于上述的缺陷,本设计人,积极加以研究创新,以期创设一种基于自建知识库的容器方法,使其更具有产业上的利用价值。

技术实现思路

[0014]为解决上述技术问题,本专利技术的目的是提供一种基于自建知识库的容器方法。
[0015]本专利技术的基于自建知识库的容器方法,其包括以下步骤:步骤一,对漏洞发布平台进行漏洞信息获取,建立知识库;步骤二,提取镜像至本地;步骤三,扫描镜像包;步骤四,结果展示。
[0016]进一步地,上述的基于自建知识库的容器方法,其中,所述步骤一中,漏洞发布平台包括NVD平台、CNNVD平台、CNVD平台中的一种或是多种,通过爬虫对漏洞发布平台进行爬取,将爬取后的信息建立知识库。
[0017]更进一步地,上述的基于自建知识库的容器方法,其中,所述爬取的预设为关联项目版本和漏洞关系,所述知识库包含漏洞、软件版本关联表。
[0018]更进一步地,上述的基于自建知识库的容器方法,其中,所述步骤二中,通过Docker构建依赖分层,创建基础镜像、复制文件、编译文件以及入口文件,对Docker镜像的扫描,分别获取代码包、镜像包、远程镜像。
[0019]更进一步地,上述的基于自建知识库的容器方法,其中,所述代码包的获取方式为,提取代码包中的DockerFile文件,获取DockerFile文件中的基础镜像名称、版本,使用docker pull命令拉取所有镜像到本地。
[0020]更进一步地,上述的基于自建知识库的容器方法,其中,所述镜像包的获取方式为,直接上传镜像包至服务器。
[0021]更进一步地,上述的基于自建知识库的容器方法,其中,所述远程镜像的获取方式为,提前配置好远程仓库连接方式,利用docker pull命令拉取镜像到本地,利用docker save命令输出镜像二进制文件。
[0022]更进一步地,上述的基于自建知识库的容器方法,其中,所述步骤三中包括以下步骤:1)解压镜像包,得到分层的镜像文件夹;2)遍历不同层级的文件夹,扫描文件夹中的文件列表,得到文件路径md5值的映射表;3)通过md5值到漏洞知识库检索,若无法得到检索结果,则再利用文件名到知识库中检索,最终得到漏洞列表;4)将扫描结果保存至数据库中。
[0023]更进一步地,上述的基于自建知识库的容器方法,其中,所述步骤4)中,将解析好的数据以json字符串形式存入数据库。
[0024]再进一步地,上述的基于自建知识库的容器方法,其中,所述结果展示为取出数据库中的解析结果,以依赖包为单位去重展示。实施期间,可取出数据库中的树形结构json字符串,利用树形结构展示插件进行展示。或是,所述结果展示为表格展示,所述表格展示中包含序号、镜像名、版本、风险等级、推荐修复版本、漏洞内容。
[0025]借由上述方案,本专利技术至少具有以下优点:
[0026]1、能够实现镜像包的扫描,并脱离本地私有仓库环境、网络环境等依赖约束。
[0027]2、弥补了镜像扫描的缺陷,支持CNNVD/NVD等国内漏洞库。
[0028]3、能够实现镜像的持续管理,当出现了新的漏洞后,能够及时进行检测解析。
[0029]上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,并可依照说明书的内容予以实施,以下以本专利技术的较佳实施例并配合附图详细说明如后。
附图说明
[0030]图1是扫描镜像包的实施示意图。
具体实施方式
[0031]下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。以下实施例用于说明本专利技术,但不用来限制本专利技术的范围。
[0032]如图1的基于自建知识库的容器方法,其与众不同之处在于包括以下步骤:
[0033]步骤一,对漏洞发布平台进行漏洞信息获取,建立知识库。实施期间,漏洞发布平台包括NVD平台、CNNVD平台、CNVD平台中的一种或是多种,通过爬虫对漏洞发布平台进行爬取,将爬取后的信息建立知识库。建立期间,可包含去重、翻译、关联项目、关联组件、人工审核等等步骤。这样,可以实本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于自建知识库的容器方法,其特征在于包括以下步骤:步骤一,对漏洞发布平台进行漏洞信息获取,建立知识库;步骤二,提取镜像至本地;步骤三,扫描镜像包;步骤四,结果展示。2.根据权利要求1所述的基于自建知识库的容器方法,其特征在于:所述步骤一中,漏洞发布平台包括NVD平台、CNNVD平台、CNVD平台中的一种或是多种,通过爬虫对漏洞发布平台进行爬取,将爬取后的信息建立知识库。3.根据权利要求2所述的基于自建知识库的容器方法,其特征在于:所述爬取的预设为关联项目版本和漏洞关系,所述知识库包含漏洞、软件版本关联表。4.根据权利要求1所述的基于自建知识库的容器方法,其特征在于:所述步骤二中,通过Docker构建依赖分层,创建基础镜像、复制文件、编译文件以及入口文件,对Docker镜像的扫描,分别获取代码包、镜像包、远程镜像。5.根据权利要求4所述的基于自建知识库的容器方法,其特征在于:所述代码包的获取方式为,提取代码包中的DockerFile文件,获取DockerFile文件中的基础镜像名称、版本,使用docker pull命令拉取所有镜像到本地。6.根据权利要求4所述的基于自建知识...

【专利技术属性】
技术研发人员:唐忱
申请(专利权)人:苏州棱镜七彩信息科技有限公司
类型:发明
国别省市:

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

1