Event Threat Detection 的自定义模块概览

本页面概述了事件威胁检测的自定义模块。

您可以配置模块(也称为检测器),以处理您的 Cloud Logging 数据流和 根据您指定的参数检测威胁。此功能扩展了 Event Threat Detection 的自动监控功能,可让您通过自己的数据添加 自己的检测参数、补救指导和严重性标识, 内置检测器可能不支持的配置。

如果您需要的模块具有符合 组织的独特需求例如,您可以添加一个自定义模块,以在日志条目显示资源已连接到特定 IP 地址或在受限区域中创建时创建发现结果。

Event Threat Detection 的自定义模块的工作原理

自定义模块是一组精选的事件威胁检测检测器, 使用您自己的检测参数进行配置。您可以创建一个 Event Threat Detection 自定义模块。或者 您可以通过更新自定义模块模板来创建一个 通过 Google Cloud CLI 将自定义模块发送到 Security Command Center。对于 有关可用模板的信息,请参见自定义模块和 模板

自定义模块模板采用 JSON 格式编写,可让您定义检测参数,以控制日志条目中的哪些事件应触发发现结果。对于 例如,内置的 Malware: Bad IP 检测器检查 用于提供已知可疑 IP 连接的证据的虚拟私有云流日志 地址。不过,您可以启用和修改 Configurable Bad IP 自定义 并提供您维护的可疑 IP 地址列表。如果您的日志 表示与您提供的任一 IP 地址建立了连接, 生成并写入 Security Command Center

模块模板还可让您定义威胁的严重程度,并提供自定义 修复步骤,帮助安全团队解决问题。

借助自定义模块,您可以更好地控制 Event Threat Detection 检测的方式 并报告发现结果。自定义模块包括您提供的参数 但仍利用 Event Threat Detection 的专有检测逻辑和威胁 包括 Triwire 指示器匹配等情报。您可以采用广泛的 根据组织的独特要求定制的威胁模型集。

事件威胁检测自定义模块与内置检测器一起运行。已启用 模块以实时模式运行,该模式会在出现新日志时触发扫描 创建。

自定义模块和模板

下表列出了受支持的自定义模块类型。 所需的日志和 JSON 模块模板。

如果您想使用 gcloud CLI 来创建或更新自定义模块。要查看模板,请执行以下操作: 点击应用名称旁边的展开图标 。相关信息 请参见配置和管理自定义 模块

发现结果类别 模块类型 日志源类型 说明
可配置的错误 IP 地址 CONFIGURABLE_BAD_IP VPC 流日志
防火墙规则日志
检测到与指定 IP 地址的连接
模板:可配置的错误 IP 地址
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "ips": [
    "IP_ADDRESS_1",
    "IP_ADDRESS_2"
  ]
}

请替换以下内容:

  • SEVERITY:要检查的发现结果的严重程度 此模块生成的输出有效值为 LOWMEDIUMHIGHCRITICAL
  • DESCRIPTION:对 自定义模块检测到的此说明用于填充 由此生成的每个发现结果的 explanation 属性 模块。
  • RECOMMENDATION:说明安全团队可以用来解决检测到的问题的建议步骤。此说明用于填充 nextSteps 属性。
  • IP_ADDRESS_1:可公开路由的 IPv4 或 IPv6 要监控的地址或 CIDR 地址块,例如 192.0.2.1192.0.2.0/24
  • IP_ADDRESS_2:可选。可公开路由 要监视的 IPv4、IPv6 地址或 CIDR 地址块,例如, 192.0.2.1192.0.2.0/24
可配置的错误域名 CONFIGURABLE_BAD_DOMAIN Cloud DNS 日志 检测到与指定域名的连接
模板:可配置的错误域名
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "domains": [
    "DOMAIN_1","DOMAIN_2"
  ]
}

