Recoger registros de túnel de Zscaler

Disponible en:

En este documento se explica cómo exportar registros de túneles 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 Tunnel 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:

  • Túnel de Zscaler: la plataforma desde la que recoges los registros.

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

  • Google SecOps: 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_TUNNEL.

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 Tunnel versión 1.0 o 2.0
  • 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 fuente 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: 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 Zscaler Tunnel

  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. Seleccione NSS for Tunnel en NSS Type (Tipo de NSS).
  5. Seleccione el estado en la lista Estado para activar o desactivar el feed de NSS.
  6. En el menú desplegable Tasa de SIEM, deja el valor Ilimitado. 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, US).
    • 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. Selecciona Túnel en la lista Tipos de registro.

  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.

    Estos son los formatos de salida de feed predeterminados:

    • Para la fase 1 de IKE:

      \{ "sourcetype" : "zscalernss-tunnel", "event" : \{"datetime":"%s{datetime}","Recordtype":"%s{tunnelactionname}","tunneltype":"IPSEC IKEV %d{ikeversion}","user":"%s{vpncredentialname}","location":"%s{elocationname}","sourceip":"%s{sourceip}","destinationip":"%s{destvip}","sourceport":"%d{srcport}","destinationport":"%d{dstport}","lifetime":"%d{lifetime}","ikeversion":"%d{ikeversion}","spi_in":"%lu{spi_in}","spi_out":"%lu{spi_out}","algo":"%s{algo}","authentication":"%s{authentication}","authtype":"%s{authtype}","recordid":"%d{recordid}"\}\}
      
    • Para la fase 2 de IKE:

      \{ "sourcetype" : "zscalernss-tunnel", "event" : \{"datetime":"%s{datetime}","Recordtype":"%s{tunnelactionname}","tunneltype":"IPSEC IKEV %d{ikeversion}","user":"%s{vpncredentialname}","location":"%s{elocationname}","sourceip":"%s{sourceip}","destinationip":"%s{destvip}","sourceport":"%d{srcport}","sourceportstart":"%d{srcportstart}","destinationportstart":"%d{destportstart}","srcipstart":"%s{srcipstart}","srcipend":"%s{srcipend}","destinationipstart":"%s{destipstart}","destinationipend":"%s{destipend}","lifetime":"%d{lifetime}","ikeversion":"%d{ikeversion}","lifebytes":"%d{lifebytes}","spi":"%d{spi}","algo":"%s{algo}","authentication":"%s{authentication}","authtype":"%s{authtype}","protocol":"%s{protocol}","tunnelprotocol":"%s{tunnelprotocol}","policydirection":"%s{policydirection}","recordid":"%d{recordid}"\}\}
      
    • En el caso de Tunnel Event:

      \{ "sourcetype" : "zscalernss-tunnel", "event" : \{"datetime":"%s{datetime}","Recordtype":"%s{tunnelactionname}","tunneltype":"%s{tunneltype}","user":"%s{vpncredentialname}","location":"%s{elocationname}","sourceip":"%s{sourceip}","destinationip":"%s{destvip}","sourceport":"%d{srcport}","event":"%s{event}","eventreason":"%s{eventreason}","recordid":"%d{recordid}"\}\}
      
    • Ejemplo:

      \{ "sourcetype" : "zscalernss-tunnel", "event" : \{"datetime":"%s{datetime}","Recordtype":"%s{tunnelactionname}","tunneltype":"%s{tunneltype}","user":"%s{vpncredentialname}","location":"%s{elocationname}","sourceip":"%s{sourceip}","destinationip":"%s{destvip}","sourceport":"%d{srcport}","txbytes":"%lu{txbytes}","rxbytes":"%lu{rxbytes}","dpdrec":"%d{dpdrec}","recordid":"%d{recordid}"\}\}
      
  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 túnel de Zscaler admitidos

El analizador de Zscaler Tunnel admite registros en formato JSON.

Registros de ejemplo de túneles de Zscaler admitidos

  • JSON

    {
      "sourcetype": "zscalernss-tunnel",
      "event": {
        "datetime": "Sun Jan 21 06:17:00 2024",
        "Recordtype": "Tunnel Samples",
        "tunneltype": "IPSec IKEv2",
        "user": "dummy-user@dummydomain.net",
        "location": "PLWSE06",
        "sourceip": "198.51.100.0",
        "destinationip": "198.51.100.1",
        "sourceport": "0",
        "txbytes": "12560",
        "rxbytes": "0",
        "dpdrec": "0",
        "recordid": "7326416289073594372"
      }
    }
    

Tabla de asignación de UDM

Referencia de asignación de campos: ZSCALER_TUNNEL

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

Log field UDM mapping Logic
algo additional.fields[algo]
authtype additional.fields[authtype]
authentication additional.fields[authentication]
dd additional.fields[dd]
day additional.fields[day]
destinationportstart additional.fields[destinationportstart]
dpdrec additional.fields[dpdrec]
eventreason additional.fields[eventreason]
hh additional.fields[hh]
ikeversion additional.fields[ikeversion]
lifebytes additional.fields[lifebytes]
mm additional.fields[mm]
mon additional.fields[mon]
mth additional.fields[mth]
olocationname additional.fields[olocationname]
ovpncredentialname additional.fields[ovpncredentialname]
ss additional.fields[ss]
sourcetype additional.fields[sourcetype]
spi_in additional.fields[spi_in]
spi_out additional.fields[spi_out]
sourceportstart additional.fields[sourceportstart]
tz additional.fields[tz]
tunnelprotocol additional.fields[tunnelprotocol]
tunneltype additional.fields[tunneltype]
vendorname additional.fields[vendorname]
yyyy additional.fields[yyyy]
spi additional.fields[spi]
event metadata.description
datetime metadata.event_timestamp
metadata.event_type If (the srcipstart log field value is not empty or the srcipend log field value is not empty or the sourceip log field value is not empty) and (the destinationipstart log field value is not empty or the destinationip log field value is not empty or the destinationipend log field value is not empty), then the metadata.event_type UDM field is set to NETWORK_CONNECTION.

Else, if the srcipstart log field value is not empty or the srcipend log field value is not empty or the sourceip log field value is not empty, then the metadata.event_type UDM field is set to STATUS_UPDATE.

Else, the metadata.event_type UDM field is set to GENERIC_EVENT.
Recordtype metadata.product_event_type
recordid metadata.product_log_id
metadata.product_name The metadata.product_name UDM field is set to ZSCALER_TUNNEL.
metadata.vendor_name The metadata.vendor_name UDM field is set to ZSCALER.
network.direction If the policydirection log field value matches the regular expression pattern (?i)Inbound, then the network.direction UDM field is set to INBOUND.

Else, if the policydirection log field value matches the regular expression pattern (?i)Outbound, then the network.direction UDM field is set to OUTBOUND.
protocol network.ip_protocol If the protocol log field value contain one of the following values, then the protocol log field is mapped to the network.ip_protocol UDM field.
  • TCP
  • EIGRP
  • ESP
  • ETHERIP
  • GRE
  • ICMP
  • IGMP
  • IP6IN4
  • PIM
  • UDP
  • VRRP
rxbytes network.received_bytes
rxpackets network.received_packets
txbytes network.sent_bytes
txpackets network.sent_packets
lifetime network.session_duration.seconds
srcipstart principal.ip
sourceip principal.ip
srcipend principal.ip
location principal.location.name
sourceport principal.port
user principal.user.userid
destinationipstart target.ip
destinationip target.ip
destinationipend' target.ip
destinationport target.port

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