Microsoft 解决了其托管的 Azure Kubernetes 服务 (AKS) 中的一个严重权限提升漏洞,该漏洞允许攻击者访问群集使用的各种服务的凭据。
Mandiant在本周的一份报告中表示,攻击者可能利用此问题在受影响的AKS集群中访问敏感信息,窃取数据并执行其他恶意操作。该公司已经发现并向Microsoft报告了该漏洞。
无需特权
该漏洞影响了使用 Azure CNI 和 Azure 网络策略网络配置设置的 AKS 群集。Mandiant 表示,在受影响的 AKS 集群的任何 pod 中具有命令执行权限的攻击者可能利用该漏洞下载节点的配置详细信息,包括在 Kubernetes 节点初始设置期间使用的 TLS 引导令牌。这些令牌将允许攻击者执行 TLS 引导攻击并生成合法的 kubelet 证书,这将赋予他们在集群中提升的权限并未经授权访问其所有内容。
值得注意的是,攻击者可以在不需要任何特殊权限的情况下利用该漏洞,Mandiant说。“这次攻击不需要 pod 在 hostNetwork 设置为 true 的情况下运行,也不需要 pod 以 root 身份运行,”Mandiant 研究人员 Nick McClendon、Daniel McNamara 和 Jacob Paullus 在本周的一篇博客文章中写道。
未记录的 WireServer 组件
Mandiant 在 Microsoft 修复该漏洞之前发现该漏洞源于在 AKS pod 上具有命令执行权限的攻击者访问名为 WireServer 的未记录的 Azure 组件的能力。Mandiant 研究人员发现,通过遵循 CyberCX 于 2023 年 5 月发布的攻击技术,他们可以从 WireServer 恢复集群的 TLS 引导令牌。“获得对WireServer和HostGAPlugin端点的访问权限,攻击者可以检索和解密提供给许多扩展的设置,包括’自定义脚本扩展‘,这是一种用于为虚拟机提供初始配置的服务,”Mandiant研究人员写道。
他们将这个问题描述为当组织部署 Kubernetes 集群而不考虑在 pod 中拥有代码执行权限的攻击者如何能够利用该访问权限时会发生什么。攻击者可以通过多种方式接管 Pod,包括利用 Pod 中运行的应用程序中的漏洞、在持续集成过程中或通过被入侵的开发人员帐户。
过度访问
如果没有细粒度的网络策略、对不安全工作负载的限制以及对内部服务的身份验证要求,有权访问 Kubernetes 集群中 Pod 的攻击者可以访问 Kubernetes 集群上的其他 Pod 和服务。这包括包含配置详细信息、实例元数据以及集群内以及其他云服务的服务的凭据的服务器。
Mandiant说:“采用一种流程来创建限制性NetworkPolicies,只允许访问所需的服务,可以防止整个攻击类别。“当根本无法访问该服务时,可以防止通过未记录的服务进行权限提升。”
Critical Start网络威胁研究高级经理Callie Guenther表示,尽管Microsoft已经修补了这个问题,但安全团队必须立即审核他们的AKS配置。如果他们使用 Azure CNI 进行网络配置,使用 Azure 进行网络策略,则尤其如此,Guenther 在一封电子邮件评论中说。Guenther 指出:“他们还应该轮换所有 Kubernetes 密钥,执行严格的 pod 安全策略,并实施强大的日志记录和监控以检测任何可疑活动。“虽然这个漏洞很严重,需要立即采取行动,但它是第二阶段的攻击,这意味着它需要事先访问pod。因此,应该在组织威胁形势的更广泛背景下相应地确定其优先级。