创建和管理事件威胁检测的自定义模块

本页面介绍了如何创建和管理事件威胁检测的自定义模块。

须知事项

本部分介绍使用 Event Threat Detection 自定义模块的要求。

Security Command Center 高级和事件威胁检测

要使用 Event Threat Detection 自定义模块,必须启用 Event Threat Detection。接收者 启用 Event Threat Detection,请参阅 启用或停用内置服务

IAM 角色

IAM 角色决定您可以使用 Event Threat Detection 自定义模块执行的操作。

下表包含 Event Threat Detection 自定义模块列表 和预定义 IAM 角色 。这些权限的有效期至少为 2024 年 1 月 22 日。在此日期之后,您将需要具备下表第二部分列出的权限。

您可以使用 Google Cloud 控制台或 Security Command Center API 来 在组织、文件夹或项目级别分配这些角色。

2024 年 1 月 22 日之前需要的权限 角色
securitycenter.eventthreatdetectioncustommodules.create
securitycenter.eventthreatdetectioncustommodules.update
securitycenter.eventthreatdetectioncustommodules.delete
roles/securitycenter.settingsEditor
roles/securitycenter.admin
securitycenter.eventthreatdetectioncustommodules.get
securitycenter.eventthreatdetectioncustommodules.list
roles/securitycenter.settingsViewer
roles/securitycenter.adminViewer
roles/securitycenter.admin

下表包含 Event Threat Detection 自定义模块列表 2024 年 1 月 22 日当天或之后需要的权限, 以及包含这些角色的预定义 IAM 角色

您可以使用 Google Cloud 控制台或 Security Command Center API 来 在组织、文件夹或项目级别分配这些角色。

2024 年 1 月 22 日之后所需的权限 角色
securitycentermanagement.eventThreatDetectionCustomModules.create
securitycentermanagement.eventThreatDetectionCustomModules.update
securitycentermanagement.eventThreatDetectionCustomModules.delete
roles/securitycentermanagement.etdCustomModulesEditor
roles/securitycenter.settingsEditor
roles/securitycenter.admin
securitycentermanagement.eventThreatDetectionCustomModules.list
securitycentermanagement.eventThreatDetectionCustomModules.get
securitycentermanagement.effectiveEventThreatDetectionCustomModules.list
securitycentermanagement.effectiveEventThreatDetectionCustomModules.get
securitycentermanagement.eventThreatDetectionCustomModules.validate
roles/securitycentermanagement.etdCustomModulesViewer
roles/securitycentermanagement.etdCustomModulesEditor
roles/securitycenter.adminViewer
roles/securitycenter.admin

如果您在 Security Command Center 中遇到访问错误,请让您的管理员寻求帮助。请参阅以下页面之一,具体取决于您激活 Security Command Center 的级层:

必要的日志

确保已为您的组织、文件夹、 和项目。了解每个自定义 模块类型,请参阅自定义模块和 模板

不支持来自 Google Cloud 外部来源的日志。

自定义模块级别

本文档使用以下术语来描述自定义 模块已创建:

住宅模块
模块是在当前视图或范围中创建的。例如,如果您在 Google Cloud 控制台的组织视图、学员模块 是在组织级别创建的模块。
继承的模块
模块是在父视图或作用域下创建的。例如,一个模块 在组织级别创建的模块是任何文件夹或项目中的继承模块
派生模块
该模块是在子视图或作用域中创建的。例如,创建 文件夹或项目级别的模块是组织级别的后代模块。

创建自定义模块

您可以通过 Google Cloud 控制台或者通过修改 JSON 模板并通过 gcloud CLI 提交该模板来创建 Event Threat Detection 自定义模块。只有当您计划时,才需要 JSON 模板 如何使用 gcloud CLI 创建自定义模块。

有关支持的模块模板的列表,请参阅 自定义模块和模板

模板结构

模板定义了自定义模块用来识别其中威胁的参数 日志模板采用 JSON 编写,其结构与 Security Command Center 生成的发现结果类似。您需要配置一个 JSON 模板 除非您计划使用 gcloud CLI 创建自定义模块。

