将 Amazon GuardDuty 与 Google SecOps 集成

本文档介绍了如何将 Amazon GuardDuty 与 Google Security Operations (Google SecOps) 集成。

前提条件

如果您需要对集成的只读权限(例如运行连接器),请使用 AmazonGuardDutyReadOnlyAccess 政策。

如需获取所有集成功能的完整访问权限,请使用 AmazonGuardDutyFullAccess 政策。

如需详细了解如何使用政策,请参阅 AWS 托管式政策。

为 AWS 配置 Google Cloud Web 身份 (OIDC) 联合

Google SecOps 集成和连接器可以使用 OpenID Connect (OIDC) Web 身份联合向 AWS 进行身份验证。这样就无需在平台中存储长期有效的 AWS 访问密钥和 Secret 密钥。

如需设置 OIDC 联合,您必须在Google Cloud 环境与 AWS 环境之间配置信任关系。

第 1 步:配置 Google Cloud 服务账号

  1. 在 Google Cloud 控制台中,创建或选择专用于 AWS 集成的目标 Google Cloud 服务账号。
  2. 将 Service Account Token Creator 角色 (roles/iam.serviceAccountTokenCreator) 分配给服务账号,以启用令牌生成和模拟。
  3. 复制此服务账号的 OAuth 2.0 客户端 ID(也称为唯一 ID 或主题 ID)。配置 AWS 时,您需要用到此值。
  4. 配置 Google SecOps 环境如何以此目标服务账号身份进行身份验证:
    • Workload Identity(推荐):如果您的 Google SecOps 代理或环境在 Google Cloud中原生运行,请确保其有权使用 Workload Identity 模拟此目标服务账号。
    • 服务账号密钥:如果您的环境或代理在外部或本地运行,请下载此目标服务账号的 JSON 服务账号密钥文件,并配置您的平台环境以使用该文件进行身份验证。

第 2 步:在 AWS 中添加 OIDC 身份提供方

  1. 在 AWS 管理控制台中,前往 IAM > Identity Providers(身份提供方)。
  2. 点击添加提供方,然后选择 OpenID Connect。
  3. 在提供商网址部分,输入:https://accounts.google.com
  4. 在受众部分,输入您在第 1 步中复制的 Google Cloud服务账号的 OAuth 2.0 客户端 ID。

第 3 步:创建联合 AWS IAM 角色

  1. 在 AWS IAM 控制台中,创建一个新的 IAM 角色。
  2. 选择 Web Identity(Web 身份)作为可信实体类型,以使用 Amazon Security Token Service (sts:AssumeRoleWithWebIdentity) 自动配置信任政策。
  3. 附加集成或连接器所需的特定权限政策(例如 AmazonGuardDutyReadOnlyAccess)。
  4. 查看角色的信任关系标签页,点击修改信任政策,然后应用以下 JSON 配置:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Federated": "arn:aws:iam::<AWS_ACCOUNT_ID>:oidc-provider/accounts.google.com"
          },
          "Action": "sts:AssumeRoleWithWebIdentity",
          "Condition": {
            "StringEquals": {
              "accounts.google.com:aud": "<GCP_SERVICE_ACCOUNT_CLIENT_ID>",
              "accounts.google.com:sub": "<GCP_SERVICE_ACCOUNT_CLIENT_ID>"
            }
          }
        }
      ]
    }
    

集成参数

使用以下参数配置集成:

参数名称 类型 默认值 为必填项 说明
AWS 访问密钥 ID 字符串 不适用 否 要在集成中使用的 AWS 访问密钥 ID。如果使用 Google CloudWeb 身份 (OIDC) 联合,请留空。
AWS 密钥 密码 不适用 否 要在集成中使用的 AWS 密钥。如果使用 Google Cloud Web 身份 (OIDC) 联合,请留空。
AWS 默认区域 字符串 不适用 是 要在集成中使用的 AWS 默认区域,例如 us-west-1。
远程运行 复选框 尚未核查 否

勾选此字段,以便远程运行配置的集成。

选中后,系统会显示选择远程用户(代理)的选项。

如需了解如何在 Google SecOps 中配置集成,请参阅配置集成。

如有需要,您可以在后续阶段进行更改。配置集成实例后,您可以在 playbook 中使用该实例。如需详细了解如何配置和支持多个实例,请参阅支持多个实例。

使用场景

  1. 使用 playbook 或手动操作检测和管理 AWS 系统中的威胁。
  2. 提取 Amazon GuardDuty 发现结果,然后将其移至 GuardDuty 归档。

操作

如需详细了解操作,请参阅 在工作桌上响应待处理的操作和在案例中运行手动操作。

Ping

测试与 Amazon GuardDuty 的连接。

参数

无。

运行时间

此操作不会对实体运行,也没有强制性输入参数。

操作结果

脚本结果
脚本结果名称 值选项 示例
is_success True 或 False is_success=False
案例墙
结果类型 说明 类型
输出消息*

如果成功: “已使用提供的连接参数成功连接到 AWS GuardDuty 服务器!”

否则: “无法连接到 AWS”;如果成功,则显示:“已使用提供的连接参数成功连接到 AWS GuardDuty 服务器!”

Else: "Failed to connect to the AWS GuardDuty server! 错误:{0}”

常规

创建检测器

创建单个 Amazon GuardDuty 检测器。检测器是表示 GuardDuty 服务的资源。每个区域的每个账号只能有一个检测器。

参数

参数名称 类型 默认值 为必填项 说明
启用 复选框 尚未核查 是 指定是否启用检测器。

