服务
关于
CloudProse博客
安全和IAM

一键通行:更好地保护您的AWS环境的关键要点

一些客户问我们如何做才能避免类似非常公开和最近的Capital One违规的违规行为。
乔什·冯·绍姆堡精选
乔什·冯·绍姆堡 | 2019年8月14日

2019年8月14日,星期三

在Trek10上,一些客户问我们如何做才能避免类似非常公开和最近的Capital One违规的违规行为。在研究了该主题并收集了过去几周的数据点之后,我们汇总了一些建议。在跳入之前,请注意,本博文不是对实际攻击中发生的事情的深入探讨。我们将做一个快速回顾,但是这篇文章旨在作为指南,指导企业在其AWS环境中可以采取哪些措施来减轻此类攻击的风险。

一如既往,Brian Krebs提供了 很棒的概述 还有更多细节 跟进。的 起诉书本身 读起来也很棒!

与数据泄露一样,攻击通常包括两个部分:首先是对外围的攻击,然后是整个环境的横向移动以进行数据渗透。在这种情况下,初始攻击发生在托管开源Modsec WAF的面向公众的EC2实例遭到破坏时。允许首次违反此漏洞的漏洞是未知的,这意味着攻击者几乎可以允许任何数量的漏洞。根据覆盖范围,这几乎不是零日漏洞,这意味着它可以避免具有适当的安全控制。

一旦攻击者破坏了EC2实例,EC2实例就可以通过连接到该实例的IAM角色的IAM策略访问所有AWS服务。 EC2实例配置文件 (在起诉书中称为“ *****-WAF-角色”)现在可以通过 AWS的元数据服务.

这很容易分解成一个完全独立的博客文章,但我们会尽力使其快速!自攻击以来,AWS的元数据服务引起了很大争议(该服务允许具有终端访问实例的任何用户查询 http://169.254.169.254/latest/... 获得对临时IAM凭据的访问权限。

元数据服务为EC2实例提供AWS IAM凭证,以访问其他AWS服务,而无需手动创建IAM访问密钥并将其硬编码到您的应用程序中-这是一项巨大的安全性胜利。由于这种攻击,EC2角色和AWS元数据服务已被广泛批评为主要的AWS漏洞。我们认为这与事实相去甚远。

实际上,此服务允许自动密钥旋转,并且无需将访问密钥硬编码到应用程序代码中即可访问AWS服务。 Amazon是否有办法改善元数据服务的安全性?当然,安全性应始终在提高,但是完全删除此服务将导致安全性大大降低。

可以从EC2实例的终端以及实例外部的攻击者的本地环境访问这些AWS服务……但是这些密钥是临时的,每天会自动旋转多次,如果在本地使用,它们将很快失效)。

有趣的是,数据泄露是通过使用S3 Sync命令从VPN提供商的IP地址完成的。 AWS的威胁检测服务GuardDuty提供了 高严重性通知 与EC2实例配置文件关联的凭据是否在EC2实例之外使用。在Trek10,我们将GuardDuty集成到我们的票务系统中(内部和针对客户),以便高严重性警报创建票证以供审核。

与违规有关的关键讨论点之一是围绕是否附加了IAM策略 *-WAF-Role过于宽容。目前尚不清楚为什么Modsec实例需要访问S3。我们尚未找到与此相关的任何公共详细信息,但是鉴于我们知道攻击者先运行了ListBuckets命令,然后又运行了Sync命令,因此我们可以假定该角色的IAM策略看起来像这样(尽管范围仅限于特定的S3存储桶):

{ "Effect": "Allow", "Actions": [ "s3:ListBuckets", "s3:ListAllMyBuckets", "s3:ListBuckets", "s3:GetObject" ], "Resource": "*"}

如何减轻这次攻击的风险

