云蹲守:攻击者如何使用已删除的云资产来进行攻击

文章正文
发布时间:2024-07-23 23:18

  我们正处于云计算时代,虚拟服务器和存储空间等资源通常根据需要通过部署脚本以编程方式进行配置。尽管剥离这类资产几乎是一个立竿见影的过程,但在不再需要它们时将其移除并不是那么简单。简单地删除云资产,而不确保你的公司删除了可能指向它们的所有记录,无论是在你的域的DNS区域中还是在你的代码库中,都可能会为攻击者打开严重的安全漏洞进行攻击。

  想象一下这样的场景:你想要为你的客户运行一个特殊的节日活动,并且你决定为它创建一个微型站点来托管所有的促销材料、注册表单等。你的开发人员开始工作,他们设计网站,他们在AWS或任何云计算服务上配置一个新的虚拟服务器来托管它,以及一个存储桶来存储网站的数据。

  云服务提供商将从其可重复使用的IP地址池中为你的EC2实例分配一个可公开访问的IP地址,并将在其域-Bucket-name下为你的存储桶分配一个主机名——s3.Region-code.amazonaws.com——这样你就可以通过API访问它。

  用户需要访问你的站点和搜索引擎,而机器人需要对其进行索引,因此下一步是在你的主域名上为其创建一个子域,并将其指向IP地址,以便可以从你的子域访问Web服务器,然后,为S3存储桶创建一个子域,并创建一条DNS CNAME记录,将其指向存储桶的AWS主机名。假设你还有一个移动应用程序将数据发送到该竞选网站,因此主机名也会成为该应用程序的代码。由于统计数据跟踪或数据库备份等原因,你还有其他内部应用程序和工具需要与网站集成。

  你现在创建的是位于不同位置的大量记录,这些记录实质上是临时的云资源。如果你曾经删除这些云资产,因为它们已经达到了它们的目的,但你没有同时删除你的开发人员和基础设施工程师为它们创建的记录,那么你就产生了很大的风险。

  攻击者可以使用你的子域进行钓鱼网站、恶意软件传播

  攻击者可以从亚马逊获得相同的IP地址,因为它现在是免费的,并且他们有你的子域指向它,因此他们可以创建钓鱼站点或恶意软件服务站点。他们可以使用相同的名称注册S3存储桶,因为他们在你的应用程序代码中发现了一个引用,现在你的应用程序正在向他们拥有的存储桶发送敏感数据。

  这是TikTok安全工程师Abdullah Al-Sultani最近在布加勒斯特DefCamp安全会议上介绍的场景。他将这次袭击称为“云遵守”。它不仅仅是DNS记录,因为一旦账户关闭,进行资源和名称重新分配的云服务的类型和数量非常广泛。公司越大,这个影子云记录问题就越大。

  大型企业更难识别云风险

  在TikTok通过其漏洞赏金计划收到报告后,al-Sultani遇到了云蹲守的情况,报告涉及记者接管TikTok子域名。他的团队很快意识到,试图找到所有过时的记录将是一项严肃的任务,因为TikTok的母公司字节跳动在世界上许多国家拥有超过10万名员工以及开发和基础设施团队,它还在不同地区为其不同的应用程序提供了数千个域名。

  为了解决这个问题,TikTok安全团队构建了一个内部工具,该工具遍历该公司的所有域名,通过向发送HTTP或DNS请求来自动测试所有CNAME记录,识别指向AWS、Azure、Google Cloud和其他第三方服务提供商等云提供商的IP范围的所有域和子域,然后检查这些IP记录是否仍然有效并分配给TikTok。幸运的是,该公司已经在一个内部数据库中跟踪云提供商分配给其资产的IP地址,但许多公司可能不会进行这种类型的跟踪。

  Sultani并不是第一个强调蹲守云层的危险的人。去年,宾夕法尼亚州立大学的一组研究人员通过在亚马逊的美国东部地区部署300万台EC2服务器来分析公共云上IP重复使用的风险,这些服务器获得了150万个唯一的IP地址,约占该地区可用池的56%。在进入这些IP地址的流量中,研究人员发现了金融交易、GPS位置数据和个人身份信息。

  研究人员在他们的研究论文中表示:“我们确定了四类云服务、七类第三方服务和域名系统作为可利用的潜在配置来源。我们发现,可利用的配置很常见,而且在许多情况下极其危险。在七类第三方服务中,我们确定了跨越数百台服务器(例如数据库、缓存、移动应用程序和Web服务)的数十个可利用的软件系统。最后,我们确定了覆盖231个eTLD的5446个可利用域名——其中105个在前10000个域名中,23个在前1000个热门域名中。”

  继承自第三方软件的云计算风险

  云蹲守问题的风险甚至可以从第三方软件组件继承。6月,来自Checkmarx的研究人员警告说,攻击者正在扫描NPM包,以寻找对S3存储桶的引用。如果他们发现一个不再存在的存储桶,他们会注册它。在许多情况下,这些包的开发人员选择使用S3存储桶来存储在包安装期间下载和执行的预编译二进制文件。因此,如果攻击者重新注册被放弃的存储桶,他们可以在信任受影响的NPM包的用户的系统上执行远程代码执行,因为他们可以托管自己的恶意二进制文件。

  在一个类似的例子中,今年早些时候,Aqua Security的研究人员表明,攻击者可以重新注册已被删除或重命名的GitHub存储库。如果应用程序或文档仍然指向它们,则可以使用它们来提供恶意软件,研究人员将这种攻击称为RepoJack。

  降低云蹲守风险

  攻击面非常大,但公司需要从某个地方开始,越快越好。IP重用和DNS方案似乎是最普遍的,可以通过以下几种方式缓解:使用云提供商保留的IP地址,这意味着在公司显式释放它们之前,它们不会被释放回共享池,通过将它们自己的IP地址传输到云,当用户不需要直接访问这些服务器时,通过在服务之间使用私有(内部)IP地址,或者通过使用由云提供商提供的IPv6地址,因为它们的数量太大,不太可能永远被重复使用。

  公司还应该执行一项策略,防止在应用程序中对IP地址进行硬编码,而应该对其所有服务使用DNS名称。他们应该定期维护这些记录并删除陈旧的记录,但让所有东西都可以通过DNS寻址提供了一个中央管理位置,而不是追查硬编码的IP地址。

首页
评论
分享
Top