请替换以下内容:

  • SEVERITY:要检查的发现结果的严重程度 此模块生成的输出有效值为 LOWMEDIUMHIGHCRITICAL
  • DESCRIPTION:对 自定义模块检测到的此说明用于填充 由此生成的每个发现结果的 explanation 属性 模块。
  • RECOMMENDATION:说明安全团队可以用来解决检测到的问题的建议步骤。此说明用于填充 nextSteps 属性。
  • DOMAIN_1:要监控的域名 示例:example.comlocalhost的值为 不允许。Unicode 和 Punycode 域名会经过标准化处理。例如,例子.example 和 xn--fsqu00a.example 是等效的。
  • DOMAIN_2:可选。要监视的域名,例如 example.com。值为 不允许使用 localhost。Unicode 和 Punycode 域名 都经过标准化处理。例如,例子.example 和 xn--fsqu00a.example 是等效的。
意外的 Compute Engine 实例类型 CONFIGURABLE_ALLOWED_COMPUTE_ENGINE_INSTANCE_TYPE Cloud Audit Logs:
管理员活动日志(必需)
数据访问日志(可选)
检测到与指定实例类型或配置不匹配的 Compute Engine 实例的创建。
模板:意外的 Compute Engine 实例类型
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "instances": [
    {
      "series": "SERIES",
      "cpus": {
        "minimum": MINIMUM_NUMBER_OF_CPUS,
        "maximum": MAXIMUM_NUMBER_OF_CPUS
      },
      "ram_mb": {
        "minimum": MINIMUM_RAM_SIZE,
        "maximum": MAXIMUM_RAM_SIZE
      },
      "gpus": {
        "minimum": MINIMUM_NUMBER_OF_GPUS,
        "maximum": MAXIMUM_NUMBER_OF_GPUS
      },
      "projects": [
        "PROJECT_ID_1",
        "PROJECT_ID_2"
      ],
      "regions": [
        "REGION_1",
        "REGION_2"
      ]
    },
    {
      "series": " ... ",
      ...
      "regions": [ ... ]
    }
  ]
}

请替换以下内容:

  • SEVERITY:要检查的发现结果的严重程度 此模块生成的输出有效值为 LOWMEDIUMHIGHCRITICAL
  • DESCRIPTION:对 自定义模块检测到的此说明用于填充 由此生成的每个发现结果的 explanation 属性 模块。
  • RECOMMENDATION:说明安全团队可以用来解决检测到的问题的建议步骤。此说明用于填充 nextSteps 属性。
  • SERIES:可选。Compute Engine 机器系列,例如 C2。如果为空,则 允许所有系列。如需了解详情,请参阅机器系列资源和比较 指南
  • MINIMUM_NUMBER_OF_CPUS:可选。最低 要允许的 CPU 数量。如果不存在,则没有最低值。 不得为负值。
  • MAXIMUM_NUMBER_OF_CPUS:可选。最大 要允许的 CPU 数量。如果不存在,则没有上限。必须大于或等于 minimum 且小于或等于 1,000。
  • MINIMUM_RAM_SIZE:可选。最小 RAM 允许的大小(以兆字节为单位)。如果不存在,则表示没有 最低。
  • MAXIMUM_RAM_SIZE:可选。允许的最大 RAM 大小(以兆字节为单位)。如果不存在,则表示没有 最大值。必须大于或等于 minimum 且小于或等于 10,000,000。
  • MINIMUM_NUMBER_OF_GPUS:可选。最低 允许的 GPU 数量。如果不存在,则没有最低值。 不得为负值。
  • MAXIMUM_NUMBER_OF_GPUS:可选。最大 允许的 GPU 数量。如果不存在,则没有最大值。必须 大于或等于 minimum 且小于或等于 100。
  • PROJECT_ID_1:可选。需要执行身份验证的项目的 ID 目标应用场景,例如 projects/example-project.如果为空或未设置,则 应用于在当前范围内的所有项目中创建的实例。
  • PROJECT_ID_2:可选。需要执行身份验证的项目的 ID 目标应用场景,例如 projects/example-project.
  • REGION_1:可选。您要应用此设置的区域 模块,例如 us-central1。如果为空或未设置, 会应用于在所有区域中创建的实例。
  • REGION_2:可选。目标区域 应用此模块,例如 us-central1
