Recopilar registros de Pulse Secure

Disponible en:

En este documento se describe cómo puede recoger registros de Pulse Secure mediante un reenviador de Google Security Operations.

Para obtener más información, consulta el artículo Información general sobre la ingestión de datos en Google Security Operations.

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 de ingestión PULSE_SECURE_VPN.

Configurar la VPN de Pulse Secure

Para configurar la VPN de Pulse Secure, haz una de las siguientes acciones:

  • Configurar la versión 8.3R3 y anteriores de Pulse Secure VPN
  • Configurar Pulse Secure VPN versión 8.3R4 y posteriores

Configurar la versión 8.3R3 y anteriores de Pulse Secure VPN

  1. Inicia sesión en la consola Pulse Connect Secure.
  2. En la consola Pulse Connect Secure, selecciona System > Log/monitoring > Settings. Puede seleccionar Configuración en las pestañas Eventos, Acceso de usuario o Acceso de administrador.
  3. En la sección Seleccionar eventos que se registrarán, marca todas las casillas correspondientes a los eventos.
  4. En la sección Servidores Syslog, haga lo siguiente:
    1. En el campo Nombre de servidor o IP, especifica la dirección IP del reenviador de Google Security Operations.
    2. En la lista Facility (Instalación), selecciona LOCAL0. La lista Instalación ofrece ocho instalaciones: de LOCAL0 a LOCAL7. Puedes usar uno de estos ajustes para asignar las instalaciones de tu servidor syslog.
    3. En la lista Tipo, selecciona UDP o TCP.
  5. Haz clic en Añadir.
  6. Opcional: Para añadir varios servidores syslog para los registros de eventos, de acceso de administrador o de acceso de usuario, repite los pasos del 2 al 4.
  7. Haz clic en Guardar cambios.
  8. Para asegurarte de que el formato de registro estándar esté definido como predeterminado, haz lo siguiente:
    1. Abre la consola Pulse Connect Secure.
    2. En las pestañas Eventos, Acceso de usuario y Acceso de administrador, defina Filtros como Estándar.
    3. Si el filtro estándar no está definido como filtro predeterminado, haga clic en Convertir en predeterminado.
    4. Haz clic en Guardar.

Configurar Pulse Secure VPN versión 8.3R4 y posteriores

  1. En la consola Pulse Connect Secure, haz clic en la pestaña Events (Eventos), User access (Acceso de usuario) o Admin access (Acceso de administrador) y, a continuación, en Filters (Filtros) > New filter (Nuevo filtro).
  2. En el campo Nombre del filtro, introduce un nombre para el filtro.
  3. En la sección Formato de exportación, selecciona Personalizado e introduce el siguiente formato en el campo:

    [SecureConnect] %date% %time% - %node% - [%sourceip%] %user%(%realm%)[%role%] - %msg%

  4. Haz clic en Guardar.

  5. En función de la versión de tu dispositivo, sigue uno de estos pasos para habilitar la configuración de syslog:

    • Habilitar el registro syslog en Pulse Secure VPN
    • Habilitar el registro syslog en Ivanti Connect Secure

Habilitar el registro de syslog en Pulse Secure VPN

  1. En la consola Pulse Connect Secure, selecciona System > Log/monitoring > Settings. Puede seleccionar Configuración en las pestañas Eventos, Acceso de usuario o Acceso de administrador.
  2. En la sección Seleccionar eventos que se registrarán, marca todas las casillas excepto Acceso HTML5, Mensajes de control de acceso y Solicitudes no autenticadas.
  3. En el campo Servidor Syslog, introduce información sobre los servidores Syslog.
  4. En la sección Servidores Syslog, haga lo siguiente:
    1. En el campo Nombre de servidor o IP, introduce el nombre del servidor o la dirección IP del reenviador de Google Security Operations.
    2. En la lista Facility (Instalación), selecciona LOCAL0.
    3. En la lista Filtro, selecciona el que has creado antes.
  5. Haz clic en Añadir.
  6. Opcional: Para añadir varios servidores syslog para eventos, acceso de administrador o registros de acceso de usuario, repite los pasos del 2 al 4.
  7. Haz clic en Guardar cambios.

