直播网站开发核心技术,丽水专业网站制作公司,做中英双语切换的网站,商丘做网站用什么程序好美国时间2019年2月11日晚#xff0c;runc通过oss-security邮件列表披露了runc容器逃逸漏洞CVE-2019-5736的详情。runc是Docker、CRI-O、Containerd、Kubernetes等底层的容器运行时#xff0c;此次安全漏洞无可避免地会影响大多数Docker与Kubernetes用户#xff0c;也因此为整… 美国时间2019年2月11日晚runc通过oss-security邮件列表披露了runc容器逃逸漏洞CVE-2019-5736的详情。runc是Docker、CRI-O、Containerd、Kubernetes等底层的容器运行时此次安全漏洞无可避免地会影响大多数Docker与Kubernetes用户也因此为整个业界高度关注。 漏洞披露后Docker在第一时间发布了两个版本18.06.2和18.09.2这两个版本都可以修复runc漏洞。Rancher Labs极速响应Rancher Kubernetes管理平台和RancherOS操作系统均在不到一天时间内紧急更新是业界第一个紧急发布新版本支持Docker补丁版本的平台并持严谨态度在oss-security邮件列表披露漏洞后的五小时内连夜邮件通知所有Rancher用户此次漏洞的详情及应对之策。 更值得一提的是尽管Docker发布了修复版本但因为不是所有用户都能轻易将生产环境中的Docker版本升至最新Rancher帮忙将修复程序反向移植到所有版本的Docker并提供给用户。且目前Docker官方提供的修复版本并不支持3.x内核只兼容4.x内核而runc的开发者特意向Rancher提交了支持3.x内核的PR目前PR已合并Rancher提供的方案现已可以支持3.x内核。 runc安全漏洞事件背景 runc是一个根据OCI(Open Container Initiative)标准创建并运行容器的CLI tool目前Docker引擎内部也是基于runc构建的。2019年2月11日研究人员通过oss-security邮件列表披露了runc容器逃逸漏洞的详情根据OpenWall的规定EXP会在7天后也就是2019年2月18日公开。 此漏洞允许以root身份运行的容器以特权用户身份在主机上执行任意代码。这意味着容器可能会破坏Docker主机覆盖Runc CLI而所需要的只是能够使用root来运行容器。攻击者可以使用受感染的Docker镜像或对未受感染的正在运行的容器运行exec命令。 Rancher在12号当天已通过公众号文章详细分析了漏洞详情和用户的应对之策。相信目前大部分用户已经对漏洞已经有了初步的了解甚至在Github上已经有人提交了EXP代码。Rancher在第一时间完成了补丁修复并向企业用户推送的修复方案。同时在我们也收到了大量来自社区用户在后台的提问为了疏解种种谜团这篇后续文章我们将选取大家重点关注的一些热点疑问进行进一步的解答。 热点问题 非特权容器也能发起攻击吗 答案是肯定的Rancher安全团队在第一时间做了一些测试即使运行容器时不使用privileged参数一样可以发起攻击。因为这个漏洞核心要素在于容器内的用户是否对runc有访问权限 容器内默认是root用户只是这个root是受限制的root但是它是具有对runc的访问权限所以一定可以发起攻击。 主机上不用root用户启动容器可以避免攻击吗 答案是无法避免如上一个问题分析它和容器内的用户有关至于在主机上以什么用户启动无关。Rancher安全团队在Ubuntu系统上做了测试即使使用ubuntu用户启动容器 依然可以完成对runc的替换。 更新官方Docker的注意事项 Docker也在第一时间发布了两个版本18.06.2和18.09.2这两个版本都可以修复runc漏洞但是你需要注意的是他们都只兼容4.x内核如果你的系统依然使用的3.x内核 请谨慎使用因为它基本不会起作用甚至可能导致额外的问题。 Ubuntu 14.04 customers using a 3.13 kernel will need to upgrade to a supported Ubuntu 4.x kernel 参考两个版本的RN https://docs.docker.com/engin...https://docs.docker.com/engin...Kubernetes用户怎么办 使用K8s的用户都很清楚K8s并不能兼容太高的Docker版本所以更新官方Docker版本是很难的一件事为此K8s官方特意发表了一篇Bloghttps://kubernetes.io/blog/20... 。 主要思想就是不要在容器中使用root它推荐的方案是使用PodSecurityPolicy。当然很多用户修改PodSecurityPolicy后可能会引发各种问题所以它也推荐用户更新Docker。 同时它也提到不能更新Docker的用户可以使用Rancher提供的方案Rancher为每个版本都移植了补丁 If you are unable to upgrade Docker, the Rancher team has provided backports of the fix for many older versions at github.com/rancher/runc-cve. 如何使用Rancher提供的补丁 如上一个问题提到的用户可以直接访问https://github.com/rancher/ru... 来获取方案值得一提的是Rancher为3.x和4.x内核用户都提供了补丁版本。 To install, find the runc for you docker version, for example Docker 17.06.2 for amd64 will be runc-v17.06.2-amd64. For Linux 3.x kernels use the binaries that end with no-memfd_create. Then replace the docker-runc on your host with the patched one. 如何正确使用EXP 首先不建议大家广泛传播EXP因为它每暴露一次就为整体环境增加了一丝风险我们可以研究学习但是不要恶意传播。 我们在后台看到有些人问到他们使用了某些EXP代码攻击没有成功想知道是不是自己的系统是安全的不用考虑升级。 Rancher安全团队也查看了一些外部公开的EXP有些EXP是不完整的它可能只能在某些环境上起作用。 比如利用libseccomp的EXP就无法在静态编译的runc上起作用我们使用了一些公开的EXP就无法在RancherOS上完成攻击。 虽然不同版本的Docker都使用runc但是不同的操作系统使用runc的方式不同有的使用static runc有的使用dynamic runc。 所以不能以某些公开的EXP的执行结果为标准来判断自己系统是否存在漏洞。 守护用户的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始终不变的初心在每一次业界出现问题时严谨踏实为用户提供相应的应对之策也是Rancher一如既往的行事之道。未来Rancher也将一如既往支持与守护在用户的K8S之路左右确保大家安全、稳妥、无虞地继续前进❤️