37

面对runc逃逸漏洞,华为云容器为您保驾护航

 5 years ago
source link: http://dockone.io/article/8579?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

背景信息

基于runc运行时的容器存在安全漏洞,攻击者可以通过恶意容器镜像等方式获取宿主机root执行权限。漏洞CVE-2019-5736

的详细信息,请参见

https://cve.mitre.org/cgi-bin/ ... -5736

漏洞原理分析

本次漏洞典型的攻击方式是通过恶意镜像:在恶意镜像中,将攻击函数隐藏在恶意动态库如(libseccomp.so.2)中,并使执

行命令指向/proc/self/exe。

当runc动态编译时,会从容器镜像中载入动态链接库,导致加载恶意动态库;当打开/prco/self/exe即runc时,会执行恶意动

态链接库中的恶意程序,由于恶意程序继承runc打开的文件句柄,可以通过该文件句柄替换host上的runc。

此后,再次执行runc相关的命令,则会产生逃逸。

影响范围

本次漏洞对所有采用runc的容器引擎均生效,runc是Docker容器的核心组件,因此对绝大部分容器均会产生影响。其中主要

影响的是多用户共享节点的场景,可导致某用户通过渗透进而控制节点并攻击整集群。

华为云CCE容器服务:

CCE容器服务创建的Kubernetes集群属于单租户专属,不存在跨租户共享,影响范围较小,对于多用户场景需要关注。

当前CCE采用华为优化的iSula Docker容器,其中RUNC采用静态编译,目前公开披露的攻击方法无法成功入侵。为确保容器

服务安全稳定运行,CCE容器服务将会在近日对在运行Docker容器进行热升级。

华为云CCI容器实例服务:

CCI引擎采用华为iSula Kata容器引擎,提供单节点上多容器高安全的hypervisor级别的隔离能力,并没有采用runc容器,因

此本次漏洞将不会对CCI产生影响。

修复方法

华为云CCE容器服务:

近日CCE容器服务会对运行的Docker进行无损热升级,包含正在运行的1.11.2, 17.06等历史版本均会提供对应补丁版本,无

需更新到18.09版本,已运行容器将不受影响,请各位关注升级公告。

自建kubernetes或使用开源容器引擎:

· 升级Docker到18.09.2版本, 由于开源Docker在17.06之后的版本做了较大变更,涉及架构解耦重构,该办法可能会导致用户

容器业务中断,建议做好充分验证,并按节点逐步滚动升级。

· 仅升级runc,对于17.06等Docker版本,可以不中断已运行业务,当前runc官方尚未发布包含漏洞修复补丁的新版本,如果

要单独升级runc,用户可自行编译。

· 另特别提醒,本次Docker官方补丁使用了高版本Linux内核的系统调用,在低版本内核部分版本上可能会失效,若补丁失效

时,建议升级至3.17以上内核。华为云CCE容器服务提供的补丁针对官方补丁进行了优化适配,已验证在多版本内核上均可

生效。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK