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
活动推荐:
2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。
评论