AWS SSM SendCommand 由罕见用户执行

编辑

检测使用 AWS Systems Manager (SSM) 在 EC2 实例上执行命令或脚本的行为,例如 RunShellScriptRunPowerShellScript 或自定义文档。虽然合法用户可能会使用这些命令执行管理任务,但攻击者也可以利用这些命令获取凭据以建立持久性、安装恶意软件或执行反向 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 字段,该字段指定正在执行的文档或脚本。诸如 RunShellScriptRunPowerShellScript 之类的命令可能表示交互式会话或基于脚本的交互。
  • 查看用户上下文:
  • 用户身份: 检查 aws.cloudtrail.user_identity.arn 字段以确定执行 SendCommand 的用户或角色。如果此用户通常不参与 EC2 或 SSM 交互,则可能表示未经授权的访问。
  • 访问模式: 验证用户是否通常具有对实例执行 SendCommand 操作的权限,以及此操作的频率是否与预期行为相符。
  • 分析命令参数:
  • 文档内容: 虽然 CloudTrail 中可能无法看到确切的命令,但请使用日志确定脚本的目的,尤其是在文档名称暗示加密、数据传输或反向 shell 功能时。
  • 时间和上下文: 将此命令执行与环境中的其他近期 SSM 操作进行比较。由异常用户发出的单个 SendCommand 事件可能表示较大攻击的早期阶段。
  • 检查用户代理和源 IP:
  • 用户代理分析: 查看 user_agent.original 字段以验证使用的工具或客户端(例如,aws-cli)。这可以提供有关此操作是自动执行、脚本化还是手动执行的见解。
  • 源 IP 和地理位置: 使用 source.addresssource.geo 字段检查 IP 地址和地理位置是否与组织的预期区域一致。异常的 IP 地址或位置可能表示外部攻击者。
  • 评估持久性指标:
  • 命令一致性: 调查此操作是否属于重复模式的一部分,例如跨实例重复执行命令,这可能表明试图保持访问权限。
  • 权限: 确保与用户关联的 IAM 策略将 SendCommand 操作限制在必要的用例中。考虑为具有最小角色或权限的用户执行的命令添加告警。
  • 与其他 CloudTrail 事件相关联:
  • 交叉引用 SSM 操作: 查找其他最近的 SSM 操作,例如 CreateDocumentUpdateDocument 或其他 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