Habilitar el registro syslog en Ivanti Connect Secure

  1. En la consola Pulse Connect Secure, haga clic en la pestaña Events (Eventos), User access (Acceso de usuario) o Admin access (Acceso de administrador) y, a continuación, seleccione Filters (Filtros).
  2. Haz clic en la pestaña Nuevo filtro.
  3. En la sección Formato de exportación, selecciona Personalizado e introduce el siguiente formato en el campo:

    [SecureConnect] %date% %time% - %node% - [%sourceip%] %user%(%realm%)[%role%] - %msg%

  4. Haz clic en Guardar.

  5. Haz clic en Sistema > Registro/monitorización y, a continuación, selecciona la pestaña Configuración.

  6. En el campo Tamaño máximo del registro, especifica el tamaño máximo del registro y selecciona los eventos que se registrarán.

  7. Especifica la configuración del servidor de la siguiente manera:

    1. En el campo Nombre de servidor/IP, especifica el nombre de dominio completo o la dirección IP del reenviador de Google Security Operations del servidor syslog.

      Si selecciona Seguridad de la capa de transporte (TLS) en la lista de tipos, el nombre del servidor debe coincidir con el CN del subjectDN del certificado obtenido del servidor.

    2. En la lista Facility (Instalación), seleccione un nivel de instalación del servidor syslog.

    3. En la lista Type (Tipo), selecciona el tipo de conexión al servidor syslog: UDP, TCP o TLS. TLS usa protocolos criptográficos para proporcionar una comunicación segura.

      Si seleccionas TLS, elige el certificado de cliente instalado que quieras usar para autenticar el servidor syslog. Los certificados de cliente se definen en la ventana Configuración > Certificados > Certificados de autenticación de cliente. Los certificados de cliente deben instalarse en el dispositivo para poder usarse. Ponte en contacto con tu autoridad de certificación para obtener el certificado.

    4. En la lista Filtrar, selecciona Personalizado.

  8. Haz clic en Añadir.

Configurar el reenviador de Google Security Operations para ingerir registros de Pulse Secure

  1. Seleccione Configuración de SIEM > Reenviadores.
  2. Haz clic en Añadir nuevo remitente.
  3. En el campo Nombre del reenviador, introduce un nombre único para el reenviador.
  4. Haz clic en Enviar y, a continuación, en Confirmar. Se añade el reenviador y se muestra la ventana Añadir configuración de recopilador.
  5. En el campo Nombre del recolector, escriba un nombre único para el recolector.
  6. Seleccione Pulse Secure como Tipo de registro.
  7. Seleccione Syslog como Tipo de recogida.
  8. Configure los siguientes parámetros de entrada obligatorios:
    • Protocol: especifica el protocolo de conexión que usa el recopilador para escuchar los datos de syslog.
    • Dirección: especifica la dirección IP o el nombre de host de destino donde reside el recopilador y escucha los datos de syslog.
    • Puerto: especifica el puerto de destino en el que reside el recopilador y escucha los datos de syslog.
  9. Haz clic en Enviar.

Para obtener más información sobre los reenviadores de Google Security Operations, consulta Gestionar configuraciones de reenviadores a través de la interfaz de usuario de Google Security Operations.

Si tienes problemas al crear reenviadores, ponte en contacto con el equipo de Asistencia de Google Security Operations.

Referencia de asignación de campos

Este analizador extrae campos de los registros de VPN de Pulse Secure y gestiona los formatos de registros de eventos de Windows y syslog. Normaliza diversas estructuras de registro en un formato común, categorizando eventos como inicios y cierres de sesión, conexiones y cambios en las políticas, y los enriquece con datos contextuales como agentes de usuario, direcciones IP y marcas de tiempo.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
acción security_result.action_details Se asigna directamente desde el campo action.
página principal.application Se asigna directamente desde el campo application.
bytes_read network.received_bytes Se asigna directamente desde el campo bytes_read y se convierte en un entero sin signo.
bytes_written network.sent_bytes Se asigna directamente desde el campo bytes_written y se convierte en un entero sin signo.
client_host principal.hostname, principal.asset.hostname Se asigna directamente desde el campo client_host.
cmd principal.process.command_line Se asigna directamente desde el campo cmd.
connection_status security_result.detection_fields.value.string_value Se asigna directamente desde el campo connection_status.
data_time metadata.event_timestamp.seconds Se analiza a partir del campo data_time con varios formatos de marca de tiempo (MM-dd-aaaa HH:mm:ss Z, RFC 3339, ISO8601, MMM d HH:mm:ss, MMM d HH:mm:ss).
devname principal.hostname, principal.asset.hostname Se asigna directamente desde el campo devname.
dstip target.ip, target.asset.ip Se asigna directamente desde el campo dstip.
dstport target.port Se ha asignado directamente desde el campo dstport y se ha convertido en un número entero.
dstcountry target.location.country_or_region Se asigna directamente desde el campo dstcountry si no está vacío o no tiene el valor "Reserved".
duración network.session_duration.seconds Se ha asignado directamente desde el campo duration y se ha convertido en un número entero.
dvc intermediary.hostname o intermediary.ip Si el campo dvc se puede convertir en una dirección IP, se asigna a intermediary.ip. De lo contrario, se asigna a intermediary.hostname.
dvc_hostname intermediary.hostname, principal.hostname, principal.asset.hostname o intermediary.ip, principal.ip, principal.asset.ip Si el campo dvc_hostname se puede convertir en una dirección IP, se asigna a los campos IP correspondientes. De lo contrario, se asigna a los campos de nombre de host correspondientes.
event_type metadata.product_event_type Se asigna directamente desde el campo event_type.
failure_reason security_result.description Se asigna directamente desde el campo failure_reason. Si el mensaje contiene "because host", el texto "host" se añade al principio del motivo del fallo.
has_principal event.idm.read_only_udm.principal (presencia) Se asigna el valor "true" si se rellena algún campo principal; de lo contrario, se asigna el valor "false". Derivado de la lógica del analizador.
has_target event.idm.read_only_udm.target (presencia) Se asigna el valor "true" si se rellena algún campo de destino; de lo contrario, se asigna el valor "false". Derivado de la lógica del analizador.
has_target_user event.idm.read_only_udm.target.user.userid (presencia) Se le asigna el valor "true" si target.user.userid se rellena. De lo contrario, se le asigna el valor "false". Derivado de la lógica del analizador.
host_ip principal.ip, principal.asset.ip Se asigna directamente desde el campo host_ip.
host_mac principal.mac Se asigna directamente desde el campo host_mac, sustituyendo los guiones por dos puntos.
http_method network.http.method Se asigna directamente desde el campo http_method.
http_response network.http.response_code Se ha asignado directamente desde el campo http_response y se ha convertido en un número entero.
info_desc about.labels.value Se asigna directamente desde el campo info_desc.
ip_new target.ip, target.asset.ip Se asigna directamente desde el campo ip_new.
nivel security_result.severity, security_result.severity_details El security_result.severity se deriva del campo level ("error"/"warning" -> HIGH, "notice" -> MEDIUM, "information"/"info" -> LOW). El valor sin formato de level también se asigna a security_result.severity_details.
logid metadata.product_log_id Se asigna directamente desde el campo logid.
locip principal.ip, principal.asset.ip Se asigna directamente desde el campo locip.
mensaje metadata.description Se usa para extraer varios campos mediante los filtros grok y kv. Si el mensaje contiene "EventID", se procesa como un registro de eventos de Windows.
message_info metadata.description Se asigna directamente a metadata.description si no se usa en patrones grok más específicos.
msg metadata.product_event_type, metadata.description Si el campo msg está presente, el tipo de producto se extrae y se asigna a metadata.product_event_type, y el resto del mensaje se asigna a metadata.description.
msg_hostname principal.hostname, principal.asset.hostname Se asigna directamente desde el campo msg_hostname.
msg_ip principal.ip, principal.asset.ip Se asigna directamente desde el campo msg_ip.
msg_user_agent network.http.user_agent, network.http.parsed_user_agent, metadata.product_version La cadena de user-agent se asigna a network.http.user_agent, el user-agent analizado se asigna a network.http.parsed_user_agent y la versión del producto (si está presente) se asigna a metadata.product_version.
network_duration network.session_duration.seconds Se ha asignado directamente desde el campo network_duration y se ha convertido en un número entero.
policyid security_result.rule_id Se asigna directamente desde el campo policyid.
policyname security_result.rule_name Se asigna directamente desde el campo policyname.
policytype security_result.rule_type Se asigna directamente desde el campo policytype.
priority_code about.labels.value Se asigna directamente desde el campo priority_code y también se usa para obtener about.labels.value para la clave "Severity" (consulta la lógica).
prod_name metadata.product_name Se asigna directamente desde el campo prod_name.
product_type metadata.product_event_type Se asigna directamente desde el campo product_type.
product_version metadata.product_version Se asigna directamente desde el campo product_version.
proto network.ip_protocol Se asigna a network.ip_protocol después de convertirse en un nombre de protocolo IP mediante una búsqueda.
pwd principal.process.file.full_path Se asigna directamente desde el campo pwd.
dominio principal.group.attribute.labels.value Se asigna directamente desde el campo realm.
rcvdbyte network.received_bytes Se asigna directamente desde el campo rcvdbyte y se convierte en un entero sin signo.
remip target.ip Se asigna directamente desde el campo remip.
nombre_recurso target.resource.name Se asigna directamente desde el campo resource_name después de eliminar los espacios en blanco y los guiones iniciales y finales.
resource_status security_result.description Se asigna directamente desde el campo resource_status.
resource_user_group principal.user.group_identifiers Se asigna directamente desde el campo resource_user_group.
resource_user_name principal.user.userid Se asigna directamente desde el campo resource_user_name.
roles principal.user.group_identifiers Se asigna directamente desde el campo roles.
sentbyte network.sent_bytes Se asigna directamente desde el campo sentbyte y se convierte en un entero sin signo.
session_id network.session_id Se asigna directamente desde el campo session_id.
sessionid network.session_id Se asigna directamente desde el campo sessionid.
srcip principal.ip, principal.asset.ip Se asigna directamente desde el campo srcip.
srcport principal.port Se ha asignado directamente desde el campo srcport y se ha convertido en un número entero.
srccountry principal.location.country_or_region Se asigna directamente desde el campo srccountry si no está vacío o no tiene el valor "Reserved".
subtype metadata.product_event_type Se usa junto con type para formar metadata.product_event_type.
target_file target.file.full_path Se asigna directamente desde el campo target_file.
target_host target.hostname, target.asset.hostname Se asigna directamente desde el campo target_host.
target_ip target.ip, target.asset.ip Se asigna directamente desde el campo target_ip.
target_port target.port Se ha asignado directamente desde el campo target_port y se ha convertido en un número entero.
target_url target.url Se asigna directamente desde el campo target_url.
Tiempo metadata.event_timestamp.seconds Se analiza a partir del campo time con el formato "aaaa-MM-dd HH:mm:ss".
tipo metadata.product_event_type Se usa junto con subtype para formar metadata.product_event_type.
u_event_source_ip principal.ip, principal.asset.ip o target.ip Si se incluyen target_ip o target_host, u_event_source_ip se asigna a principal.ip y principal.asset.ip. De lo contrario, si target_ip, target_host y target_url están vacíos, u_event_source_ip se asigna a target.ip.
u_observer_ip observer.ip Se asigna directamente desde el campo u_observer_ip.
u_prin_ip principal.ip, principal.asset.ip Se asigna directamente desde el campo u_prin_ip.
usuario target.user.userid Se asigna directamente desde el campo user.
user_agent network.http.user_agent, network.http.parsed_user_agent La cadena de user-agent se asigna a network.http.user_agent y el user-agent analizado se asigna a network.http.parsed_user_agent.
user_group_identifier target.user.group_identifiers o principal.user.group_identifiers Se asigna a target.user.group_identifiers en la mayoría de los casos. Se asigna a principal.user.group_identifiers en los eventos de cambio de IP (USER_UNCATEGORIZED) y de restricciones de dominio.
user_ip principal.ip, principal.asset.ip Se asigna directamente desde el campo user_ip. Si está vacío y u_event_source_ip no lo está, toma el valor de u_event_source_ip.
nombre de usuario principal.user.userid o target.user.userid Se asigna a principal.user.userid en la mayoría de los casos. Se asigna a target.user.userid en algunos casos concretos (por ejemplo, cuando detect_user_logout_failed es false y detect_policy_change_failed es false).
username_removed target.user.userid Se asigna directamente desde el campo username_removed.
vd principal.administrative_domain Se asigna directamente desde el campo vd.

metadata.vendor_name, metadata.product_name, metadata.event_type, metadata.log_type, network.ip_protocol, security_result.action, security_result.severity y extensions.auth.type se derivan o se definen mediante la lógica del analizador en función de las condiciones descritas en la columna Lógica.

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