收集 Cloud Security Command Center 状况违规日志

支持的平台:

本文档介绍了如何使用 Cloud Storage 导出 Security Command Center 态势违规日志并将其提取到 Google 安全运营中。解析器会将发现的原始 JSON 数据转换为统一数据模型 (UDM)。它会提取相关字段、重构数据、将其映射到 UDM 字段,并执行各种验证和丰富操作,以确保数据质量和一致性。

准备工作

  • 确保 Google Cloud 在您的 Google Cloud 环境中启用了 Security Command Center。
  • 确保您拥有 Google SecOps 实例。
  • 确保您拥有对 Security Command Center 和 Cloud Logging 的特权访问权限。

创建 Cloud Storage 存储桶

  1. 登录 Google Cloud 控制台
  2. 前往 Cloud Storage 存储分区页面。

    进入“存储桶”

  3. 点击创建

  4. 创建存储桶页面上,输入您的存储桶信息。完成以下各步骤后,点击继续以进入下一步:

    1. 开始使用部分中,执行以下操作:

      1. 输入符合存储分区名称要求的唯一名称;例如,gcp-scc-posture-violation-logs
      2. 如需启用分层命名空间,请点击展开箭头以展开优化文件导向型和数据密集型工作负载部分,然后选择在此存储分区上启用分层命名空间

      3. 如需添加存储分区标签,请点击展开箭头以展开标签部分。

      4. 点击添加标签,然后为标签指定键和值。

    2. 选择数据存储位置部分中,执行以下操作:

      1. 选择位置类型
      2. 使用位置类型菜单选择一个位置,用于永久存储存储分区中的对象数据。

      3. 如需设置跨存储分区复制,请展开设置跨存储分区复制部分。

    3. 为数据选择一个存储类别部分中,为存储分区选择默认存储类别,或者选择 Autoclass 对存储分区数据进行自动存储类别管理。

    4. 选择如何控制对对象的访问权限部分中,选择以强制执行禁止公开访问,然后为存储分区对象选择访问权限控制模型

    5. 选择如何保护对象数据部分中,执行以下操作:

      1. 数据保护下,选择您要为存储分区设置的任何选项。
      2. 如需选择对象数据的加密方式,请点击标有数据加密的展开箭头,然后选择数据加密方法
  5. 点击创建

配置 Security Command Center 日志记录

  1. 登录 Google Cloud 控制台
  2. 前往 Security Command Center 页面。

    进入 Security Command Center

  3. 选择您的组织。

  4. 点击设置

  5. 点击连续导出标签页。

  6. 导出名称下,点击 Logging 导出

  7. 接收器下,开启将发现结果记录到 Logging

  8. 记录项目下,输入或搜索要在其中记录发现结果的项目。

  9. 点击保存

配置 Google Cloud Security Command Center 状态违规日志导出

  1. 登录 Google Cloud 控制台
  2. 依次前往日志记录 > 日志路由器
  3. 点击创建接收器
  4. 提供以下配置参数:

    • 接收器名称:输入一个有意义的名称,例如 scc-posture-violation-logs-sink
    • 接收器目标位置:选择 Cloud Storage 存储,然后输入存储分区的 URI;例如 gs://gcp-scc-posture-violation-logs
    • 日志过滤器

      logName="projects/<your-project-id>/logs/cloudsecurityscanner.googleapis.com%2Fposture_violations"
      resource.type="cloud_security_center_posture_violation"
      
    • 设置导出选项:包含所有日志条目。

  5. 点击创建

配置 Cloud Storage 权限

  1. 依次前往 IAM 和管理 > IAM
  2. 找到 Cloud Logging 服务账号。
  3. 向存储分区授予 roles/storage.admin

在 Google SecOps 中配置 Feed 以提取 Google Cloud Security Command Center 态势违规日志

  1. 依次前往 SIEM 设置 > Feed
  2. 点击新增
  3. Feed 名称字段中,输入 Feed 的名称;例如,Google Cloud Security Command Center 态势违规日志
  4. 选择 Google Cloud Storage 作为来源类型
  5. 选择 Security Command Center Posture Violation(Security Command Center 状态违规)作为日志类型
  6. 点击 Chronicle 服务账号字段旁边的获取服务账号
  7. 点击下一步
  8. 为以下输入参数指定值:

    • 存储分区 URI:Cloud Storage 存储分区网址;例如 gs://gcp-scc-posture-violation-logs
    • URI 类型:选择包含子目录的目录
    • 来源删除选项:根据您的偏好选择删除选项。

    • 资源命名空间资源命名空间

    • 提取标签:应用于此 Feed 中的事件的标签。

  9. 点击下一步

  10. 最终确定界面中查看新的 Feed 配置,然后点击提交

