将 Google Cloud 数据注入 Google Security Operations

支持的平台:

本页介绍了如何启用和停用将 Google Cloud 数据提取到 Google 安全运营。借助 Google Security Operations,您可以根据数据保留期限,存储、搜索和检查贵企业在过去几个月或更长时间内的汇总安全信息。

概览

您可以通过以下两种方式将 Google Cloud 数据发送到 Google Security Operations。选择正确的选项取决于日志类型。

方案 1:直接提取

您可以在 Google Cloud 中配置特殊的 Cloud Logging 过滤器,以便将特定日志类型实时发送到 Google 安全运营团队。这些日志由 Google Cloud 服务生成。

可用的日志类型包括:

  • Cloud Audit Logs
  • Cloud NAT
  • Cloud DNS
  • Cloud 新一代防火墙
  • Cloud Intrusion Detection System
  • Cloud Load Balancing
  • Cloud SQL
  • Windows 事件日志
  • Linux syslog
  • Linux Sysmon
  • Zeek
  • Google Kubernetes Engine
  • 审核守护程序 (auditd)
  • Apigee
  • reCAPTCHA Enterprise
  • Cloud Run 日志 (GCP_RUN)

如需收集 Compute Engine 或 Google Kubernetes Engine (GKE) 应用日志(例如 Apache、Nginx 或 IIS),请使用选项 2。此外,请向 Google Security Operations 团队提交支持服务工单,提供反馈,以便我们日后考虑支持使用直接提取(选项 1)。

如需了解具体日志过滤条件和更多提取详情,请参阅将 Google Cloud 日志导出到 Google Security Operations

您还可以发送用于丰富情境的 Google Cloud 资产元数据。如需了解详情,请参阅将 Google Cloud 资产元数据导出到 Google Security Operations

方案 2:Google Cloud Storage

Cloud Logging 可以将日志路由到 Cloud Storage,以便 Google Security Operations 按计划提取这些日志。

如需详细了解如何为 Google Security Operations 配置 Cloud Storage,请参阅Feed 管理:Cloud Storage

准备工作

在将 Google Cloud 数据注入到 Google Security Operations 实例之前,您必须先完成以下步骤:

  1. 授予访问“Google 安全运营”部分所需的以下 IAM 角色

    • Chronicle Service Admin (roles/chroniclesm.admin):用于执行所有活动的 IAM 角色。
    • Chronicle Service Viewer (roles/chroniclesm.viewer):IAM 角色,仅可查看提取状态。
    • Security Center Admin Editor (roles/securitycenter.adminEditor):必须拥有此角色才能启用 Cloud Asset Metadata 提取功能。
  2. 如果您计划启用 Cloud 资产元数据,则必须将组织引入 Security Command Center。如需了解详情,请参阅组织级激活概览

授予 IAM 角色

您可以使用 Google Cloud 控制台或使用 gcloud CLI 授予所需的 IAM 角色。

如需使用 Google Cloud Console 授予 IAM 角色,请完成以下步骤:

  1. 登录要连接到的 Google Cloud 组织,然后使用产品 > IAM 和管理 > IAM 前往 IAM 屏幕。

  2. IAM 屏幕中,选择用户,然后点击修改成员

  3. 在“修改权限”屏幕中,点击添加其他角色,然后搜索 Google Security Operations 以查找 IAM 角色。

  4. 分配角色后,点击保存

