横向移动是云安全方面一个日益严重的问题。也就是说,一旦你的云基础设施的某个部分被破坏,攻击者可以达到多远?
在对云环境的著名攻击中,经常发生的情况是,一个公开的脆弱的应用程序可以作为一个入口点。从那里,攻击者可以尝试进入云环境内部,试图窃取敏感数据或将账户用于自己的目的,如加密货币挖掘。
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. 在Kubernetes生产环境中运行着一个有漏洞的面向公众的应用程序。攻击者利用它作为进入环境的入口。
- 2. 与开发相关的IAM策略中的错误配置附加到生产实体(运行Kubernetes节点的EC2实例),允许攻击者冒充更强大的角色并提升云环境内的权限。
- 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/
译文申明
译文仅供参考,具体内容表达以及含义,以原文为主,推荐尽量阅读原文(点击 阅读原文 跳转)