将 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 服务账号
- 在 Google Cloud 控制台中,创建或选择专用于 AWS 集成的目标 Google Cloud 服务账号。
- 将 Service Account Token Creator 角色 (
roles/iam.serviceAccountTokenCreator) 分配给服务账号,以启用令牌生成和模拟。 - 复制此服务账号的 OAuth 2.0 客户端 ID(也称为唯一 ID 或主题 ID)。配置 AWS 时,您需要用到此值。
- 配置 Google SecOps 环境如何以此目标服务账号身份进行身份验证:
- Workload Identity(推荐):如果您的 Google SecOps 代理或环境在 Google Cloud中原生运行,请确保其有权使用 Workload Identity 模拟此目标服务账号。
- 服务账号密钥:如果您的环境或代理在外部或本地运行,请下载此目标服务账号的 JSON 服务账号密钥文件,并配置您的平台环境以使用该文件进行身份验证。
第 2 步:在 AWS 中添加 OIDC 身份提供方
- 在 AWS 管理控制台中,前往 IAM > Identity Providers(身份提供方)。
- 点击添加提供方,然后选择 OpenID Connect。
- 在提供商网址部分,输入:
https://accounts.google.com - 在受众部分,输入您在第 1 步中复制的 Google Cloud服务账号的 OAuth 2.0 客户端 ID。
第 3 步:创建联合 AWS IAM 角色
- 在 AWS IAM 控制台中,创建一个新的 IAM 角色。
- 选择 Web Identity(Web 身份)作为可信实体类型,以使用 Amazon Security Token Service (
sts:AssumeRoleWithWebIdentity) 自动配置信任政策。 - 附加集成或连接器所需的特定权限政策(例如 AmazonGuardDutyReadOnlyAccess)。
查看角色的信任关系标签页,点击修改信任政策,然后应用以下 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 中使用该实例。如需详细了解如何配置和支持多个实例,请参阅支持多个实例。
使用场景
- 使用 playbook 或手动操作检测和管理 AWS 系统中的威胁。
- 提取 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: 检测器详细信息 表列:
|
常规 |
列出检测器
列出所有现有 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>
操作应失败并停止 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,并输出相应消息。
操作应失败并停止 playbook 执行: 如果报告了严重错误、SDK 错误(例如凭据错误、无连接等),则会显示以下消息: “Error executing action "Get Findings". Reason: {0}''.format(error.Stacktrace)" |
常规 |
| 案例墙表格 | 注意:如果存在。 表列:
|
常规 |
获取所有可信 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,例如 |
运行时间
此操作不会对实体执行。
操作结果
脚本结果
| 脚本结果名称 | 值选项 | 示例 |
|---|---|---|
| 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 表列:
|
常规 |
更新可信 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 列表的文件格式。 可能的值:
|
| 文件位置 | 字符串 | 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 | 表名称:威胁情报集详细信息 表格列:
|
创建威胁情报集
在 Amazon GuardDuty 中创建威胁情报集。
参数
| 参数名称 | 类型 | 默认值 | 为必填项 | 说明 |
|---|---|---|---|---|
| 检测器 ID | 字符串 | 不适用 | 是 | 指定应使用哪个检测器 ID 来创建威胁情报集。 此参数可在“设置”标签页中找到。 |
| 名称 | 字符串 | 不适用 | 是 | 指定威胁情报集的名称。 |
| 文件格式 | DDL | 明文 可能的值:
|
是 | 选择用于创建威胁情报集的文件格式。 |
| 文件位置 | 字符串 | 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 拉取发现结果。
连接器输入
使用以下参数配置连接器:
| 参数名称 | 类型 | 默认值 | 为必填项 | 说明 |
|---|---|---|---|---|
| 产品字段名称 | 字符串 | 产品名称 | 是 |
存储商品名称的字段的名称。 商品名称主要影响映射。为了简化和改进连接器的映射过程,默认值会解析为代码中引用的后备值。默认情况下,此参数的任何无效输入都会解析为回退值。 默认值为 |
| 事件字段名称 | 字符串 | 类型 | 是 | 决定事件名称(子类型)的字段名称。 |
| 环境字段名称 | 字符串 | "" | 否 | 存储环境名称的字段的名称。 如果缺少环境字段,连接器将使用默认值。 |
Environment Regex Pattern |
字符串 | .* | 否 |
要对 使用默认值 如果正则表达式模式为 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 | 是 | 要检索的提醒的最低严重级别。 如果您未配置此参数,连接器会提取所有严重级别的提醒。 可能的值介于 注意:Amazon GuardDuty 按以下顺序映射整数值:
|
| 回溯的小时数上限 | 整数 | 1 | 否 | 检索发现结果时,要回溯到当前时间之前多少小时。
此参数可应用于您首次启用连接器后的初始连接器迭代,或应用于过期连接器时间戳的后备值。 |
| 要提取的发现结果数上限 | 整数 | 50 | 否 | 每次连接器迭代要处理的发现结果数量。 最多:50 张 这是 GuardDuty 的限制。 |
Use whitelist as a blacklist |
复选框 | 尚未核查 | 是 | 如果选中,连接器会将动态列表用作屏蔽名单。 |
| 代理服务器地址 | 字符串 | 不适用 | 否 | 要使用的代理服务器的地址。 |
| 代理用户名 | 字符串 | 不适用 | 否 | 用于进行身份验证的代理用户名。 |
| 代理密码 | 密码 | 不适用 | 否 | 用于进行身份验证的代理密码。 |
连接器规则
此连接器支持代理。
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。