运行时间

此操作不会对实体执行。

操作结果

脚本结果
脚本结果名称 值选项 示例
is_success True 或 False is_success=False
案例墙
结果类型 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

成功:“已创建检测器 <new detector ID>。”

如果未创建检测器 (is_success=false):“Action wasn't able to create a detector. 原因:当前账号已存在检测器。

如果报告了“ErrorCode”(is_success=false):“Action 无法创建检测器。Error: {}".format (ErrorMessage)"

操作应失败并停止 playbook 执行:

检测器 ID 无效也应引发异常,停止 playbook 并将 is_success 设置为 false。

如果报告了严重错误、SDK 错误(例如凭据错误、无连接等):“执行操作‘创建检测器’时出错。Reason: {0}''.format(error.Stacktrace)

常规

删除检测器

删除由检测器 ID 指定的 Amazon GuardDuty 检测器。

参数

参数名称 类型 默认值 为必填项 说明
检测器 ID 字符串 不适用 是 要删除的检测器的唯一 ID。

运行时间

此操作不会对实体执行。

操作结果

脚本结果
脚本结果名称 值选项 示例
is_success True 或 False is_success=False
案例墙
结果类型 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果检测器未被删除 (is_success=false): “Action wasn't able to delete <detector_ID> detector. Error: {}".format(ErrorMessage)"

如果检测器已成功删除 (is_success=true):“检测器 <detector ID> 已删除。”

操作应失败并停止 playbook 执行:

检测器 ID 无效也应引发异常,停止 playbook 并将 is_success 设置为 false。

如果报告了严重错误、SDK 错误(例如凭据错误、无连接、其他错误):“执行操作‘删除检测器’时出错。Reason: {0}''.format(error.Stacktrace)

常规

更新检测器

更新由检测器 ID 指定的 Amazon GuardDuty 检测器。

参数

参数名称 类型 默认值 为必填项 说明
检测器 ID 字符串 不适用 是 要更新的检测器的唯一 ID。
启用 复选框 尚未核查 否 指定是否应启用检测器。

运行时间

此操作不会对实体执行。

操作结果

脚本结果
脚本结果名称 值选项 示例
is_success True 或 False is_success=False
案例墙
结果类型 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果报告了“ErrorCode”(is_success=false):“Action 无法创建检测器。Error: {}".format(ErrorMessage)"

如果检测器已成功更新 (is_success=true):“检测器 <detector ID> 已更新。”

操作应失败并停止 playbook 执行:

检测器 ID 无效也应引发异常,停止 playbook 并将 is_success 设置为 false。

如果报告了严重错误、SDK 错误(例如凭据错误、无连接等):“执行操作‘更新检测器’时出错。Reason: {0}''.format(error.Stacktrace)

常规

获取检测器详情

检索由检测器 ID 指定的 Amazon GuardDuty 检测器。

参数

参数名称 类型 默认值 为必填项 说明
检测器 ID 字符串 不适用 是 您要检索的检测器的唯一 ID。逗号分隔值。

运行时间

此操作不会对实体执行。

操作结果

脚本结果
脚本结果名称 值选项 示例
is_success True 或 False is_success=False
JSON 结果
{
   "DetectorId": "DETECTOR_ID",
   "CreatedAt": "response['CreatedAt']",
   "ServiceRole": "response['ServiceRole']",
   "Status": "response['Status']",
   "UpdatedAt": "response['UpdatedAt']",
}
案例墙
结果类型 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功:“Successfully retrieved information about <Indicator ID> indicator.”

注意:如果找到了部分检测器 ID,但未找到其他检测器 ID,则根据相关检测器 ID 显示这两条消息。

操作应失败并停止 playbook 执行:

检测器 ID 无效也应引发异常,停止 playbook 并将 is_success 设置为 false。

如果报告了严重错误、SDK 错误(例如凭据错误、无连接、其他错误):“执行操作‘获取检测器详细信息’时出错。Reason: {0}''.format(error.Stacktrace)

常规
CSV 表格

Table Title: 检测器详细信息

表列:

  • 检测器 ID
  • 状态
  • 服务角色
  • 创建时间
  • 更新时间
常规

列出检测器

列出所有现有 Amazon GuardDuty 检测器资源的 detectorId。

参数

参数名称 类型 默认值 为必填项 说明
返回的检测器数量上限 整数 50 否 指定要返回的检测器数量。

运行时间

此操作不会对实体执行。

操作结果

脚本结果
脚本结果名称 值选项 示例
is_success True 或 False is_success=False
JSON 结果
{
    "detectorIds": ["ID1,ID2"]
}
案例墙
结果类型 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果报告了 200 状态代码 (is_success=true):“已成功列出 Amazon GuardDuty 中的可用检测器。Indicator ID:<value>"

如果报告了其他状态代码 (is_success=false):“Action wasn't able to list available detectors”

操作应失败并停止 playbook 执行:

如果报告了严重错误、SDK 错误(例如凭据错误、无法连接到服务器等):“执行操作‘列出检测器’时出错。Reason: {0}''.format(error.Stacktrace)

常规

列出检测器的发现结果

列出指定检测器 ID 的所有 Amazon GuardDuty 发现结果。

参数

参数名称 类型 默认值 为必填项 说明
检测器 ID 字符串 不适用 是 您要检索的检测器的唯一 ID。
要返回的发现结果数上限 整数 50 否 指定要返回的检测器数量。
排序方式 字符串 不适用 否 表示用于对发现结果进行排序的发现结果属性(例如 accountId)。
排序依据 DDL

