AWS凭证泄露调查:过度特权容器的安全风险与防护

本文探讨了Amazon EKS中过度特权或配置不当的容器如何暴露敏感AWS凭证,通过数据包嗅探和API欺骗攻击场景展示风险,并介绍如何使用Trend Vision One检测和缓解这些安全威胁。

AWS凭证泄露调查:过度特权容器的安全风险与防护

摘要

Kubernetes环境中配置不当或过度特权的容器可能促进对敏感AWS凭证的未授权访问,使环境面临权限升级和恶意活动的风险。

趋势科技研究识别了涉及过度特权容器的利用场景,包括嗅探未加密HTTP流量以访问明文凭证,以及利用网络设置拦截授权令牌以获取提升权限的API欺骗。

AWS共享责任模型强调了协作的重要性,服务提供商确保基础设施安全,而客户同样负责管理其容器化应用程序中的权限范围以维护安全环境。

趋势Vision One容器安全允许组织执行主动安全策略,检测和缓解超出预期权限级别的容器操作,有助于防止数据包嗅探和API欺骗等利用场景,同时减少整体攻击面并最小化安全风险。

Kubernetes容器平台与Amazon EKS

基于Kubernetes的容器平台在云中扮演关键角色,用于高效且大规模地编排和管理容器化应用程序。它们自动化部署、扩展和操作,使其成为微服务和各种工作负载的理想选择。其主要优势包括云可移植性、通过更好资源利用实现成本效率、通过自动化和自我修复加速开发周期,以及简化分布式系统管理,所有这些都支持弹性和可扩展的应用程序。

Amazon Elastic Kubernetes Service (EKS)是一项托管服务,简化了在Amazon Web Services (AWS)和本地运行Kubernetes的过程。它自动化Kubernetes控制平面的管理,确保高可用性和可扩展性,同时与AWS的其他服务无缝集成,用于网络、安全和存储。这使用户能够专注于部署和管理其容器化应用程序。

配置不当或过度特权的容器构成重大安全风险,因为它们可以为攻击者提供对环境内敏感数据和系统资源的未授权访问和控制。实施措施,如确保适当配置和将容器权限限制在仅必要的范围内,对于维护安全的容器化基础设施至关重要。

在本博客文章中,我们将研究基于数据包嗅探和基于API欺骗的攻击场景,这些场景用于利用授予容器的过多权限。我们的目标是展示这些错误配置如何被滥用,以直接从容器化应用程序中提取敏感的AWS安全凭证,突显云环境中的一个关键问题。

我们还将展示如何使用趋势Vision One通过在执行趋势Vision One门户的容器保护部分中的可自定义策略设置来检测和响应过多权限。

Amazon EKS Pod Identity服务的利用

Amazon EKS Pod Identity是AWS引入的一项功能,用于简化向在EKS集群中运行的pod授予AWS凭证的过程。它提供了IAM Roles for Service Accounts (IRSA)的替代和补充方法,使得能够从Kubernetes应用程序内部安全访问AWS资源,如S3存储桶或DynamoDB表。

设置Pod Identity首先在Amazon EKS集群上安装eks-pod-identity-agent附加组件。该代理作为DaemonSet在kube-system命名空间中运行,确保代理实例在每个工作节点上运行。

代理暴露一个简单的API,接受Authorization头中的Kubernetes服务账户令牌,并调用特定的AWS API操作:eks-auth:AssumeRoleForPodIdentity。此API在链接本地地址(IPv4为169.254.170.23,IPv6为[fd00:ec2::23])的端口80上暴露。

amazon-eks-pod-identity-webhook变异准入控制器自动更新,以将AWS_CONTAINER_CREDENTIALS_FULL_URI和AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE环境变量注入使用与Pod Identity关联的服务账户的pod中。这些环境变量被AWS SDK识别。

当使用AWS SDK的pod中的应用程序向AWS服务发出请求时,SDK自动识别相关环境变量并从在节点上运行的EKS Pod Identity代理检索临时凭证。代理然后与eks-auth:AssumeRoleForPodIdentity API交互,以获取关联IAM角色所需的凭证。

