K8S新安全漏洞的应对之策:API Server拒绝服务漏洞
CVE-2019-1002100漏洞
美国当地时间2019年3月2日,Kubernetes社区发布了Kubernetes API server拒绝服务的漏洞(CVE-2019-1002100),即有API写入权限的用户在写入资源时会导致Kubernetes API server过度消耗资源,此漏洞被评级为【中等严重性】。
此漏洞表现为用户在向Kubernetes API server发送 json-patch规则的补丁包来更新资源对象时(例如kubectl patch xxx --type json 或者"Content-Type: application/json-patch+json"),Kubernetes API server会消耗极大的资源,最终导致API server拒绝连接。
https://github.com/kubernetes/kubernetes/issues/74534
情景再现
一个json-patch的例子:
kubectl patch deployment test --type='json' -p '[{"op": "add", "path": "/metadata/labels/test", "value": "test"},{"op": "add", "path": "/metadata/labels/app", "value": "test"} ,{…} ]'
当我们向Kubernetes频繁地发送多个json-patch请求来更新资源对象时,可以发现Kubernetes API server会消耗很多资源来处理我们的请求。
此时会有一部分资源的patch请求失败,无法得到Kubernetes API server的响应。
受此漏洞影响的Kubernetes API server的版本包括:
v1.0.0 - 1.10.x
v1.11.0 - 1.11.7
v1.12.0 - 1.12.5
v1.13.0 - 1.13.3
Kubernetes官方建议用户在升级至修复版本之前,可针对此漏洞的采取的缓解措施为:
对不受信任用户移除patch权限
漏洞修复
Kubernetes社区很快地修复了此漏洞,增加了对用户json-patch操作数量的限制。
当用户对某一资源对象修改的 json-patch 内容超过10000个操作时,Kubernetes API server会返回413(RequestEntityTooLarge)的错误。
错误信息如下:
Request entity too large: The allowed maximum operations in a JSON patch is 10000, got 10004
修复的Kubernetes版本包括:
v1.11.8
v1.12.6
v1.13.4
Rancher已发布最新版本应对此次漏洞
此次也一如既往,在Kubernetes自身爆出漏洞之后,Rancher Labs团队都第一时间响应,保障使用Rancher平台管理Kubernetes集群的用户的安全。
如果你是使用Rancher平台管理Kubernetes集群,不用担心,Rancher已于今日发布了最新版本,支持包含漏洞修复的Kubernetes版本,保障所有Rancher用户的Kubernetes集群不受此次漏洞困扰。
最新发布的Rancher版本为:
v2.1.7(提供Kubernetes v1.11.8, v1.12.6, v1.13.4支持)
v2.0.12(提供Kubernetes v1.11.8支持)
对于Rancher 1.6.x的用户,可以在Rancher v1.6.26的Catalog中使用Kubernetes发布的修复版本 v1.11.8和v1.12.6
此次漏洞会影响的Kubernetes版本范围较广,建议中招的用户尽快升级哟!
为用户的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也将一如既往支持与守护在用户的K8S之路左右,确保大家安全、稳妥、无虞地继续前进❤️