升序

可能的值:

  • 升序
  • 降序
否 已排序发现结果的显示顺序。
AWS 区域 字符串 不适用 否 (可选)指定要在操作中使用的 AWS 区域,该区域可以与集成配置页面中指定的默认区域不同。

运行时间

此操作不会对实体执行。

操作结果

脚本结果
脚本结果名称 值选项 示例
is_success True 或 False is_success=False
JSON 结果
{"FindingIds": ["10ba96ae50733ae38b9cae95431b7558"]}
案例墙
结果类型 说明 类型
输出消息*

操作不应失败并停止 playbook 执行:

如果报告了“ErrorCode”(is_success=false):“操作无法获取 <detector ID> 检测器的发现结果。Error: {}".format(ErrorMessage)"

如果成功:“Successfully retrieved available findings IDs for detector {detector ID}”(已成功检索检测器 {detector ID} 的可用发现结果 ID)

操作应失败并停止 playbook 执行:

如果报告了严重错误、SDK 错误(例如凭据错误、无连接等):“执行操作‘列出检测器的发现结果’时出错。Reason: {0}''.format(error.Stacktrace)

常规

归档发现结果

归档由发现结果 ID 指定的 GuardDuty 发现结果。

参数

参数名称 类型 默认值 为必填项 说明
发现结果 ID 字符串 不适用 是

您要检索的发现结果的 ID。

以逗号分隔的 ID。

检测器 ID 字符串 不适用 是 检测器的唯一 ID
AWS 区域 字符串 不适用 否 (可选)指定要在操作中使用的 AWS 区域,该区域可以与集成配置页面中指定的默认区域不同。

AWS IAM 政策权限:

  • 效果:允许
  • Action: guardduty:ArchiveFindings

只有管理员账号可以归档发现结果。成员账号无权归档其账号中的发现结果。

运行时间

此操作不会对实体执行。

操作结果

脚本结果
脚本结果名称 值选项 示例
is_success True 或 False is_success=False
案例墙
结果类型 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果报告了“ErrorCode”(is_success=false):“Action wasn't able to archive Findings. 错误:{}”。format(ErrorMessage). 请检查所有发现结果 ID 是否正确。”

如果成功:“已成功归档发现结果”→ 更改为:“已成功归档以下发现结果:<ids>

如果一个/所有发现结果 ID 无效,操作不应失败,但 is_success 应设置为 false:“无法归档以下发现结果:<ids>”

注意:错误代码不能是其中一个 ID。如果发现结果 ID 错误,系统会抛出异常并显示以下错误:“调用 ArchiveFindings 操作时(已达到重试次数上限:4 次):内部服务器错误。”

同上:首先检查发现结果是否有效。

已成功归档以下发现结果: 88bac20f959084244a2b91778d12e883

未能归档以下发现结果: 1abac689941ae6f3e3e24d02ac4cf612

操作应失败并停止 playbook 执行:

检测器 ID 无效也应引发异常,停止 playbook 并将 is_success 设置为 false。

如果报告了严重错误、SDK 错误(例如凭据错误、无连接、其他错误):“执行操作‘归档发现结果’时出错。Reason: {0}''.format(error.Stacktrace)"

常规

取消归档发现结果

提取由发现结果 ID 指定的 GuardDuty 发现结果。

参数

参数名称 类型 默认值 为必填项 说明
发现结果 ID 字符串 不适用 是 您要检索的发现结果的 ID。逗号分隔值。
检测器 ID 字符串 不适用 是 检测器的唯一 ID。

AWS IAM 政策权限:

  • 效果:允许
  • 操作:guardduty:UnarchiveFindings

只有管理员账号可以归档发现结果。成员账号无权归档其账号中的发现结果。

运行时间

此操作不会对实体执行。

操作结果

脚本结果
脚本结果名称 值选项 示例
is_success True 或 False is_success=False
案例墙
结果类型 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功:“已成功归档以下发现结果:<ids>”

如果一个/所有发现结果 ID 无效,操作不应失败,但 is_success 应设置为 false:“无法取消归档以下发现结果:<ids>

操作应失败并停止 playbook 执行:

检测器 ID 无效也应引发异常,停止 playbook 并将 is_success 设置为 false。

如果报告了严重错误、SDK 错误(例如凭据错误、无连接、其他错误):“执行操作‘取消归档发现结果’时出错。Reason: {0}''.format(error.Stacktrace)"

注意:错误代码不能是其中一个 ID。如果发现结果 ID 错误,系统会抛出异常并显示以下错误:“调用 ArchiveFindings 操作时(已达到重试次数上限:4 次):内部服务器错误。”

同上:首先检查发现结果是否有效。

已成功归档以下发现结果: 88bac20f959084244a2b91778d12e883

未能归档以下发现结果: 1abac689941ae6f3e3e24d02ac4cf612

常规

创建示例发现结果

生成发现结果列表指定的类型的示例发现结果。

参数

参数名称 类型 默认值 为必填项 说明
检测器 ID 字符串 不适用 是 要为其创建样本检测结果的检测器的唯一 ID。
发现结果类型 字符串 不适用 否

要生成的示例发现结果的类型。逗号分隔值。

您可以在界面的“发现结果”部分中的“发现结果类型”列下找到这些类型。

运行时间

此操作不会对实体执行。

操作结果

脚本结果
脚本结果名称 值选项 示例
is_success True 或 False is_success=False
案例墙
结果类型 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果报告了“ErrorCode”(is_success=false):“操作无法创建示例发现结果。Error: {}".format(ErrorMessage)"