基于数据包嗅探的攻击场景

EKS Pod Identity代理在每个节点上运行,并在本地IP地址上暴露一个看似通过未加密HTTP的API。

这带来了安全风险,因为任何具有‘hostNetwork: true’设置的pod都可能监视节点上的网络流量,使得能够拦截从API端点169.254.170.23:80发送的任何凭证。由于AWS环境不将这些凭证绑定到特定资产,恶意行为者可以使用它们来获取环境中的提升权限。

使用标准tcpdump实用程序的简单概念验证(PoC)表明凭证以明文传输。鉴于AWS凭证不绑定到特定主机,第三方可以使用它们来承担提升的权限。

基于API欺骗的场景

从启用hostNetwork的容器中移除CAP_NET_RAW能力可能无法完全缓解风险,如果允许网络接口操作的其他权限(如CAP_NET_ADMIN)被启用。只要恶意pod可以操纵网络接口卡(NIC)设置,它就可以通过删除进程绑定的本地链接IP地址来禁用eks-pod-identity-agent HTTP守护进程。这使得攻击者能够控制运行在169.254.170.23:80上的HTTP服务,并部署自己的HTTP服务器。该服务器将能够拦截包含Authorization令牌的传入HTTP请求,攻击者随后可以使用这些令牌获取有效的AWS凭证。

我们开发了一个用Python编写的PoC,利用常见库如pyroute2,来演示上述利用。

结论和建议

本博客中提出的发现突出了在使用Amazon EKS Pod Identity简化Kubernetes环境中AWS资源访问时的关键安全考虑。错误配置,特别是涉及具有过多权限的容器,可能暴露AWS凭证并创建重大风险,包括权限升级和云环境中的未授权操作。

通过演示数据包嗅探和API欺骗场景,我们展示了过度特权容器如何被利用来拦截或操纵敏感凭证。这些漏洞强调了遵守最小权限原则的重要性,确保容器配置适当范围,并最小化恶意行为者利用的机会。

供应商披露

上述两种技术已通过趋势零日倡议(ZDI)计划报告给Amazon,并记录为ZDI-CAN-26891。AWS的声明如下:

“我们的团队已完成调查,并确定您报告中描述的行为不是安全问题,而是节点本身信任边界内的预期行为,并且位于共享责任模型的客户侧。节点或集群操作员有责任确保具有提升权限的应用程序适当范围。节点承担pod身份角色的能力是预期的,并与信任边界模型一致,如EKS pod安全最佳实践和共享责任文档中所述。”

使用趋势Vision One识别和防止过度容器权限

容器能力的主动管理是保护容器化环境的重要方面。在配置容器时采用最小权限原则对于最小化攻击面和减少潜在安全风险至关重要。

检测容器中的过多权限

趋势Vision One容器安全允许组织定义和执行策略,检测(并可选择阻止)操作超出预期配置的提升权限的容器。上述利用场景基于具有过多能力的容器,如CAP_NET_RAW、CAP_NET_ADMIN,或具有hostNetwork标志设置为true的pod。

策略设置可以通过趋势Vision One门户在云安全 -> 容器保护下访问,提供一系列配置选项。为了解决上述过多权限,请在Pod属性部分检查记录或阻止“在主机网络命名空间中运行的容器”的选项,以及“具有不符合基线策略的能力的容器”的选项。

有关创建和使用Kubernetes策略的详细信息,请参考以下趋势Vision One文档:

一旦设置了策略,就会检测到违规,如下例所示:

标签

云 | 利用与漏洞 | 研究 | 网络威胁

作者

Jiri Gogela
威胁研究员

相关文章

  • Gunra勒索软件组发布高效Linux变体
  • 解锁Amazon Security Lake用于主动安全的力量
  • SharePoint攻击的主动安全见解(CVE-2025-53770和CVE-2025-53771)

[查看所有文章]

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计