Runc和CVE-2019-5736

今天早上 宣布了runc中的一个容器逃逸漏洞。我们想为捕鱼大亨网络版用户提供一些指导,以确保每个人都是安全的。

什么是Runc?

简而言之,runc是一个底层工具,它繁重地生成Linux容器。其他工具(例如Docker,Containerd和CRI-O)位于runc之上,以处理诸如数据格式化和序列化之类的事情,但是runc是所有这些系统的核心。

捕鱼大亨网络版 又位于这些工具之上,因此虽然捕鱼大亨网络版本身没有任何漏洞,但大多数捕鱼大亨网络版安装都在后台使用runc。

什么是漏洞?

虽然仍然禁运了所有详细信息以使人们有时间修补,但粗略的说法是,当在容器内以root(UID 0)身份运行进程时,该进程可以利用runc中的错误来获取运行容器的主机的root特权。 。然后,这使他们可以无限制地访问服务器以及该服务器上的任何其他容器。

如果容器内的进程受信任(您知道不是恶意的)或不是以UID 0运行,则该漏洞不适用。如果已应用适当的策略,则SELinux也可以阻止它。 RedHat Enterprise Linux和CentOS都在其软件包中包含适当的SELinux权限,因此,如果启用SELinux,则认为它们不受影响。

最常见的风险来源是攻击者-控制者的容器映像,例如来自公共存储库的未经审查的映像。

我该怎么办?

与所有安全问题一样,两个主要选项是减轻漏洞或将runc版本升级到包含该修补程序的版本。

由于漏洞利用需要容器内的UID 0,因此直接缓解措施是确保所有容器都以非0用户身份运行。可以在容器映像中设置,也可以通过您的pod规范设置:

apiVersion: v1
kind: Pod
metadata:
  name: run-as-uid-1000
spec:
  securityContext:
    runAsUser: 1000
  # ...

这也可以使用PodSecurityPolicy在全球范围内强制执行:

apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
  name: non-root
spec:
  privileged: false
  allowPrivilegeEscalation: false
  runAsUser:
    # Require the container to run without root privileges.
    rule: 'MustRunAsNonRoot'

鉴于在容器内以UID 0的身份运行会带来总体风险,因此强烈建议设置此类策略。

Another potential mitigation is to ensure all your container images are vetted and trusted. This can be accomplished by building all your images yourself, or by vetting the contents of an image and then pinning to the image version hash (image: external/someimage@sha256:7832659873hacdef).

Upgrading runc can generally be accomplished by upgrading the package runc for your distribution or by upgrading your OS image if using immutable images. This is a list of known safe versions for various distributions and platforms:

一些平台还发布了更具体的说明:

Google容器引擎(GKE)

Google已发布了 安全公告 详细信息,但总之,如果您使用的是默认GKE节点映像,那么您会很安全。如果您使用的是Ubuntu节点映像,则需要使用固定版本的runc减轻或升级到映像。

适用于捕鱼大亨网络版的Amazon Elastic Container Service(EKS)

亚马逊还发布了 安全公告 详细信息。所有EKS用户都应减轻该问题或升级到新的节点映像。

Azure 捕鱼大亨网络版 服务(AKS)

微软已经发布了 安全公告 有关缓解问题的详细信息。 Microsoft建议所有AKS用户升级其群集,以缓解此问题。

科普斯

科普斯 发布了 咨询 以及有关缓解此问题的详细信息。

码头工人

我们还没有具体确认Mac的Docker和Windows的Docker容易受到攻击,但是似乎很有可能。 码头工人 已发布了一个修复程序 版本18.09.2 并且建议您升级到它。这也适用于在后台使用Docker的其他部署系统。

如果您无法升级Docker,Rancher团队会在以下位置为许多较旧版本提供该修补程序的反向移植 github.com/rancher/runc-cve.

获取更多信息

如果您对此漏洞如何影响捕鱼大亨网络版有其他疑问,请通过以下网址加入我们 describe.kubernetes.io.

如果您想与 Runc团队 ,您可以继续 Google网上论坛 or #opencontainers on Freenode IRC.