众所周知,Kubernetes赢得了容器之争。但准确地说,Kubernetes赢得的是容器运行时之争。至于容器镜像之争,胜出的是Docker。根据《2019年开源安全状况报告》,每两周下载的Docker容器超过10亿个,这一数据足以说明这一点。Docker Hub之于企业,就如同Apple AppStore和Google Play之于消费者。
容器镜像涵盖广泛,从基础操作系统到应用堆栈,从数据库、中间件到支持node.js、Python和Go的应用引擎,甚至还包括应用服务的生态系统集成。
如果贵组织与大多数部署容器的组织一样,很可能正在Kubernetes环境中部署Docker镜像。
如果您正在这样做,那么很可能也在部署存在漏洞的容器镜像。前述Snyk研究发现:“最常用的十大默认Docker镜像中,每个都包含至少30个存在漏洞的系统库。”该报告还指出:“许多Docker镜像中通常都包含系统库,因为这些镜像依赖父镜像,而父镜像通常以Linux发行版为基础。”

因此,各组织一直在下载大量存在漏洞的镜像。根据Snyk的数据,三大主流Linux发行版中的漏洞数量都在稳步增加。
因此,以下结果并不令人意外:Tripwire《2019年容器安全状况报告》发现,60%的受访者在过去12个月中曾遭遇容器安全事件。近五分之一(17%)的受访者之所以遭遇此类事件,可能是因为其组织明知存在漏洞,却仍然部署了相关镜像。与此同时,Snyk发现,在含有已知漏洞的Docker镜像中,44%已有更新且更安全的基础镜像可用。换言之,只需拉取最新镜像即可降低风险。另有22%的漏洞镜像只需重新构建即可修复。
真的。这可不是我编出来的。
“安全左移”不仅强调将安全实践融入开发和交付生命周期,也同样重视部署适当的应用安全服务(BOT防御、Web应用防火墙、身份和访问控制)。这些实践包括扫描代码和容器中的已知漏洞,然后修复这些漏洞。
之所以强调这一点,是因为有17%的受访者明知容器镜像中存在漏洞,却未修复便进行了部署。
我们可以做得更好。速度固然重要,但只求速度、不顾安全会带来风险,不仅危及组织,也会影响最终使用这些匆忙推出的应用的客户。
如果尚未采用安全的容器化实践,建议采取以下措施:
- 评估使用情况。许多组织并不清楚自己使用开源和第三方源代码及镜像的范围究竟有多广。全面掌握使用情况是重要的第一步。对于那些甚至不知道正在使用的软件,组织无法解决其中的漏洞。
- 标准化。 尽量在应用和运维之间达成共识,并尽可能统一采用最少数量的容器镜像和组件。这样可以让整个组织共同承担安全责任,最终提升所有人的安全保障。
- 安全代码审查。如果使用了第三方组件或脚本(几乎可以肯定会使用),请对其进行审查,并通过私有存储库交付或构建。
- 安全容器审核。如果使用第三方镜像,请审核并认证其安全性,然后通过私有存储库交付。
- 订阅安全信息渠道。 如果依赖某个镜像或源代码,请找到其发布潜在漏洞信息的渠道并订阅。毕竟,及时了解信息是应对问题的重要一步。
关于作者

Lori MacVittie是F5首席技术官办公室的杰出工程师兼首席技术布道师,在应用交付、自动化战略和基础设施领域拥有深厚的专业知识。无论是为AI智能体定义防护机制、剖析脆弱的多云架构,还是探索可扩展系统的极限,她都善于化繁为简。她在应用开发、IT架构以及网络和系统运维领域拥有30多年的行业经验。加入F5之前,她曾担任技术编辑,并因出色表现获得奖项。 MacVittie拥有计算机科学硕士学位,著述颇丰,出版作品涵盖安全、云和企业架构领域。她还热衷于桌面游戏和电子游戏,并且对奶酪有着毫不掩饰的鲜明见解。
Lori Mac Vittie 的更多博客文章相关博客文章
Thingbot正转变为攻击平台
Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。
借助F5全新Quick Start,在AWS上快速开展业务
在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。