如果成功:“已成功创建示例发现结果”

如果其中一个输入(发现结果类型)无效,则捕获以下异常:“请求被拒绝,因为指定了无效或超出范围的值作为输入参数。”设置,is_sucess=false:“Action 无法创建示例发现结果,因为发现结果类型参数的值无效。

更新:如果发现结果类型无效,操作应失败,并显示以下消息:“操作无法创建样本发现结果,因为发现结果类型参数的值无效。错误:<traceback>

  • 发现结果类型无效 + 检测器无效 → 操作应失败,is_success=false
  • 多项发现结果 - 无效 + 无效 - 操作仍会失败!

操作应失败并停止 playbook 执行:

检测器 ID 无效也应引发异常,停止 playbook 并将 is_success 设置为 false。

如果报告了严重错误、SDK 错误(例如凭据错误、无连接等): “执行操作‘创建示例发现结果’时出错。Reason: {0}''.format(error.Stacktrace)

常规

更新发现结果反馈

将指定的 Amazon GuardDuty 发现结果标记为有用或无用。

参数

参数名称 类型 默认值 为必填项 说明
检测器 ID 字符串 不适用 是 与要更新反馈的检测结果关联的检测器的唯一 ID。
有用吗? 复选框 尚未核查 是 发现结果的反馈。
发现结果 ID 字符串 不适用 是 您要标记为有用或无用的发现结果的 ID。逗号分隔值。
评论 字符串 不适用 否 关于 GuardDuty 发现结果的其他反馈。
AWS 区域 字符串 不适用 否 (可选)指定要在操作中使用的 AWS 区域,该区域可以与集成配置页面中指定的默认区域不同。

运行时间

此操作不会对实体执行。

操作结果

脚本结果
脚本结果名称 值选项 示例
is_success True 或 False is_success=False
案例墙
结果类型 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果报告了“ErrorCode”(is_success=false):“操作无法更新发现结果反馈。错误:{}”。format(ErrorMessage)

如果成功:“发现结果反馈已更新。”

如果其中一个发现结果 ID 出现错误/未找到,则响应对象仍会返回空响应,即使其中一个 ID 不存在。

如果未找到发现结果:“无法更新反馈。<finding id> 无效。”

操作应失败并停止 playbook 执行:

检测器 ID 无效也应引发异常,停止 playbook 并将 is_success 设置为 false。

如果报告了严重错误、SDK 错误(例如凭据错误、无连接等):“执行操作‘更新发现结果反馈’时出错。Reason: {0}''.format(error.Stacktrace)"

常规

删除可信 IP 列表

删除由 ID 指定的 IPSet。

参数

参数名称 类型 默认值 为必填项 说明
检测器 ID 字符串 不适用 是

指定应于删除 IP 集的检测器 ID。

此参数可在设置标签页中找到。

可信 IP 列表 ID 字符串 不适用 是

指定 IP 集 ID 的逗号分隔列表。

示例:id_1,id_2

运行时间

此操作不会对实体执行。

操作结果

脚本结果
脚本结果名称 值选项 示例
is_success True 或 False is_success=False
案例墙
结果类型 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功 (is_success=true):“已成功删除以下可信 IP 列表:<ids>”

如果部分 ID 未成功 (is_success=true): "Action wasn't able to delete the following Trusted IP Lists from Amazon GuardDuty:\n{0}.".format(list_of_ids)"

操作应失败并停止 playbook 执行:

检测器 ID 无效也应引发异常,停止 playbook 并将 is_success 设置为 false。