如需使用 Google Cloud CLI 授予 IAM 角色,请完成以下步骤:

  1. 确保您已登录正确的组织。您可以通过运行 gcloud init 命令来验证这一点。

  2. 如需使用 gcloud 授予 Chronicle 服务管理员 IAM 角色,请运行以下命令:

    gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
    --member "user:USER_EMAIL" \
    --role roles/chroniclesm.admin
    

    替换以下内容:

    • ORGANIZATION_ID:组织的数字 ID。
    • USER_EMAIL:用户的电子邮件地址。
  3. 如需使用 gcloud 授予 Chronicle Service Viewer IAM 角色,请运行以下命令:

    gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
    --member "user:USER_EMAIL" \
    --role roles/chroniclesm.viewer
    
  4. 如需使用 gcloud 授予 Security Center Admin Editor 角色,请运行以下命令:

     gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
     --member "user:USER_EMAIL" \
     --role roles/securitycenter.adminEditor`
    

启用从 Google Cloud 直接提取

启用从 Google Cloud 直接提取数据的步骤因 Google 安全运营实例所绑定的项目的所有权而异。

配置直接提取后,您的 Google Cloud 数据会发送到 Google Security Operations。您可以使用 Google 安全运营中心的分析功能调查安全相关问题。

在项目归客户所有时配置提取

如果您是 Google Cloud 项目的所有者,请执行以下步骤。

您可以使用同一项目级配置页面配置从多个组织直接提取数据。请按照以下步骤创建新配置和修改现有配置。

当您迁移现有 Google Security Operations 实例以将其绑定到您拥有的项目时,如果在迁移前配置了直接提取,则系统也会迁移直接提取配置。

  1. 在 Google Cloud 控制台中,依次前往 Google SecOps > 提取设置页面。
    前往“Google SecOps”页面
  2. 选择绑定到 Google Security Operations 实例的项目。
  3. 组织菜单中,选择要导出日志的组织。该菜单会显示您有权访问的组织。该列表可能包含未与 Google SecOps 实例关联的组织。您无法将组织配置为将数据发送到其他 Google SecOps 实例。

    选择组织

  4. Google Cloud 提取设置部分下,点击将数据发送到 Google Security Operations 切换开关,以启用将日志发送到 Google Security Operations 的功能。

  5. 选择以下一个或多个选项,以定义要发送到 Google Security Operations 的数据类型:

  6. 客户导出过滤条件设置部分下,定义用于自定义导出到 Google Security Operations 的 Cloud Logging 数据的导出过滤条件。如需了解您可以导出哪些日志数据类型,请参阅导出 Google Cloud 日志

  7. 如需将来自其他组织的日志注入到同一 Google 安全运营实例,请从组织菜单中选择相应组织,然后重复上述步骤以定义要导出的数据类型和导出过滤条件。您会在组织菜单中看到多个组织。

  8. 如需将 Google Cloud Cloud Data Loss Prevention 数据导出到 Google Security Operations,请参阅将 Google Cloud Cloud Data Loss Prevention 数据导出到 Google Security Operations

在项目归 Google Cloud 所有时配置提取

如果 Google Cloud 拥有该项目,请执行以下操作,以便将数据从 Google Cloud 组织直接提取到 Google 安全运营实例:

  1. 在 Google Cloud 控制台中,依次前往 Google SecOps > Overview > Ingestion 标签页。 前往“Google SecOps 提取”标签页
  2. 点击管理组织提取设置按钮。
  3. 如果您看到无法为项目查看此页面消息,请选择一个组织,然后点击选择
  4. 一次性 Google Security Operations 访问代码字段中输入一次性访问代码。
  5. 勾选我同意 Google Security Operations 使用我的 Google Cloud 数据的条款及条件复选框。
  6. 点击连接 Google SecOps
  7. 前往相应组织的全局提取设置标签页。
  8. 启用以下一个或多个选项,选择要发送的数据类型:

  9. 前往导出过滤条件设置标签页。

  10. 客户导出过滤条件设置部分下,定义导出过滤条件,以自定义导出到 Google Security Operations 的 Cloud Logging 数据。如需了解您可以导出哪些日志数据类型,请参阅导出 Google Cloud 日志

  11. 如需将 Google Cloud Cloud Data Loss Prevention 数据导出到 Google Security Operations,请参阅将 Google Cloud Cloud Data Loss Prevention 数据导出到 Google Security Operations

导出 Google Cloud 日志

启用 Cloud Logging 后,您可以将以下类型的 Google Cloud 数据导出到 Google Security Operations 实例,按日志类型和 Google Security Operations 提取标签列出:

  • Cloud Audit Logs(GCP_CLOUDAUDIT):包括管理员活动日志、系统事件日志、Access Transparency 日志和政策拒绝日志。
    • log_id("cloudaudit.googleapis.com/activity")(由默认过滤条件导出)
    • log_id("cloudaudit.googleapis.com/system_event")(由默认过滤条件导出)
    • log_id("cloudaudit.googleapis.com/policy")
    • log_id("cloudaudit.googleapis.com/access_transparency")
  • Cloud NAT 日志(GCP_CLOUD_NAT):
    • log_id("compute.googleapis.com/nat_flows")
  • Cloud DNS 日志 (GCP_DNS):
    • log_id("dns.googleapis.com/dns_queries")(由默认过滤条件导出)
  • Cloud 新一代防火墙日志(GCP_FIREWALL):
    • log_id("compute.googleapis.com/firewall")
  • GCP_IDS
    • log_id("ids.googleapis.com/threat")
    • log_id("ids.googleapis.com/traffic")
  • GCP_LOADBALANCING
    • log_id("requests") 这包括来自 Google Cloud Armor 和 Cloud Load Balancing 的日志
  • GCP_CLOUDSQL
    • log_id("cloudsql.googleapis.com/mysql-general.log")
    • log_id("cloudsql.googleapis.com/mysql.err")
    • log_id("cloudsql.googleapis.com/postgres.log")
    • log_id("cloudsql.googleapis.com/sqlagent.out")
    • log_id("cloudsql.googleapis.com/sqlserver.err")
  • NIX_SYSTEM
    • log_id("syslog")
    • log_id("authlog")
    • log_id("securelog")
  • LINUX_SYSMON
    • log_id("sysmon.raw")
  • WINEVTLOG
    • log_id("winevt.raw")
    • log_id("windows_event_log")
  • BRO_JSON
    • log_id("zeek_json_streaming_conn")
    • log_id("zeek_json_streaming_dhcp")
    • log_id("zeek_json_streaming_dns")
    • log_id("zeek_json_streaming_http")
    • log_id("zeek_json_streaming_ssh")
    • log_id("zeek_json_streaming_ssl")
  • KUBERNETES_NODE
    • log_id("events")
    • log_id("stdout")
    • log_id("stderr")
  • AUDITD
    • log_id("audit_log")
  • GCP_APIGEE_X
    • logName =~ "^projects/[\w\-]+/logs/apigee\.googleapis\.com[\w\-]*$"
  • GCP_RECAPTCHA_ENTERPRISE
    • log_id("recaptchaenterprise.googleapis.com/assessment")
    • log_id("recaptchaenterprise.googleapis.com/annotation")
  • GCP_RUN
    • log_id("run.googleapis.com/stderr")
    • log_id("run.googleapis.com/stdout")
    • log_id("run.googleapis.com/requests")
    • log_id("run.googleapis.com/varlog/system")
  • GCP_NGFW_ENTERPRISE
    • log_id("networksecurity.googleapis.com/firewall_threat")

如需将 Google Cloud 日志导出到 Google Security Operations,请将启用 Cloud 日志切换开关设置为已启用。支持的 Google Cloud 日志类型可以导出到您的 Google Security Operations 实例。

如需了解有关使用哪些日志过滤条件的最佳实践,请参阅 Google Cloud 中的安全日志分析

导出过滤条件设置

以下部分介绍了导出过滤条件。

自定义导出过滤条件设置

默认情况下,您的 Cloud Audit Logs(管理员活动和系统事件)和 Cloud DNS 日志会发送到您的 Google Security Operations 实例。不过,您可以自定义导出过滤条件以包含或排除特定类型的日志。导出过滤条件基于 Google 日志记录查询语言

如需为日志定义自定义过滤条件,请完成以下步骤:

  1. 使用日志记录查询语言为您的日志创建自定义过滤条件,从而定义过滤条件。如需了解如何定义此类过滤条件,请参阅日志记录查询语言

  2. 前往 Google Cloud 控制台中的“Google SecOps”页面,然后选择一个项目。
    前往“Google Security Operations”页面

  3. 使用导出过滤条件设置标签页中提供的链接启动日志浏览器。

  4. 将新查询复制到查询字段中,然后点击运行查询进行测试。

  5. 将新查询复制到日志浏览器 > 查询字段中,然后点击运行查询进行测试。

  6. 验证 Logs Explorer 中显示的匹配日志正是您要导出到 Google Security Operations 的日志。过滤条件准备就绪后,将其复制到 Google Security Operations 的自定义导出过滤条件设置部分。

  7. 返回 Google SecOps 页面上的自定义导出过滤器设置部分。

    “自定义导出过滤条件设置”部分

  8. 点击导出过滤条件字段对应的修改图标,然后将过滤条件粘贴到该字段中。

  9. 点击保存按钮。新的自定义过滤条件适用于导出到 Google Security Operations 实例的所有新日志。

  10. 点击重置为默认值,可以将导出过滤条件重置为默认版本。请务必先保存自定义过滤条件的副本。

优化 Cloud Audit Logs 过滤条件

Cloud Audit Logs 写入的数据访问日志可能会产生大量数据,但这些数据的威胁检测价值不大。如果您选择将这些日志发送到 Google Security Operations,则应滤除由常规活动生成的日志。

以下导出过滤条件会捕获数据访问日志,并排除大量事件,例如 Cloud Storage 和 Cloud SQL 的读取和列出操作:

( log_id("cloudaudit.googleapis.com/data_access")
  AND NOT protoPayload.methodName =~ "^storage\.(buckets|objects)\.(get|list)$"
  AND NOT protoPayload.request.cmd = "select" )

如需详细了解如何调整 Cloud Audit Logs 生成的数据访问日志,请参阅管理数据访问审核日志的数量

导出过滤条件示例

以下导出过滤条件示例说明了如何包含或排除某些类型的日志以导出或防止导出到您的 Google 安全运营实例。

导出过滤条件示例:包含其他日志类型

除默认日志外,以下导出过滤条件还会导出 Access Transparency 日志:

log_id("dns.googleapis.com/dns_queries") OR
log_id("cloudaudit.googleapis.com/activity") OR
log_id("cloudaudit.googleapis.com/system_event") OR
log_id("cloudaudit.googleapis.com/access_transparency")

导出过滤条件示例:包含特定项目中的其他日志

除默认日志外,以下导出过滤条件还会从特定项目导出 Access Transparency 日志:

log_id("dns.googleapis.com/dns_queries") OR
log_id("cloudaudit.googleapis.com/activity") OR
log_id("cloudaudit.googleapis.com/system_event") OR
logName = "projects/my-project-id/logs/cloudaudit.googleapis.com%2Faccess_transparency"

导出过滤条件示例:包含特定文件夹中的其他日志

除默认日志外,以下导出过滤条件还会从特定文件夹导出 Access Transparency 日志:

log_id("dns.googleapis.com/dns_queries") OR
log_id("cloudaudit.googleapis.com/activity") OR
log_id("cloudaudit.googleapis.com/system_event") OR
logName = "folders/my-folder-id/logs/cloudaudit.googleapis.com%2Faccess_transparency"

导出过滤条件示例:排除特定项目中的日志

以下导出过滤条件会从整个 Google Cloud 组织(特定项目除外)导出默认日志:

(log_id("dns.googleapis.com/dns_queries") OR
log_id("cloudaudit.googleapis.com/activity") OR
log_id("cloudaudit.googleapis.com/system_event")) AND
(NOT logName =~ "^projects/my-project-id/logs/.*$")

导出 Google Cloud 资产元数据

您可以将 Google Cloud 资产元数据从 Cloud Asset Inventory 导出到 Google Security Operations。此资产元数据是从 Cloud Asset Inventory 中提取的;这些数据包含有关您的资产、资源和身份的信息,其中包括以下内容:

  • 环境
  • 位置
  • 可用区
  • 硬件型号
  • 资源和身份之间的访问权限控制关系

以下类型的 Google Cloud 资产元数据将导出到您的 Google Security Operations 实例:

  • GCP_BIGQUERY_CONTEXT
  • GCP_COMPUTE_CONTEXT
  • GCP_IAM_CONTEXT
  • GCP_IAM_ANALYSIS
  • GCP_STORAGE_CONTEXT
  • GCP_CLOUD_FUNCTIONS_CONTEXT
  • GCP_SQL_CONTEXT
  • GCP_NETWORK_CONNECTIVITY_CONTEXT
  • GCP_RESOURCE_MANAGER_CONTEXT

以下是 Google Cloud 资产元数据的示例:

  • 应用名称—Google-iamSample/0.1
  • 项目名称—projects/my-project

如需将 Google Cloud 资产元数据导出到 Google Security Operations,请将云资产元数据切换开关设置为已启用

启用 Cloud Asset 元数据。

如需详细了解上下文解析器,请参阅 Google Security Operations 上下文解析器

导出 Security Command Center 发现结果

您可以将 Security Command Center 高级版 Event Threat Detection 发现结果和所有其他发现结果导出到 Google Security Operations。

如需详细了解 ETD 发现结果,请参阅 Event Threat Detection 概览

如需将 Security Command Center 专业版发现结果导出到 Google Security Operations,请将 Security Command Center 专业版发现结果切换开关切换为启用

将敏感数据保护数据导出到 Google Security Operations

如需注入 Sensitive Data Protection 资产元数据 (DLP_CONTEXT),请执行以下操作:

  1. 完成本文档上一部分,以启用 Google Cloud 数据注入。
  2. 配置 Sensitive Data Protection 以分析数据
  3. 配置扫描配置,以将数据分析文件发布到 Google Security Operations。

如需详细了解如何为 BigQuery 数据创建数据剖析文件,请参阅“敏感数据保护”文档

停用 Google Cloud 数据注入

停用从 Google Cloud 直接提取数据的步骤因 Google 安全运营的配置方式而异。请按以下方式之一操作:

  • 如果您的 Google Security Operations 实例已绑定到您拥有和管理的项目,请执行以下步骤:

    1. 选择绑定到 Google Security Operations 实例的项目。
    2. 在 Google Cloud 控制台中,前往 Google SecOps 下的 Ingestion(提取)标签页。
      前往“Google SecOps”页面
    3. 组织菜单中,选择要导出日志的组织。
    4. 将数据发送到 Google Security Operations 切换开关设为停用
    5. 如果您已为多个组织配置了数据导出,并且也想停用这些导出,请针对每个组织执行以下步骤。
  • 如果您的 Google 安全运营实例已绑定到 Google Cloud 拥有和管理的项目,请执行以下步骤:

    1. 在 Google Cloud 控制台中,依次前往 Google SecOps > Ingestion 页面。
      前往“Google SecOps”页面
    2. 在资源菜单中,选择与您的 Google 安全运营实例绑定且您要从中提取数据的组织。
    3. 勾选标有我想要断开 Google Security Operations 连接并停止将 Google Cloud 日志发送到 Google Security Operations 的复选框。
    4. 点击与 Google Security Operations 断开连接

问题排查

  • 如果您的 Google Security Operations 实例中缺少资源和身份之间的关系,请停用将日志数据直接提取到 Google Security Operations 的功能,然后重新启用该功能。
  • Google Cloud 资产元数据会定期提取到 Google Security Operations 中。请等待几个小时,以便在 Google Security Operations 界面和 API 上看到更改。

后续步骤

  • 使用 Google Security Operations 代表提供的客户专用网址打开您的 Google Security Operations 实例。
  • 详细了解 Google Security Operations