Docker Hub 中超过 30% 的官方镜像包含高危漏洞

【编者的话】Docker Hub是一个供Docker开发者用来上传/下载容器镜像的地方。为了认识其应对安全风险的能力如何,我们对其中的镜像进行了一次细致的研究。结果我们惊奇的发现,超过三成的官方仓库包含的镜像疑有高安全风险。

Docker Hub是一个供Docker开发者用来上传/下载 容器镜像的地方。为了认识其应对安全风险的能力如何,我们对其中的镜像进行了一次细致的研究。结果我们惊奇的发现,超过三成的官方仓库包含的镜像疑有高安全风险(如:Shellshock、Heartbleed、Poodle等)。对于普通的镜像,即那些被Docker用户上传的,没有经过任何权威机构验 证过的镜像,这个比例高达40%(样本的错误大约在3%)。

1.jpg

[图:多姿多彩的容器,图片来源自VSMagazine]

为了开展这次研究,我们下载了Docker Hub中的的镜像,然后分析其中的软件包和版本。然后我们使用来自Mitre、NVD(美国国家漏洞数据库)和Linux发行版自己的数据库来分析哪些镜 像易于受到攻击。我们开发一个开源的工具 Banyan Collector,并且使用一个叫做Banyan Insights的服务来生成这个研究中的数据。

尽管我们的分析是基于公共的Docker Hub进行的,我们预估这结果与那些使用私有容器注册中心的企业会类似。企业通常会不断基于那些口碑较好镜像来部署容器,依赖这些镜像的周期更新来获取最 新的软件包。尽管有这些措施,企业仍然有漏洞的威胁;更加严格的运维管理加上实时的监控对于保证安全必不可少。

在本文的剩余部分,我们简单的从高层次介绍下安全漏洞是如何分类,描述基于分析Docker Hub上官方和普通镜像中漏洞得到的结果,然后讨论下这份研究对于运维管理的意义。

安全漏洞的指定和分类

Mitre作为一个不以盈利为目的机构,指定并维护一份CVE(常见安全漏洞和威胁)的列表,每一个 CVE描述了在广泛发布的软件中的漏洞。由美国政府维护的NVD数据库列出了每一个CVE的影响,包含其波及的软件和相应的修复措施(或者尚未采取修复措 施的)。每一个Linux发行版也都维护了一个发行版特定的影响和提供修复该漏洞的软件包版本。

每一个漏洞都会被NVD和Linux的发行版指定一个分值。分值的范围从0到10,7.0到10.0属于高危漏洞,4.0-6.9之间的属于中危 漏洞,0-3.9的属于低危漏洞。这个分类考虑了一系列因素,包括利用该漏洞攻破系统所需要的复杂度(复杂度越低,分数越高)和该漏洞可能会造成的影响 (影响越大,分值越高)。下面是一些例子:

高危漏洞:如:ShellShock(bash)、Heartbleed(OpenSSL)

中危漏洞:如:Poodle(OpenSSL)

低危漏洞:如内存中数组的内存的分配可能会导致整形溢出

把漏洞划分为高中低漏洞的做法带有主观性,一些公司也可能会根据自己的情况来重新分类。而且,NVD指定的分值可能跟Linux发行版中的分值不 一致,并且可能会随着时间推移而更改。我们的研究中使用的漏洞的分值来源于UbuntuCentOS发行版指定的分值,对于Debian我们直接使用了 NVD数据库中分值,因为我们找不到任何关于Debian发行版对漏洞分类比较好的数据源。我们对Docker Hub在2015的5月20日的镜像做了一个快照,然后进行分析。我们也试了一下其他日期,得出的结论十分相近。

对于Docker Hub中官方仓库的评估

Docker维护着一个官方的仓库的列表,为软件厂商和机构(如Canonical、Debian、RedHat等)提供了一个即时更新它们最新容器镜像的渠道。官方仓库可以从他们的路径体现出来,他们的路径在library的命名空间下。举几个例子:library/ubuntulibrary/redis等。Docker Hub包含大约75个官方的仓库(在我们写这篇文章的时候),大概包含约1600的不同的标签,指向约960个不同的镜像。

2.png

[图一:官方有漏洞的镜像]

图一展示了根据分析Docker Hub上所有官方的镜像的得出的主要结果。超过1/3的镜像有高危漏洞,接近2/3的有高或中级危漏洞。这些统计数据让人无法平静,因为这些镜像中一些也是下载量最多的镜像(一些有几十万的下载量)。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/c0b48b7dea0214a95d90f4d954e97bfb.html