0x01漏洞背景
2020年07月10日, 360CERT监测发现 Kubernetes官方 发布了 Kubernetes 节点的设置允许相邻主机绕过本地主机边界 的风险通告,该漏洞编号为 CVE-2020-8558,漏洞等级:中危。
安全研究人员在kube-proxy中发现了一个安全问题,攻击者能够通过同一局域网下的容器,或者在集群节点上访问同一个二层域下的相邻节点上的本地127.0.0.1的TCP/UDP服务,从而获取接口信息。如果绑定在端口上的服务没有设置身份验证,就会导致该服务容易受到攻击
0x02漏洞详情
Kubernetes是一个开源系统,用于跨多台主机管理容器化的应用程序。它为应用程序的部署、维护和扩展提供了基本机制。
安全研究人员在kube-proxy组件中发现了一个安全问题,攻击者可能通过同一局域网下的容器,或在集群节点上访问同一个二层域下的相邻节点上绑定监听了本地127.0.0.1端口的TCP/UDP服务,从而获取接口信息。如果绑定在端口上的服务没有设置身份验证,就会导致该服务容易受到攻击。
如果出现以下情况,您可能会受到攻击:
- 您目前运行着一个存在漏洞的版本。
- 您的群集节点运行在 : 不受信任的主机与节点共享相同的第二层域(即相同的LAN)的环境中。
- 您的集群允许不受信任的pods运行带有CAP_NET_RAW的容器(Kubernetes的默认设置是允许这个功能的)。
- 您的节点(或主机网络pods)运行的本地服务没有身份验证
要列出可能受影响的服务,请在节点上运行以下命令:
lsof +c 15 -P -n -i4TCP@127.0.0.1 -sTCP:LISTEN
lsof +c 15 -P -n -i4UDP@127.0.0.1
在主节点上,如果出现这样的lsof运行结果则表明API服务器可能正在使用不安全的端口侦听:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
kube-apiserver 123 root 7u IPv4 26799 0t0 TCP 127.0.0.1:8080 (LISTEN)