使用外部 KMS 密钥的 AWS S3 对象加密
编辑使用外部 KMS 密钥的 AWS S3 对象加密
编辑识别在 S3 存储桶中使用来自外部账户的 AWS KMS 密钥进行加密的 CopyObject
事件。 拥有访问权限的攻击者可能会利用配置错误的 S3 存储桶和适当的权限,使用外部 KMS 密钥对对象进行加密,从而阻止受害者访问他们自己的数据。
规则类型: esql
规则索引: 无
严重性: 中
风险评分: 47
运行频率: 5 分钟
搜索索引范围: now-9m ( 日期数学格式,另请参阅 额外回溯时间
)
每次执行的最大警报数: 100
参考资料:
- https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html/
- https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html/
- https://www.gem.security/post/cloud-ransomware-a-new-take-on-an-old-attack-pattern/
- https://rhinosecuritylabs.com/aws/s3-ransomware-part-1-attack-vector/
标签:
- 域: 云
- 数据源: AWS
- 数据源: Amazon Web Services
- 数据源: AWS S3
- 数据源: AWS KMS
- 用例: 威胁检测
- 策略: 影响
版本: 2
规则作者:
- Elastic
规则许可证: Elastic License v2
调查指南
编辑分类和分析
调查使用外部 KMS 密钥的 AWS S3 对象加密
此规则检测到使用了外部 AWS KMS 密钥来加密 S3 存储桶中的对象。 拥有访问权限的攻击者可能会利用配置错误的 S3 存储桶,使用外部密钥复制存储桶中的对象,并阻止受害者访问他们自己的数据。 此规则使用 ES|QL 来查找 CopyObject
操作的使用情况,其中目标存储桶的 cloud.account.id
与从用于加密的 AWS KMS 密钥中解析出来的 key.account.id
不同。
可能的调查步骤
-
识别行为者: 查看
aws.cloudtrail.user_identity.arn
和aws.cloudtrail.user_identity.access_key_id
字段,以识别执行该操作的人员。 验证此行为者是否通常执行此类操作,以及他们是否具有必要的权限。 -
查看请求详情: 检查
aws.cloudtrail.request_parameters
,以了解CopyObject
操作的具体详情。 查找任何可能表明未经授权或恶意修改或使用未知 KMS 密钥 ID 的异常参数。 -
分析请求来源: 调查
source.ip
和source.geo
字段,以确定请求的地理来源。 外部或意外的位置可能表明凭据已泄露或存在未经授权的访问。 -
通过时间戳进行上下文关联: 使用
@timestamp
字段来检查对象何时被复制。 在非工作时间或常规维护窗口之外进行的更改可能需要进一步审查。 - 与其他活动关联: 搜索此操作之前和之后的相关 CloudTrail 事件,以查看同一行为者或 IP 地址是否参与了其他潜在的可疑活动。
-
检查对象删除或访问: 查找可能表明攻击者正在访问和销毁对象(包括较旧的对象版本)的对同一 S3 存储桶的
DeleteObject
、DeleteObjects
或GetObject
API 调用。 - 询问相关人员: 如果复制事件是由用户发起的,请与负责管理 S3 存储桶的人员或团队核实此操作的意图和授权。
误报分析
-
合法的管理操作: 确认
CopyObject
操作是否与变更管理系统中记录的计划更新、维护活动或合法的管理任务一致。 - 一致性检查: 将该操作与用户或组织内执行的类似活动的的历史数据进行比较。 如果该操作与过去合法的活动一致,则可能表明是误报。
响应和补救
- 立即审查: 如果该活动未经授权,请搜索 S3 存储桶中可能放置的勒索说明,并查看存储桶的访问日志中是否存在任何可疑活动。
-
增强监控和警报: 调整监控系统,以便对类似的
CopyObject
操作发出警报,尤其是涉及敏感数据或不寻常文件扩展名的操作。 - 教育和培训: 对拥有管理权限的用户进行额外培训,让他们了解有关 S3 存储桶管理的安全最佳实践的重要性,以及勒索软件的风险。
- 审计 S3 存储桶策略和权限: 对所有 S3 存储桶策略和相关权限进行全面审计,以确保它们遵守最小权限原则。
- 事件响应: 如果有恶意意图或安全漏洞的迹象,请启动事件响应协议,以减轻任何损害并防止将来发生。
其他信息
有关管理 S3 存储桶安全性和防范勒索软件的更多指导,请参阅 AWS S3 文档和 AWS 安全最佳实践。 此外,请参阅以下资源,了解有关 S3 勒索软件保护的具体详细信息:- ERMETIC 报告 - 野外 AWS S3 勒索软件暴露 - S3 勒索软件第 1 部分:攻击向量
设置
编辑需要在 CloudTrail 跟踪配置中启用 AWS S3 数据事件类型。
规则查询
编辑from logs-aws.cloudtrail-* metadata _id, _version, _index // any successful copy event | where event.dataset == "aws.cloudtrail" and event.provider == "s3.amazonaws.com" and event.action == "CopyObject" and event.outcome == "success" // abstract key account id, key id, encrypted object bucket name and object name | dissect aws.cloudtrail.request_parameters "{%{?bucketName}=%{target.bucketName},%{?x-amz-server-side-encryption-aws-kms-key-id}=%{?arn}:%{?aws}:%{?kms}:%{?region}:%{key.account.id}:%{?key}/%{keyId},%{?Host}=%{?tls.client.server_name},%{?x-amz-server-side-encryption}=%{?server-side-encryption},%{?x-amz-copy-source}=%{?bucket.objectName},%{?key}=%{target.objectName}}" // filter for s3 objects whose account id is different from the encryption key's account id // add exceptions based on key.account.id or keyId for known external accounts or encryption keys | where cloud.account.id != key.account.id // keep relevant fields | keep @timestamp, aws.cloudtrail.user_identity.arn, cloud.account.id, event.action, target.bucketName, key.account.id, keyId, target.objectName
框架: MITRE ATT&CKTM
-
策略
- 名称: 影响
- ID: TA0040
- 参考 URL: https://attack.mitre.org/tactics/TA0040/
-
技术
- 名称: 用于影响的数据加密
- ID: T1486
- 参考 URL: https://attack.mitre.org/techniques/T1486/