本节概述了基于攻击的针对您的AWS环境的建议概述,以及有关Trek10如何在其CloudOps产品中实施最佳安全实践的一些详细信息。根据建议是否减轻了外围攻击或允许S3数据渗透的横向攻击的风险,对建议进行了细分。我们将从侧向攻击开始,由于可获得的公共信息会更加有趣!

防止对S3数据的横向攻击

请记住,AWS IAM是一项非常强大的服务(我们在Trek10上非常重视这一服务-请查看 我们的IAM升级方法 了解如何认真!)。消除此漏洞的关键在于理解AWS IAM的强大功能意味着组织需要采取 最小特权原则 非常重视并确保所有IAM实体的​​范围都适当。以下是一些基于违规的建议:

  • 进行 IAM审核.
    • 查看附加到所有IAM实体的​​IAM策略
    • Trek10借助其自定义的IAM枚举脚本提取了各种各样的数据,以帮助我们的客户在所有IAM实体上实施最小特权原则。
    • 我们还一直在开发其他工具和集成来支持安全性,例如我们的 过量进入驱魔师.

您甚至可能发现有许多未使用的IAM实体,请先取消激活任何密钥以确保没有中断,然后再删除它们,以将其删除。

  • 启用 AWS GuardDuty,具有多种检测功能。 一种非常相关的能力 如前所述,此漏洞的原因在于它能够识别是否已在EC2主机之外使用了作为EC2元数据服务的一部分而获得的凭据。

就像我们为客户所做的那样,GuardDuty应该集成到您的票务系统中。我们还提供仅通知高严重性结果的选项,例如,以减少噪音。

  • 采用 亚马逊梅西
    • 来自文档:完全托管的服务不断监视数据访问活动中的异常情况,并在检测到未经授权的访问或意外的数据泄漏风险时生成详细警报。如今,Amazon Macie可以保护存储在Amazon S3中的数据,并于今年晚些时候支持其他AWS数据存储。

由于Amazon Macie相当昂贵,因此我们正在尝试一些不同的方法来检测和阻止客户端的S3数据泄漏(例如,如果S3 API调用了帐户中所有S3对象的一定百分比,则会切断对身份验证的访问权限) IAM实体,直到提供手动批准为止。

防止对EC2实例的初始攻击

由于公众对EC2实例的最初攻击知之甚少,因此这些“缓解措施”只是EC2的一般良好安全做法-特别着重于组织如何利用AWS庞大的安全服务库来保护EC2实例:

  • 进行防火墙审核
    • 配置强化的安全组/网络ACL,以关闭所有不必要的打开的端口。
    • Trek10使用其自定义脚本将安全组枚举到报告中以进行验证。
  • 更好的是,通过安全性测试,在任何地方都将基础结构用作代码 集成到您的CI / CD管道中 检测任何漂移。凭借我们的AWS DevOps能力,Trek10在构建CI / CD管道方面拥有世界闻名的专业知识。
  • 定期扫描您的EC2实例 AWS检查器 检测任何漏洞并进行补救。
    • Trek10将AWS Inspector报告集成到票证系统中以进行补救。
  • 启用前面已经提到的AWS GuardDuty进行入侵检测。
    • Trek10将GuardDuty警报集成到票证系统中,甚至可以通过AWS WAF自动阻止攻击IP地址。
  • 确保您的系统是最新的 AWS补丁管理器 通过系统管理器。
    • Trek10将补丁最佳实践应用到了与票务系统集成的补丁管理器。

Trek10的CloudOps服务将各种AWS安全服务集成到票证系统中,并使用预构建的模板自动进行部署。此外,Trek10正在构建高级的云原生安全检测和防御服务。我们将AWS本机安全服务与绝对最佳的第三方商业和开源安全工具相结合,以全面保护EC2实例和云本机AWS服务。我们正在与 Sophos Cloud Optix 为此服务,我们很高兴在今年晚些时候发布此服务。请留意未来的博客文章!

作者
乔什·冯·绍姆堡精选
乔什·冯·绍姆堡