新近爆出的runC容器逃逸漏洞,用户如何面对?

runC是一个根据OCI(Open Container Initiative)标准创建并运行容器的CLI工具,目前Docker引擎内部也是基于runc构建的。 2019年2月11日,研究人员通过oss-security邮件列表(https://www.openwall.com/lists/oss-security/2019/02/11/2 )披露了runc容器逃逸漏洞的详情,根据OpenWall的规定EXP会在7天后也就是2019年2月18日公开。

此漏洞允许以root身份运行的容器以特权用户身份在主机上执行任意代码。实际上,这意味着容器可能会破坏Docker主机(覆盖Runc CLI),而所需要的只是能够使用root来运行容器。***者可以使用受感染的Docker镜像或对未受感染的正在运行的容器运行exec命令。针对此问题的已知缓解措施包括:

  • 使用只读主机文件系统运行
  • 运行用户命名空间
  • 不在容器中运行root
  • 正确配置的AppArmor / SELinux策略(当前的默认策略不够)

Rancher团队第一时间响应

收到披露邮件后,RancherOS团队立刻尝试编写了***脚本,在一个普通容器中运行一个非常简单的脚本就完成了对主机的***,将主机上的runc替换成了其他程序。

漏洞披露后,Docker在第一时间发布了18.09.2,用户可升级到此版本以修复该漏洞。Rancher Labs研发团队同样第一时间响应,发布了Rancher v2.1.6、v2.0.11和v1.6.26,这三个新版本Rancher支持Docker刚刚发布的18.09.2,Rancher用户可以升级Docker版本以防止被该安全漏洞影响。

无法升级Docker版本怎么办

通常由于各种因素,很多用户的生产环境并不容易升级太新的Docker版本。

为了帮助无法按照Docker官方建议升级至最新版Docker 18.09.2的用户解决此次问题,Rancher Labs团队更进一步,已经将修复程序反向移植到所有版本的Docker,为Docker 1.12.6、1.13.1、17.03.2、17.06.2、17.09.1、18.03.1和18.06.1提供补丁,修复这次漏洞!相关修补程序以及安装说明,请参考:

https://github.com/rancher/runc-cve

RancherOS的更新:v1.5.1 和 v1.4.3

RancherOS作为一款容器化操作系统,其中很多组件依赖runc,我们也在第一时间更新了补丁并发布了v1.5.1和v1.4.3两个版本。

RancherOS的核心部件system-docker和user-docker都依赖runc,所以v1.5.1和v1.4.3都对他们进行了更新。而针对user-docker,RancherOS可以切换各种版本的docker engine, 所以我们对以下docker engine都进行了反向移植:

v1.12.6/v1.13.1/v17.03.2/v17.06.2/v17.09.1/v17.12.1/v18.03.1/v18.06.1。

如果是默认安装v1.5.1或v1.4.3,补丁程序已经是内置的,你无需任何操作就可以避免该漏洞。如果你希望使用早期的docker版本,那么切换user-docker时,请使用上面提到的补丁修复版本:


 
同时v1.5.1版本也是支持docker 18.09.2,你可以切换到该版本,如果你考虑使用Docker官方的修复版本,只需简单运行: ros engine switch docker-18.09.2。

我们推荐您使用最新的RancherOS v1.5.1版本,该除了修复CVE-2019-5736漏洞外还支持其他新特性以及一些Bug Fix。当然,因为仍然有很多用户在使用1.4.x版本,所以我们也发布了v1.4.3, 它只修复了runc漏洞,没有其他额外的更新。

AWS相关镜像已经上传到各个region中,可以直接搜索查找并使用,包括AWS中国区。其他主要镜像列表参考:

https://github.com/rancher/os/blob/v1.5.x/README.md#release

更多新特性和Bug Fix请参考v1.5.1的Release Notes:

https://github.com/rancher/os/releases/tag/v1.5.1

文档说明:

https://rancher.com/docs/os/v1.x/en/

RancherOS专注于Docker在Linux上的精简体验,它还是一个小众的开源项目,欢迎您下载使用并给RancherOS团队提供更多反馈。 同时,Github上的Star也是鼓励我们继续前行的精神动力喔~

初心不忘,为用户的Docker & K8S之旅护航

Rancher Kubernetes平台拥有着超过一亿次下载量,我们深知安全问题对于用户而言的重要性,更遑论那些通过Rancher平台在生产环境中运行Docker及Kubernetes的数千万用户。

2018年年底Kubernetes被爆出的首个严重安全漏洞CVE-2018-1002105,就是由Rancher Labs联合创始人及首席架构师Darren Shepherd发现的。

2019年1月Kubernetes被爆出仪表盘和外部IP代理安全漏洞时,Rancher Labs也是第一时间向用户响应,确保所有Rancher 2.x和1.6.x的用户都完全不被漏洞影响。

未来,Rancher也将一如既往陪伴与支持在用户的K8S之路左右??

原文地址:http://blog.51cto.com/12462495/2349886

时间: 2024-11-09 11:27:35

新近爆出的runC容器逃逸漏洞,用户如何面对?的相关文章

[转帖]浅析虚拟机逃逸漏洞

浅析虚拟机逃逸漏洞 https://www.freebuf.com/column/197651.html “云时代”的虚拟机安全被提升到至关重要的位置.虚拟机逃逸指的是突破虚拟机的限制,实现与宿主机操作系统交互的一个过程,攻击者可以通过虚拟机逃逸感染宿主机或者在宿主机上运行恶意软件. 浅析虚拟机逃逸漏洞 一. 漏洞背景 VMware,Inc. (Virtual Machine ware)是一个“虚拟PC”软件公司,提供服务器.桌面虚拟化的解决方案.其虚拟化平台的产品包括播放器:它能使个人用台式电

隔离 docker 容器中的用户

笔者在前文<理解 docker 容器中的 uid 和 gid>介绍了 docker 容器中的用户与宿主机上用户的关系,得出的结论是:docker 默认没有隔离宿主机用户和容器中的用户.如果你已经了解了 Linux 的 user namespace 技术(参考<Linux Namespace : User>),那么自然会问:docker 为什么不利用 Linux user namespace 实现用户的隔离呢?事实上,docker 已经实现了相关的功能,只是默认没有启用而已.笔者将在

VENOM cve-2015-3456 Qemu 虚拟机逃逸漏洞POC

#include <sys/io.h> int main() { int i ; iopl(3); outb(0x8e, 0x3f5); outb(0x41, 0x3f5); outb(0x41, 0x3f5); outb(0x41, 0x3f5); outb(0x41, 0x3f5); outb(0x41, 0x3f5); for(i = 0 ; i < 100000 ; i++) { outb(0x42, 0x3f5); } return 0 ; }

Firefox 新增容器标签:可同时登录多个用户

Mozilla昨天在Firefox夜间构建版50.0a1中增加了一个名为“容器标签Container Tabs”的实验性功能. Mozilla的工程师称,该功能可以将用户的浏览会话分到不同的容器中.这些隔离的容器可以让用户以不同的身份登录到同一个网站上.默认情况下,Firefox 夜间构建版带有四个容器:个人(蓝色).工作(橙色).银行(绿色)和购物(粉色),也就是说用户可以使用四个不同的 ID 登录同一个网站. 容器标签分隔来自网站的数据,而不是浏览器的数据 Mozilla 的工程师说,可以使

GitHub现VMware虚拟机逃逸EXP,利用三月曝光的CVE-2017-4901漏洞

今年的Pwn2Own大赛后,VMware近期针对其ESXi.Wordstation和Fusion部分产品发布更新,修复在黑客大赛中揭露的一些高危漏洞.事实上在大赛开始之前VMware就紧急修复了一个编号为CVE-2017-4901的虚拟机逃逸漏洞. 而近日,有人在GitHub上公布了一个VMWare虚拟机逃逸利用工具,工具正是这个CVE-2017-4901,它能够攻击12.5.5版本之前的VMware WorkStation,目标主机为Windows 10 x64.漏洞利用工具所使用到的编译器是

docker挂载volume的用户权限问题,理解docker容器的uid

docker挂载volume的用户权限问题,理解docker容器的uid目录遇到的问题原因容器共享宿主机的uid如果不指定user,容器内部默认使用root用户来运行容器内部用户的权限与外部用户相同一定要确保容器执行者的权限和挂载数据卷对应一个更加明显的demo参考docker挂载volume的用户权限问题,理解docker容器的uid 在刚开始使用docker volume挂载数据卷的时候,经常出现没有权限的问题.这里通过遇到的问题来理解docker容器用户uid的使用,以及了解容器内外uid

“迁移策略+新容器运行时”应对有状态应用的冷热迁移挑战

作者:稻农阿里云智能事业群高级技术专家参与主导容器运行时及网络创新工作:目前的工作侧重于基于进程虚拟化的研究及增强(网络及热迁移方面),在阿里推行微安全容器及热迁移等,力图在保持容器简单高资源利用率前提下,提供高安全及热迁移等增强功能 大家好,我的花名是稻农,首先我简单介绍一下我在这个领域的工作.在阿里,我们现在主要的侧重点是做大规模的运维和新的容器运行时.目前,大家可能已经对 Kubernetes 进行了广泛地使用,但多数还没有达到一定规模,有很多痛点以及内部的问题还没有得到充分暴露. 容器迁

以Docker为代表的传统容器到了生死存亡之际

云原生是一座由精妙理论所构筑的摩天大厦,但其中的砖石还需加固. 当云原生将容器技术作为下一代云计算的基础之一时,并不意味着容器本身停止了演化.事实上,以 Docker 为代表的传统容器在遇到多租户场景时,它的安全问题立刻暴露了出来,这时,人们才怀念起虚拟化的好处. 于是,采用虚拟化技术的"安全容器"这一概念应运而生,而开启这一变革的,正是 Kata Containers,前不久,它刚刚度过两周年. 新的 Kata Containers 为我们带来虚拟机的安全性和隔离性.与容器兼容的 A

从零开始入门 K8s | 深入剖析 Linux 容器

作者 | 唐华敏(华敏)? 阿里云容器平台技术专家 本文整理自<CNCF x Alibaba 云原生技术公开课>第 15 讲. 关注"阿里巴巴云原生"公众号,回复关键词"入门",即可下载从零入门 K8s 系列文章 PPT. 导读:Linux 容器是一种轻量级的虚拟化技术,在共享内核的基础上,基于 namespace 和 cgroup 技术做到进程的资源隔离和限制.本文将会以 docker 为例,介绍容器镜像和容器引擎的基本知识. 容器 容器是一种轻量级的