服务公告
Kubernetes 本地主机边界绕过漏洞(CVE-2020-8558)
2020-07-10
一、概要
近日华为云监测到Kubernetes官方发布安全公告,其核心组件kube-proxy存在主机边界绕过漏洞(CVE-2020-8558)。利用漏洞攻击者可能通过同一局域网下的容器,或在集群节点上 访问同一个二层域下的相邻节点上绑定监听了本地127.0.0.1端口的TCP/UDP服务,从而获取接口信息。如果绑定在端口上的服务没有设置身份验证,则会导致该服务容易受到攻击。
华为云提醒使用kube-proxy的用户及时安排自检并做好安全加固。
详情请参考链接:
https://github.com/kubernetes/kubernetes/issues/92315
二、威胁级别
如果集群API Server开启了非认证端口(默认8080),威胁级别:【严重】
如果集群API Server默认关闭了非认证端口,威胁级别:【重要】
(说明:威胁级别共四级:一般、重要、严重、紧急)
三、漏洞影响范围
受影响版本:
kubelet / kube-proxy v1.18.0-1.18.3
kubelet / kube-proxy v1.17.0-1.17.6
kubelet / kube-proxy <= 1.16.10
安全版本:
kubelet / kube-proxy master
kubelet / kube-proxy v1.18.4+
kubelet / kube-proxy v1.17.7+
kubelet / kube-proxy v1.16.11+
四、漏洞处置
目前官方已提供安全版本修复了该漏洞,请受影响的用户升级至安全版本,升级请参考官方文档:
https://kubernetes.io/docs/tasks/administer-cluster/cluster-management/#upgrading-a-cluster
规避措施:
1、如果业务容器需使用主机网络模式且又监听在非安全端口上,可以通过在节点上手动添加iptables规则来缓解此漏洞。此规则将拒绝来自节点到127.0.0.1的流量。
iptables -I INPUT --dst 127.0.0.0/8 ! --src 127.0.0.0/8 -m conntrack ! --ctstate RELATED,ESTABLISHED,DNAT -j DROP
如果集群不需要开启API Server不安全端口,可以将--insecure-port=0添加到kubernetes API服务器命令行来禁用端口。
2、如果集群内运行有不受信的容器,需要manifest文件中关闭CAP_NET_RAW能力。
securityContext:
capabilities:
drop: ["NET_RAW"]
注:修复漏洞前请将资料备份,并进行充分测试。