Recopilar registros de DLP de Zscaler

Disponible en:

En este documento se explica cómo exportar registros de DLP de Zscaler configurando un feed de Google Security Operations y cómo se asignan los campos de registro a los campos del modelo de datos unificado (UDM) de Google SecOps.

Para obtener más información, consulta el artículo Descripción general de la ingesta de datos en Google SecOps.

Una implementación típica consta de Zscaler DLP y el feed de webhook de Google SecOps configurado para enviar registros a Google SecOps. Cada implementación de cliente puede ser diferente y más compleja.

La implementación contiene los siguientes componentes:

  • DLP de Zscaler: la plataforma desde la que recoges los registros.

  • Feed de Google SecOps: el feed de Google SecOps que obtiene registros de Zscaler DLP y escribe registros en Google SecOps.

  • Google Security Operations: conserva y analiza los registros.

Una etiqueta de ingestión identifica el analizador que normaliza los datos de registro sin procesar en formato UDM estructurado. La información de este documento se aplica al analizador con la etiqueta ZSCALER_DLP.

Antes de empezar

Asegúrate de que cumples los siguientes requisitos previos:

  • Acceso a la consola de Zscaler Internet Access. Para obtener más información, consulta la ayuda de ZIA sobre acceso seguro a Internet y SaaS.
  • Zscaler DLP 2024 o versiones posteriores
  • Todos los sistemas de la arquitectura de implementación están configurados con la zona horaria UTC.
  • La clave de API necesaria para completar la configuración de la feed en Google Security Operations. Para obtener más información, consulta Configurar claves de API.

Configurar feeds

Para configurar este tipo de registro, sigue estos pasos:

  1. Ve a Configuración de SIEM > Feeds.
  2. Haz clic en Añadir feed.
  3. Haga clic en el paquete de feeds Zscaler.
  4. Busca el tipo de registro que necesites y haz clic en Añadir nuevo feed.
  5. Introduce los valores de los siguientes parámetros de entrada:

    • Tipo de fuente: webhook (recomendado)
    • Delimitador de división: carácter que se usa para separar las líneas de registro. Déjelo en blanco si no se usa ningún delimitador.

    Opciones avanzadas

    • Nombre del feed: un valor rellenado automáticamente que identifica el feed.
    • Espacio de nombres de recursos: espacio de nombres asociado al feed.
    • Etiquetas de ingestión: etiquetas aplicadas a todos los eventos de este feed.
  6. Haga clic en Crear feed.

Para obtener más información sobre cómo configurar varios feeds para diferentes tipos de registros en esta familia de productos, consulta el artículo Configurar feeds por producto.

Configurar DLP de Zscaler

  1. En la consola de Zscaler Internet Access, ve a Administración > Servicio de streaming de Nanolog > Feeds de NSS en la nube.
  2. Haga clic en Añadir feed de NSS de Cloud.
  3. Escribe un nombre para el feed en el campo Nombre del feed.
  4. Selecciona NSS para web en Tipo de NSS.
  5. Seleccione el estado en la lista Estado para activar o desactivar el feed de NSS.
  6. En el menú Velocidad de SIEM, deja el valor Ilimitada. Para suprimir el flujo de salida debido a licencias u otras restricciones, cambia el valor.
  7. Seleccione Otro en la lista Tipo de SIEM.
  8. Selecciona Inhabilitado en la lista Autenticación de OAuth 2.0.
  9. Introduce un límite de tamaño para la carga útil de una solicitud HTTP individual según la práctica recomendada del SIEM en Tamaño máximo del lote (por ejemplo, 512 KB).
  10. Introduce la URL HTTPS del endpoint de la API de Chronicle en el campo URL de la API con el siguiente formato:

    https://<CHRONICLE_REGION>-chronicle.googleapis.com/v1alpha/projects/<GOOGLE_PROJECT_NUMBER>/locations/<LOCATION>/instances/<CUSTOMER_ID>/feeds/<FEED_ID>:importPushLogs
    
    • CHRONICLE_REGION: región en la que se aloja tu instancia de Google SecOps (por ejemplo, EE. UU.).
    • GOOGLE_PROJECT_NUMBER: número de proyecto de BYOP (obtenerlo de C4).
    • LOCATION: región de Google SecOps (por ejemplo, EE. UU.).
    • CUSTOMER_ID: ID de cliente de SecOps de Google (obtenerlo de C4).
    • FEED_ID: ID del feed que se muestra en la interfaz de usuario del feed en el nuevo webhook creado.

    URL de API de ejemplo:

    https://us-chronicle.googleapis.com/v1alpha/projects/12345678910/locations/US/instances/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/feeds/yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy:importPushLogs
    
  11. Haga clic en Añadir encabezado HTTP y, a continuación, añada encabezados HTTP con el siguiente formato:

    • Header 1: Clave1: X-goog-api-key y Valor1: clave de API generada en las credenciales de API de Google Cloud BYOP.
    • Header 2: Clave2: X-Webhook-Access-Key y Valor2: clave secreta de la API generada en "CLAVE SECRETA" del webhook.
  12. En la lista Tipos de registro, selecciona DLP de endpoint.

  13. Seleccione JSON en la lista Tipo de salida del feed.

  14. Asigna el valor , \ " a Carácter de escape del feed.

  15. Para añadir un campo al Formato de salida del feed,seleccione Personalizado en la lista Tipo de salida del feed.

  16. Copia y pega el Formato de salida del feed y añade campos nuevos. Asegúrate de que los nombres de las claves coincidan con los nombres de los campos.

    A continuación, se muestra el Formato de salida del feed predeterminado:

    \{ "sourcetype" : "zscalernss-edlp", "event" :\{"time":"%s{time}","recordid":"%d{recordid}","login":"%s{user}","dept":"%s{department}","filetypename":"%s{filetypename}","filemd5":"%s{filemd5}","dlpdictnames":"%s{dlpdictnames}","dlpdictcount":"%s{dlpcounts}","dlpenginenames":"%s{dlpengnames}","channel":"%s{channel}","actiontaken":"%s{actiontaken}","severity":"%s{severity}","rulename":"%s{triggeredrulelabel}","itemdstname":"%s{itemdstname}"\}\}
    
  17. Seleccione la zona horaria del campo Hora del archivo de salida en la lista Zona horaria. De forma predeterminada, la zona horaria es la de tu organización.

  18. Revisa los ajustes configurados.

  19. Haz clic en Guardar para probar la conectividad. Si la conexión se realiza correctamente, aparecerá una marca de verificación verde junto con el mensaje Prueba de conectividad correcta: OK (200).