意外的 Compute Engine 来源映像 CONFIGURABLE_ALLOWED_COMPUTE_ENGINE_SOURCE_IMAGE Cloud Audit Logs:
管理员活动日志(必需)
数据访问日志(可选)
检测使用与指定列表不匹配的映像或映像系列创建的 Compute Engine 实例
模板:意外的 Compute Engine 来源映像
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "patterns": [
    {

      "pattern": "PATTERN_1",
      "name": "NAME_1"
    },
    {
      "pattern": "PATTERN_2",
      "name": "NAME_2"
    }
  ]
}

请替换以下内容:

  • SEVERITY:要检查的发现结果的严重程度 此模块生成的输出有效值为 LOWMEDIUMHIGHCRITICAL
  • DESCRIPTION:对 自定义模块检测到的此说明用于填充 由此生成的每个发现结果的 explanation 属性 模块。
  • RECOMMENDATION:说明安全团队可以用来解决检测到的问题的建议步骤。此说明用于填充 nextSteps 属性。
  • PATTERN_1:一个 RE2 用于检查图片的正则表达式,例如 debian-image-1。如果使用某个映像创建 Compute Engine 实例,并且该映像的名称与 就会发出发现结果。
  • NAME_1:此项的描述性名称 格式,例如 first-image
  • PATTERN_2:可选。另一个 RE2 正则表达式 例如 debian-image-2
  • NAME_2:可选。该 第二种格式,例如 second-image
意外的 Compute Engine 区域 CONFIGURABLE_ALLOWED_COMPUTE_ENGINE_REGION Cloud Audit Logs:
管理员活动日志(必需)
数据访问日志(可选)
检测到系统在不属于 指定的列表
模板:意外的 Compute Engine 区域
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "regions": [
    {
      "region": "REGION_1"
    },
    {
      "region": "REGION_2"
    }
  ]
}

请替换以下内容:

  • SEVERITY:要检查的发现结果的严重程度 此模块生成的输出有效值为 LOWMEDIUMHIGHCRITICAL
  • DESCRIPTION:对 自定义模块检测到的此说明用于填充 由此生成的每个发现结果的 explanation 属性 模块。
  • RECOMMENDATION:说明安全团队可以用来解决检测到的问题的建议步骤。此说明用于填充 nextSteps 属性。
  • REGION_1:要允许 - 的区域名称 例如 us-west1。如果 Compute Engine 实例 在列表中未指定的区域中创建,Event Threat Detection 发出发现结果。
  • REGION_2:可选。要配置的区域的名称 例如 us-central1。如果 Compute Engine 实例在列表中未列出的区域创建,则 Event Threat Detection 会发出发现结果。
已使用 Breakglass 账号 CONFIGURABLE_BREAKGLASS_ACCOUNT_USED Cloud Audit Logs:
管理员活动日志(必需)
数据访问日志(可选)
检测使用紧急访问(Breakglass)账号
模板:使用的 Breakglass 账号
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "accounts": [
    "BREAKGLASS_ACCOUNT_1", "BREAKGLASS_ACCOUNT_2"
  ]
}

请替换以下内容:

  • SEVERITY:要检查的发现结果的严重程度 此模块生成的输出有效值为 LOWMEDIUMHIGHCRITICAL
  • DESCRIPTION:对 自定义模块检测到的此说明用于填充 由此生成的每个发现结果的 explanation 属性 模块。
  • RECOMMENDATION:说明安全团队可以用来解决检测到的问题的建议步骤。此说明用于填充 nextSteps 属性。
  • BREAKGLASS_ACCOUNT_1:用于以下用途的 Breakglass 账号: 例如 test@example.com。发现结果是 如果此账号用于记录在 Cloud Audit Logs 条目。
  • BREAKGLASS_ACCOUNT_2:可选。紧急访问权限 要监控的账号,例如 test@example.com。答 如果此账号用于记录在 Cloud Audit Logs 条目。
意外的角色授予 CONFIGURABLE_UNEXPECTED_ROLE_GRANT Cloud Audit Logs:
管理员活动日志(必需)
数据访问日志(可选)
检测何时向用户授予指定角色
模板:非预期的角色授权
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "roles": ["ROLE_1", "ROLE_2"]
}