每个模板都包含可自定义的字段:

  • severity:您要分配给此发现结果的严重性或风险级别 类型、LOWMEDIUMHIGHCRITICAL
  • description:自定义模块的说明。
  • recommendation:建议采取的操作来解决 自定义模块
  • 检测参数:用于评估日志和触发器的变量 结果。检测参数因模块而异,但它们包含一个或 更多以下内容:
    • domains:要监视的网域
    • ips:要监控的 IP 地址
    • permissions:要监控的权限
    • regions:允许创建新 Compute Engine 实例的区域
    • roles:要监控的角色
    • accounts:要监视的账号
    • 用于定义允许的 Compute Engine 实例类型的参数,例如 seriescpusram_mb
    • 用于检查属性的正则表达式,例如 caller_patternresource_pattern

以下代码示例是 Configurable Bad IP 的示例 JSON 模板。

{
  "metadata": {
    "severity": "LOW",
    "description": "Flagged by Cymbal as malicious",
    "recommendation": "Contact the owner of the relevant project."
  },
  "ips": [
    "192.0.2.1",
    "192.0.2.0/24"
  ]
}

在前面的示例中,自定义模块生成了一个 低严重级别的发现结果(如果您的日志指示资源连接到该 IP) 地址 192.0.2.1192.0.2.0/24

修改模块模板

如需创建模块,请选择模块模板并进行修改。

如果您打算使用 Google Cloud CLI 创建自定义模块, 必须执行此任务。

如果您打算使用 Google Cloud 控制台创建自定义模块,请跳过 此任务。您可以使用屏幕上显示的选项修改 模板参数。

  1. 自定义模块和 模板
  2. 将代码复制到本地文件。
  3. 更新要用于评估日志的参数。
  4. 将文件保存为 JSON 文件。
  5. 通过 gcloud CLI 使用 JSON 文件。

创建自定义模块

本部分介绍如何通过 Google Cloud 控制台和 gcloud CLI 创建自定义模块。每个 Event Threat Detection 自定义模块的大小限制为 6 MB。

如需创建自定义模块,请按照以下步骤操作:

控制台

  1. 查看 模块 Event Threat Detection 服务。预定义模块和自定义模块会显示在列表中。
  2. 点击创建模块
  3. 点击要使用的模块模板。
  4. 点击选择
  5. 对于模块名称,输入新模板的显示名称。名称 不得超过 128 个字符,且只能包含字母数字字符 字符和下划线,例如 example_custom_module
  6. 选择或添加所需的参数值。参数 每个单元例如,如果您选择了 Configurable allowed Compute Engine region 模块模板,则还要选择一个或多个区域。 或者,您也可以提供 JSON 格式的列表。
  7. 点击下一步
  8. 严重性部分,输入要分配的严重级别。 新自定义模块生成的发现结果
  9. 说明部分,输入新自定义模块的说明。
  10. 对于后续步骤,请以纯文本格式输入建议采取的措施。 您添加的所有段落分隔符号都会被忽略。
  11. 点击创建

