Docker安全风险,原来有这么多

作者:媒体转发 时间:2018-06-27 16:50

字号
技术沙龙 | 6月30日与多位专家探讨技术高速发展下如何应对运维新挑战!

Docker是一种开源的基于LXC的应用容器引擎,因其轻量、弹性伸缩、快速部署、可移植等优势,在大型互联网企业中被广泛应用。随着Docker技术的发展与普及,其带来安全问题不容忽视。本文通过介绍Docker实现原理,对Docker所引入的安全脆弱性问题分析总结,对使用者在容器安全问题方面提供指导性建议。

Docker安全风险,原来有这么多

简介

Docker的设计理念是“Build,ShipandRunAnyApp,Anywhere”,可实现对应用的封装、部署、运行等生命周期管理。应用通过镜像的方式部署于任何环境中,可避免各团队之间因沟通不畅产生的协作问题,Docker现已成为企业实现DevOps目标的重要工具。

Docker安全风险,原来有这么多

基本概念

01.Docker镜像(Image)

Docker镜像是动态容器的静态表示,包括容器所要运行时所需的程序、库、资源以及相关配置。镜像不包含任何动态数据,其内容在构建之后不会被改变。一个运行着的Docker容器是一个镜像的实例,多个容器可以共用一个镜像。

Dockerfile是Docker用来构建镜像的脚本文件,包含自定义的指令和格式。用户可以用统一的语法命令来根据需求进行配置,在不同的平台上进行分发,简化开发人员构建镜像的复杂过程。

仓库(Repository)

仓库是集中存放镜像文件的场所,每个仓库中可包含多个具备不同标签的镜像。仓库类似于Git工具,当用户创建自己的镜像后可以上传到公有或私有的仓库,当需要使用时,从仓库下载过来即可。

容器(Container)

容器是Docker镜像创建的实例,是静态镜像的运行时的实体。其本质是一个与宿主机系统共享内核但与系统中的其他进程资源相隔离的进程,它可以被启动、停止、删除。容器中会运行特定的应用,包含代码和相关的依赖文件。每个运行着的容器都有一个可写层(writablelayer,也称为容器层containerlayer),它位于若干只读层之上。运行时的所有变化,包括对文件的写和更新,都会保存在这个层中。

02.Docker系统架构

Docker安全风险,原来有这么多

Docker使用了传统的Client-Server架构,总架构如图1所示。用户通过Dockerclient与Dockerdaemon建立通信。Dockerdaemon是Docker最核心的后台进程,一般运行在宿主机之上,负责响应来自Dockerclient的请求,根据请求类型创建出指定的Job,完成构建、分发和运行Docker容器的工作。API负责提供进程交互的接口。Dockerdaemon、Dockerclient与API共同组成DockerEngine。Docker技术使用Docker镜像来创建实例容器。镜像可以从远程的仓库拉取,用户也可以上传镜像到仓库中。

Docker安全风险,原来有这么多

图1Docker容器系统架构

容器技术风险

Docker安全风险,原来有这么多

容器技术是一种新型的技术革命,不仅存在传统的主机安全问题,还带来了新型的安全威胁。本文主要介绍Docker容器技术引发的有别于传统安全的脆弱性。

01.镜像

容器基于容器镜像文件启动,镜像的安全将影响到整个容器的安全,为此RuiShu等人对镜像的安全漏洞进行调研,并在其《DockerHub安全漏洞分析》一文中给出了一份镜像的统计数据[2],数据如表1所示。

表1镜像中所含漏洞数量统计[2]

Docker安全风险,原来有这么多

由数据可以看出,无论是社区镜像或官方镜像都有较多的漏洞。现总结容器镜像安全脆弱性如下:

表2镜像安全脆弱性

Docker安全风险,原来有这么多

02.容器

基于镜像文件运行的容器是整个容器技术的核心,提供对外服务,与用户进行交互,此部分如不安全,将会对整个平台造成安全威胁,经调研其安全脆弱性如下:

表3容器安全脆弱性

Docker安全风险,原来有这么多

03.容器网络

责任编辑:CQITer新闻报料:400-888-8888   本站原创,未经授权不得转载
关键词 >>Docker 安全 风险
继续阅读
热新闻
推荐
关于我们联系我们免责声明隐私政策 友情链接