Event Threat Detection 的自定义模块概览

本页面简要介绍了 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 检测器会检查虚拟私有云流日志,以查找连接到已知可疑 IP 地址的证据。不过,您可以使用您维护的可疑 IP 地址列表来启用和修改 Configurable Bad IP 自定义模块。如果您的日志表明与您提供的任何 IP 地址建立了连接,则系统会生成发现结果并将其写入 Security Command Center。

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

借助自定义模块,您可以更好地控制 Event Threat Detection 检测威胁和报告发现结果的方式。自定义模块包含您提供的参数,但仍利用事件威胁检测的专有检测逻辑和威胁情报,包括跳线指示器匹配。您可以根据组织的独特需求实施各种威胁模型。

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 账号,例如 [email protected]。如果此账号用于 Cloud Audit Logs 条目中记录的操作,则系统会生成发现结果。
  • BREAKGLASS_ACCOUNT_2:可选。要监控的 Breakglass 账号,例如 [email protected]。如果此账号用于 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 个自定义模块发现结果。每个发现结果都会计入组织或项目,具体取决于在哪个级别创建来源自定义模块。

这些限制无法提高。

后续步骤