Recopila registros de Wiz
En este documento, se explica cómo transferir registros de Wiz a Google Security Operations. El analizador transforma los registros sin procesar en formato JSON de Wiz en un modelo de datos unificado (UDM). Primero, inicializa los valores predeterminados para los campos de la UDM y, luego, 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 de extremo a extremo y priorización de riesgos sin agentes en entornos deGoogle Cloud, AWS, Azure, OCI y Kubernetes.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Instancia de Google SecOps
- Acceso con privilegios a Wiz
Obtén el ID de cliente de Google SecOps
- Accede a 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.
Obtén el archivo de autenticación de transferencia de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a Configuración de SIEM > Agentes de recopilación.
- Descarga el archivo de autenticación de transferencia. Guarda el archivo de forma segura en el sistema en el que se instalará Bindplane.
Configura la integración en Wiz
- Accede a la IU web de Wiz.
- Ve a la página Connect to Wiz.
- Haz clic en Google Cloud Chronicle.
- Selecciona el Alcance.
- Ingresa tu ID de cliente de Google SecOps.
Ingresa la dirección del extremo de tu instancia de Google SecOps [Chronicle]:
- 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
- Sydney: https://australia-southeast1-malachiteingestion-pa.googleapis.com
- Tel Aviv: https://me-west1-malachiteingestion-pa.googleapis.com
- Tokio: https://asia-northeast1-malachiteingestion-pa.googleapis.com
- Estados Unidos multirregión: https://malachiteingestion-pa.googleapis.com
- Zúrich: https://europe-west6-malachiteingestion-pa.googleapis.com
Sube la clave de la cuenta de servicio de Google.
Haz clic en Guardar.
Tabla de asignación de la 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 action es Report y serviceAccount.name no está vacío. |
actionParameters.groups | security_result.detection_fields.value | El analizador itera por cada grupo en actionParameters.groups y lo asigna a una entrada de detection_fields independiente con la clave service_account_group . |
actionParameters.input.patch.portalVisitHistory.dateTime | additional.fields.value.string_value | El analizador itera a través de cada elemento de actionParameters.input.patch.portalVisitHistory y extrae el campo dateTime, asociá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, y lo asigna 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 de nombre, lo que lo asigna 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 en actionParameters.input.patch.portalVisitHistory y extrae el campo resourceName, lo que lo asigna 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 en actionParameters.input.patch.portalVisitHistory y extrae el campo resourceType, lo que lo asigna 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, lo que lo asigna 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 en actionParameters.input.patch.portalVisitHistory y extrae el campo de tipo, asociándolo 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 en actionParameters.products (sin incluir cadenas vacías ni * ) y lo asigna a una entrada de 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 alcance en actionParameters.scopes y lo asigna a una entrada de 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 de string_value independiente dentro de additional.fields.value.list_value.values. |
actionParameters.userEmail | target.user.email_addresses | Se extraen con un patrón grok y se asignan cuando no están vacíos. |
actionParameters.userID | target.user.userid | Correspondencia 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 ni 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ía y no es unknown . |
client.device | principal.asset.type | Se usa para derivar el valor de principal.asset.type según valores específicos. |
client.geographicalContext.city | principal.location.city | Asignación directa cuando no está vacía. |
client.geographicalContext.country | principal.location.country_or_region | Asignación directa cuando no está vacía. |
client.geographicalContext.geolocation.lat | principal.location.region_latitude | Asignación directa cuando no está vacía. |
client.geographicalContext.geolocation.lon | principal.location.region_longitude | Asignación directa cuando no está vacía. |
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ía. |
client.ipAddress | principal.asset.ip | Se combina con principal.ip y principal.asset.ip cuando no está vacío. |
client.ipAddress | principal.ip | Se combina con principal.ip y principal.asset.ip cuando no está vacío. |
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ía. |
debugContext.debugData.behaviors | security_result.description | Asignación directa cuando no está vacía. |
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ía. |
eventType | metadata.event_type | Se usa para derivar el valor de metadata.event_type según valores específicos. |
eventType | metadata.product_event_type | Asignación directa cuando no está vacía. |
outcome.reason | security_result.category_details | Asignación directa cuando no está vacía. |
outcome.result | security_result.action | Se asigna a security_result.action después de la normalización en función de valores específicos. |
requestId | metadata.product_log_id | Asignación directa cuando no está vacía. |
serviceAccount.name | principal.application | Asignación directa cuando action es Report y serviceAccount.name no está vacío. |
sourceIP | principal.asset.ip | Se extrae con un patrón de 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 con un patrón de Grok y se combina con principal.ip y principal.asset.ip cuando no está vacío y es válido. |
estado | security_result.summary | Asignación directa cuando no está vacía. |
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 | Correspondencia directa cuando actionParameters.userID está vacío y user.id no está vacío. |
user.name | target.user.user_display_name | Correspondencia 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 está vacío. |
extensions.auth.type | Se establece en AUTHTYPE_UNSPECIFIED cuando has_user es verdadero y action es Login . |
|
metadata.product_name | Se define en WIZ_IO . |
|
metadata.vendor_name | Se define en WIZ_IO . |
|
network.http.parsed_user_agent | Se deriva de user_agent_value convirtiéndolo en parseduseragent. | |
security_result.severity | Se deriva de la gravedad en función de valores específicos, y el valor predeterminado es LOW . |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.