Event Threat Detection 的自定义模块概览

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

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

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

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

自定义模块是指一组精选的 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 指示器匹配等情报。您可以采用广泛的 根据组织的独特要求定制的威胁模型集。

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

自定义模块和模板

下表列出了受支持的自定义模块类型。 所需的日志和 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.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 区域
{
  "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 个自定义模块发现结果 。每个发现结果都会计入某个组织或 项目中创建,具体取决于在哪个级别创建源自定义模块。

这些限制无法提高。

后续步骤