Para obtener más información sobre los feeds de Google SecOps, consulta la documentación de los feeds de Google SecOps. Para obtener información sobre los requisitos de cada tipo de feed, consulta el artículo Configuración de feeds por tipo.

Si tienes problemas al crear feeds, ponte en contacto con el equipo de Asistencia de SecOps de Google.

Formatos de registro de DLP de Zscaler admitidos

El analizador de DLP de Zscaler admite registros en formato JSON.

Registros de ejemplo de DLP de Zscaler admitidos

  • JSON:

    {
      "sourcetype": "zscalernss-edlp",
      "event": {
        "time": "Thu Jun 20 21:14:56 2024",
        "recordid": "7382697059455533057",
        "login": "dummy@domain.com",
        "dept": "General Group",
        "filetypename": "xlsx",
        "filemd5": "9a2d0d62c22994a98f65939ddcd3eb8f",
        "dlpdictnames": "Social Security Number (US): Detect leakage of United States Social Security Numbers|Credit Cards: Detect leakage of credit card information|Aadhaar Card Number (India): Detect Leakage of Indian Aadhaar Card Numbers",
        "dlpdictcount": "1428|141|81",
        "dlpenginenames": "Dummy Engine|cc|PCI|GLBA|HIPAA",
        "channel": "Removable Storage",
        "actiontaken": "Confirm Allow",
        "severity": "High Severity",
        "rulename": "Endpoint_DLP_",
        "itemdstname": "Removable Storage"
      }
    }
    

Tabla de asignación de UDM

En la siguiente tabla se enumeran los campos de registro del tipo de registro ZSCALER_DLP y sus campos de UDM correspondientes.

Log field UDM mapping Logic
mon additional.fields[mon]
day additional.fields[day]
scantime additional.fields[scantime]
numdlpengids additional.fields[numdlpengids]
numdlpdictids additional.fields[numdlpdictids]
recordid metadata.product_log_id
scanned_bytes additional.fields[scanned_bytes]
dlpidentifier security_result.detection_fields[dlpidentifier]
login principal.user.user_display_name
b64user principal.user.user_display_name
euser principal.user.user_display_name
ouser security_result.detection_fields[ouser]
dept principal.user.department
b64department principal.user.department
edepartment principal.user.department
odepartment security_result.detection_fields[odepartment]
odevicename security_result.detection_fields[odevicename]
devicetype principal.asset.attribute.labels[devicetype]
principal.asset.platform_software.platform If the deviceostype log field value matches the regular expression pattern (?i)Windows, then the principal.asset.platform_software.platform UDM field is set to WINDOWS.
devicename, b64devicename, edevicename principal.asset.asset_id If the devicename log field value is not empty, then the asset_id:devicename log field is mapped to the principal.asset.asset_id UDM field.

If the b64devicename log field value is not empty, then the asset_id:b64devicename log field is mapped to the principal.asset.asset_id UDM field.

