攻击者从不安全存储在数以万计的 Web 应用程序的环境变量中收集 Amazon Web Services 密钥和各种云服务的访问令牌。
Unit 42 研究人员发现了一种数据勒索活动,该活动主要是攻击者通过从不安全地存储在 Web 服务器上的环境 (.env) 文件,收集敏感的凭证进而来破坏 AWS 资源。暴露的文件包含AWS访问密钥,数据库和社交媒体帐户的凭证,SaaS应用程序和电子邮件服务的API密钥,以及各种云服务的访问令牌。
该操作是在研究人员调查一个被攻击的AWS环境时发现的,该环境被滥用于对其他域进行自动扫描。研究人员还发现,攻击者从大约 110,000 个域中收集了 .env 文件,导致超过 90,000 个敏感的环境变量暴露,其中 7,000 个对应于组织使用的云服务。
研究人员在报告中说:“并非所有泄漏都必然包含用户帐户或机密,但它们都泄露了有关受害者内部基础设施或其配置的一些详细信息。
泄露的凭证示例包括 1,185 个唯一的 AWS 访问密钥、333 个 PayPal OAuth 令牌、235 个 GitHub 令牌、111 个 HubSpot API 密钥、39 个 Slack webhook 和 27 个 DigitalOcean 令牌。
据AWS发言人称,AWS自身服务和基础设施并未受到研究中概述的调查结果的影响。“这篇博客中描述的问题是由于用户滥用配置错误的Web应用程序(托管在云端和其他地方)的结果,这些应用程序允许公众访问环境变量(.env)文件。其中一些文件包含各种凭证,包括AWS凭证,然后用户使用这些凭证来调用AWS API。
由于配置错误而暴露的环境变量
多个 Web 开发框架和 Web 应用程序将重要的配置数据存储在 .env 文件中。这可能包括应用程序运行所需的第三方服务和资源的凭据和 API 密钥。应将 Web 服务器配置为阻止访问 .(dot) 文件,因为这些应该是永远不会供公众访问的隐藏文件。但是,错误配置一直都在发生。另一个例子是 .git 文件夹,它存储了 git 源代码版本控制系统的重要配置信息。
.env 或 .git 文件的意外暴露是其他研究人员过去警告过的已知问题,因此攻击者运行爬虫在域的根文件夹中查找此类暴露文件并不罕见。然而,Palo Alto Networks 的 Unit 42 发现的大规模黑客活动表明,这种错误配置仍然普遍存在。
AWS 环境内部的横向移动
在经验丰富的黑客手中,泄露的密钥可能非常强大和危险。例如,此操作背后的攻击者展示了 AWS API 的高级知识。在获取 AWS 访问密钥后,攻击者使用它运行 GetCallerIdentity API 调用,以验证分配给暴露凭据的身份或角色。他们还通过调用 ListUsers 来收集 AWS 账户中的 IAM 用户列表,并通过调用 ListBuckets 来识别所有现有的 S3 存储桶,从而执行其他侦查操作。
在调查的受损 AWS 环境中,攻击者意识到他们获得的暴露的 AWS IAM 角色不具有对所有资源的管理权限。但是,它有权创建新的 IAM 角色并将 IAM 策略附加到现有角色。然后,他们继续创建一个名为 lambda-ex 的新角色,并将 AdministratorAccess 策略附加到该角色,从而实现权限提升。
研究人员表示:“在成功创建特权IAM角色之后,攻击者试图创建两个不同的基础设施堆栈,一个使用Amazon弹性云计算(EC2)资源,另一个使用AWS Lambda。“通过执行这些执行策略,攻击者虽然无法创建安全组、密钥对和 EC2 实例,但他们成功创建了多个 lambda 函数,并附加了新创建的 IAM 角色。”
AWS Lambda 是一个无服务器计算平台,旨在按需执行用户提供的应用程序代码。它之前曾被攻击者滥用于用 Go 编写的挖矿工具进行加密挖掘,但在这种情况下,黑客使用它来部署一个 bash 脚本,该脚本将扫描其他域以查找暴露的 .env 文件,从中提取凭据并将它们上传到他们之前入侵的公共 S3 存储桶。
该特定脚本正在寻找 Mailgun 电子邮件发送平台的凭据,但通过访问攻击者公开暴露的 S3 存储桶,研究人员能够了解该活动的全部范围。“我们确定了超过 2.3 亿个攻击目标,攻击者正在扫描这些目标,以查找配置错误和暴露的环境文件。在访问此公共 S3 存储桶时,我们估计多个被入侵的 AWS 账户都是此次恶意扫描的目标,这是入侵-扫描-入侵自动化操作的一部分。
数据泄露和敲诈勒索
每当他们设法获得 S3 存储桶(许多 Web 应用程序的流行数据存储选项)的凭据时,攻击者就会使用一种名为 S3 浏览器的 Windows 工具与 S3 API 交互并从中泄露所有数据。
下载所有文件后,攻击者删除了它们并留下了一个赎金文件,告诉所有者他们现在可以访问他们的敏感信息,并计划在不付款的情况下将其出售。
威胁行为者从 Tor 匿名网络、公共 VPN 或使用其他受损账户从 AWS 基础设施本身访问 AWS 账户和 S3 存储桶。但是,研究人员检测到两个实例,攻击者直接从分配给乌克兰和摩洛哥 ISP 的 IP 地址进行连接。
研究人员建议采取补救措施
Palo Alto Networks 研究人员建议组织为 S3 存储桶事件启用 S3 日志记录或 CloudTrail 日志记录,以便在发生事件时能够执行取证调查。这些设置默认不会打开,并且可能会增加云环境的成本,因为它们会使用资源,但为了能够准确评估在发生入侵的情况下发生的情况,这些设置是值得的。
AWS 的 GuardDuty 服务为凭证和 EC2 资源滥用提供了一些警报功能。组织可以针对日志数据中的异常活动创建自己的警报。
研究人员强烈建议不要在应用程序中使用长期的IAM访问密钥,而是依赖仅提供临时访问权限的IAM角色。在配置对IAM资源的访问时,应遵循最小权限原则,以便攻击者可以轻松执行权限提升或横向移动。还应禁用对未使用的 AWS 区域的访问,以便攻击者无法在其他区域部署资源。
AWS发言人警告说,环境变量文件永远不应该对公访问,“甚至即使没有公开,也不应该包含AWS凭证。AWS 为 Web 应用程序提供了各种易于使用的机制,以安全的方式访问临时 AWS 凭证。我们建议客户遵循《AWS 身份和访问管理 (IAM) 的最佳实践》 ,以帮助保护其 AWS 资源。
引用
Unit 42 攻击威胁报告:https://unit42.paloaltonetworks.com/large-scale-cloud-extortion-operation/
AWS身份访问最佳实践:https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html