Docker runC 严重安全漏洞导致容器逃逸修复方法(CVE-2019-5736 )

漏洞详情:

Docker、containerd或者其他基于runc的容器运行时存在安全漏洞,攻击者可以通过特定的容器镜像或者exec操作可以获取到宿主机的runc执行时的文件句柄并修改掉runc的二进制文件,从而获取到宿主机的root执行权限。

影响范围:

对于阿里云容器服务来说,影响范围:
Docker版本 < 18.09.2 的所有Docker Swarm集群和Kubernetes集群(不包含Serverless Kubernetes集群)
对于用户自建Docker/Kubernetes环境:
Docker版本 < 18.09.2 或者使用 runc版本 <= 1.0-rc6的环境,请自行根据厂商建议进行修复。

查询版本

注意:Centos和Ubuntu的Docker-runC 版本查询方法略有不同,可以分别通过下面的命令进行查询。

#Centos7版本
docker version

输入完成后会有如下的截图,注意红框部分,可以看到Docker runC的版本。
Docker runC 严重安全漏洞导致容器逃逸修复方法(CVE-2019-5736 )_第1张图片

#Ubuntu 16.04版本
runc-version

Docker runC 严重安全漏洞导致容器逃逸修复方法(CVE-2019-5736 )_第2张图片

修复方法

方法一:新建k8s 1.11或1.12集群。容器服务新创建的1.11或1.12版本的Kubernetes集群已经包含修复该漏洞的Docker版本。
方法二:升级Docker。升级已有集群的Docker到18.09.2或以上版本。该方案会导致容器和业务中断。
方法三:仅升级runc(针对Docker版本17.06)。为避免升级Docker引擎造成的业务中断,可以按照下面的操作说明,逐一进行升级。

#查询Docker runC文件存放位置,Centos7一般安装在/usr/bin/下。Ubuntu位置略有不同,为简化操作,本文以Centos7为例
which docker-runc
#执行以下命令备份原有的runc:
mv /usr/bin/docker-runc /usr/bin/docker-runc.orig.$(date -Iseconds)
#执行以下命令下载修复的runc:
curl -o /usr/bin/docker-runc -sSL https://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/runc/docker-runc-17.06-amd64
#执行以下命令设置docker-runc的可执行权限:
chmod +x /usr/bin/docker-runc
#执行以下命令测试runc版本是否已得到升级
docker version

你可能感兴趣的:(Liunx运维,漏洞修复,tomcat,php,linux)