公开仓库中 Docker 镜像的漏洞分析结果发布

  • Hrishikesh Barua
  • 张卫滨

2017 年 4 月 9 日

话题:安全LinuxDevOps

Federacy 的一名研究人员发布了一项报告,该报告分析了公开仓库中 Docker 镜像的漏洞。24% 的镜像发现了明显的漏洞,其中基于 Ubuntu 的镜像漏洞最多,而基于 Debian 的镜像漏洞最少。

这项研究扫描了 133 个公开 Docker 仓库中的 91 个,其中每个仓库都有一个添加‘latest’标记的镜像,底层的镜像是一个主 Linux 分发版本并且带有可运行的包管理器。这里,使用了一个修改过的vuls 开源漏洞扫描器来扫描镜像。vuls 是用 Go 语言编写的,支持 Linux 和 FreeBSD。数据是通过 Federacy 内部构建的工具进行分析的。鉴于 vuls 还不支持Alpine和静态二进制文件,它们就从本次分析中排除了出去。计分是按照CVSS v2 标准计算得出的。

在扫描到的所有镜像中,其中的 24% 存在较为明显的漏洞,在这些漏洞中,11% 的风险等级为高,13% 的风险为中等,剩余的被视为潜在漏洞。扫描的 Linux 分发版本包括 Ubuntu、Debian 和 RHEL。基于 Ubuntu 的镜像在严重漏洞总数上的占比最高(27%),而 Debian 则是漏洞最少的分发版本(8%)。但是,基础的 Ubuntu 镜像并未包含任何已知的漏洞,这也就是说,所报告的这些漏洞是因为镜像创建者安装了其他的包和 / 或配置发生了变更引发的。另外,在官方仓库中,Debian 是占据主导地位的基础分发镜像(79%),Ubuntu 占据了 16%,而 RHEL 与这两者相比,其样本要小得多(4%)。

图片来源 : https://www.federacy.com/docker_image_vulnerabilities

在较新的 Debian 和 Ubuntu 释放版本中,所发现的问题都更少一些。其中的一个原因可能是在较新的分发版本中,安装的包更少,因此所造成的攻击面(attack surface)就会更小。在此之前,有一份类似的报告指出了 Docker Hub 镜像上 30% 的高优先级漏洞。

整体而言,最常见的漏洞是SSL Death Alert,对于 Ubuntu 也是如此,这种漏洞可能会导致基于 GnuTLS、OpenSSL 和NSS编译的软件产生 DoS 攻击,这样的软件就包括 nginx。而对于 Debian,最常见的是一个很严重的漏洞,但是它不太可能影响到大多数人,因为它涉及到缓存计时攻击(timing attacks)和对系统的本地访问。

对于 Docker 镜像扫描来说,vuls 并不是唯一可用的扫描器。vuls 在运行时会查询包管理器,从而得到安装的包、版本和变更日志。然后,它会将变更日志 CVE 与国际漏洞数据库(National Vulnerability Database,NVD)进行比对。另外的一个扫描器是Clair,它被Quay.io镜像库和 Kubernetes 社区所采用,用于它们所维护的所有镜像的扫描。除此之外,还有商业供应商比如Twistlock,它与各种云平台实现了集成。

尽管这个报告讨论了镜像所存在的风险,但是并没有提及如何解决它们的细节。其中的一些建议就是在镜像的构建过程中安装包更新、在包运行的时候自动更新以及在镜像的构建过程中添加漏洞分析过程。还有一个建议就是使用Alpine Linux或类似的分发版本,或者是构建静态二进制的镜像。

查看英文原文Public Docker Image Vulnerability Research Findings Released

安全LinuxDevOps