博客

实践安全容器化

Lori MacVittie 缩略图
洛里·麦克维蒂
2019 年 5 月 20 日发布

每个人都知道 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% 的受访者在过去十二个月中经历过集装箱安全事件。 对于近五分之一(17%)的人来说,这可能是因为组织意识到了这些漏洞 - 但仍然部署了它们。 尽管 Snyk 发现 44% 的 Docker 镜像含有已知漏洞,但都有更新、更安全的基础镜像可用。 换句话说,只需提取最新的图像就可以降低风险。 另外 22% 存在漏洞的图像可以通过简单地重建图像来解决。

真的。 我无法编造这些东西。

“将安全左移”的重点在很大程度上在于部署适当的安全应用服务(BOT 防御、Web应用防火墙、身份和访问控制),因为它将安全实践纳入开发和交付生命周期。  这些实践包括扫描代码和容器以查找已知漏洞,然后解决它们

重点是针对 17% 的人,他们知道容器镜像中存在漏洞,但在部署时并未进行修复。

我们可以做得更好。 是的,速度很重要,但如果没有安全性,速度就是危险的——不仅对组织而言,而且对最终使用您匆忙推出的应用程序的客户而言也是如此。

如果您尚未实施安全容器化,请考虑实施以下步骤:

  1. 评估使用情况。 许多组织并没有意识到他们对开放和第三方源/图像的使用实际上有多么普遍。 掌握这一点是重要的第一步。 你无法解决你甚至不知道正在使用的软件中的漏洞。
  2. 标准化。 尝试在应用和操作之间找到共同点,并尽可能少地使用标准化的容器镜像/组件。 这将分散整个组织的安全负担,最终为每个人带来更好的安全保障。
  3. 安全代码审查。 如果您包含第三方组件或脚本(并且几乎肯定会包含),那么请检查它并从私有存储库交付/构建。
  4. 安全容器审计。 如果您正在使用第三方图像,请审核并证明其安全性,然后从私有存储库提供。
  5. 订阅安全频道。 如果您依赖图像或源代码,请查找并订阅他们传达潜在漏洞的渠道。 毕竟,了解就是成功的一半。