作为其开源安全现状年度报告的一部分,安全公司Snyk发布了一份特别针对Docker的安全报告,该报告显示容器镜像中的漏洞广泛存在。Snyk 的报告显示,DockerHub 中的 10 大官方 Docker 镜像(包括 node、httpd、postgres、nignx 等在内)每个至少有 30 个漏洞,其中有 500 多个漏洞的 node 镜像是顶级攻击者。Docker 表示,该问题甚至涉及 Docker 认证镜像,而这些镜像必须符合最佳实践并通过某些基线测试。
Snyk 提供的绝对数字确实令人担忧,但是,它们可能不代表该问题最困难的部分。在很多情况下,修复 Docer 镜像中的漏洞很容易,使用其依赖项的非易受攻击版本重建镜像就可以了。Snyk 表示,多达 44%的 Docker 镜像包含较新版本基础镜像中已删除的漏洞。更令人担忧的是,开发人员普遍缺乏安全的自主意识,他们往往没有意识到自身角色的重要性。Snyk 的调查显示,80%的开发人员在开发过程中不会测试他们的镜像,而 50%的开发人员根本没有扫描他们的镜像是否存在漏洞。
Snyk 表示,处理 Docker 镜像漏洞的最佳方法取决于三个关键实践。首先,作为一项卫生规则,对于给定的目的,开始的时候,选择使用最小的 Docker 镜像是非常便利的,不要添加任何不必要的包。其次,在开发和生产过程中都应该定期扫描镜像。最后,应该把镜像作为 CI/CD 管道的一部分加以重建,并且首选多阶段构建,因为它们有助于优化镜像。
Snyk 的开源安全现状报告的范围比 Docker 生态系统更广。基于对 500 多位开源开发人员和维护人员的调查,以及来自公共应用程序注册表、库数据集和 GitHub 存储库的数据最终完成了该报告。
InfoQ 就此问题采访了 Snyk 开发人员倡导者 Liran Tal 以获得更多信息。
InfoQ:Snyk 的报告显示,最近几年,开源库中发现的漏洞数量急剧增加。您是否能谈谈您是如何得到这个结论的?
Liran Tal:根据 Snyk 从cvedetails收集的信息,Snyk 追踪了在一些最流行的 Linux 发行版上公开的安全状态披露信息。Snyk 发现,红帽企业版 Linux、Ubuntu 和 Debian 中的安全漏洞在 2018 年增长了 3 倍。没错,没有漏掉小数点,增长了近 3.5 倍。
由于 Snyk 根据严重程度查看漏洞的细分,我们发现, 2017 年和 2018 年继续呈现了这个趋势,暴露的严重漏洞数量在增加。
InfoQ:提到 Docker,底层操作系统和系统库的安全是至关重要的。您能否对该报告提出的问题发表一下评论吗?
Liran Tal:Docker 镜像几乎总是会带有已知的漏洞,这也伴随着巨大的价值。系统库当然是操作系统中常见的工件,是构建 Docker 镜像的基础。随着越来越多的系统库和工具绑定在 Docker 镜像中,在镜像中发现安全漏洞的风险也随之增加。
大多数漏洞来自我们不显式使用的库。在大多数生态系统中,75%或更多的依赖项不是直接引入的,是通过我们使用的库隐式拉入的,Snyk 发现,所追踪的总体漏洞的 78%来自间接依赖项。
随着 2019 年容器持续在 IT 领域中的爆发性投入使用,容器安全威胁不断上升,现在,组织比以往更加重视把确保镜像安全放在首要位置。
Snyk 的开源安全报告有 50 页之多,包含了很多本文中没有提及的细节。如果您对软件安全及如何改进它感兴趣,请务必阅读该报告。
阅读英文原文:Security Landscape of the Docker Ecosystem and Best Practices
评论