利用 Ghostbuster工具发现AWS云环境 IP 变更导致的Dangling IP
2022-3-24 11:55:0 Author: www.4hou.com(查看原文) 阅读量:27 收藏

ghostbuster.png

当你在AWS上部署基础设施时,你可以启动EC2实例,这些实例有一个与它们相关的IP。当你创建指向这些IP的DNS记录,但在EC2实例被赋予一个新IP或被销毁后忘记删除DNS记录时,你很容易受到子域劫持攻击。

研究人员已经创建了一个名为Ghostbuster的工具,它的工作原理是枚举与你拥有的每个 AWS 账户关联的所有弹性/公共 IP,然后检查是否有任何 DNS 记录指向你不拥有的任何弹性 IP AWS 账户。请务必注意,此工具要求你完全覆盖你的 AWS 账户,以避免误报。

关于如何设置和使用该工具的进一步说明可以在Github repo的README 文件中找到。

在过去的十年里,很多公司都切实采用了AWS、Azure和GCP等云服务提供商,快速构建基础设施,以满足不断增长的业务需求。迁移到云原生架构给采用它的组织带来了许多挑战,从云攻击面的可见性到云特定的安全漏洞。

虽然主要的云服务提供商确实提供了许多安全方面的好处,但当涉及到安全时,它们都是在“共享责任”的模式下运行的。研究人员已经在AWS中看到了大量的配置错误漏洞,包括 Route53 劫持、Cloudfront 劫持、ELB 劫持,以及现在的 Elastic IP 劫持。这些错误配置被认为是属于共享责任模型的客户方,虽然AWS最终在其平台上部署了Route53、Cloudfront和ELB劫持的缓解措施,但这些漏洞被利用了好几年。

值得注意的是,AWS并不是唯一一个在这些漏洞上存在漏洞的公司,微软Azure和谷歌云平台在其基于云的产品中也面临着这一漏洞,许多其他云提供商也是如此。

随着云攻击面的快速扩展和流动性的增加,很难获得对这些风险的可见性,尤其是在规模上。再加上云提供商在部署缓解他们认为应该是共享责任模型中客户方面的漏洞时行动缓慢,许多组织都在努力控制这些错误的配置漏洞。

为此安全公司Assetnote 开源一个名为Ghostbuster的工具,Ghostbuster 是一款自动化浏览器测试工具,基于phantomjs,意味着你得到一个真正的浏览器,一个真正的DOM,仿真测试环境,可用于修复AWS环境中潜在的悬挂弹性IP(dangling elastic IP)漏洞。

什么是悬挂弹性IP漏洞?

当你将基础设施部署到 AWS 时,你可能会启动具有关联 IP 的 EC2 实例。当你创建指向这些 IP 的 DNS 记录,但在 EC2 实例被赋予新 IP 或被销毁后忘记删除 DNS 记录时,你很容易受到子域劫持攻击。

关于弹性IP劫持已经做了大量的研究,攻击者可能会不断地声称弹性IP,直到他们获得与目标公司的子域名相关联的IP。

虽然AWS经常会禁止试图执行这种攻击模式的账户,但AWS还没有发布修复方案。

悬挂弹性IP子域劫持攻击的影响比典型的子域劫持更严重,在子域劫持中,你只能控制所服务的内容。通过悬挂的弹性IP劫持,攻击者可能还会进行如下操作:

通过 ACME TLS 质询为子域申请 SSL 证书;

监听所有端口上的流量(可能发现敏感信息仍在发送到子域);

运行具有窃取 HTTPOnly cookie 能力的服务器端脚本,当 cookie 范围为 *.domain.com 时,通常会导致一键式帐户劫持攻击;

研究人员并不是第一个注意到这个漏洞的人,最早关于弹性IP劫持的文章可以追溯到2015年,作者是Matthew Bryant 。

自2015年以来,许多人尝试了与Matthew类似的解决方案,他们坚持使用弹性IP分配和释放的方法,直到他们找到目标公司使用的弹性IP。

