红队攻防 | 云上横向移动:利用脆弱容器实施攻击

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 红队攻防 | 云上横向移动:利用脆弱容器实施攻击


横向移动是云安全方面一个日益严重的问题。也就是说,一旦你的云基础设施的某个部分被破坏,攻击者可以达到多远?


在对云环境的著名攻击中,经常发生的情况是,一个公开的脆弱的应用程序可以作为一个入口点。从那里,攻击者可以尝试进入云环境内部,试图窃取敏感数据或将账户用于自己的目的,如加密货币挖掘。

image-20221204182204262


在这篇文章中,我们将介绍一个阶段性的但真实的场景,以展示攻击者如何可能获得对云账户的完全访问。我们还将介绍如何通过使用Sysdig Cloud Connector检测和缓解这种攻击。

横向移动的场景

让我们从一个在Kubernetes集群中运行并托管在AWS账户内的脆弱的Struts2应用程序开始这个云安全练习。

image-20221204182650434


一旦攻击者获得对pod的访问权,他们就会评估环境,寻找秘密或凭证,以进行横向移动并提升权限。


这些凭证有可能在aws元数据中找到。一旦获得,攻击者就可以访问AWS账户,从那里他们就可以开始窥探。


在进入云基础设施后,攻击者将寻找错误的配置,以实现他们接下来的行动。例如,通过维持他们的权限来巩固地位,损害云防御系统,或升级他们的权限。最终,攻击者可能会造成危害,如寻找敏感数据外泄,或安装加密货币矿工或僵尸控制中心。

现在我们了解了对手的总体战略,让我们更深入地挖掘他们的行动。


Step 1: 利用一个面向公众的Web应用程序


Ckoud MITRE ATT&CK报告的初始访问TTP(战术、技术和程序)之一是通过利用面向公众的应用程序。这是有道理的。毕竟,任何公共的东西都是可以访问的。


在这个场景下,有一个Apache Struts2应用程序可以公开使用。


为了查看可用的实例是否受到知名漏洞的影响,攻击者开始进行被动和主动的信息收集活动。通过与Web应用程序的互动,可以检索到软件版本和其他有关部署的应用程序的额外信息。从那里,攻击者可以查询漏洞数据库,寻找一个入口点。


攻击者发现我们使用的Apache Struts2版本存在CVE-2020-17530的漏洞,该漏洞允许在机器上执行远程代码。如果攻击者成功地利用了这个漏洞,他们将能够在机器上执行任意代码,包括获得一个反弹shell。


如下,攻击者向服务器发送一个精心制作的HTTP请求,然后,一个从受害者主机到攻击者机器的shell开了。

image-20221204194110454


获得反向shell所需的bash命令包含特殊字符,这可能会在执行过程中导致错误。为了避免这种情况,通常对命令进行base64编码,在执行过程中对其进行解码。


从主机名,apache-struts-6c8974d494,攻击者可以看到他们落在了Kubernetes集群内的一个pod或容器中。


Step 2: 横向移动到云


现在,我们的对手进来了,他们必须考虑到环境。你可能会认为,在落入一个容器后,攻击者受到了相当大的限制。而你是正确的,但他们仍然有一些机会来破坏我们的云安全。


攻击者检查pod是否可以访问AWS实例元数据。

image-20221204195156633

看起来可以。这可能使攻击者获取有关于云环境的有用的信息,以帮助攻击者提升权限或进行横向移动。

观察IAM凭证,对手找到了与运行pod的Kubernetes节点相关的AWS IAM角色凭证。

image-20221204195514100

攻击者现在可以在自己的环境中导入凭证,并通过cli直接访问云账户。

image-20221204195610809


Step 3: 通过策略错误配置提升权限


在这一点上,攻击者能够用偷来的凭证连接到AWS账户。

他们做的第一件事就是开始评估与被冒充的角色相关的角色和策略,试图找到一种在云环境中升级权限的方法。

image-20221204195859406


dev-AssumeRole策略看起来很有希望。让我们看看它授予了什么权限。

image-20221204200456113


通过AssumeRole,对手可以选择以其他用户的身份行事。这是给像这样的账户授予的一个奇怪的权限。这可能是一个攻击者正在寻找的错误配置。


另外,通过ReadOnlyAccess权限,攻击者能够列举AWS账户中的可用角色,并根据现有的限制找到他们可以承担的角色。在这种情况下,攻击者可以冒充以 "dev "开头的角色。当前用户可以冒充的角色之一是dev-EC2Full,它允许对EC2的完全控制。

image-20221204200735755

通过冒充这个角色,攻击者能够像一个dev用户一样,对EC2实例有完全的访问权,并有能力为自己的目的创建新的实例。


Next steps