如果报告了严重错误、SDK 错误(例如凭据错误、无法连接到服务器等):“执行‘删除可信 IP 列表’操作时出错。Reason: {0}''.format(error.Stacktrace"

常规

获取发现结果详情

返回 AWS Guard Duty 中发现结果的详细信息。

参数

参数名称 类型 默认值 为必填项 说明
发现结果 ID 字符串 不适用 是

您要检索的发现结果的 ID。以逗号分隔的 ID。

检测器 ID 字符串 不适用 是 您要检索的检测器的唯一 ID。
AWS 区域 字符串 不适用 否 (可选)指定要在操作中使用的 AWS 区域,该区域可以与集成配置页面中指定的默认区域不同。

运行时间

此操作不会对实体执行。

操作结果

脚本结果
脚本结果名称 值选项 示例
is_success True 或 False is_success=False
JSON 结果
{
    "Findings": [{
        "AccountId": "ACCOUNT_ID",
        "Arn": "arn:aws:guardduty:us-east-1:ACCOUNT_ID:detector/DETECTOR_ID/finding/FINDING_ID",
        "CreatedAt": "2020-10-06T05:19:50.794Z",
        "Description": "203.0.113.9 is performing RDP brute force attacks against i-INSTANCE_ID. Brute force attacks are used to gain unauthorized access to your instance by guessing the RDP password.", "Id": "ID",
        "Partition": "aws",
        "Region": "us-east-1",
        "Resource": {
            "InstanceDetails": {
                "AvailabilityZone": "us-east-1e",
                "ImageId": "ami-IMAGE_ID",
                "InstanceId": "i-INSTANCE_ID",
                "InstanceState": "running",
                "InstanceType": "t2.micro",
                "LaunchTime": "2020-05-27T08:54:03Z", "NetworkInterfaces": [{
                    "Ipv6Addresses": [],
                    "NetworkInterfaceId": "eni-012d9b8a1a3b4e40a",
                    "PrivateDnsName": "ip-192.0.2.1.ec2.internal",
                    "PrivateIpAddress": "192.0.2.1",
                    "PrivateIpAddresses": [{
                        "PrivateDnsName": "ip-192.0.2.1.ec2.internal",
                        "PrivateIpAddress": "192.0.2.1"
                    }],
                    "PublicDnsName": "ec2-54-234-69-236.compute-1.amazonaws.com",
                    "PublicIp": "198.51.100.236",
                    "SecurityGroups": [{
                        "GroupId": "sg-0fa42e04e9cd15407",
                        "GroupName": "Windows Server 2016"
                    }],
                    "SubnetId": "subnet-2edddf10",
                    "VpcId": "vpc-48a7ac32"
                }],
                "Platform": "windows",
                "ProductCodes": [],
                "Tags": [{
                    "Key": "Name",
                    "Value": "CiscoAMP-win2012"
                }]},
            "ResourceType": "Instance"
        },
        "SchemaVersion": "2.0",
        "Service": {
            "Action": {
                "ActionType": "NETWORK_CONNECTION", "NetworkConnectionAction": {
                    "Blocked": false,
                    "ConnectionDirection": "INBOUND",
                    "LocalPortDetails": {
                        "Port": 3389, "PortName": "RDP"
                    },
                    "Protocol": "TCP",
                    "LocalIpDetails": {
                        "IpAddressV4": "192.0.2.1"
                    },
                    "RemoteIpDetails": {
                        "IpAddressV4": "203.0.113.9",
                        "Organization": {
                            "Asn": "24875",
                            "AsnOrg": "Example Inc.",
                            "Isp": "Example Inc.",
                            "Org": "Example Inc."
                        }},
                    "RemotePortDetails": {
                            "Port": 1549,
                        "PortName": "Unknown"
                    }}},
            "Archived": false,
            "Count": 5,
            "DetectorId": "DETECTOR_ID",
            "EventFirstSeen": "2020-10-06T05:10:58Z",
            "EventLastSeen": "2020-10-06T05:46:59Z",
            "ResourceRole": "TARGET",
            "ServiceName": "guardduty"
        },
        "Severity": 2,
        "Title": "203.0.113.9 is performing RDP brute force attacks against i-INSTANCE_ID.",
        "Type": "UnauthorizedAccess:EC2/RDPBruteForce",
        "UpdatedAt": "2020-10-06T06:01:46.380Z"
    }]
}
案例墙
结果类型 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果报告了“ErrorCode”(is_success=false):“Action wasn't able to get Findings details. Error: {}".format(ErrorMessage)"

如果成功:“Successfully retrieved information for the following findings <finding ids that retrieved>”

如果系统报告了其中一个 ID 的错误,则响应对象仅包含有效 ID 的结果。检查响应对象是否缺少某些 ID,并输出相应消息。

E.g. data = ['4cba8180b5959ae56a3be24cc722aaaa', '6eba7eae0e24ffe28a4109f2594febff', '24ba6761dc4cf85cfc292bbadd1c2655']

The first ID does not exist, therefore I will not get a result for that one. Output message:

"Successfully retrieved information for the following findings: 6eba7eae0e24ffe28a4109f2594febff,24ba6761dc4cf85cfc292bbadd1c2655. Failed to retrieve information for the following findings: 4cba8180b5959ae56a3be24cc722aaaa

操作应失败并停止 playbook 执行:

如果报告了严重错误、SDK 错误(例如凭据错误、无连接等),则会显示以下消息: “Error executing action "Get Findings". Reason: {0}''.format(error.Stacktrace)"

常规
案例墙表格

注意:如果存在。

表列:

  • 发现结果 ID
  • 标题
  • 说明
  • 类型
  • 严重级别
  • 计数
  • 资源 ID
  • 创建时间
  • 更新时间
  • 账号 ID
常规

获取所有可信 IP 列表

说明

获取由检测器 ID 指定的 GuardDuty 服务的所有受信任 IP 列表 (IPSet)。

参数

参数名称 类型 默认值 为必填项 说明
检测器 ID 字符串 不适用 是

指定应使用哪个检测器 ID 来列出 IP 集。

此参数可在“设置”标签页中找到。

要返回的可信 IP 列表数上限 整数 50 否 指定要返回的可信 IP 列表数量。
AWS 区域 字符串 不适用 否 (可选)指定要在操作中使用的 AWS 区域,该区域可以与集成配置页面中指定的默认区域不同。

运行时间

此操作不会对实体执行。

操作结果

脚本结果
脚本结果名称 值选项 示例
is_success True 或 False is_success=False
JSON 结果
{
    "IpSetIds": ['', '' , '']
}
案例墙
结果类型 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功列出了可用集 (is_success=true):“已成功检索可用的可信 IP 列表。”

操作应失败并停止 playbook 执行:

如果报告了严重错误、SDK 错误(例如凭据错误、无法连接到服务器等):“Error executing action "Get all Trusted IP Lists". Reason: {0}''.format(error.Stacktrace)

常规

获取可信 IP 列表

说明

获取 Amazon GuardDuty 中可信 IP 列表的详细信息。

参数

参数名称 类型 默认值 为必填项 说明
检测器 ID 字符串 不适用 是

指定应使用哪个检测器 ID 来获取 IP 集。

此参数可在“设置”标签页中找到。

可信 IP 列表 ID CSV 不适用 是

指定以逗号分隔列表的 IP 集 ID,例如 id_1,id_2。

运行时间

此操作不会对实体执行。

操作结果

脚本结果
脚本结果名称 值选项 示例
is_success True 或 False is_success=False
JSON 结果
{
    "ip_set_id": {
        "Format": "response['Format']",
        "Location": "response['Location']",
        "Name": "response['Name']",
        "Status": "response['Status']"
        }
}
案例墙
结果类型 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功返回详细信息 (is_success=true):“Successfully retrieved details about the following Trusted IP Lists from Amazon GuardDuty:\n{0}.”format(list_of_ids)

如果部分 ID 未成功 (is_success=true):“Action wasn't able to retrieve details about the following Trusted IP Lists from Amazon GuardDuty:\n{0}。”format(list_of_ids)

如果未使用任何 ID (is_success=false):“未检索到有关所提供可信 IP 列表的详细信息”。format(list_of_ids)"

操作应失败并停止 playbook 执行:

如果报告了严重错误、SDK 错误(例如凭据错误、无法连接到服务器等):“执行操作‘列出可信 IP 列表’时出错。Reason: {0}''.format(error.Stacktrace)

常规
CSV

表名称:Trusted IP Lists Details

表列:

  • Name(映射为 Name)
  • 可信 IP 列表 ID(来自操作参数)
  • 地理位置(映射为“地理位置”)
  • 状态(映射为“状态”)
常规

更新可信 IP 列表

说明

在 Amazon GuardDuty 中更新可信 IP 列表。

参数

参数名称 类型 默认值 为必填项 说明
检测器 ID 字符串 不适用 是

指定应用于更新可信 IP 列表的检测器 ID。

此参数可在“设置”标签页中找到。

可信 IP 列表 ID 字符串 不适用 是 指定应更新的可信 IP 列表的 ID。
名称 字符串 不适用 否 指定可信 IP 列表的新名称。
文件位置 字符串 https://s3.amazonaws.com/{bucket-name}/file.txt 否 指定文件所在的新 URI 位置。
激活 复选框 勾选 是 如果启用,系统将激活可信 IP 列表。
AWS 区域 字符串 不适用 否 (可选)指定要在操作中使用的 AWS 区域,该区域可以与集成配置页面中指定的默认区域不同。

运行时间

此操作不会对实体执行。

脚本结果
脚本结果名称 值选项 示例
is_success True 或 False is_success=False
JSON 结果
N/A
案例墙
结果类型 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功更新了一个集合 (is_success=true):"Successfully updated the trusted IP list '{0}' in Amazon GuardDuty.".format(Threat ID)

如果未能更新一个集 (is_success=false): "Action wasn't able to update the trusted IP list '{0}' in Amazon GuardDuty.".format(Threat ID)

操作应失败并停止 playbook 执行:

如果报告了严重错误、SDK 错误(例如凭据错误、无法连接到服务器等),则会显示以下消息:“Error executing action "Update Trusted IP list". Reason: {0}''.format(error.Stacktrace)

常规

创建可信 IP 列表

创建新的受信任 IP 地址列表 (IPSet),这些地址位于动态列表中,用于与 AWS 基础设施和应用进行安全通信。

GuardDuty 不会为 IPSets 中包含的 IP 地址生成发现结果。只有管理员账号中的用户才能使用此操作。

参数

参数名称 类型 默认值 为必填项 说明
检测器 ID 字符串 不适用 是

指定应用于创建可信 IP 列表的检测器 ID。

此参数可在设置标签页中找到。

名称 字符串 不适用 是 指定可信 IP 列表的名称。
文件格式 DDL 明文 是

选择用于创建可信 IP 列表的文件格式。

可能的值:

  • 明文结构化威胁信息表达 (STIX)
  • Open Threat Exchange (OTX) CSV
  • FireEye iSIGHT 威胁情报 CSV
  • Proofpoint ET Intelligence Feed CSV
  • AlienVault 信誉 Feed
文件位置 字符串 https://s3.amazonaws.com/{bucket-name}/file.txt 是 指定文件所在的 URI 位置
激活 复选框 勾选 是 如果启用,则新创建的可信 IP 列表会被激活。
AWS 区域 字符串 不适用 否 (可选)指定要在操作中使用的 AWS 区域,该区域可以与集成配置页面中指定的默认区域不同。

运行时间

此操作不会对实体执行。

操作结果

脚本结果
脚本结果名称 值选项 示例
is_success True 或 False is_success=False
JSON 结果
{
    "TrustedIPID": "TRUSTED_IP_ID"
}
案例墙
结果类型 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功创建了集合 (is_success=true): "Successfully created new Trusted IP List '{0}' in Amazon GuardDuty.".format(Name)"

如果未能创建集合 (is_success=false):“Action wasn't able to create new Trusted IP List '{0}' in Amazon GuardDuty.”format(name)

操作应失败并停止 playbook 执行:

如果报告了严重错误、SDK 错误(例如凭据错误、无法连接到服务器等):“执行操作‘创建可信 IP 列表’时出错。Reason: {0}''.format(error.Stacktrace)"

常规

列出威胁情报集

列出 Amazon GuardDuty 中可用的威胁情报集。

参数

参数名称 类型 默认值 为必填项 说明
检测器 ID 字符串 不适用 是

指定应使用哪个检测器 ID 来列出威胁情报集。

此参数可在“设置”标签页中找到。

要返回的威胁情报集数上限 整数 50 否 指定要返回的威胁情报集数量。
AWS 区域 字符串 不适用 否 (可选)指定要在操作中使用的 AWS 区域,该区域可以与集成配置页面中指定的默认区域不同。

运行时间

此操作不会对实体执行。

操作结果

脚本结果
脚本结果名称 值选项 示例
is_success True 或 False is_success=False
JSON 结果
{
    "ThreatIntelSetIds": ["14ba8b942b76c1be6d985715eb7443eb",
                       "32ba8b92e553fe04d06dab543ed57a70",
                       "8aba8b93ba6e08e8fd5349b2c2b57709"
                       ]
}
案例墙
结果类型 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功列出了可用的集合 (is_success=true): “已成功列出可用的威胁情报集。”

操作应失败并停止 playbook 执行:

如果报告了严重错误、SDK 错误(例如凭据错误、无法连接到服务器等):“执行‘列出威胁情报集’操作时出错。Reason: {0}''.format(error.Stacktrace)

常规

获取威胁情报集详细信息

获取有关 Amazon GuardDuty 中威胁情报集的详细信息。

参数

参数名称 类型 默认值 为必填项 说明
检测器 ID 字符串 不适用 是

指定应使用哪个检测器 ID 来获取威胁情报集详细信息。

此参数可在“设置”标签页中找到。

威胁情报集 ID 字符串 50 是

指定威胁情报集 ID 的逗号分隔列表。

示例:id_1,id_2

AWS 区域 字符串 不适用 否 (可选)指定要在操作中使用的 AWS 区域,该区域可以与集成配置页面中指定的默认区域不同。

运行时间

此操作不会对实体执行。

操作结果

脚本结果
脚本结果名称 值选项 示例
is_success True 或 False is_success=False
JSON 结果
{
    "Format": "TXT",
    "Location": "https: //example.s3.amazonaws.com/test.txt",
    "Name": "API Test",
    "ResponseMetadata": {
        "HTTPHeaders": {
            "connection": "keep-alive",
            "content-length": "149",
            "content-type": "application/json",
            "date": "Mon,19 Oct 2020 06: 23: 22 GMT",
            "x-amz-apigw-id": "ID",
            "x-amzn-requestid": "REQUEST_ID",
            "x-amzn-trace-id": "TRACE_ID"
        },
        "HTTPStatusCode": 200,
        "RequestId": "REQUEST_ID",
        "RetryAttempts": 0
    },
    "Status": "ERROR",
    "Tags": {}
}
案例墙
结果类型 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功返回了至少一个集合的详细信息 (is_success=true): "Successfully retrieved details about the following Threat Intelligence Sets from Amazon GuardDuty:\n{0}.".format(list_of_ids)"

如果部分 ID 未成功 (is_success=true): "Action wasn't able to retrieve details about the following 威胁情报 Sets from Amazon GuardDuty:\n{0}".format(list_of_ids)

如果未使用任何 ID: "No details were retrieved about the provided Threat Intelligence Sets.".format(list_of_ids)

操作应失败并停止 playbook 执行:

如果报告了严重错误、SDK 错误(例如凭据错误、无法连接到服务器等):“执行‘列出威胁情报集’操作时出错。Reason: {0}''.format(error.Stacktrace)

常规
CSV

表名称:威胁情报集详细信息

表格列:

  • Name(映射为 Name)
  • ID(来自 action 参数)
  • 地理位置(映射为“地理位置”)
  • 状态(映射为“状态”)

创建威胁情报集

在 Amazon GuardDuty 中创建威胁情报集。

参数

参数名称 类型 默认值 为必填项 说明
检测器 ID 字符串 不适用 是

指定应使用哪个检测器 ID 来创建威胁情报集。

此参数可在“设置”标签页中找到。

名称 字符串 不适用 是 指定威胁情报集的名称。
文件格式 DDL

明文

可能的值:

  • 明文
  • 结构化威胁信息表达 (STIX)
  • Open Threat Exchange (OTX) CSV
  • FireEye iSIGHT 威胁情报 CSV
  • Proofpoint ET Intelligence Feed CSV
  • AlienVault 信誉 Feed
是 选择用于创建威胁情报集的文件格式。
文件位置 字符串 https://s3.amazonaws.com/{bucket-name}/file.txt 是 指定文件所在的 URI 位置。
有效 复选框 勾选 是 如果启用,则新创建的威胁情报集会被激活。
标记 CSV 不适用 否

指定应添加到威胁情报集的其他标记。

格式:key_1:value_1,key_2:value_1

运行时间

此操作不会对实体执行。

操作结果

脚本结果
脚本结果名称 值选项 示例
is_success True 或 False is_success=False
JSON 结果
{
    "ThreatIntelSetId": "b6f0c884a54449cc8e29eed3094e9c31"
}
案例墙
结果类型 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功创建了集合 (is_success=true): "Successfully created the Threat Intelligence Set '{0}' in Amazon GuardDuty.".format(Name)

如果未能创建集合 (is_success=false):“Action wasn't able to create the 威胁情报 Set '{0}' in Amazon GuardDuty.”。format(name)

操作应失败并停止 playbook 执行:

如果报告了严重错误、SDK 错误(例如凭据错误、无法连接到服务器等),则会显示以下消息:“Error executing action "Create Threat Intelligence Set". Reason: {0}''.format(error.Stacktrace)

常规

更新威胁情报集

更新 Amazon GuardDuty 中的威胁情报集。

参数

参数名称 类型 默认值 为必填项 说明
检测器 ID 字符串 不适用 是

指定应使用哪个检测器 ID 来更新威胁情报集。

此参数可在设置标签页中找到。

ID 字符串 不适用 是 指定应更新的威胁情报集的 ID。
名称 字符串 不适用 否 指定威胁情报集的新名称。
文件位置 字符串 https://s3.amazonaws.com/{bucket-name}/file.txt 否 指定文件所在的新 URI 位置。
有效 复选框 勾选 是 如果启用,则会激活威胁情报集。

运行时间

此操作不会对实体执行。

操作结果

脚本结果
脚本结果名称 值选项 示例
is_success True 或 False is_success=False
案例墙
结果类型 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功更新了一个集合 (is_success=true): "Successfully updated the Threat Intelligence Set '{0}' in Amazon GuardDuty.".format(Threat ID)

如果未能更新集合 (is_success=false):“Action wasn't able to update the 威胁情报 Set '{0}' in Amazon GuardDuty.”。format(Threat ID)

操作应失败并停止 playbook 执行:

如果报告了严重错误、SDK 错误(例如凭据错误、无法连接到服务器等):“执行操作‘更新威胁情报集’时出错。Reason: {0}''.format(error.Stacktrace)

常规

删除威胁情报集

删除 Amazon GuardDuty 中的威胁情报集。

参数

参数名称 类型 默认值 水印 为必填项 说明
检测器 ID 字符串 不适用 不适用 是

指定应使用哪个检测器 ID 来获取威胁情报集详细信息。

此参数可在“设置”标签页中找到。

威胁情报集 ID CSV 不适用 不适用 是

指定威胁情报集 ID 的逗号分隔列表。

示例:id_1,id_2

运行时间

此操作不会对实体执行。

操作结果

脚本结果
脚本结果名称 值选项 示例
is_success True 或 False is_success=False
案例墙
结果类型 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功返回了至少一个集合的详细信息 (is_success=true): "Successfully deleted the following Threat Intelligence Sets in Amazon GuardDuty:\n{0}.".format(list_of_ids)

如果部分 ID 未成功 (is_success=true): "Action wasn't able to delete the following 威胁情报集 in Amazon GuardDuty:\n{0}".format(list_of_ids)

如果未使用任何 ID:“未删除任何威胁情报集。”.format(list_of_ids)

操作应失败并停止 playbook 执行:

检测器 ID 无效也应引发异常,停止 playbook 并将 is_success 设置为 false。

如果发生严重错误、SDK 错误(例如凭据错误、无法连接到服务器等):“执行‘删除威胁情报集’操作时出错。Reason: {0}''.format(error.Stacktrace)

常规

连接器

如需详细了解如何在 Google SecOps 中配置连接器,请参阅注入数据(连接器)。

AWS GuardDuty - 发现结果连接器

从 Amazon GuardDuty 拉取发现结果。

连接器输入

使用以下参数配置连接器:

参数名称 类型 默认值 为必填项 说明
产品字段名称 字符串 产品名称 是

存储商品名称的字段的名称。

商品名称主要影响映射。为了简化和改进连接器的映射过程,默认值会解析为代码中引用的后备值。默认情况下,此参数的任何无效输入都会解析为回退值。

默认值为 Product Name。

事件字段名称 字符串 类型 是

决定事件名称(子类型)的字段名称。

环境字段名称 字符串 "" 否

存储环境名称的字段的名称。

如果缺少环境字段,连接器将使用默认值。

Environment Regex Pattern 字符串 .* 否

要对 Environment Field Name 字段中找到的值运行的正则表达式模式。此参数可让您使用正则表达式逻辑来操纵环境字段。

使用默认值 .* 检索所需的原始 Environment Field Name 值。

如果正则表达式模式为 null 或空,或者环境值为 null,则最终环境结果为默认环境。

脚本超时(秒) 整数 180 是

运行当前脚本的 Python 进程的超时限制(以秒为单位)。

AWS 访问密钥 ID 字符串 不适用 否 要在集成中使用的 AWS 访问密钥 ID。如果使用 Google CloudWeb 身份 (OIDC) 联合,请留空。
AWS 密钥 密码 不适用 否 要在集成中使用的 AWS 密钥。如果使用 Google Cloud Web 身份 (OIDC) 联合,请留空。
AWS 默认区域 字符串 不适用 是

要在集成中使用的 AWS 默认区域。

示例:us-west-2

使用 Google Cloud Web 身份 (OIDC) 复选框 尚未核查 否 选中此复选框,即可使用 Google Cloud Web 身份 (OIDC) 联合(而非静态 AWS 凭据)进行安全身份验证。
检测器 ID 字符串 不适用 是 检测器的 ID。您可以在设置标签页中找到此设置。
要提取的最低严重级别 整数 1 是

要检索的提醒的最低严重级别。

如果您未配置此参数,连接器会提取所有严重级别的提醒。

可能的值介于 1 到 8 之间。

注意:Amazon GuardDuty 按以下顺序映射整数值:

  • 1,2,3 - 低
  • 4,5,6 - 中
  • 7,8 - 高
回溯的小时数上限 整数 1 否 检索发现结果时,要回溯到当前时间之前多少小时。

此参数可应用于您首次启用连接器后的初始连接器迭代,或应用于过期连接器时间戳的后备值。

要提取的发现结果数上限 整数 50 否

每次连接器迭代要处理的发现结果数量。

最多:50 张

这是 GuardDuty 的限制。

Use whitelist as a blacklist 复选框 尚未核查 是

如果选中,连接器会将动态列表用作屏蔽名单。

代理服务器地址 字符串 不适用 否 要使用的代理服务器的地址。
代理用户名 字符串 不适用 否 用于进行身份验证的代理用户名。
代理密码 密码 不适用 否 用于进行身份验证的代理密码。

连接器规则

此连接器支持代理。

需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。