内容简介:2月11日早上简单来说,runc是一个低层工具,它负责大量生成Linux容器。Docker、Containerd和CRI-O等其他工具位于runc之上,用于处理数据格式化和序列化等问题,但runc是所有这些系统的核心。Kubernetes位于这些工具之上,因此虽然Kubernetes本身的任何部分都不容易受到攻击,大多数Kubernetes安装都使用了runc。
2月11日早上 有宣布关于runc中的容器逃逸漏洞 。我们希望为Kubernetes用户提供一些指导,以确保每个人都安全。
Runc是什么?
简单来说,runc是一个低层工具,它负责大量生成 Linux 容器。Docker、Containerd和CRI-O等其他 工具 位于runc之上,用于处理数据格式化和序列化等问题,但runc是所有这些系统的核心。
Kubernetes位于这些工具之上,因此虽然Kubernetes本身的任何部分都不容易受到攻击,大多数Kubernetes安装都使用了runc。
这个漏洞是关于?
虽然完整的细节仍然被禁止以提供人们时间补丁,但粗略的版本是:当在容器内以root(UID 0)运行进程时,该进程可以利用runc中的错误来获取运行容器的主机的root权限。然后,这允许他们无限制地访问服务器以及该服务器上的任何其他容器。
如果容器内的进程是可信任的(是你知道的东西而不是敌对的)或者没有以UID 0运行,则不受该漏洞影响。如果已应用适当的政策,SELinux也可以阻止它。RedHat Enterprise Linux和CentOS都在其软件包中包含适当的SELinux权限,因此如果启用SELinux,则应该不受影响。
最常见的风险来源是攻击者-控制器(attacker-controller)容器镜像,例如来自公共存储库的未经审查的镜像。
我该怎么办?
与所有安全问题一样,两个主要选项是缓解漏洞,或将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运行的整体风险,强烈建议设置这样的政策。
另一个潜缓解措施是确保所有容器镜像都经过审查和可信任。这可以通过自己构建所有镜像,或者通过审查镜像的内容然后固定到镜像版本哈希来实现(image:external/someimage@sha256:7832659873hacdef)。
升级runc通常可以通过升级你的发行版的软件包runc,或通过升级你的操作系统镜像(如果使用不可变镜像)来完成。这是各种发行版和平台的已知安全版本列表:
- Ubuntu - runc 1.0.0~rc4+dfsg1-6ubuntu0.18.10.1
- Debian - runc 0.1.1+dfsg1-2
- RedHat Enterprise Linux - docker 1.13.1-91.git07f3374.el7 (if SELinux is disabled)
- Amazon Linux - docker 18.06.1ce-7.25.amzn1.x86_64
- CoreOS - 2051.0.0
- Kops Debian - in progress
- Docker - 18.09.2
一些平台还发布了更具体的说明:
Google Container Engine (GKE)
Google发布了一份包含更多详细信息的 安全公告 ,但简而言之,如果你使用默认的GKE节点镜像,那么你就是安全的。如果你使用的是Ubuntu节点镜像,则需要缓解或使用已知安全版本的runc来升级镜像。
Amazon Elastic Container Service for Kubernetes (EKS)
亚马逊还发布了一份包含更详细信息的 安全公告 。所有EKS用户都应该缓解问题或升级到新节点镜像。
Docker
我们没有具体确认Docker for Mac和Docker for Windows是易受攻击的,但似乎很可能。Docker发布了 18.09.2版本 的修复程序,建议你升级到它。这也适用于使用 Docker 的其他部署系统。
如果您无法升级Docker,Rancher团队已在 github.com/rancher/runc-cve 上为许多旧版本提供了修复的后端。
获取更多信息
如果你对此漏洞如何影响Kubernetes有任何疑问,请通过 discuss.kubernetes.io 加入我们的讨论。
如果你想与 runc团队 取得联系,你可以通过 Google网上论坛 或Freenode IRC上的#opencontainers与他们联系。
KubeCon + CloudNativeCon中国论坛提案征集(CFP)2月22日截止
KubeCon + CloudNativeCon 论坛让用户、开发人员、从业人员汇聚一堂,面对面进行交流合作。与会人员有 Kubernetes、Prometheus 及其他云原生计算基金会 (CNCF) 主办项目的领导,和我们一同探讨云原生生态系统发展方向。
在中国开源峰会上,与会者将共同合作及共享信息,了解最新和最有趣的开源技术,包括Linux、IoT、区块链、AI、网络等;并获得如何在开源社区中导向和引领的信息。
大会日期:
- 提案征集截止日期:太平洋标准时间 2 月 22 日,星期五,晚上 11:59
- 提案征集通知日期:2019 年 4 月 8 日
- 会议日程通告日期:2019 年 4 月 10 日
- 会议活动举办日期:2019 年 6 月 24 至 26 日
提醒:这是一场社区会议。因此,让我们尽量避开公然推销产品和/或供应商销售宣传。
KubeCon + CloudNativeCon + Open Source Summit赞助方案出炉
以上所述就是小编给大家介绍的《Runc和CVE-2019-5736》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Domain-Driven Design
Eric Evans / Addison-Wesley Professional / 2003-8-30 / USD 74.99
"Eric Evans has written a fantastic book on how you can make the design of your software match your mental model of the problem domain you are addressing. "His book is very compatible with XP. It is n......一起来看看 《Domain-Driven Design》 这本书的介绍吧!