Palo Alto Netwoks公司威胁情报团队Unit 42披露了Kubernetes中的一个安全漏洞CVE-2020-8558。攻击者可利用该漏洞完全控制集群。
Kubernetes是Google开源的,用于管理云平台中多个主机上的容器化的应用。Kubernetes提供了应用部署,规划,更新和维护的一种机制。
CVE-2020-8558存在于kube-proxy网络组件中。Kube-proxy是一个运行在Kubernetes集群中每一个节点上的网络代理,其作用是管理pods和服务之间的连接。
该漏洞暴露了Kubernetes节点的localhost服务,localhost服务意味着只能从节点本身访问本地网络上的主机和在该节点上运行的pods。Localhost绑定的服务期待与其交互的仅为可信的本地进程,因此经常未经身份认证就提交请求。如果用户的节点在未实施身份认证的情况下运行localhost服务,则受到影响。
在分析该漏洞对Kubernetes集群的影响过程中,研究人员发现一些Kubernetes安装程序并未禁用api-server insecure-port,而该insecure-port正常情况下只能从master节点访问。攻击者可利用该漏洞访问insecure-port,完全控制该集群,从而窃取信息,部署加密货币挖矿软件或移除现有服务。
Unit 42团队将该漏洞报告给了Kubernetes安全团队,该团队表示如果集群启用了api-server insecure-port,则该漏洞的严重程度为高危,未启用则为中危。幸运的是,该漏洞的影响仅限于大部分托管Kubernetes服务,例如Azure Kubernetes Service(AKS),Amazon的Elastic Kubernetes Service(EKS)和Google Kubernetes Engine(GKE)。
该漏洞影响Kubernetes 1.1.0版本至1.16.10版本,1.17.0版本至1.17.6版本,和1.18.0版本至1.18.3版本。Kubernetes 1.18.4版本,1.17.7版本和1.16.11版本已修复该漏洞。