请替换以下内容:

  • SEVERITY:要检查的发现结果的严重程度 此模块生成的输出有效值为 LOWMEDIUMHIGHCRITICAL
  • DESCRIPTION:对 自定义模块检测到的此说明用于填充 由此生成的每个发现结果的 explanation 属性 模块。
  • RECOMMENDATION:说明安全团队可以用来解决检测到的问题的建议步骤。此说明用于填充 nextSteps 属性。
  • ROLE_1:要监控的 IAM 角色 例如 roles/owner。如果出现以下情况,则系统会生成发现结果: 授予此角色的权限。
  • ROLE_2:可选。拥有 IAM 角色, 例如 roles/editor。生成发现结果 是否已授予此角色。
具有遭禁止权限的自定义角色 CONFIGURABLE_CUSTOM_ROLE_WITH_PROHIBITED_PERMISSION Cloud Audit Logs:
管理员活动日志(必需)
数据访问日志(可选)
检测何时创建或更新具有任何指定 IAM 权限的自定义角色。
模板:具有遭禁止权限的自定义角色
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "permissions": [
    "PERMISSION_1",
    "PERMISSION_2"
  ]
}

请替换以下内容:

  • SEVERITY:要检查的发现结果的严重程度 此模块生成的输出有效值为 LOWMEDIUMHIGHCRITICAL
  • DESCRIPTION:对 自定义模块检测到的此说明用于填充 由此生成的每个发现结果的 explanation 属性 模块。
  • RECOMMENDATION:说明安全团队可以用来解决检测到的问题的建议步骤。此说明用于填充 nextSteps 属性。
  • PERMISSION_1IAM 权限 例如 storage.buckets.list。 如果包含此权限的自定义 IAM 角色被授予主账号,则 Event Threat Detection 会发出发现结果。
  • PERMISSION_2:可选。IAM 拥有监控权限,例如 storage.buckets.get.如果包含此权限的自定义 IAM 角色被授予主账号,则 Event Threat Detection 会发出发现结果。
意外的 Cloud API 调用 CONFIGURABLE_UNEXPECTED_CLOUD_API_CALL Cloud Audit Logs
管理员活动日志(必需)
数据访问日志 (选填)
检测指定主账号何时针对 指定资源。仅当所有正则表达式均符合 在单个日志条目中进行匹配。
模板:意外的 Cloud API 调用
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "caller_pattern": "CALLER_PATTERN",
  "method_pattern": "METHOD_PATTERN",
  "resource_pattern": "RESOURCE_PATTERN"
}

替换以下内容:

  • SEVERITY:要检查的发现结果的严重程度 此模块生成的输出有效值为 LOWMEDIUMHIGHCRITICAL
  • DESCRIPTION:对 自定义模块检测到的此说明用于填充 由此生成的每个发现结果的 explanation 属性 模块。
  • RECOMMENDATION:说明安全团队可以用来解决检测到的问题的建议步骤。此说明用于填充 nextSteps 属性。
  • CALLER_PATTERN:一个 RE2 用于检查主账号的正则表达式。例如: .* 与任何主账号匹配。
  • METHOD_PATTERN:RE2 常规广告 用于检查方法的表达式,例如 ^cloudsql\\.instances\\.export$.
  • RESOURCE_PATTERN:RE2 常规广告 用于检查资源的表达式,例如 example-project.

价格和配额

Security Command Center 高级方案客户可免费使用此功能。

Event Threat Detection 自定义模块受配额限制的约束。

创建自定义模块的默认配额限制为 200。

对自定义模块方法的 API 调用也受配额限制的约束。通过 下表显示了自定义模块 API 调用的默认配额限制。

API 调用类型 限制
Get、List 每个组织每分钟 1,000 次 API 调用
创建、更新、删除 每个组织每分钟 60 次 API 调用

模块大小限制

每个 Event Threat Detection 自定义模块的大小限制为 6 MB。

速率限制

适用的速率限制如下:

  • 每个自定义模块每小时 30 个发现结果。
  • 每项父级资源(组织或项目)200 个自定义模块发现结果 。每项发现结果都会计入某个组织或 项目中创建,具体取决于在哪个级别创建源自定义模块。

这些限制无法提高。

后续步骤