博客

调查显示: 容器安全(仍然)令人担忧

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

容器的使用持续增长。 无论是无服务器、云原生应用程序,还是对整体式应用程序进行现代化改造的愿望,容器正在迅速成为部署应用程序的首选平台。

Sysdig 最近根据收集的公共云和本地服务客户的数据发布了 2019 年容器使用情况报告。 数据涵盖超过两百万个集装箱。

除了令人兴奋的(如果你是我的话)发现 60% 的容器正在运行 NGINX 之外,Sysdig 还发现了一些相当令人不安的安全统计数据。

考虑一下这个: 54%的容器存活时间少于五分钟。 2018 年,这一比例仅为 20%。

为什么这令人困扰? 当然是安全。 如果您尝试保护访问(您应该这样做)并尝试保护在该容器中运行的应用程序或 API,那么您必须确保您的安全服务不断调整策略以匹配集群的当前状态。 这意味着策略需要在容器启动时应用于容器,并在容器退役时删除策略。 正在发生很多变化,这意味着大量的运营开销。 在相对静态的应用上保证正确的安全性已经够困难了。 由于波动性很大,所以要快速完成这件事真的非常困难。

如果这并不困扰您,请尝试这个统计数据:尽管 60% 的容器镜像是从私有注册表中提取的(干得好!),但其中 52% 的镜像扫描失败。 这意味着他们知道严重程度较高或更高的漏洞。

呃。 我甚至不能。

事实证明,很多人都以 root 身份运行容器(每个主机的中位数: 21)或特权模式(每台主机的中位数: 4). 其他人没有限制权限(每个主机的中位数为 28)。 这尤其令人沮丧,因为 Docker(最流行的容器运行时)默认情况下以一组受限的功能启动。 这意味着有人故意更改了默认的安全设置。 不受限制地运行可能会导致提升权限或突破容器(允许访问系统)。 

现在我们来回顾一下容器安全的基础知识:

  • 锁上门。 身份验证不是可选的。 确保要求强大的凭证并经常轮换它们。 尽可能使用双因素身份验证 - 尤其是对于编排控制台和关键基础设施的特权访问。
  • 隐藏你的贵重物品。 不要在存储库或易于访问的共享源中无意地公开共享秘密(如密钥和凭据)。
  • 筛选你的电话。 并非所有请求都是有效的,有些请求带有恶意代码。 无论是应用程序还是基础设施服务,都要检查并评估内容是否存在恶意。 通过将扫描与 SSL/TLS 终止合并来进行优化,以抵消轻微的性能损失。
  • 修补漏洞。 如果您知道图像、服务、工作负载或其他组件存在漏洞,请修补它。 对于外部来源组件中的漏洞来说尤其如此,因为它们是备受关注的目标。 这是因为,当漏洞出现在常见部署的applications或基础设施(如 Apache Struts)中时,这是一个充满机会的领域,攻击者几乎不需要投入任何投资就能找到并利用它。

对于应用程序的安全(以及业务的安全)来说,良好的容器安全实践至关重要。 我们即将发布的 2020 年应用服务状况报告发现,云原生/微服务平均占企业应用程序组合的 15%。 尽管调查结果显示新应用s积压时间很长,但这一比例仍然没有改变。 这意味着容器化应用程序的数量只会增长。 如果我们不能保证一小部分应用程序的安全,我们如何能期望扩大规模来保证其中相当大一部分应用程序的安全呢?

实践安全的容器化。

如果您有兴趣复习容器安全基础知识,请查看基于我的 F5 同事 Jordan Zebor 的专业知识的本系列文章:

  1. 容器安全基础知识: 介绍
  2. 容器安全基础知识: 管道
  3. 容器安全基础知识: 编排
  4. 容器安全基础知识: 工作量
  5. 容器安全基础知识: 结论