K8s爆严重安全漏洞?有何应对措施与建议
更新:HHH   时间:2023-1-7


Kubernetes最近爆出严重安全漏洞,影响几乎目前所有的版本。实际影响究竟多大?老版本用户是否必须升级?以下是华为云容器服务团队对该漏洞的分析解读。

Kubernetes爆出的严重安全漏洞:

***者通过构造特殊请求,可以在一个普通权限的链接上提升权限,向被代理的后端服务器发送任意请求。

该问题影响了几乎Kubernetes目前所有的版本,包括:

Kubernetes v1.0.x-1.9.x

Kubernetes v1.10.0-1.10.10 (fixed in v1.10.11)

Kubernetes v1.11.0-1.11.4 (fixed in v1.11.5)

Kubernetes v1.12.0-1.12.2 (fixed in v1.12.3)

什么样的集群可能被***?

集群启用了扩展API server,并且kube-apiserver与扩展API server的网络直接连通;

集群对***者可见,即***者可以访问到kube-apiserver的接口,如果你的集群是部署在安全的私网内,那么不会有影响;

集群开放了 pod exec/attach/portforward 接口,则***者可以利用该漏洞获得所有的kubelet API访问权限。

再看具体影响的场景

集群使用了聚合API,只要kube-apiserver与聚合API server的网络直接连通,***者就可以利用这个漏洞向聚合API服务器发送任何API请求;

如果集群开启了匿名用户访问的权限,则匿名用户也利用这个漏洞。不幸的是K8s默认允许匿名访问,即kube-apiserver的启动参数”-- anonymous-auth=true”;

给予用户Pod的exec/attach/portforward的权限,用户也可以利用这个漏洞升级为集群管理员,可以对任意Pod做破坏操作;

该漏洞的更详细讨论,可见社区Issue:

https://github.com/kubernetes/kubernetes/issues/71411

应对措施与建议

综合以上分析,使用华为云CCE服务的小伙伴们不必过于担心,因为:

CCE服务创建的集群默认关闭匿名用户访问权限

CCE服务创建的集群没有使用聚合API

如果,你开启了RBAC权限,且给用户分配了Pod的exec/attach/portforward权限,华为云CCE容器服务将于今晚完成所有现网1.11版本K8S集群的在线补丁修复,针对低于v1.10的集群(社区已不对其进行修复),本周我们也会提供补丁版本进行修复,请关注升级公告,及时修复漏洞。

Tips:如果你是自己搭建K8s集群,为提高集群的安全系数,建议如下,

一定要关闭匿名用户访问权限。

尽快升级到社区漏洞修复版本。合理配置RBAC,只给可信用户Pod的

exec/attach/portforward权限.

如果你当前使用的K8s版本低于v1.10,不在官方补丁支持范围内,建议自行回合补丁代码 :

https://github.com/kubernetes/kubernetes/pull/71412

返回云计算教程...