文章前言
K8s Dashboard是Kubernetes的一个Web UI,它提供了一个用户友好的界面来管理和监控Kubernetes集群。它可以让用户通过图形化界面查看Kubernetes集群的状态和健康状况、创建、删除和修改资源对象、查看日志和监控数据等。K8s Dashboard还支持在多个集群之间进行切换,并提供了一些插件和扩展功能来增强其功能,本篇文章我们主要介绍K8s Dashboard低版本中出现的一则认证跳过漏洞
影响范围
Kubernetes Dashboard v1.7.0-v1.10.0
漏洞类型
身份认证绕过
利用条件
影响范围应用
CVE编号
CVE-2018-18264
漏洞描述
Kubernetes Dashboard是一个基于Web的用户界面,允许用户管理集群内的应用程序和资源,该服务从Kubernetes 1.7.0开始具有登录功能,从那时起用户就可以使用Kubeconfig文件或Token进行身份验证,但也可以使用跳过按钮完全跳过身份验证
漏洞原理
使用K8s提供的Dashboard(Web面板)来管理集群时,错误的配置将导致集群被接管,在K8s Master中可以使用如下命令安装Kubernetes官方提供的Dashboard
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml
官方提供的Yaml文件中可以看到其内置了一些默认帐号,当使用K8s面板时开启enable-skip-login将会使用默认的kubernetes-dashboard帐号登陆
而官方提供的示例文件中kubernetes-dashboard将拥有以下权限
漏洞利用
Step 1:登录页面选择跳过登录
Step 2:之后可通过Dashboard获取pod、node和job等状态
Step 3:若业务配置错误或为了方便给Kubernetes dashboard绑定cluster-admin等角色,攻击者可直接在界面上创建特权pod进行容器逃逸
安全建议
1、如果您需要独立部署的Dashboard,请将Dashboard升级到v1.10.1版本
2、如果您不需要独立部署的Dashboard,请执行以下命令将Kubernetes Dashboard从集群中删除
kubectl --namespace kube-system delete deployment kubernetes-dashboard
原创文章,作者:七芒星实验室,如若转载,请注明出处:https://www.sudun.com/ask/34106.html