Event Threat Detection 的自定义模块概览

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

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

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

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

自定义模块是一组精选的事件威胁检测检测器,您可以使用自己的检测参数进行配置。您可以通过 Google Cloud 控制台创建 Event Threat Detection 自定义模块。或者,您也可以更新自定义模块模板,并通过 Google Cloud CLI 将自定义模块发送到 Security Command Center,从而创建一个。如需了解可用模板,请参阅自定义模块和模板

自定义模块模板采用 JSON 格式编写,可让您定义检测参数,以控制日志条目中的哪些事件应触发发现结果。例如,内置的 Malware: Bad IP 检测器会检查 Virtual Private Cloud 流日志,以查找连接到已知可疑 IP 地址的证据。不过,您可以启用和修改 Configurable Bad IP 自定义模块,并在其中列出您维护的可疑 IP 地址。如果您的日志指示与您所提供的任何 IP 地址建立连接,系统会生成一个发现结果并将其写入 Security Command Center。

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

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

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

自定义模块和模板

下表列出了支持的自定义模块类型、说明、所需日志和 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 大小(以 MB 为单位)。如果不存在,则没有最低要求。
  • 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 个自定义模块发现结果。每个发现结果都会计入组织或项目,具体取决于在哪个级别创建源自定义模块。

这些限制无法提高。

后续步骤