研究人员发现针对 Azure Kubernetes 集群的 TLS Bootstrap 攻击 网络相关
网络安全研究人员披露了一个影响 Microsoft Azure Kubernetes 服务的安全漏洞,如果成功利用该漏洞,攻击者可以提升其权限并访问集群使用的服务的凭据。
谷歌旗下的 Mandiant 表示:“在受影响的 Azure Kubernetes 服务集群内运行的 Pod 中执行命令的攻击者可以下载用于配置集群节点的配置,提取传输层安全性 (TLS) 引导令牌,并执行 TLS 引导攻击来读取集群内的所有机密。 ”
已发现使用“Azure CNI”作为“网络配置”和“Azure”作为“网络策略”的集群受到权限提升错误的影响。微软在负责任的披露后已解决了该问题。
该威胁情报公司设计的攻击技术关键在于访问一个鲜为人知的组件 Azure WireServer,以请求用于加密受保护设置值的密钥(“wireserver.key”),并使用它来解码包含以下几个秘密的配置脚本 -
KUBELET_CLIENT_CONTENT(通用节点 TLS 密钥)
KUBELET_CLIENT_CERT_CONTENT(通用节点 TLS 证书)
KUBELET_CA_CRT(Kubernetes CA 证书)
TLS_BOOTSTRAP_TOKEN(TLS 引导身份验证令牌)
研究人员 Nick McClendon、Daniel McNamara 和 Jacob Paullus 表示:“KUBELET_CLIENT_CONTENT、KUBELET_CLIENT_CERT_CONTENT 和 KUBELET_CA_CRT 可以通过 Base64 解码并写入磁盘,以便与 Kubernetes 命令行工具 kubectl 一起使用来对集群进行身份验证。”
“此帐户在最近部署的 Azure Kubernetes 服务 (AKS) 群集中具有最小的 Kubernetes 权限,但它可以列出群集中的节点。”
另一方面,TLS_BOOTSTRAP_TOKEN 可用于启用TLS 引导攻击,并最终获取正在运行的工作负载所使用的所有机密的访问权限。此攻击不需要 pod 以 root 身份运行。
Mandiant 表示:“采用一种流程来创建限制性网络策略,仅允许访问所需服务,可以阻止整个攻击类别。当服务根本无法访问时,通过未记录的服务进行权限提升就会被阻止。”
在此次披露之际,Kubernetes 安全平台 ARMO 强调了一个新的高严重性 Kubernetes 漏洞(CVE-2024-7646,CVSS 评分:8.8),该漏洞影响 ingress-nginx 控制器,并可能允许恶意行为者未经授权访问敏感集群资源。
安全研究员 Amit Schendel表示:“该漏洞源于 ingress-nginx 验证 Ingress 对象注释方式的一个缺陷。”
“该漏洞允许攻击者将恶意内容注入某些注释,从而绕过预期的验证检查。这可能导致任意命令注入并可能访问 ingress-nginx 控制器的凭据,在默认配置下,该凭据可以访问集群中的所有机密。”
此前,还发现 Kubernetes git-sync 项目存在设计缺陷,该缺陷可能允许在 Amazon Elastic Kubernetes 服务 (EKS)、Azure Kubernetes 服务 (AKS)、Google Kubernetes Engine (GKE) 和 Linode 之间进行命令注入。
Akamai 研究员 Tomer Peled表示: “此设计缺陷可能导致 pod 中任何文件(包括服务帐户令牌)的数据泄露或以 git_sync 用户权限执行命令。要利用此缺陷,攻击者只需在集群上应用 YAML 文件,这是一个低权限操作。”
目前还没有针对该漏洞的补丁,因此各组织必须审核其 git-sync pod 以确定正在运行的命令。
Peled 表示:“这两种攻击方式都是由于缺乏输入清理而导致的,这凸显了对用户输入清理的强大防御需求。蓝队成员应密切关注其组织中 gitsync 用户的异常行为。”