博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Runc和CVE-2019-5736
阅读量:5894 次
发布时间:2019-06-19

本文共 2410 字,大约阅读时间需要 8 分钟。

2月11日早上。我们希望为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: v1kind: Podmetadata:  name: run-as-uid-1000spec:  securityContext:    runAsUser: 1000  # ...

这也可以使用PodSecurityPolicy全局实施:

apiVersion: policy/v1beta1kind: PodSecurityPolicymetadata:  name: non-rootspec:  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发布了的修复程序,建议你升级到它。这也适用于使用Docker的其他部署系统。

如果您无法升级Docker,Rancher团队已在上为许多旧版本提供了修复的后端。

获取更多信息

如果你对此漏洞如何影响Kubernetes有任何疑问,请通过加入我们的讨论。

如果你想与取得联系,你可以通过或Freenode IRC上的#opencontainers与他们联系。


KubeCon + CloudNativeCon 论坛让用户、开发人员、从业人员汇聚一堂,面对面进行交流合作。与会人员有 Kubernetes、Prometheus 及其他云原生计算基金会 (CNCF) 主办项目的领导,和我们一同探讨云原生生态系统发展方向。

在中国开源峰会上,与会者将共同合作及共享信息,了解最新和最有趣的开源技术,包括Linux、IoT、区块链、AI、网络等;并获得如何在开源社区中导向和引领的信息。

大会日期:

  • 提案征集截止日期:太平洋标准时间 2 月 22 日,星期五,晚上 11:59
  • 提案征集通知日期:2019 年 4 月 8 日
  • 会议日程通告日期:2019 年 4 月 10 日
  • 会议活动举办日期:2019 年 6 月 24 至 26 日

提醒:这是一场社区会议。因此,让我们尽量避开公然推销产品和/或供应商销售宣传。

转载地址:http://ipisx.baihongyu.com/

你可能感兴趣的文章
ggplot2 aes函数map到data笔记
查看>>
3450: Tyvj1952 Easy
查看>>
delphi基本语法
查看>>
java中的Static class
查看>>
删除重复节点
查看>>
.net请求Webservice简单实现天气预报功能
查看>>
Loj #3056. 「HNOI2019」多边形
查看>>
【3】数据库的表设计和初始化
查看>>
Django rest framework的基本用法
查看>>
正则表达式匹配非需要匹配的字符串(标题自己都绕晕了)
查看>>
沙盒目录介绍
查看>>
260. Single Number III
查看>>
c#基础--字符串的处理_string类
查看>>
《C语言》-(流程控制:顺序结构、选择结构、循环结构)
查看>>
mobile deeplearning
查看>>
Hadoop生态圈-Kafka的完全分布式部署
查看>>
《玩转Django2.0》读书笔记-探究视图
查看>>
SOCK_STREAM & SOCK_DGRAM
查看>>
css的border的solid
查看>>
div+css实现window xp桌面图标布局(至上而下从左往右)
查看>>