罕见用户执行 AWS SSM SendCommand
编辑罕见用户执行 AWS SSM SendCommand
编辑检测使用 AWS Systems Manager (SSM) 在 EC2 实例上执行命令或脚本的行为,例如 RunShellScript
、RunPowerShellScript
或自定义文档。虽然合法用户可能会使用这些命令进行管理任务,但攻击者也可能利用具有凭据的用户来建立持久性、安装恶意软件或执行反向 shell 以进一步访问受损实例。这是一个[新术语](https://elastic.ac.cn/guide/en/security/current/rules-ui-create.html#create-new-terms-rule)规则,它会在过去 7 天内查找 aws.cloudtrail.user_identity.arn
字段首次出现此行为的实例。
规则类型: new_terms
规则索引:
- filebeat-*
- logs-aws.cloudtrail-*
严重性: 低
风险评分: 21
运行频率: 5 分钟
搜索索引范围: now-9m (日期数学格式,另请参阅 额外的回溯时间
)
每次执行的最大警报数: 100
参考:
标签:
- 域: 云
- 数据源: AWS
- 数据源: Amazon Web Services
- 数据源: AWS SSM
- 用例: 日志审计
- 用例: 威胁检测
- 策略: 执行
- 资源: 调查指南
版本: 210
规则作者:
- Elastic
规则许可证: Elastic License v2
调查指南
编辑分类和分析
调查由罕见用户执行的 AWS SSM SendCommand
此规则检测由意外或新用户使用 AWS Systems Manager (SSM) 在 EC2 实例上执行命令或脚本的行为。SSM SendCommand
操作可以启用远程命令执行,攻击者可能会利用它来安装后门、部署恶意软件或通过反向 shell 与受损实例进行交互。
可能的调查步骤
- 确定目标实例:
-
实例 ID: 查看
aws.cloudtrail.flattened.request_parameters.targets
字段以确定此命令的目标 EC2 实例。确认这些实例是否应通过 SSM 进行管理。 -
使用的文档: 检查
aws.cloudtrail.flattened.request_parameters.documentName
字段,该字段指定正在执行的文档或脚本。诸如RunShellScript
或RunPowerShellScript
之类的命令可以指示交互式会话或基于脚本的交互。 - 查看用户上下文:
-
用户身份: 检查
aws.cloudtrail.user_identity.arn
字段以确定执行SendCommand
的用户或角色。如果此用户通常不参与 EC2 或 SSM 交互,则可能表示未经授权的访问。 -
访问模式: 验证该用户是否通常具有在实例上执行
SendCommand
操作的权限,以及此操作的频率是否与预期行为匹配。 - 分析命令参数:
- 文档内容: 虽然在 CloudTrail 中可能看不到确切的命令,但请使用日志来确定脚本的用途,尤其是在文档名称表明具有加密、数据传输或反向 shell 功能的情况下。
-
时间和上下文: 将此命令执行与您环境中最近的其他 SSM 操作进行比较。不寻常用户执行的单个
SendCommand
事件可能表示更大规模攻击的早期阶段。 - 检查用户代理和源 IP:
-
用户代理分析: 查看
user_agent.original
字段以验证使用的工具或客户端(例如,aws-cli
)。这可以深入了解此操作是自动化的、脚本化的还是手动执行的。 -
源 IP 和地理位置: 使用
source.address
和source.geo
字段检查 IP 地址和地理位置是否与您组织的预期区域一致。不寻常的 IP 地址或位置可能表示外部攻击者。 - 评估持久性指标:
- 命令一致性: 调查此操作是否属于重复模式的一部分,例如跨实例重复执行命令,这可能表明试图维持访问。
-
权限: 确保与用户关联的 IAM 策略将
SendCommand
操作限制在必要的用例中。考虑为具有最少角色或权限的用户执行的命令添加警报。 - 与其他 CloudTrail 事件关联:
-
交叉引用 SSM 操作: 查找其他最近的 SSM 操作,如
CreateDocument
、UpdateDocument
或其他SendCommand
事件,这些事件可能表明正在为进一步的利用做准备。 -
监控数据访问或修改: 将其与最近事件中的
S3
访问模式、IAM 更改或 EC2 修改相关联,以检测更广泛的恶意活动。
误报分析
-
例行自动化: SSM
SendCommand
可能被自动化脚本或管理工具使用。验证此事件是否与已知的例行自动化工作流程一致。 - 维护活动: 确认此时是否需要进行合法的管理活动(如修补或更新),这可能涉及在多个实例上执行类似的命令。
响应和补救
-
限制 SSM 权限: 如果未经授权,立即撤销用户或角色的
SendCommand
权限,以防止进一步访问。 - 隔离目标实例: 如果确认存在恶意行为,请隔离受影响的 EC2 实例,以限制横向移动或数据泄露。
- 调查并控制用户帐户: 如果该操作是由受损帐户执行的,请查看最近的活动并根据需要重置访问凭据。
- 审核 SSM 和 IAM 配置: 定期审核与 SSM 使用关联的权限,并确保实施最小特权访问原则。
附加信息
有关管理 AWS SSM 和 EC2 实例安全最佳实践的更多详细信息,请参阅 AWS Systems Manager 文档 和 AWS 最佳实践。
规则查询
编辑event.dataset: "aws.cloudtrail" and event.provider: "ssm.amazonaws.com" and event.action: "SendCommand" and event.outcome: "success" and not aws.cloudtrail.user_identity.arn: *AWSServiceRoleForAmazonSSM/StateManagerService*
框架: MITRE ATT&CKTM
-
策略
- 名称: 执行
- ID: TA0002
- 参考 URL: https://attack.mitre.org/tactics/TA0002/
-
技术
- 名称: 云管理命令
- ID: T1651
- 参考 URL: https://attack.mitre.org/techniques/T1651/