其他PoC包括EIP Fish 和Flying a False Flag - Cloud Racoon 

值得注意的是,一些漏洞赏金猎人对悬挂弹性ip的漏洞进行了大量研究。除了通过漏洞奖励计划或购买像安全平台(能够主动检测此漏洞)这样的产品的公司之外,对于这些攻击,研究人员唯一的保护措施就是AWS禁止他们认定的执行弹性IP劫持的账户。不幸的是,禁止账户并不是一个可行的解决方案。

AWS是如何处理这个漏洞的?

研究人员已经与AWS的各个团队就这个漏洞进行了多次讨论,并试图构建工具,以帮助该企业找到并缓解悬挂弹性IP劫持。

从历史上看,AWS采取的方法是将这种行为有效地视为对其公共API 的滥用,并简单地禁止那些分配或释放弹性IP 过快的账户,或者AWS认为是滥用的模式。虽然这在一定程度上(特别是在规模上)提高了攻击的门槛,但这并不是有效的长期缓解根本漏洞的办法。

AWS表示,他们正在努力缓解这一漏洞,但这项缓解措施的具体细节和实施表仍不清楚。

就目前而言,这些技术仍然可行。

使用Ghostbuster缓解

Ghostbuster 是一款自动化浏览器测试工具,基于phantomjs,意味着你得到一个真正的浏览器,一个真正的DOM,仿真测试环境。

这个漏洞普遍存在,受此攻击载体影响的组织数量不断增加,因为公司继续将更多的服务迁移到公共云,特别是AWS。在关闭EC2实例后没有删除DNS记录,这是一个很容易被引用的漏洞,并且由于自动配置而变得更加严重。

在AWS发布任何官方修复之前,研究人员建议你查看其新发布的开源工具Ghostbuster,它可以用来检测潜在的悬挂弹性ip。

你可以通过运行:pip3 install ghostbuster 来安装该工具,然后通过使用 ghostbuster 命令来使用该工具。

该工具的工作原理是枚举与你拥有的每个AWS帐户相关的所有弹性/公共ip,然后检查是否有任何DNS记录指向你的任何AWS帐户中不拥有的弹性ip。需要注意的是,该工具要求你完全覆盖你的AWS帐户,以避免误报。

该工具对用户非常友好,并使用你的.aws/config和.aws/凭据文件来遍历每个配置的帐户并执行处理。

此外,如果你使用 Cloudflare 而不是 Route53 来管理你的 DNS,该工具还与 Cloudflare 集成,以提取区域和关联的 DNS 记录以进行分析。

如果你不使用Route53或Cloudflare来管理你的DNS区域,你可以向该工具(CSV)提供手动输入。也可以配置Slack的webhook,以便该工具在检测到潜在的劫持时发送通知。

该工具的设计方式使其可以频繁地作为 cron 作业运行,从而通知你随时可能出现的潜在弹性IP劫持。

使用该工具时可以使用以下选项:

1.png

该工具的输出如下所示:

2.png

关于如何设置和使用该工具的更多说明可以在我们的 Github repo for Ghostbuster中的 README 文件中找到。

总结

大规模管理云架构的安全性可能很困难,公司在EC2资源被破坏后留下DNS记录是非常普遍的。

与仅能控制页面内容的典型子域劫持攻击不同,弹性IP劫持的风险要高得多,攻击者能够声称SSL证书,侦听流量,并在海量cookie范围的情况下执行帐户劫持攻击。

AWS 的预期缓解措施的细节及其发布的时间表仍不清楚。与此同时,你可以使用Ghostbuster在AWS环境中获取悬挂的弹性ip。

本文翻译自:https://blog.assetnote.io/2022/02/13/dangling-eips/如若转载,请注明原文地址


文章来源: https://www.4hou.com/posts/Yqw2
如有侵权请联系:admin#unsafe.sh