让我们回顾一下到目前为止我们所讨论的内容和两个主要流程。


  1. 1. 在Kubernetes生产环境中运行着一个有漏洞的面向公众的应用程序。攻击者利用它作为进入环境的入口。

  2. 2. 与开发相关的IAM策略中的错误配置附加到生产实体(运行Kubernetes节点的EC2实例),允许攻击者冒充更强大的角色并提升云环境内的权限。

  3. 3. 在这一点上,攻击者有足够的权限来对我们的组织造成伤害。他们可以现在开始行动,或者进一步尝试破坏我们的云安全,获得更大的权限。不要错过我们的 "跨AWS云和容器的统一威胁检测[1] "一文,以更全面地了解我们的攻击者可能采取的后续步骤,并看看AWS提供哪些工具来预防、检测和缓解这些攻击。

使用Sysdig Secure检测横向移动攻击


幸运的是,这类攻击会留下非常可识别的痕迹。例如,一个反向shell是不寻常的东西,一个runtime安全工具可以很容易地发出警报。此外,安全工具可以标记错误的配置。有了正确的工具,你可以加强你的云安全。


关于Sysdig Secure DevOps Platform就不翻了,介绍他们产品的,自己看吧:

https://sysdig.com/blog/lateral-movement-cloud-containers/


引用链接

[1] 跨AWS云和容器的统一威胁检测: https://sysdig.com/blog/threat-detection-aws-cloud-containers/


译文申明

译文仅供参考,具体内容表达以及含义,以原文为主,推荐尽量阅读原文(点击 阅读原文 跳转)

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
4月前
|
弹性计算 运维 Kubernetes
实践篇:灵活调度,高效编排,容器化管理云上应用
【7月更文第8天】阿里云容器服务Kubernetes版(ACK)作为业界领先的容器管理和编排服务,凭借其强大的技术实力和丰富的云服务生态,为企业级用户提供了一系列卓越的优势,助力现代化应用的快速构建、部署与运维。
104 1
|
26天前
|
安全 Cloud Native Shell
云上攻防:云原生篇&Docker容器逃逸
本文介绍了Docker的基本概念及其对渗透测试的影响,重点讲解了容器逃逸的方法。Docker是一种轻量级的容器技术,与虚拟机相比,具有更高的便携性和资源利用率。然而,这也带来了安全风险,特别是容器逃逸问题。文章详细描述了三种常见的容器逃逸方法:不安全的配置、相关程序漏洞和内核漏洞,并提供了具体的检测和利用方法。此外,还介绍了几种特定的漏洞(如CVE-2019-5736和CVE-2020-15257)及其复现步骤,帮助读者更好地理解和应对这些安全威胁。
云上攻防:云原生篇&Docker容器逃逸
|
2月前
|
人工智能 Kubernetes Cloud Native
阿里云容器服务,全面助力云上体育盛会
本文讲述了阿里云容器服务,通过安全稳定的产品能力和成熟的稳定性保障体系,全面助力云上体育赛场,促进科技之光与五环之光交相辉映。
阿里云容器服务,全面助力云上体育盛会
|
4月前
|
弹性计算 运维 负载均衡
容器化管理云上应用体验评测
从解读方案开始,带你领略容器化管理云上应用的奇妙之旅。
12842 20
容器化管理云上应用体验评测
|
3月前
|
弹性计算 运维 Kubernetes
阿里云容器化管理云上应用一键部署评测报告
阿里云容器服务Kubernetes版(ACK)作为阿里云在容器化领域的旗舰产品,以其卓越的性能、便捷的操作体验和高度的可扩展性,赢得了众多企业的青睐。
|
3月前
|
弹性计算 运维 Kubernetes
容器化管理云上应用解决方案评测
容器化管理云上应用解决方案评测
57 10
|
3月前
|
弹性计算 安全 调度
容器化管理云上应用评测
容器化管理云上应用评测
|
3月前
|
运维 Kubernetes 开发者
容器化管理云上应用解决方案评测
容器化管理云上应用解决方案评测
53 2
|
3月前
|
弹性计算 运维 负载均衡
基于阿里云容器服务Kubernetes版(ACK)| 容器化管理云上应用
【8月更文挑战第3天】基于阿里云容器服务Kubernetes版(ACK)| 容器化管理云上应用
|
3月前
|
存储 运维 Kubernetes
容器化管理云上应用解决方案评测
在企业上云进程中,容器化应用托管已成为主流。阿里云容器服务Kubernetes版(ACK)凭借一键部署、自动扩展及高效管理容器化应用的能力脱颖而出。本体验分享了使用ACK快速部署应用的过程,从选择实例规格到查看服务运行状态,再到清理资源。技术细节覆盖容器化基础与Kubernetes核心组件,但高级配置如网络策略方面略显不足。文档资源丰富但部分高级功能指引不够详尽。代码示例实用,有助于快速启动部署。容器化托管的优势在于提升资源利用率、加速部署与迭代,是企业云转型的重要工具。总体而言,ACK提供了强大且便捷的容器服务体验,未来有望进一步完善以提供更佳服务。
91 0