If the edevicename log field value is not empty, then the asset_id:edevicename log field is mapped to the principal.asset.asset_id UDM field.
deviceplatform principal.asset.attribute.labels[deviceplatform]
deviceosversion principal.asset.platform_software.platform_version
devicemodel principal.asset.hardware.model
deviceappversion additional.fields[deviceappversion]
deviceowner principal.user.userid
b64deviceowner principal.user.userid
edeviceowner principal.user.userid
odeviceowner security_result.detection_fields[odeviceowner]
devicehostname principal.hostname
b64devicehostname principal.hostname
edevicehostname principal.hostname
odevicehostname security_result.detection_fields[odevicehostname]
datacenter target.location.name
datacentercity target.location.city
datacentercountry target.location.country_or_region
dsttype target.resource.resource_subtype
filedoctype additional.fields[filedoctype]
filedstpath target.file.full_path
b64filedstpath target.file.full_path
efiledstpath target.file.full_path
filemd5 target.file.md5 If the filemd5 log field value matches the regular expression pattern ^[0-9a-f]+$, then the filemd5 log field is mapped to the target.file.md5 UDM field.
filesha target.file.sha256 If the filesha log field value matches the regular expression pattern ^[0-9a-f]+$, then the filesha log field is mapped to the target.file.sha256 UDM field.
filesrcpath src.file.full_path
b64filesrcpath src.file.full_path
efilesrcpath src.file.full_path
filetypecategory additional.fields[filetypecategory]
filetypename target.file.mime_type
itemdstname target.resource.name
b64itemdstname target.resource.name
eitemdstname target.resource.name
itemname target.resource.attribute.labels[itemname]
b64itemname target.resource.attribute.labels[itemname]
eitemname target.resource.attribute.labels[itemname]
itemsrcname src.resource.name
b64itemsrcname src.resource.name
eitemsrcname src.resource.name
itemtype target.resource.attribute.labels[itemtype]
ofiledstpath security_result.detection_fields[ofiledstpath]
ofilesrcpath security_result.detection_fields[ofilesrcpath]
oitemdstname security_result.detection_fields[oitemdstname]
oitemname security_result.detection_fields[oitemname]
odlpengnames security_result.detection_fields[odlpengnames]
oitemsrcname security_result.detection_fields[oitemsrcname]
srctype src.resource.resource_subtype
actiontaken security_result.action_details
security_result.action If the actiontaken log field value matches the regular expression pattern (?i)allow, then the security_result.action UDM field is set to ALLOW.

Else, if the actiontaken log field value matches the regular expression pattern (?i)block, then the security_result.action UDM field is set to BLOCK.
activitytype metadata.product_event_type
addinfo additional.fields[addinfo]
channel security_result.detection_fields[channel]
confirmaction security_result.detection_fields[confirmaction]
confirmjust security_result.description
dlpdictcount security_result.detection_fields[dlpdictcount]
dlpdictnames security_result.detection_fields[dlpdictnames]
b64dlpdictnames security_result.detection_fields[dlpdictnames]
edlpdictnames security_result.detection_fields[dlpdictnames]
dlpenginenames security_result.detection_fields[dlpenginenames]
b64dlpengnames security_result.detection_fields[dlpenginenames]
edlpengnames security_result.detection_fields[dlpenginenames]
expectedaction security_result.detection_fields[expectedaction]
logtype security_result.category_details
odlpdictnames security_result.detection_fields[odlpdictnames]
ootherrulelabels security_result.detection_fields[ootherrulelabels]
otherrulelabels security_result.rule_labels[otherrulelabels]
b64otherrulelabels security_result.rule_labels[otherrulelabels]
eotherrulelabels security_result.rule_labels[otherrulelabels]
otriggeredrulelabel security_result.rule_labels[otriggeredrulelabel]
severity security_result.severity_details
security_result.severity If the severity log field value matches the regular expression pattern (?i)High, then the security_result.severity UDM field is set to HIGH.

Else, if the severity log field value matches the regular expression pattern (?i)Medium, then the security_result.severity UDM field is set to MEDIUM.

Else, if the severity log field value matches the regular expression pattern (?i)Low, then the security_result.severity UDM field is set to LOW.

Else, if the severity log field value matches the regular expression pattern (?i)Info, then the security_result.severity UDM field is set to INFORMATIONAL.
rulename security_result.rule_name
b64triggeredrulelabel security_result.rule_name
etriggeredrulelabel security_result.rule_name
zdpmode security_result.detection_fields[zdpmode]
tz additional.fields[tz]
ss additional.fields[ss]
mm additional.fields[mm]
hh additional.fields[hh]
dd additional.fields[dd]
mth additional.fields[mth]
yyyy additional.fields[yyyy]
sourcetype additional.fields[sourcetype]
eventtime metadata.event_timestamp
time metadata.collected_timestamp
rtime additional.fields[rtime]
metadata.vendor_name The metadata.vendor_name UDM field is set to Zscaler.
metadata.product_name The metadata.product_name UDM field is set to DLP.
metadata.event_type If the activitytype log field value contain one of the following values, then the metadata.event_type UDM field is set to FILE_UNCATEGORIZED.
  • Upload
  • Download
Else, if the activitytype log field value is equal to File Copy, then the metadata.event_type UDM field is set to FILE_COPY.

Else, if the activitytype log field value is equal to File Read, then the metadata.event_type UDM field is set to FILE_READ.

Else, if the activitytype log field value is equal to File Write, then the metadata.event_type UDM field is set to FILE_MODIFICATION.

Else, if the activitytype log field value is equal to Email Sent, then the metadata.event_type UDM field is set to EMAIL_UNCATEGORIZED.

Else, if the activitytype log field value is equal to Print, then the metadata.event_type UDM field is set to STATUS_UPDATE.

Else, the metadata.event_type UDM field is set to GENERIC_EVENT.

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.