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 地址的连接证据。不过,您可以使用您维护的可疑 IP 地址列表启用和修改 Configurable Bad 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:一个要监控的应急账号,例如 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_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 个自定义模块发现结果。每个发现都会计入组织或项目,具体取决于来源自定义模块的创建级别。

这些限制无法提高。

后续步骤