近日Linux社区披露了编号为CVE-2020-14386的内核漏洞。该漏洞源自packet socket包中的漏洞,攻击者可以通过漏洞实现越界写,能够写的长度为1~10个字节(来自漏洞发现者描述),除了可能造成提权和容器逃逸等风险,该攻击还可能造成集群节点内存耗尽并影响节点上运行的业务应用。
Linux社区披露编号为CVE-2020-14386的内核漏洞,详情请参见CVE-2020-14386。
影响范围
集群节点内核版本高于4.6的不同操作系统的Linux发行版均在此次漏洞的影响范围内,包括:
- Ubuntu Bionic (18.04) and newer
- Debian 9
- Debian 10
- CentOS 8/RHEL 8
对于容器服务ACK集群:
- 如果您的集群节点操作系统选择的是Alibaba Cloud Linux 2(内核版本为4.19.91-19.1.al7),您的集群会受到此次漏洞的影响。
- 如果您的集群节点操作系统是CentOS,由于当CentOS内核版本较低(3.10.0-1062),不在此漏洞影响范围内。
漏洞影响
CVE-2020-14386是内核af_packet模块中存在的内存溢出漏洞。漏洞触发需要CAP_NET_RAW权限。非Root用户没有该权限,但是在高版本Linux(内核版本高于4.6)上非特权用户能够创建user namespace,在该user namespace中会有CAP_NET_RAW权限。K8s或Docker容器默认具有CAP_NET_RAW权限,在高版本Linux中也存在触发该漏洞的可能。该漏洞能够允许攻击者实现越界写,能够写的长度为1~10个字节(来自漏洞发现者描述),可能造成提权或容器逃逸。Alibaba Cloud Linux 2的官方公告请参见漏洞公告 | Linux内核漏洞(CVE-2020-14386)。Alibaba Cloud Linux 2.1903安全漏洞修复信息,请参见Security Advisories 。
防范措施
- 在容器应用中通过securityContext删除CAP_NET_RAW权限,从而可以阻止进入到容器触发此漏洞。
spec: containers: -name: target-container ... securityContext: capabilities: drop: -NET_RAW
触发此漏洞的前提是攻击者具有CAP_NET_RAW权限,而大多数容器应用场景并不需要CAP_NET_RAW权限,可以通过PodSecurityPolicy(PSP)策略强制校验Pod中是否删除了CAP_NET_RAW权限对应的内核能力,以下为PSP策略模板。说明 在ACK容器服务控制台可以开启PSP特性,并创建和绑定PSP策略,详情请参见使用PSP安全策略。apiversion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: no-cap-net-raw spec: requiredDropCapabilities: -NET_RAW ...
- 通过组件管理安装gatekeeper组件,并确保已经安装了官方的constraint template。此时您可以创建下面的约束实例来限制容器应用中对CAP_NET_RAW的使用。
# Dropping CAP_NET_RAW with Gatekeeper # (requires the K8sPSPCapabilities template) apiversion: constraints.gatekeeper.sh/v1beta1 kind: K8sPSPCapabilities metadata: name: no-cap-net-raw spec: match: kinds: - apiGroups: [""] kinds: ["Pod"] namespaces: #List of namespaces to enforce this constraint on - default # If running gatekeeper >= v3.1.0-beta.5, # you can exclude namespaces rather than including them above. excludedNamespaces: - kube-system parameters: requiredDropCapabilities: - "NET_RAW"
- Alibaba Cloud Linux 2已经发布关于本漏洞的最新公告和相关升级说明,如果您的节点使用的是Alibaba Cloud Linux 2操作系统,建议您参照下列步骤升级内核版本。
- 执行命令
yum -y install kernel-4.19.91-21.2.al7
,升级内核至修复版本。 或执行命令yum -y update kernel
,直接升级至最新内核。 - 重启系统,使新内核生效。如果节点上有正在运行的单点服务,请选择非业务高峰时段将节点排水后再重启节点。
- 更多Alibaba Cloud Linux 2.1903安全漏洞修复信息,请参考Security Advisories 。
- 执行命令
© 版权声明
文章版权归原作者所有,未经允许请勿转载。
THE END
暂无评论内容