在 Amazon Web Services (AWS),保护客户数据的安全始终是我们的首要任务。近期,AWS 客户事件响应团队 (CIRT) 和自动化安全监控系统发现 Amazon Simple Storage Service (S3) 桶中与加密活动相关的异常行为有所增加。尽管这些行为并未利用 AWS 服务的漏洞,但未授权用户使用合法凭证进行了错误操作。为了减少此类风险,我们建议客户遵循以下四项安全最佳实践: 在 AWS 的世界里,客户的数据安全始终是我们的首要任务。最近,AWS 客户事件响应团队CIRT及自动化安全监控系统发现 Amazon S3 桶中异常的加密活动有所上升。需要指出的是,这些活动并非针对 AWS 服务的漏洞,而是需要有效的凭证,而这些凭证被未授权用户以意外的方式使用。虽然这些行为发生在客户共享责任模型的范围内,但 AWS 推荐客户采取措施,以防止或减少此类活动的影响。 与客户合作过程中,我们的安全团队发现 S3 中的加密事件数量上升,这些事件使用了一种被称为 服务器端加密SSEC 的加密方法。这一功能虽然被许多客户使用,但我们发现许多使用 SSEC 的 S3 CopyObject 操作开始覆盖对象,这意味着客户的数据被重新加密为新的加密密钥。我们的分析发现,这些行为是由获得有效客户凭证的恶意行为者所引发的。 我们通过 主动防御工具 实施了自动化的缓解措施,在许多情况下,这将帮助防止此类未授权活动的发生。这些措施已经成功阻止了大量的尝试,而无需客户采取额外步骤来保护自己。然而,威胁者使用的是有效凭证,AWS 难以可靠地区分合法使用和恶意使用。因此,我们建议客户遵循最佳实践来降低风险。 以下是保护客户免受 SSEC 未授权使用的四项安全最佳实践: 上述技术利用了 SSEC 加密,但其根本原因在于长期访问密钥的泄露。抵御凭证泄露风险的最有效方法就是从一开始就不创造长期凭证。不存在的凭证不可能被暴露或盗取,AWS 提供了一系列丰富的功能,简化了不必在源代码或配置文件中存储凭证的需求。 IAM 角色 使得应用程序可以安全地从 Amazon Elastic Compute Cloud (Amazon EC2)、Amazon Elastic Container Service (Amazon ECS) 或 Amazon Elastic Kubernetes Service (Amazon EKS) 容器,或者 Lambda 函数中,使用短期凭证进行签名 API 请求。甚至在 AWS 云之外的系统也可以通过 IAM Roles Anywhere 功能进行身份验证,而无需使用长期 AWS 凭证。此外,AWS IAM 身份中心 使开发人员工作站可以根据多因素身份验证MFA保护的长期用户身份获取短期凭证。 这些技术依赖于 AWS 安全令牌服务 (AWS STS),发布可以控制对 AWS 资源访问的临时安全凭证,而不必在应用程序中分发或嵌入长期 AWS 安全凭证。 如果没有数据保护机制,数据恢复时间可能会更长。作为数据保护的最佳实践,我们建议保护数据免遭覆盖,并维护关键数据的第二份副本。 启用 S3 版本控制,以保持桶中对象的多个版本,这样可以恢复意外删除或覆盖的对象。需要注意的是,版本控制可能会增加存储成本,尤其是对于频繁覆盖桶中对象的应用程序。在这种情况下,请考虑实施 S3 生命周期策略 来管理旧版本并控制存储成本。 此外,您还可以复制或备份关键数据到不同的桶,甚至不同的 AWS 账户或 AWS 区域。您可以通过 S3 复制 自动在桶之间复制对象。这些桶可以位于同一或不同的 AWS 账户中,也可以在同一或不同的 AWS 区域中。对希望满足更严格 RPO恢复时间点目标和 RTO恢复时间目标要求的客户,S3 复制也提供 SLA 服务水平协议。另外,您还可以使用 AWS Backup for S3,这是一个管理服务,可以自动定期备份 S3 桶。 没有监控,S3 桶上的未授权操作可能会被忽略。我们建议使用 AWS CloudTrail 或 S3 服务器访问日志 来监控对数据的访问。 AWS CloudTrail 可用于记录 AWS 服务包括 Amazon S3中的事件,甚至可以将日志汇总到一个账户,使安全团队能够访问和监控。同时,您可以创建 CloudWatch 警报,基于 特定 S3 指标 或日志来警告异常活动。这些警报可以帮助您快速识别异常行为。您还可以设置自动化配置,使用 Amazon EventBridge 和 AWS Lambda 自动采取纠正措施。您可以找到一个实施示例,该示例用于扫描整个组织中的所有桶,并应用 S3 阻止公共访问。这篇 博客文章 展示了如何实时审计对象上传的加密方法。 您还可以通过检查 CloudTrail 中的 requestParametersxamzserversideencryptioncustomeralgorithm 值来确定是否使用该技术。如果您希望查看当前使用 SSEC 加密的桶,可以参考这篇 文章 指导您配置 S3 目录清单。 另一种方法是配置 Amazon GuardDuty,并启用 扩展威胁检测的 S3 保护。这将允许 GuardDuty 扩展其威胁检测范围,并检测在 S3 桶访问权限变得更加宽松后可能发生的数据外泄活动,也能检测可能与 SSEC 加密相关的勒索软件攻击。 如果您的应用程序不使用 SSEC 作为加密方法,可以通过对 S3 桶应用资源政策,或通过对 AWS Organizations 应用资源控制政策 (RCP) 来阻止使用 SSEC。 S3 桶的资源政策通常称为桶政策,允许客户为 S3 中的单个桶指定权限。可以使用 S3 PutBucketPolicy API 操作、AWS 命令行界面 (CLI) 或通过 AWS 管理控制台来应用桶政策。详细了解桶政策的工作原理,可以参考 S3 文档。以下示例显示了一个阻止针对名为 ltyourbucketnamegt 桶的 SSEC 请求的桶政策。 json{ Version 20121017 Statement [ { Sid RestrictSSECObjectUploads Effect Deny Principal Action s3PutObject Resource arnawss3ltyourbucketnamegt/ Condition { Null { s3xamzserversideencryptioncustomeralgorithm false } } } ]} RCP 允许客户指定适用于整个 AWS Organizations 中资源的最大可用权限。可以使用 AWS Organizations UpdatePolicy API 操作、AWS CLI 或通过 AWS 管理控制台来应用 RCP。详细了解 RCP 的工作原理,可以参考 AWS Organizations 文档。以下示例显示了一个阻止组织中的桶对 SSEC 请求的 RCP。 json{ Version 20121017 Statement [ { Sid RestrictSSECObjectUploads Effect Deny Principal Action s3PutObject Resource Condition { Null { s3xamzserversideencryptioncustomeralgorithm false } } } ]} 您保护 AWS 环境免受常见威胁的最重要措施就是消除或最小化长期凭证的使用访问密钥/秘密密钥。在此之后,要进行“最小权限”LeastPrivilege分析,减少所有实体的权限。在此基础上,对于本博客中讨论的特定威胁模式,我们强调了需要关注的最常见指标。随着您的安全团队不断努力保护您的环境,请知晓 AWS 的多个团队包括 AWS 客户事件响应团队CIRT、亚马逊威胁情报和 Amazon S3 团队等服务团队正努力创新、协作并分享见解,以帮助保护您的重要数据。 在本文中,我们更新了关于客户数据的潜在威胁,并强调了四项客户能采取的安全最佳实践,以防止恶意行为者使用 SSEC 加密数据,从而利用丢失或被盗的 AWS 凭证。 随着威胁者策略的演变,我们对客户安全的承诺依然坚定不移。我们共同努力,构建一个更安全的云环境,让您可以更自信地进行创新。 如您怀疑有未授权活动,请立即联系 AWS 支持。 Steve de VeraSteve 是 AWS 客户事件响应团队 (CIRT) 的经理,专注于威胁研究和威胁情报。他热爱美式 BBQ,并且是一名获得认证的竞赛 BBQ 评委。他有一只叫 Brisket 的狗。 Jennifer PazJennifer 是一名具有十年以上经验的安全工程师,目前在 AWS 客户事件响应团队 (CIRT) 任职。Jennifer 喜欢帮助客户应对安全挑战,并实施复杂的解决方案以增强安全态势。在工作之余,Jennifer 是一名热衷于散步、慢跑、打墙球、旅行和美食的人,始终在寻找新的美食冒险。 标签:事件响应,勒索软件,S3,安全,安全博客,威胁检测防止意外加密 Amazon S3 对象
关键点总结
1 实施短期凭证
2 实施数据恢复程序
3 监控 AWS 资源的访问模式
4 阻止使用 SSEC 加密

总结