UDM 映射表

日志字段 UDM 映射 逻辑
类别 read_only_udm.metadata.product_event_type 直接映射。
changed_policy read_only_udm.security_result.rule_name 直接映射。
cloudProvider read_only_udm.target.resource.attribute.cloud.environment 直接映射。
createTime read_only_udm.security_result.detection_fields[createTime] 直接映射。
finding.risks.riskCategory read_only_udm.security_result.detection_fields[risk_category] 直接映射。
mute read_only_udm.security_result.detection_fields[mute] 直接映射。
name read_only_udm.metadata.product_log_id 直接映射。
originalProviderId read_only_udm.target.resource.attribute.labels[original_provider_id] 直接映射。
父级 read_only_udm.target.resource_ancestors[0].name 直接映射。
parentDisplayName read_only_udm.metadata.description 直接映射。
propertyDataTypes.changed_policy.primitiveDataType read_only_udm.security_result.rule_labels[changed_policy_primitive_data_type] 直接映射。
propertyDataTypes.policy_drift_details.listValues.propertyDataTypes[0].structValue.fields.drift_details.structValue.fields.detected_configuration.primitiveDataType read_only_udm.security_result.rule_labels[detected_configuration_primitive_data_type] 直接映射。
propertyDataTypes.policy_drift_details.listValues.propertyDataTypes[0].structValue.fields.drift_details.structValue.fields.expected_configuration.primitiveDataType read_only_udm.security_result.rule_labels[expected_configuration_primitive_data_type] 直接映射。
propertyDataTypes.policy_drift_details.listValues.propertyDataTypes[0].structValue.fields.field_name.primitiveDataType read_only_udm.security_result.rule_labels[field_name_primitive_data_type] 直接映射。
propertyDataTypes.posture_deployment_name.primitiveDataType read_only_udm.security_result.detection_fields[posture_deployment_name_primitiveDataType] 直接映射。
propertyDataTypes.posture_deployment_resource.primitiveDataType read_only_udm.security_result.detection_fields[posture_deployment_resource_primitiveDataType] 直接映射。
propertyDataTypes.posture_name.primitiveDataType read_only_udm.security_result.detection_fields[posture_name_primitiveDataType] 直接映射。
propertyDataTypes.posture_revision_id.primitiveDataType read_only_udm.security_result.detection_fields[posture_revision_id_primitiveDataType] 直接映射。
resource.cloudProvider read_only_udm.target.resource.attribute.cloud.environment 直接映射。
resource.displayName read_only_udm.target.resource.attribute.labels[resource_displayName] 直接映射。
resource.gcpMetadata.organization read_only_udm.target.resource.attribute.labels[resource_organization] 直接映射。
resource.gcpMetadata.parent read_only_udm.target.resource.attribute.labels[resource_parent] 直接映射。
resource.gcpMetadata.parentDisplayName read_only_udm.target.resource.attribute.labels[resource_parentDisplayName] 直接映射。
resource.gcpMetadata.project read_only_udm.target.resource.attribute.labels[resource_project] 直接映射。
resource.gcpMetadata.projectDisplayName read_only_udm.target.resource.attribute.labels[resource_projectDisplayName] 直接映射。
resource.organization read_only_udm.target.resource.attribute.labels[resource_organization] 直接映射。
resource.resourcePath.nodes.displayName read_only_udm.target.resource_ancestors.name 直接映射。
resource.resourcePath.nodes.id read_only_udm.target.resource_ancestors.product_object_id 直接映射。
resource.resourcePath.nodes.nodeType read_only_udm.target.resource_ancestors.resource_subtype 直接映射。
resource.resourcePathString read_only_udm.target.resource.attribute.labels[resource_path_string] 直接映射。
resource.service read_only_udm.target.resource_ancestors[10].name 直接映射。
resource.type read_only_udm.target.resource.attribute.labels[resource_type] 直接映射。
resourceName read_only_udm.target.resource.name 直接映射。
securityPosture.changedPolicy read_only_udm.security_result.rule_labels[changed_policy] 直接映射。
securityPosture.name read_only_udm.security_result.detection_fields[security_posture_name] 直接映射。
securityPosture.policyDriftDetails[0].detectedValue read_only_udm.security_result.rule_labels[policy_drift_details_detected_value] 直接映射。
securityPosture.policyDriftDetails[0].expectedValue read_only_udm.security_result.rule_labels[policy_drift_details_expected_value] 直接映射。
securityPosture.policyDriftDetails[0].field read_only_udm.security_result.rule_labels[policy_drift_details_field] 直接映射。
securityPosture.policySet read_only_udm.security_result.rule_set 直接映射。
securityPosture.postureDeployment read_only_udm.security_result.detection_fields[posture_deployment] 直接映射。
securityPosture.postureDeploymentResource read_only_udm.security_result.detection_fields[posture_deployment_resource] 直接映射。
securityPosture.revisionId read_only_udm.security_result.detection_fields[security_posture_revision_id] 直接映射。
和程度上减少 read_only_udm.security_result.severity 直接映射。
sourceProperties.categories[0] read_only_udm.security_result.detection_fields[source_properties_categories] 直接映射。
sourceProperties.changed_policy read_only_udm.security_result.rule_name 直接映射。
sourceProperties.name read_only_udm.target.application 直接映射。
sourceProperties.policy_drift_details[0].drift_details.detected_configuration read_only_udm.security_result.rule_labels[policy_drift_details_detected_configuration] 直接映射。
sourceProperties.policy_drift_details[0].drift_details.expected_configuration read_only_udm.security_result.rule_labels[policy_drift_details_expected_configuration] 直接映射。
sourceProperties.policy_drift_details[0].field_name read_only_udm.security_result.rule_labels[policy_drift_details_field_name] 直接映射。
sourceProperties.posture_deployment read_only_udm.security_result.detection_fields[source_properties_posture_deployment_name] 直接映射。
sourceProperties.posture_deployment_name read_only_udm.security_result.detection_fields[source_properties_posture_deployment_name] 直接映射。
sourceProperties.posture_deployment_resource read_only_udm.security_result.detection_fields[source_properties_posture_deployment_resource] 直接映射。
sourceProperties.posture_name read_only_udm.target.application 直接映射。
sourceProperties.posture_revision_id read_only_udm.security_result.detection_fields[source_properties_posture_revision_id] 直接映射。
sourceProperties.revision_id read_only_udm.security_result.detection_fields[source_properties_posture_revision_id] 直接映射。
state read_only_udm.security_result.detection_fields[state] 直接映射。
read_only_udm.metadata.vendor_name 解析器会映射静态值 Google
read_only_udm.metadata.product_name 解析器会映射静态值 Security Command Center
read_only_udm.target.resource.resource_type 解析器会映射静态值 CLUSTER
read_only_udm.security_result.about.investigation.status 解析器会映射静态值 NEW
read_only_udm.security_result.alert_state 解析器会映射静态值 ALERTING
read_only_udm.is_alert 解析器会映射静态值 true
read_only_udm.is_significant 解析器会映射静态值 true
read_only_udm.metadata.event_type 解析器会将其映射为默认值 GENERIC_EVENT。如果字段“category”等于“SECURITY_POSTURE_DRIFT”,并且“client_device_present”和“token_target.application”均不为空,则会映射到“SERVICE_MODIFICATION”。如果“category”字段等于“SECURITY_POSTURE_POLICY_DRIFT”“SECURITY_POSTURE_POLICY_DELETE”“SECURITY_POSTURE_DETECTOR_DRIFT”或“SECURITY_POSTURE_DETECTOR_DELETE”,并且“network_edr_not_present”为 false,并且“client_device_present”为 true,则会映射到“SCAN_UNCATEGORIZED”。如果字段“token_metadata.event_type”等于“GENERIC_EVENT”且“network_edr_not_present”为 false 且“client_device_present”为 true,则会映射到“STATUS_UPDATE”。
read_only_udm.target.resource_ancestors[1].resource_type 解析器会映射静态值 CLOUD_PROJECT
read_only_udm.target.resource.product_object_id 解析器会从“父级”字段的第二个和第三个“/”字符之间提取值。
read_only_udm.target.resource_ancestors[1].name 解析器会从“resourceName”字段中提取第四个和第五个“/”字符之间的值。
read_only_udm.security_result.url_back_to_product 解析器会使用从日志中提取的组织 ID、来源 ID 和发现 ID 动态构建网址。
securityMarks.name read_only_udm.security_result.detection_fields[securityMarks_name] 直接映射。

变化

2025-02-07

  • 更新了 security_result.url_back_to_product UDM 字段的映射。将原始日志字段值 resource.projectDisplayName 的项目 ID 值添加到了网址的末尾,该网址已映射到前缀为 ;?project=security_result.url_back_to_product UDM 字段。

2024-11-21

  • 添加了对 SCC API v2 版本的支持,并在更新中添加了以下字段
  • resource.gcpMetadata.project
  • resource.gcpMetadata.projectDisplayName
  • resource.gcpMetadata.parent
  • resource.gcpMetadata.parentDisplayName
  • resource.gcpMetadata.folders.resourceFolder
  • resource.gcpMetadata.folders.resourceFolderDisplayName
  • resource.gcpMetadata.organization

2024-03-20

  • 新创建的解析器。

需要更多帮助?向社区成员和 Google SecOps 专业人士寻求解答。