我们正处于云计算时代,虚拟服务器和存储空间之类的资源常常在需要时通过部署脚本以编程方式提供。虽然启用这类资产的过程很快,但删除它们时就没有那么简单了,仅仅删除云资产,就可能为攻击者提供安全漏洞的风险。
设想一下这个场景:你想要为客户们策办一次特殊的节日活动,并决定创建一个微型网站来存放所有的促销材料和注册表单等内容。开发人员开始设计网站,在AWS或任何云计算服务上申请配置一个新的虚拟服务器来托管它,并配置用来存储网站数据的存储桶。云服务提供商将从其可重用IP地址池中为你的EC2实例分配一个可公开访问的IP地址,并在其域名下为你的存储桶分配一个主机名:bucket-name.s3.region-code.amazonaws.com,那样你可以通过API访问它。
用户需要抵达你的网站和搜索引擎,机器人程序需要将该网站编入索引,所以下一步是在你的主域名上为它创建一个子域名,并将其指向IP地址,这样就可以从你的子域名访问Web服务器。然后为S3存储桶创建子域,并创建DNS CNAME记录,将其指向存储桶的AWS主机名。
假设你还有一个移动应用程序向这个活动网站发送数据,那么主机名也会进入到应用程序的代码中。由于统计数据跟踪或数据库备份等原因,你还有其他内部应用程序和工具需要与该网站集成起来。
你现在创建的是处于不同位置的大量记录,它们指向的对象实际上是临时云资源。如果你曾因那些云资产已完成任务而删除它们,但却并未删除开发人员和基础设施工程师为它们创建的记录,你将面临很大的风险。
攻击者可以从亚马逊获得相同的IP地址,他们可以创建一个网络钓鱼网站或恶意软件分发网站,用相同的名称注册一个S3存储桶,因为他们在你应用程序的代码中找到了一处引用,现在你的应用程序将敏感数据发送到攻击者拥有的存储桶。
这是安全工程师Abdullah Al-Sultani最近在举行的DefCamp安全大会上演示的场景,他把这种攻击称为“云抢注”(cloud squatting)。这并不仅限于DNS记录,因为一旦帐户关闭,就重新分配资源和名称的云服务类型和数量非常广泛。公司规模越大,影子云记录问题就越严重。
Al-Sultani在无意中发现了云抢注,他的团队很快意识到,试图找到所有过期的记录将是一项艰巨的任务,因为他们企业在全球许多国家拥有超过10万名员工以及开发和基础设施团队,它还为不同地区的不同应用程序提供了数千个域名。
为了解决这个问题,安全团队构建了一个内部工具,该工具可以通过发送HTTP或DNS请求,迭代搜索该公司的所有域名,并自动测试所有CNAME记录;识别指向属于云提供商(比如AWS、Azure、谷歌云和其他第三方服务提供商)的IP范围的所有域和子域;然后检查这些IP记录是否仍然有效。幸运的是,该公司已经在内部数据库中跟踪云提供商分配给其资产的IP地址,但许多公司可能不会进行这种类型的跟踪。
Al-Sultani不是第一个强调云抢注的人。去年,宾夕法尼亚州立大学的一组研究人员分析了公共云上IP重用的风险,他们在亚马逊的美国东部地区部署了300万台EC2服务器,这些服务器接收150万个独特的IP地址,约占该地区可用IP地址池的56%。在进入到这些IP地址的流量中,研究人员发现了金融交易、GPS定位数据以及个人身份信息。
云抢注问题的风险甚至可能源自第三方软件组件。今年6月,有研究人员警告,攻击者在扫描npm软件包,查找对S3存储桶的引用。如果攻击者发现有不再存在的存储桶,就注册它,在许多情况下,这些软件包的开发人员选择使用S3存储桶来存储预编译的二进制文件,这些文件在软件包安装期间下载并执行。因此,如果攻击者重新注册被丢弃的存储桶,就可以在信任受影响的npm软件包的用户的系统上远程执行代码,因为他们可以托管自己的恶意二进制文件。
今年早些时候Aqua Security的研究人员表明,已被删除或重命名的GitHub代码库可以被攻击者重新注册。如果应用程序或文档仍然指向它们,它们就可以用来分发恶意软件。研究人员将这种攻击称为代码库劫持活动。
IP重用和DNS场景可以通过几种方式来应对:使用来自云提供商的保留IP地址(这意味着它们不会被释放回到共享地址池中,直到明确释放它们),将自己的IP地址传输到云,在用户不需要直接访问服务器时在服务之间使用私有(内部)IP地址,或者使用云提供商提供的IPv6地址,因为地址数量如此之大,以至于它们不太可能被重用。
企业还应该执行一项策略,防止将IP地址硬编码到应用程序中,而是应该为所有服务使用DNS名称。还应定期维护这些记录,并删除过时记录,为可以通过DNS来寻址提供了集中管理点,不必追踪硬编码的IP地址。
参考及来源:https://www.csoonline.com/article/1261461/cloud-squatting-how-attackers-can-use-deleted-cloud-assets-against-you.html