Recopilar registros de Wiz
En este documento se explica cómo ingerir registros de Wiz en Google Security Operations. El analizador transforma los registros sin procesar con formato JSON de Wiz en un modelo de datos unificado (UDM). Primero, inicializa los valores predeterminados de los campos de UDM y, a continuación, analiza el mensaje JSON, extrae los campos relevantes (como la información del usuario, la ubicación, los detalles del dispositivo y los resultados de seguridad). Wiz es una plataforma de seguridad en la nube que ofrece visibilidad integral y sin agentes, así como priorización de riesgos en entornos de Google Cloud, AWS, Azure, OCI y Kubernetes.
Antes de empezar
Asegúrate de que cumples los siguientes requisitos previos:
- Instancia de Google SecOps
- Acceso privilegiado a Wiz
Obtener el ID de cliente de Google SecOps
- Inicia sesión en la consola de Google SecOps.
- Ve a Configuración de SIEM > Perfil.
- Copia y guarda el ID de cliente de la sección Detalles de la organización.
Obtener el archivo de autenticación de ingestión de Google SecOps
- Inicia sesión en la consola de Google SecOps.
- Ve a Configuración de SIEM > Agentes de recogida.
- Descarga el archivo de autenticación de ingesta y guárdalo en una ubicación segura.
Configurar la integración en Wiz
- Inicia sesión en la interfaz de usuario web de Wiz.
- Ve a la página Conectar con Wiz.
- Haz clic en Google Cloud Chronicle.
- Selecciona el ámbito.
- Introduce tu ID de cliente de Google SecOps.
- Introduce la dirección del endpoint de tu instancia de Google SecOps.
- Canadá: https://northamerica-northeast2-malachiteingestion-pa.googleapis.com
- Dammam https://me-central2-malachiteingestion-pa.googleapis.com
- Multirregión de Europa: https://europe-malachiteingestion-pa.googleapis.com
- Fráncfort: https://europe-west3-malachiteingestion-pa.googleapis.com
- Londres: https://europe-west2-malachiteingestion-pa.googleapis.com
- Bombay: https://asia-south1-malachiteingestion-pa.googleapis.com
- Singapur: https://asia-southeast1-malachiteingestion-pa.googleapis.com
- Sídney: https://australia-southeast1-malachiteingestion-pa.googleapis.com
- Tel Aviv: https://me-west1-malachiteingestion-pa.googleapis.com
- Tokio: https://asia-northeast1-malachiteingestion-pa.googleapis.com
- Multirregión de Estados Unidos: https://malachiteingestion-pa.googleapis.com
- Zúrich: https://europe-west6-malachiteingestion-pa.googleapis.com
- Sube el archivo de autenticación de ingestión.
- Haz clic en Guardar.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
acción | metadata.product_event_type | Asignación directa cuando eventType está vacío. |
acción | principal.application | Asignación directa cuando la acción es Report y serviceAccount.name no está vacío. |
actionParameters.groups | security_result.detection_fields.value | El analizador itera por cada grupo de actionParameters.groups y lo asigna a una entrada detection_fields independiente con la clave service_account_group . |
actionParameters.input.patch.portalVisitHistory.dateTime | additional.fields.value.string_value | El analizador itera por cada elemento de actionParameters.input.patch.portalVisitHistory y extrae el campo dateTime, asignándolo a una entrada adicional.fields independiente con la clave dateTime {index} . |
actionParameters.input.patch.portalVisitHistory.id | principal.resource.attribute.labels.value | El analizador itera por cada elemento de actionParameters.input.patch.portalVisitHistory y extrae el campo id, asignándolo a una entrada principal.resource.attribute.labels independiente con la clave id {index} . |
actionParameters.input.patch.portalVisitHistory.name | principal.resource.attribute.labels.value | El analizador itera por cada elemento de actionParameters.input.patch.portalVisitHistory y extrae el campo name, asignándolo a una entrada principal.resource.attribute.labels independiente con la clave name {index} . |
actionParameters.input.patch.portalVisitHistory.resourceName | principal.resource.attribute.labels.value | El analizador itera por cada elemento de actionParameters.input.patch.portalVisitHistory y extrae el campo resourceName, asignándolo a una entrada principal.resource.attribute.labels independiente con la clave resourceName {index} . |
actionParameters.input.patch.portalVisitHistory.resourceType | principal.resource.attribute.labels.value | El analizador itera por cada elemento de actionParameters.input.patch.portalVisitHistory y extrae el campo resourceType, asignándolo a una entrada principal.resource.attribute.labels independiente con la clave resourceType {index} . |
actionParameters.input.patch.portalVisitHistory.ruleType | principal.resource.attribute.labels.value | El analizador itera por cada elemento de actionParameters.input.patch.portalVisitHistory y extrae el campo ruleType, asignándolo a una entrada principal.resource.attribute.labels independiente con la clave ruleType {index} . |
actionParameters.input.patch.portalVisitHistory.type | additional.fields.value.string_value | El analizador itera por cada elemento de actionParameters.input.patch.portalVisitHistory y extrae el campo type, que asigna a una entrada adicional.fields independiente con la clave type {index} . |
actionParameters.name | target.user.user_display_name | Asignación directa cuando actionParameters.name no está vacío. |
actionParameters.products | security_result.detection_fields.value | El analizador itera por cada producto de actionParameters.products (excepto las cadenas vacías y * ) y lo asigna a una entrada detection_fields independiente con la clave service_account_product . |
actionParameters.role | target.user.attribute.roles.name | Asignación directa cuando actionParameters.role no está vacío. |
actionParameters.scopes | security_result.detection_fields.value | El analizador itera por cada ámbito de actionParameters.scopes y lo asigna a una entrada detection_fields independiente con la clave service_account_scope . |
actionParameters.selection | additional.fields.value.list_value.values.string_value | El analizador itera por cada elemento de actionParameters.selection.preferences y lo asigna a una entrada string_value independiente en additional.fields.value.list_value.values. |
actionParameters.userEmail | target.user.email_addresses | Se extrae mediante un patrón grok y se asigna cuando no está vacío. |
actionParameters.userID | target.user.userid | Asignación directa cuando actionParameters.userID no está vacío. |
actor.displayName | target.user.user_display_name | Asignación directa cuando actor.displayName no está vacío y no es unknown . |
actor.id | target.user.userid | Asignación directa cuando actor.id no está vacío. |
authenticationContext.authenticationProvider | security_result.detection_fields.value | Se asigna a una entrada de detection_fields con la clave authenticationProvider cuando no está vacía. |
authenticationContext.credentialProvider | security_result.detection_fields.value | Se asigna a una entrada de detection_fields con la clave credentialProvider cuando no está vacía. |
authenticationContext.credentialType | extensions.auth.mechanism | Se usa para obtener el valor de extensions.auth.mechanism en función de valores específicos. |
authenticationContext.externalSessionId | network.parent_session_id | Asignación directa cuando no está vacío y no es unknown . |
client.device | principal.asset.type | Se usa para obtener el valor de principal.asset.type en función de valores específicos. |
client.geographicalContext.city | principal.location.city | Asignación directa cuando no está vacío. |
client.geographicalContext.country | principal.location.country_or_region | Asignación directa cuando no está vacío. |
client.geographicalContext.geolocation.lat | principal.location.region_latitude | Asignación directa cuando no está vacío. |
client.geographicalContext.geolocation.lon | principal.location.region_longitude | Asignación directa cuando no está vacío. |
client.geographicalContext.postalCode | additional.fields.value.string_value | Se asigna a una entrada additional.fields con la clave Postal code cuando no está vacía. |
client.geographicalContext.state | principal.location.state | Asignación directa cuando no está vacío. |
client.ipAddress | principal.asset.ip | Se combina con principal.ip y principal.asset.ip cuando no están vacíos. |
client.ipAddress | principal.ip | Se combina con principal.ip y principal.asset.ip cuando no están vacíos. |
client.userAgent.browser | target.resource.attribute.labels.value | Se asigna a una entrada target.resource.attribute.labels con la clave Browser cuando no está vacía. |
client.userAgent.os | principal.platform | Se usa para obtener el valor de principal.platform en función de valores específicos. |
client.userAgent.rawUserAgent | network.http.user_agent | Asignación directa cuando no está vacío. |
debugContext.debugData.behaviors | security_result.description | Asignación directa cuando no está vacío. |
debugContext.debugData.deviceFingerprint | target.asset.asset_id | Se asigna a target.asset.asset_id con el prefijo device_finger_print: cuando no está vacío. |
debugContext.debugData.dtHash | security_result.detection_fields.value | Se asigna a una entrada de detection_fields con la clave dtHash cuando no está vacía. |
debugContext.debugData.factor | security_result.detection_fields.value | Se asigna a una entrada de detection_fields con la clave factor cuando no está vacía. |
debugContext.debugData.promptingPolicyTypes | security_result.detection_fields.value | Se asigna a una entrada de detection_fields con la clave promptingPolicyTypes cuando no está vacía. |
debugContext.debugData.requestUri | extensions.auth.auth_details | Asignación directa cuando no está vacío. |
eventType | metadata.event_type | Se usa para obtener el valor de metadata.event_type en función de valores específicos. |
eventType | metadata.product_event_type | Asignación directa cuando no está vacío. |
outcome.reason | security_result.category_details | Asignación directa cuando no está vacío. |
outcome.result | security_result.action | Se asigna a security_result.action después de la normalización basada en valores específicos. |
requestId | metadata.product_log_id | Asignación directa cuando no está vacío. |
serviceAccount.name | principal.application | Asignación directa cuando la acción es Report y serviceAccount.name no está vacío. |
sourceIP | principal.asset.ip | Se extrae mediante un patrón grok y se combina con principal.ip y principal.asset.ip cuando no está vacío y es válido. |
sourceIP | principal.ip | Se extrae mediante un patrón grok y se combina con principal.ip y principal.asset.ip cuando no está vacío y es válido. |
status | security_result.summary | Asignación directa cuando no está vacío. |
timestamp | metadata.event_timestamp | Se convierte al formato de marca de tiempo y se asigna cuando no está vacío. |
user.id | target.user.userid | Asignación directa cuando actionParameters.userID está vacío y user.id no está vacío. |
nombre.usuario | target.user.user_display_name | Asignación directa cuando actionParameters.name está vacío y user.name no está vacío. |
userAgent | network.http.user_agent | Asignación directa cuando client.userAgent.rawUserAgent está vacío y userAgent no lo está. |
extensions.auth.type | Se asigna el valor AUTHTYPE_UNSPECIFIED cuando has_user es true y action es Login . |
|
metadata.product_name | Su valor debe ser WIZ_IO . |
|
metadata.vendor_name | Su valor debe ser WIZ_IO . |
|
network.http.parsed_user_agent | Se deriva de user_agent_value convirtiéndolo en parseduseragent. | |
security_result.severity | Derivado de la gravedad en función de valores específicos. El valor predeterminado es LOW . |
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.