收集 Wiz 日志
支持的语言:
Google SecOps
SIEM
本文档介绍了如何将 Wiz 日志注入到 Google Security Operations 中。解析器会将 Wiz 中的原始 JSON 格式日志转换为统一数据模型 (UDM)。它首先初始化 UDM 字段的默认值,然后解析 JSON 消息,提取相关字段(例如用户信息、位置信息、设备详细信息和安全结果)。Wiz 是一款云安全平台,可在 Google Cloud、AWS、Azure、OCI 和 Kubernetes 环境中提供无代理的端到端可见性和风险优先级划分。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例
- 对 Wiz 的特权访问权限
获取 Google SecOps 客户 ID
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 配置文件。
- 复制并保存组织详细信息部分中的客户 ID。
获取 Google SecOps 注入身份验证文件
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 收集代理。
- 下载提取身份验证文件,并将该文件保存到安全的位置。
在 Wiz 中配置集成
- 登录 Wiz 网页界面。
- 前往关联到 Wiz 页面。
- 点击 Google Cloud Chronicle。
- 选择范围。
- 输入您的 Google SecOps 客户 ID。
- 输入您的 Google SecOps 实例端点地址。
- 加拿大:https://northamerica-northeast2-malachiteingestion-pa.googleapis.com
- Dammam:https://me-central2-malachiteingestion-pa.googleapis.com
- 欧洲多区域:https://europe-malachiteingestion-pa.googleapis.com
- 法兰克福:https://europe-west3-malachiteingestion-pa.googleapis.com
- 伦敦:https://europe-west2-malachiteingestion-pa.googleapis.com
- 孟买:https://asia-south1-malachiteingestion-pa.googleapis.com
- 新加坡:https://asia-southeast1-malachiteingestion-pa.googleapis.com
- 悉尼:https://australia-southeast1-malachiteingestion-pa.googleapis.com
- 特拉维夫:https://me-west1-malachiteingestion-pa.googleapis.com
- 东京:https://asia-northeast1-malachiteingestion-pa.googleapis.com
- 美国多区域:https://malachiteingestion-pa.googleapis.com
- 苏黎世:https://europe-west6-malachiteingestion-pa.googleapis.com
- 上传注入身份验证文件。
- 点击保存。
UDM 映射表
| 日志字段 | UDM 映射 | 逻辑 |
|---|---|---|
| 操作 | metadata.product_event_type | eventType 为空时的直接映射。 |
| 操作 | principal.application | 当操作为 Report 且 serviceAccount.name 不为空时,进行直接映射。 |
| actionParameters.groups | security_result.detection_fields.value | 解析器会遍历 actionParameters.groups 中的每个组,并将其映射到键为 service_account_group 的单独 detection_fields 条目。 |
| actionParameters.input.patch.portalVisitHistory.dateTime | additional.fields.value.string_value | 解析器会遍历 actionParameters.input.patch.portalVisitHistory 中的每个项,提取 dateTime 字段,并将其映射到键为 dateTime {index} 的单独 additional.fields 条目。 |
| actionParameters.input.patch.portalVisitHistory.id | principal.resource.attribute.labels.value | 解析器会遍历 actionParameters.input.patch.portalVisitHistory 中的每个项,提取 id 字段,并将其映射到具有键 id {index} 的单独 principal.resource.attribute.labels 条目。 |
| actionParameters.input.patch.portalVisitHistory.name | principal.resource.attribute.labels.value | 解析器会遍历 actionParameters.input.patch.portalVisitHistory 中的每个项,提取 name 字段,并将其映射到具有键 name {index} 的单独 principal.resource.attribute.labels 条目。 |
| actionParameters.input.patch.portalVisitHistory.resourceName | principal.resource.attribute.labels.value | 解析器会遍历 actionParameters.input.patch.portalVisitHistory 中的每个项,提取 resourceName 字段,并将其映射到具有键 resourceName {index} 的单独 principal.resource.attribute.labels 条目。 |
| actionParameters.input.patch.portalVisitHistory.resourceType | principal.resource.attribute.labels.value | 解析器会遍历 actionParameters.input.patch.portalVisitHistory 中的每个项,提取 resourceType 字段,并将其映射到具有键 resourceType {index} 的单独 principal.resource.attribute.labels 条目。 |
| actionParameters.input.patch.portalVisitHistory.ruleType | principal.resource.attribute.labels.value | 解析器会遍历 actionParameters.input.patch.portalVisitHistory 中的每个项,提取 ruleType 字段,并将其映射到具有键 ruleType {index} 的单独 principal.resource.attribute.labels 条目。 |
| actionParameters.input.patch.portalVisitHistory.type | additional.fields.value.string_value | 解析器会遍历 actionParameters.input.patch.portalVisitHistory 中的每个项,并提取 type 字段,将其映射到键为 type {index} 的单独 additional.fields 条目。 |
| actionParameters.name | target.user.user_display_name | 当 actionParameters.name 不为空时,直接映射。 |
| actionParameters.products | security_result.detection_fields.value | 解析器会遍历 actionParameters.products 中的每个商品(不包括空字符串和 *),并将其映射到键为 service_account_product 的单独 detection_fields 条目。 |
| actionParameters.role | target.user.attribute.roles.name | 当 actionParameters.role 不为空时,直接映射。 |
| actionParameters.scopes | security_result.detection_fields.value | 解析器会遍历 actionParameters.scopes 中的每个范围,并将其映射到键为 service_account_scope 的单独 detection_fields 条目。 |
| actionParameters.selection | additional.fields.value.list_value.values.string_value | 解析器会遍历 actionParameters.selection.preferences 中的每个项,并将其映射到 additional.fields.value.list_value.values 中的单独 string_value 条目。 |
| actionParameters.userEmail | target.user.email_addresses | 使用 grok 模式提取,并在不为空时进行映射。 |
| actionParameters.userID | target.user.userid | 当 actionParameters.userID 不为空时,直接映射。 |
| actor.displayName | target.user.user_display_name | 当 actor.displayName 不为空且不为 unknown 时,直接映射。 |
| actor.id | target.user.userid | 当 actor.id 不为空时的直接映射。 |
| authenticationContext.authenticationProvider | security_result.detection_fields.value | 如果不为空,则映射到键为 authenticationProvider 的 detection_fields 条目。 |
| authenticationContext.credentialProvider | security_result.detection_fields.value | 如果不为空,则映射到键为 credentialProvider 的 detection_fields 条目。 |
| authenticationContext.credentialType | extensions.auth.mechanism | 用于根据特定值派生 extensions.auth.mechanism 的值。 |
| authenticationContext.externalSessionId | network.parent_session_id | 当不为空且不为 unknown 时的直接映射。 |
| client.device | principal.asset.type | 用于根据特定值推导 principal.asset.type 的值。 |
| client.geographicalContext.city | principal.location.city | 不为空时的直接映射。 |
| client.geographicalContext.country | principal.location.country_or_region | 不为空时的直接映射。 |
| client.geographicalContext.geolocation.lat | principal.location.region_latitude | 不为空时的直接映射。 |
| client.geographicalContext.geolocation.lon | principal.location.region_longitude | 不为空时的直接映射。 |
| client.geographicalContext.postalCode | additional.fields.value.string_value | 如果不为空,则映射到键为 Postal code 的 additional.fields 条目。 |
| client.geographicalContext.state | principal.location.state | 不为空时的直接映射。 |
| client.ipAddress | principal.asset.ip | 如果不为空,则与 principal.ip 和 principal.asset.ip 合并。 |
| client.ipAddress | principal.ip | 如果不为空,则与 principal.ip 和 principal.asset.ip 合并。 |
| client.userAgent.browser | target.resource.attribute.labels.value | 如果非空,则映射到键为 Browser 的 target.resource.attribute.labels 条目。 |
| client.userAgent.os | principal.platform | 用于根据特定值派生 principal.platform 的值。 |
| client.userAgent.rawUserAgent | network.http.user_agent | 不为空时的直接映射。 |
| debugContext.debugData.behaviors | security_result.description | 不为空时的直接映射。 |
| debugContext.debugData.deviceFingerprint | target.asset.asset_id | 如果不为空,则映射到带有前缀 device_finger_print: 的 target.asset.asset_id。 |
| debugContext.debugData.dtHash | security_result.detection_fields.value | 如果不为空,则映射到键为 dtHash 的 detection_fields 条目。 |
| debugContext.debugData.factor | security_result.detection_fields.value | 如果不为空,则映射到键为 factor 的 detection_fields 条目。 |
| debugContext.debugData.promptingPolicyTypes | security_result.detection_fields.value | 如果不为空,则映射到键为 promptingPolicyTypes 的 detection_fields 条目。 |
| debugContext.debugData.requestUri | extensions.auth.auth_details | 不为空时的直接映射。 |
| eventType | metadata.event_type | 用于根据特定值派生 metadata.event_type 的值。 |
| eventType | metadata.product_event_type | 不为空时的直接映射。 |
| outcome.reason | security_result.category_details | 不为空时的直接映射。 |
| outcome.result | security_result.action | 在根据特定值进行归一化处理后,映射到 security_result.action。 |
| requestId | metadata.product_log_id | 不为空时的直接映射。 |
| serviceAccount.name | principal.application | 当操作为 Report 且 serviceAccount.name 不为空时,进行直接映射。 |
| sourceIP | principal.asset.ip | 使用 Grok 模式提取,并在不为空且有效时与 principal.ip 和 principal.asset.ip 合并。 |
| sourceIP | principal.ip | 使用 Grok 模式提取,并在不为空且有效时与 principal.ip 和 principal.asset.ip 合并。 |
| 状态 | security_result.summary | 不为空时的直接映射。 |
| 时间戳 | metadata.event_timestamp | 转换为时间戳格式,并在不为空时进行映射。 |
| user.id | target.user.userid | 当 actionParameters.userID 为空且 user.id 不为空时的直接映射。 |
| user.name | target.user.user_display_name | 当 actionParameters.name 为空且 user.name 不为空时,进行直接映射。 |
| userAgent | network.http.user_agent | 当 client.userAgent.rawUserAgent 为空且 userAgent 不为空时的直接映射。 |
| extensions.auth.type | 当 has_user 为 true 且 action 为 Login 时,设置为 AUTHTYPE_UNSPECIFIED。 |
|
| metadata.product_name | 设置为 WIZ_IO。 |
|
| metadata.vendor_name | 设置为 WIZ_IO。 |
|
| network.http.parsed_user_agent | 通过将 user_agent_value 转换为 parseduseragent 而派生。 | |
| security_result.severity | 根据特定值从严重程度派生而来,默认值为 LOW。 |
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。