今天,Kubernetes发布了一系列补丁版本,修复新近发现的两个安全漏洞CVE-2019-1002101(kubectl cp命令安全漏洞)和CVE-2019-9946(CNI端口映射插件漏洞)。Rancher也紧急更新,发布一系列新版以支持Kubernetes补丁版本。
本文将介绍CVE-2019-1002101和CVE-2019-9946的详情、原理、受影响版本及升级建议,以及Rancher提供给用户的应对之策。
CVE-2019-1002101
漏洞详情及原理
CVE-2019-1002101是kubectl cp命令中存在的安全漏洞,严重等级为【高】,攻击者可以使用kubectl cp命令替换或删除用户工作站上的文件,在用户计算机的任何路径上写入恶意文件。
kubectl cp命令允许在容器和用户计算机之间复制文件。为了从容器中复制文件,Kubernetes会在容器内创建一个tar,通过网络复制它,然后kubectl会在用户的机器上解压缩它。
而如果容器中的tar二进制文件是恶意的,它可以运行任何代码并输出意外的恶意结果。在用户调用kubectl cp时,攻击者可以使用它将文件写入用户计算机上的任何路径,只有本地用户的系统权限有可能限制这一操作。
受影响的版本及升级建议
什么版本用户会被此次漏洞影响?试着运行kubectl version—client进行查看,除了1.11.9、1.12.7、1.13.5、1.14.0或更新版本之外,其他均为易受攻击的版本。
所有使用易受攻击版本的用户,都被建议升级至Kubernetes今天发布的补丁版本:1.11.9、1.12.7、1.13.5、1.14.0。
kubectl的安装和设置方法,可以参照这一链接的说明教程:
https://kubernetes.io/docs/tasks/tools/install-kubectl/
CVE-2019-9946
漏洞详情及原理
CVE-2019-9946是Kubernetes CNI框架中的安全漏洞,0.7.5之前版本的CNI插件端口映射和Kubernetes之间的交互中发现了安全问题,严重等级为【中等】。因为CNI 端口映射插件是嵌入到Kubernetes版本中的,只有升级至新版本的Kubernetes才能解决此问题。
在此修复之前,当我们配置HostPorts端口映射方式时CNI插件会在iptables nat链之前插入规则,这将优先于KUBE- SERVICES链。因此,传入流量时,流量会优先经过HostPort的规则,即使之后在链中出现了更适合、更具体的服务定义规则(例如NodePorts),依然会由HostPort 的规则来匹配传入的流量。
现在修复之后,将端口映射插件的规则由“最优先”变为“附加”,则可以让流量优先由KUBE-SERVICES规则处理。只有当流量与服务不匹配时,才会考虑使用HostPorts。
受影响的版本及升级建议
因为这会影响插件界面,因此如果你不完全了解自己的Kubernetes配置,很难确定自己是否会受此漏洞影响。IPVS模式下的kube-proxy配置加上使用HostPort端口映射类型的pod,是肯定会被这一漏洞影响的。但同样需要注意的是,其他网络配置方式也有可能使用了CNI 的portmap端口映射插件。
运行kubectl version --short | grep Server,如果它显示你使用的不是1.11.9、1.12.7、1.13.5和1.14.0或更新的版本,且如果你的Kubernetes与使用了端口映射插件的CNI配置配对,那么你极有可能会受这一漏洞影响。
但无需特别担心的是,只需按照管理工具或供应商的说明,升级到最新补丁版本的Kubernetes(1.11.9、1.12.7、1.13.5和1.14.0)即可。
Rancher已发布最新版本应对此次漏洞
此次也一如既往,在Kubernetes自身爆出漏洞之后,Rancher Labs团队都第一时间响应,保障使用Rancher平台管理Kubernetes集群的用户的安全。
如果你是使用Rancher平台管理Kubernetes集群,不用担心,Rancher已于今日发布了最新版本,支持包含漏洞修复的Kubernetes版本(1.11.9、1.12.7和1.13.5),保障所有Rancher用户的Kubernetes集群不受此次漏洞困扰。
若您使用的版本可能受此次两个漏洞影响,可以升级至今天发布的以下三个最新Rancher版本:
- Rancher 2.2.1
- Rancher 2.1.8
- Rancher 2.0.13
对于Rancher 1.6.x的用户,我们已在Rancher v1.6.26的Catalog(应用程序目录)中添加了对Kubernetes v1.11.9和v1.12.7的支持。您可以升级至Rancher v1.6.26,新版本将在下一次目录自动刷新时可用。
为用户的Docker & K8S之旅护航
Rancher Kubernetes平台拥有着超过一亿次下载量,我们深知安全问题对于用户而言的重要性,更遑论那些通过Rancher平台在生产环境中运行Docker及Kubernetes的数千万用户。
2018年年底Kubernetes被爆出的首个严重安全漏洞CVE-2018-1002105,就是由Rancher Labs联合创始人及首席架构师Darren Shepherd发现的。
2019年1月Kubernetes被爆出仪表盘和外部IP代理安全漏洞CVE-2018-18264时,Rancher Labs也是第一时间向用户响应,确保所有Rancher 2.x和1.6.x的用户都完全不被漏洞影响。
2019年2月爆出的严重的runc容器逃逸漏洞CVE-2019-5736,影响到大多数Docker与Kubernetes用户,Rancher Kubernetes管理平台和RancherOS操作系统均在不到一天时间内紧急更新,是业界第一个紧急发布新版本支持Docker补丁版本的平台,还帮忙将修复程序反向移植到所有版本的Docker并提供给用户,且提供了连Docker官方都不支持的针对Linux 3.x内核的修复方案。
负责、可靠、快速响应、以用户为中心,是Rancher始终不变的初心;在每一次业界出现问题时,严谨踏实为用户提供相应的应对之策,也是Rancher一如既往的行事之道。未来,Rancher也将一如既往支持与守护在用户的Kubernetes之路左右,确保所有企业用户都能安全、稳妥、无虞地继续前进。