Event Threat Detection 的自定义模块概览

本页面简要介绍了 Event Threat Detection 的自定义模块。

您可以配置模块(也称为检测器)来处理 Cloud Logging 流,并根据您指定的参数来检测威胁。此功能扩展了 Event Threat Detection 的监控功能,让您能够使用自己的检测参数、修复指南和严重级别指标添加模块来提供内置检测器可能不支持的配置。

如果您需要模块能够提供满足组织独特需求的检测规则,则自定义模块会非常有用。例如,您可以添加一个自定义模块,以在日志条目显示资源已连接到特定 IP 地址或在受限区域中创建时创建发现结果。

Event Threat Detection 的自定义模块的运作方式

自定义模块是一组精选的 Event Threat Detection 检测器,您可以使用自己的检测参数来对其进行配置。您可以通过 Google Cloud 控制台创建 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 的专有检测逻辑和威胁情报,包括 Tripwire 指标匹配。您可以根据自己组织的独特要求,量身定制一系列威胁模型。

Event Threat Detection 自定义模块与内置检测器一起运行。启用的模块会以实时模式运行,系统会在有新日志创建时触发扫描。

自定义模块和模板

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

如果您想使用 gcloud CLI 创建或更新自定义模块,则需要这些 JSON 模块模板。如需查看模板,请点击其名称旁边的展开图标 。如需了解如何使用自定义模块,请参阅配置和管理自定义模块

发现结果类别 模块类型 日志源类型 说明
可配置的错误 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.com。不允许使用 localhost 值。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 实例的操作
模板:异常 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:可选。要监控的紧急访问 (Breakglass) 账号,例如 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_1:要监控的 IAM 权限,例如 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 个自定义模块发现结果。每个发现结果都会计入组织或项目,具体取决于来源自定义模块是在哪个级别创建的。

这些限额无法提高。

后续步骤