CVE-2020-8554:Kubernetes中间人攻击漏洞

admin 2020年12月27日14:02:38评论103 views字数 1394阅读4分38秒阅读模式

CVE-2020-8554:Kubernetes中间人攻击漏洞

12月4日,Kubernetes 产品安全委员会公开了一个新的Kubernetes漏洞——CVE-2020-8554。该漏洞是中危漏洞,影响所有的Kubernetes 版本,而且目前仍然没有修复。

CVE-2020-8554:Kubernetes中间人攻击漏洞
漏洞分析

CVE-2020-8554漏洞是Kubernetes服务中External IPs和 Load Balancer IPs 2个特征中的设计漏洞。Kubernetes服务是一种将运行在pod集上的应用以网络服务的形式暴露。一个服务会暴露给一个或多个IP。一旦部署,集群中的节点就会将到服务IP的流量路由到提供该服务的后端pod。

当集群管理和分配服务IP时,一切正常。但是如果Kubernetes 用户能够为其服务分配任意IP时就会出现问题。在这种情况下,恶意用户可以分配一个其他终端已经使用的IP 地址,拦截所有到该IP的集群流量。控制服务IP的方法一共有2种:

分配一个外部IP地址。

通过修复status.loadBalancer.ingress.ip 域名分配一个Load Balancer IP。该方法要求有补丁服务/状态权限。

下面是部署到集群后,拦截所有到IP地址8.8.8.8的DNS流量并路由到恶意DNS服务器pod的服务。

CVE-2020-8554:Kubernetes中间人攻击漏洞

图1. 滥用外部IP来拦截到8.8.8.8的DNS流量的服务

为了接收拦截的流量,攻击者必须控制支持恶意服务的终端。在大多数情况下是一个pod,与上面例子中的恶意DNS服务器pod一样。此外,外部终端也可以支持这样的服务,也就是说攻击者可以将拦截的流量路由到集群意外的外部终端。但这要求攻击者创建一个指向外部地址的Kubernetes终端,也就是说需要创建endpoint 权限。

CVE-2020-8554:Kubernetes中间人攻击漏洞
受影响的产品

该漏洞影响所有的Kubernetes 版本,而且目前仍然没有修复。满足以下条件的集群会受到该漏洞的影响:

· 允许非admin Kubernetes用户创建或更新服务,或对服务状态打补丁;

· 允许非特权用户控制pod,包括创建、更新和执行;

· 允许非特权用户创建或更新终端。

此外,多租户集群是最危险的,因为其最有可能实现以上有漏洞的配置。多租户集群一般使用Kubernetes 命名空间来分割租户,限制每个租户对其命名空间的权限。但只要有一个租户可以管理自己命名空间中的服务和pod,就可以利用CVE-2020-8554 漏洞来窃取整个集群的流量。因此,攻击者可以入侵其中一个租户来利用该漏洞来拦截其他租户的流量。

CVE-2020-8554:Kubernetes中间人攻击漏洞
缓解措施

Kubernetes产品安全委员会认为,在不对Kubernetes 用户功能特征做出修改的情况下是不可能修复该漏洞的。因此,建议限制对这些有漏洞的特征的访问来预防漏洞利用。委员会为External IP的使用提供了2个解决方案:定制的Admission Controller 和OPA Gatekeeper 限制。但是对Load Balancer IP 目前还没有解决方案。

CVE-2020-8554:Kubernetes中间人攻击漏洞
总结

CVE-2020-8554是Kubernetes 服务中的一个设计漏洞。如果集群是多租户的,那么非特权用户也可以创建和更新服务。虽然漏洞目前还没有修复,Kubernetes产品安全委员会也给出了有效的缓解措施。

参考及来源:https://unit42.paloaltonetworks.com/cve-2020-8554/

CVE-2020-8554:Kubernetes中间人攻击漏洞

CVE-2020-8554:Kubernetes中间人攻击漏洞

本文始发于微信公众号(嘶吼专业版):CVE-2020-8554:Kubernetes中间人攻击漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2020年12月27日14:02:38
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2020-8554:Kubernetes中间人攻击漏洞http://cn-sec.com/archives/221488.html

发表评论

匿名网友 填写信息