gcloud

  1. 创建一个包含自定义模块定义的 JSON 文件。使用 模板(位于自定义模块和 模板 作为您的向导。

  2. 通过在 gcloud 命令中发送 JSON 文件来创建自定义模块:

 gcloud alpha scc custom-modules etd create \
     --RESOURCE_FLAG=RESOURCE_ID \
     --display-name="DISPLAY_NAME" \
     --module-type="MODULE_TYPE" \
     --enablement-state="ENABLED" \
     --custom-config-from-file=PATH_TO_JSON_FILE

替换以下内容:

  • RESOURCE_FLAG:自定义项所在父资源的范围 创建模块是 organizationfolderproject 中的一个。
  • RESOURCE_ID:父级资源的资源 ID;也就是 组织 ID、文件夹 ID 或项目 ID。
  • DISPLAY_NAME:新模板的显示名称。名称 不得超过 128 个字符,且只能包含字母数字字符 字符和下划线。
  • MODULE_TYPE自定义类型 模块 例如 CONFIGURABLE_ALLOWED_COMPUTE_ENGINE_REGION
  • PATH_TO_JSON_FILE:基于模块模板的 JSON 文件,其中包含自定义模块的 JSON 定义

您的自定义模块已创建并开始扫描。如需删除模块,请参阅删除自定义模块

自定义模块的类别名称包含 单元 类型 以及您设置的模块显示名称。例如,某产品的类别名称 自定义模块可以为 Unexpected Compute Engine Region: example_custom_module。 在 Google Cloud 控制台中,下划线显示为空格。不过,在 则必须包含下划线。

配额 管理事件威胁检测的自定义模块的使用。

检查延迟时间

Event Threat Detection 和所有其他内置项的检测延迟时间 有关 Security Command Center 服务的介绍,请参见扫描 延迟时间

审查发现结果

您可以在 Google Cloud 控制台中或使用 gcloud CLI 查看自定义模块生成的发现结果。

控制台

  1. 在 Google Cloud 控制台中,前往 Security Command Center 的发现结果页面。

    前往“发现结果”

  2. 选择您的 Google Cloud 项目或组织。
  3. 快速过滤条件部分的来源显示名称子部分中,选择 Event Threat Detection 自定义模块。发现结果查询结果会更新,以仅显示 来自此来源的发现结果。
  4. 如需查看特定发现结果的详细信息,请点击类别下的发现结果名称。通过 相应发现结果的详细信息面板随即会打开,并显示摘要标签页。
  5. 摘要标签页上,查看发现结果的详细信息,包括检测到的内容、受影响的资源,以及您可以采取的发现结果修复步骤(如果有)。
  6. 可选:如需查看发现结果的完整 JSON 定义,请点击 JSON 标签页。

gcloud

如需使用 gcloud CLI 查看发现结果,请执行以下操作:

  1. 打开一个终端窗口。
  2. 获取 Event Threat Detection 自定义模块的来源 ID。命令 取决于您是否在组织中激活了 Security Command Center 或项目级:

    gcloud scc sources describe RESOURCE_LEVEL/RESOURCE_ID \
        --source-display-name='Event Threat Detection Custom Modules'
    

    替换以下内容:

    • RESOURCE_LEVEL:Security Command Center 实例的激活级别;organizationsprojects 之一。
    • RESOURCE_ID:您的组织的资源 ID,或 项目。

    输出类似于以下内容。SOURCE_ID是 服务器为安全来源分配的 ID。

    canonicalName: RESOURCE_LEVEL/RESOURCE_ID/sources/SOURCE_ID
    description: Provider used by Event Threat Detection Custom Modules
    displayName: Event Threat Detection Custom Modules
    name: RESOURCE_LEVEL/RESOURCE_ID/sources/SOURCE_ID
  3. 列出 Event Threat Detection 自定义的所有发现结果 模块,请使用上一个 步骤:

    gcloud scc findings list RESOURCE_LEVEL/RESOURCE_ID --source=SOURCE_ID
    

    替换以下内容:

    • RESOURCE_LEVEL:您要列出发现的资源级别;可以是 organizationsfoldersprojects
    • RESOURCE_ID:资源的 ID;也就是 组织 ID、文件夹 ID 或项目 ID。
    • SOURCE_ID:Event Threat Detection 的来源 ID 自定义模块
  4. 如需列出某个特定自定义模块的发现结果,请运行以下命令:

    MODULE="CUSTOM_MODULE_CATEGORY_NAME"
    FILTER="category=\"$MODULE\""
    gcloud scc findings list RESOURCE_LEVEL/RESOURCE_ID --source=SOURCE_ID --filter="$FILTER"
    

    替换以下内容:

    • CUSTOM_MODULE_CATEGORY_NAME: 自定义模块此名称由模块类型的发现结果类别(如自定义模块和模板中所列)和模块显示名称(使用下划线而非空格)组成。对于 例如,自定义模块的类别名称可以是 Unexpected Compute Engine region: example_custom_module
    • RESOURCE_LEVEL:您在哪个资源层级 列出发现结果;是 organizationsfoldersprojects 中的一个。
    • RESOURCE_ID:资源的 ID;也就是 组织 ID、文件夹 ID 或项目 ID。
    • SOURCE_ID:您的 事件威胁检测自定义模块。

如需详细了解如何过滤发现结果,请参阅列出安全发现结果

管理自定义模块生成的发现结果的方式与管理 Security Command Center 中的所有发现结果一样。详情请参阅以下内容:

管理 Event Threat Detection 自定义模块

本部分介绍如何查看、列出、更新和删除 Event Threat Detection 自定义模块

查看或列出自定义模块

控制台

  1. 查看 模块 Event Threat Detection 服务。预定义和自定义模块 以列表形式显示
  2. 可选:要仅查看自定义模块,请在过滤条件字段中输入 Type:Custom

结果包括:

  • 所有住宅 Event Threat Detection 自定义模块。
  • 所有继承的 Event Threat Detection 自定义模块。 例如,如果您使用的是项目视图,则结果中会包含在该项目的父级文件夹和组织中创建的自定义模块。
  • 在子资源中创建的所有 Event Threat Detection 后代自定义模块。例如,如果您在组织视图中, 在该组织下的文件夹中创建,且包含在该组织下的项目中 结果。

gcloud

gcloud alpha scc custom-modules etd list \
    --RESOURCE_FLAG=RESOURCE_ID

替换以下内容:

  • RESOURCE_FLAG:您要 列出自定义模块;是 organizationfolderproject 中的一个。
  • RESOURCE_ID:资源的 ID,即组织 ID、文件夹 ID 或项目 ID。

结果包括:

  • 所有住宅 Event Threat Detection 自定义模块。
  • 所有继承的 Event Threat Detection 自定义模块。例如,当您在项目级别列出自定义模块时,自定义 在该项目的父级文件夹和组织中创建的模块: 其他字词。

结果中的每个条目都包含模块的名称、状态和 属性。属性因模块而异。

每个模块的名称都包含其自定义模块 ID。很多gcloud 需要自定义模块 ID。

name: RESOURCE_LEVEL/RESOURCE_ID/eventThreatDetectionSettings/customModules/CUSTOM_MODULE_ID

停用自定义模块

控制台

请参阅启用或停用 模块

停用继承的自定义模块后,您所做的更改将仅应用于 资源级别位于父级的原始自定义模块 不受影响例如,如果您位于项目级别, 停用从父文件夹(自定义模板)继承的自定义模块 模块仅在项目级别停用。

您无法停用后代自定义模块。例如,如果您位于 组织视图中,您不能停用在 项目级别。

gcloud

gcloud alpha scc custom-modules etd update CUSTOM_MODULE_ID \
    --RESOURCE_FLAG=RESOURCE_ID \
    --enablement-state="DISABLED"

替换以下内容:

  • CUSTOM_MODULE_ID:事件威胁检测自定义模块的数字 ID,例如 1234567890。您可以 从相关自定义模块的 name 字段中获取数字 ID (当您查看自定义模块列表时)。
  • RESOURCE_FLAG:父级资源的范围 自定义模块所在的位置;organizationfolderproject
  • RESOURCE_ID:父级资源的 ID;即组织 ID、文件夹 ID 或项目 ID。

启用自定义模块

控制台

请参阅启用或停用模块

如果启用继承的自定义模块,您所做的更改将仅应用于 资源级别位于父级的原始自定义模块 不受影响例如,如果您位于项目级别,并且启用了从父级文件夹继承的自定义模块,则该自定义模块仅在项目级别启用。

您无法启用后代自定义模块。例如,如果您位于 组织视图中,则无法启用在 项目级别。

gcloud

gcloud alpha scc custom-modules etd update CUSTOM_MODULE_ID \
    --RESOURCE_FLAG=RESOURCE_ID \
    --enablement-state="ENABLED"

请替换以下内容:

  • CUSTOM_MODULE_ID:Event Threat Detection 的数字 ID 自定义模块,例如 1234567890。您可以获取数字 ID (在相关自定义模块的 name 字段中)查看此列表时, 自定义模块列表。
  • RESOURCE_FLAG:父级资源的范围 自定义模块所在的位置;organizationfolderproject
  • RESOURCE_ID:父级资源的 ID;即 组织 ID、文件夹 ID 或项目 ID。

更新自定义模块的定义

本部分介绍如何通过 Google Cloud 控制台和 gcloud CLI 更新自定义模块。每个 Event Threat Detection 自定义模块的大小限制为 6 MB。

您无法更新自定义模块的模块类型。

如需更新自定义模块,请按照以下步骤操作:

控制台

您只能修改住宅自定义模块。例如,如果您位于 组织视图中,则只能修改在 组织级别的权限。

  1. 查看 模块 Event Threat Detection 服务。预定义和自定义模块 以列表形式显示
  2. 找到要修改的自定义模块。
  3. 对于该自定义模块,点击 操作 > 修改
  4. 根据需要修改自定义模块。
  5. 点击保存

gcloud

如需更新模块,请运行以下命令并添加更新后的模块模板 JSON:

 gcloud alpha scc custom-modules etd update CUSTOM_MODULE_ID \
     --RESOURCE_FLAG=RESOURCE_ID \
     --enablement-state="ENABLED" \
     --custom-config-from-file=PATH_TO_JSON_FILE

请替换以下内容:

  • CUSTOM_MODULE_ID:Event Threat Detection 的数字 ID 自定义模块,例如 1234567890。您可以获取数字 ID (在相关自定义模块的 name 字段中)查看此列表时, 自定义模块列表。
  • RESOURCE_FLAG:自定义模块所在的父级资源的范围;可以是 organizationfolderproject 之一。
  • RESOURCE_ID:父级资源的 ID;即 组织 ID、文件夹 ID 或项目 ID。
  • PATH_TO_JSON_FILE:包含自定义模块的 JSON 定义的 JSON 文件。

查看单个自定义模块的状态

控制台

  1. 查看 Event Threat Detection 服务的模块。预定义和自定义模块 以列表形式显示
  2. 从列表中找到自定义模块。

自定义模块的状态显示在状态列中。

gcloud

 gcloud alpha scc custom-modules etd get CUSTOM_MODULE_ID \
     --RESOURCE_FLAG=RESOURCE_ID

替换以下内容:

  • CUSTOM_MODULE_ID: 事件威胁检测自定义模块,例如 1234567890。您可以 从相关自定义模块的 name 字段中获取数字 ID (当您查看自定义模块列表时)。
  • RESOURCE_FLAG:自定义模块所在的父级资源的范围;可以是 organizationfolderproject 之一。
  • RESOURCE_ID:父级资源的 ID;即组织 ID、文件夹 ID 或项目 ID。

输出类似于以下内容,其中包含模块的状态和属性。属性因模块而异。

config:
metadata:
  description: DESCRIPTION
  recommendation: RECOMMENDATION
  severity: SEVERITY
regions:
- region: REGION
displayName: USER_SPECIFIED_DISPLAY_NAME
enablementState: STATUS
lastEditor: LAST_EDITOR
name: RESOURCE_LEVEL/RESOURCE_ID/eventThreatDetectionSettings/customModules/CUSTOM_MODULE_ID
type: MODULE_TYPE
updateTime: 'UPDATE_TIME'

删除自定义模块

删除 Event Threat Detection 自定义模块后,该模块的发现结果 不会修改,并且仍然保留在 Security Command Center 中。相比之下,如果您删除 Security Health Analytics 自定义模块,其生成的发现结果会被标记为非活跃。

您无法恢复已删除的自定义模块。

控制台

您无法删除继承的自定义模块。例如,如果您在项目视图中,则无法删除在文件夹级或组织级创建的自定义模块。

如需通过 Google Cloud 控制台删除自定义模块,请执行以下操作: 以下:

  1. 查看 模块 Event Threat Detection 服务。预定义模块和自定义模块会显示在列表中。
  2. 找到您要删除的自定义模块。
  3. 对于该自定义模块,点击 操作 > 删除。系统会显示一条消息,提示您 确认删除。
  4. 点击删除

gcloud

 gcloud alpha scc custom-modules etd delete CUSTOM_MODULE_ID \
     --RESOURCE_FLAG=RESOURCE_ID

替换以下内容:

  • CUSTOM_MODULE_ID: 事件威胁检测自定义模块,例如 1234567890。您可以 从相关自定义模块的 name 字段中获取数字 ID (当您查看自定义模块列表时)。
  • RESOURCE_FLAG:父级资源的范围 自定义模块所在的位置;organizationfolderproject
  • RESOURCE_ID:父级资源的 ID;即 组织 ID、文件夹 ID 或项目 ID。

克隆自定义模块

当您克隆自定义模块时,生成的自定义模块将创建为 您所查看的资源的居住者。例如,如果您 克隆一个您的项目从组织、 新建自定义模块是项目中的一个住宅模块。

您不能克隆后代自定义模块。

如需通过 Google Cloud 控制台克隆自定义模块,请执行以下操作:

  1. 查看 Event Threat Detection 服务的模块。预定义和自定义模块 以列表形式显示
  2. 找到您要克隆的自定义模块。
  3. 对于该自定义模块,点击 操作 > 克隆
  4. 根据需要修改自定义模块。
  5. 点击创建

后续步骤