Recopila registros de Pulse Secure
En este documento, se describe cómo recopilar registros de Pulse Secure con un retransmisor de Google Security Operations.
Para obtener más información, consulta la descripción general de la transferencia de datos a Google Security Operations.
Una etiqueta de transferencia 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 transferencia PULSE_SECURE_VPN
.
Configura la VPN de Pulse Secure
Para configurar la VPN de Pulse Secure, realiza una de las siguientes acciones:
- Configura la versión 8.3R3 y versiones anteriores de Pulse Secure VPN
- Configura la versión 8.3R4 y posteriores de Pulse Secure VPN
Configura la versión 8.3R3 y versiones anteriores de Pulse Secure VPN
- Accede a la consola de Pulse Connect Secure.
- En la consola de Pulse Connect Secure, selecciona System > Log/monitoring > Settings. Puedes seleccionar Configuración en las pestañas Eventos, Acceso de usuario o Acceso de administrador.
- En la sección Selecciona los eventos que se registrarán, selecciona todas las casillas de verificación que correspondan a los eventos.
- En la sección Servidores Syslog, haz lo siguiente:
- En el campo Nombre o IP del servidor, especifica la dirección IP del reenvío de Google Security Operations.
- En la lista Facility, selecciona LOCAL0. La lista Facility proporciona ocho instalaciones:
LOCAL0
aLOCAL7
. Puedes usar uno de estos parámetros de configuración para asignar instalaciones en tu servidor syslog. - En la lista Type, selecciona UDP o TCP.
- Haz clic en Agregar.
- Opcional: Para agregar varios servidores syslog para los registros de eventos, de acceso de administrador o de acceso de usuario, repite los pasos del 2 al 4.
- Haz clic en Guardar cambios.
- Para asegurarte de que el formato de registro estándar esté establecido como predeterminado, haz lo siguiente:
- Abre la consola de Pulse Connect Secure.
- En las pestañas Eventos, Acceso de usuario y Acceso de administrador, establece Filtros en Estándar.
- Si el filtro estándar no está definido como el filtro predeterminado, haz clic en Establecer como predeterminado.
- Haz clic en Guardar.
Configura la versión 8.3R4 y posteriores de Pulse Secure VPN
- En la consola de Pulse Connect Secure, haz clic en la pestaña Events, User access o Admin access y, luego, configura Filters como New filter.
- En el campo Nombre del filtro, ingresa un nombre para el filtro.
En la sección Formato de exportación, selecciona Personalizado y, luego, ingresa el siguiente formato en el campo:
[SecureConnect] %date% %time% - %node% - [%sourceip%] %user%(%realm%)[%role%] - %msg%
Haz clic en Guardar.
Según la versión de tu dispositivo para habilitar la configuración de syslog, haz una de las siguientes acciones:
- Habilita el registro de syslog en Pulse Secure VPN
- Habilita el registro de syslog en Ivanti Connect Secure
Habilita el registro de syslog en la VPN de Pulse Secure
- En la consola de Pulse Connect Secure, selecciona System > Log/monitoring > Settings. Puedes seleccionar Configuración en las pestañas Eventos, Acceso de usuario o Acceso de administrador.
- En la sección Selecciona los eventos que se registrarán, selecciona todas las casillas de verificación, excepto las de Acceso HTML5, Mensajes de control de admisión y Solicitudes no autenticadas.
- En el campo Servidor Syslog, ingresa información sobre los servidores Syslog.
- En la sección Servidores Syslog, haz lo siguiente:
- En el campo Nombre/IP del servidor, ingresa el nombre del servidor o la dirección IP del retransmisor de Google Security Operations.
- En la lista Facility, selecciona LOCAL0.
- En la lista Filter, selecciona el filtro que creaste anteriormente.
- Haz clic en Agregar.
- Opcional: Para agregar varios servidores syslog para los registros de eventos, acceso de administrador o acceso de usuario, repite los pasos del 2 al 4.
- Haz clic en Guardar cambios.
Habilita el registro de syslog en Ivanti Connect Secure
- En la consola de Pulse Connect Secure, haz clic en la pestaña Events, User access o Admin access y, luego, selecciona Filters.
- Haz clic en la pestaña Filtro nuevo.
En la sección Formato de exportación, selecciona Personalizado y, luego, ingresa el siguiente formato en el campo:
[SecureConnect] %date% %time% - %node% - [%sourceip%] %user%(%realm%)[%role%] - %msg%
Haz clic en Guardar.
Haz clic en System > Log/monitoring y, luego, selecciona la pestaña Settings.
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.
Especifica la configuración del servidor de la siguiente manera:
En el campo Nombre/IP del servidor, especifica el nombre de dominio completamente calificado o la dirección IP del reenviador de Google Security Operations para el servidor syslog.
Si seleccionas Seguridad de la capa de transporte (TLS) en la lista de tipos, el nombre del servidor debe coincidir con el CN en el subjectDN del certificado obtenido del servidor.
En la lista Instalación, selecciona un nivel de instalación del servidor syslog.
En la lista Tipo, selecciona el tipo de conexión al servidor de Syslog como 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 se usará para autenticar el servidor de syslog. Los certificados de cliente se definen en la ventana Certificados de autenticación de cliente de Configuración > Certificados >. Los certificados de cliente deben instalarse en el dispositivo antes de poder usarlos. Comunícate con la autoridad certificadora para obtener el certificado.
En la lista Filtro, selecciona Personalizado.
Haz clic en Agregar.
Configura el reenvío de Google Security Operations para transferir registros de Pulse Secure
- Selecciona SIEM Settings > Forwarders.
- Haz clic en Agregar un nuevo reenvío.
- En el campo Nombre del reenviador, ingresa un nombre único para el reenviador.
- Haz clic en Enviar y, luego, en Confirmar. Se agregará el reenvío y aparecerá la ventana Add collector configuration.
- En el campo Nombre del recopilador, escribe un nombre único para el recopilador.
- Selecciona Pulse Secure como el Tipo de registro.
- Selecciona Syslog como el Tipo de recopilador.
- Configura los siguientes parámetros de entrada obligatorios:
- Protocolo: 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 en el que 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.
- Haz clic en Enviar.
Para obtener más información sobre los reenvíadores de Google Security Operations, consulta Administra la configuración de los reenvíadores a través de la IU de Google Security Operations.
Si tienes problemas para crear reenvíos, comunícate con el equipo de asistencia de Operaciones de seguridad de Google.
Referencia de la asignación de campos
Este analizador extrae campos de los registros de VPN de Pulse Secure y controla los formatos de registros de eventos de Windows y syslog. Normaliza diversas estructuras de registros en un formato común, categoriza eventos como accesos, cierres de sesión, conexiones y cambios en las políticas, y los enriquece con datos contextuales como usuarios-agente, 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 . |
aplicación | 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 número entero sin signo. |
bytes_written | network.sent_bytes |
Se asigna directamente desde el campo bytes_written y se convierte en un número 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 analizó 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 asigna directamente desde el campo dstport y se convierte en un número entero. |
dstcountry | target.location.country_or_region |
Se asigna directamente desde el campo dstcountry si no está reservado o vacío. |
duración | network.session_duration.seconds |
Se asigna directamente desde el campo duration y se convierte 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 de IP respectivos. De lo contrario, se asigna a los campos de nombre de host respectivos. |
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 "porque el host", el texto "host" se antepone al motivo del error. |
has_principal | event.idm.read_only_udm.principal (presencia) |
Se establece como "true" si se completó algún campo principal; de lo contrario, se establece como "false". Se deriva de la lógica del analizador. |
has_target | event.idm.read_only_udm.target (presencia) |
Se establece como "true" si se completó algún campo de destino; de lo contrario, se establece como "false". Se deriva de la lógica del analizador. |
has_target_user | event.idm.read_only_udm.target.user.userid (presencia) |
Se establece en "true" si target.user.userid está completado y en "false" en caso contrario. Se deriva 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 y reemplaza 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 asigna directamente desde el campo http_response y se convierte 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 . |
level | security_result.severity , security_result.severity_details |
La security_result.severity se deriva del campo level (“error”/“advertencia” -> ALTA, “aviso” -> MEDIA, “información”/“info” -> BAJA). El valor sin procesar 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 con 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 de otra manera en patrones de Grok más específicos. |
msg | metadata.product_event_type , metadata.description |
Si el campo msg está presente, se extrae el tipo de producto 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 del usuario-agente se asigna a network.http.user_agent , el usuario-agente 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 asigna directamente desde el campo network_duration y se convierte 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 derivar about.labels.value para la clave "Gravedad" (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 . |
protocolo | network.ip_protocol |
Se asigna a network.ip_protocol después de convertirse en un nombre de protocolo de IP a través de 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 número entero sin signo. |
remip | target.ip |
Se asigna directamente desde el campo remip . |
resource_name | target.resource.name |
Se asigna directamente desde el campo resource_name después de quitar los espacios en blanco y los guiones iniciales o 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 número 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 asigna directamente desde el campo srcport y se convierte en un número entero. |
srccountry | principal.location.country_or_region |
Se asigna directamente desde el campo srccountry si no está reservado o vacío. |
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 asigna directamente desde el campo target_port y se convierte en un número entero. |
target_url | target.url |
Se asigna directamente desde el campo target_url . |
hora | 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 target_ip o target_host están presentes, 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 del usuario-agente se asigna a network.http.user_agent , y el usuario-agente analizado se asigna a network.http.parsed_user_agent . |
user_group_identifier | target.user.group_identifiers o principal.user.group_identifiers |
En la mayoría de los casos, se asigna a target.user.group_identifiers . Se asigna a principal.user.group_identifiers en los eventos de cambio de IP (USER_UNCATEGORIZED) y de restricciones de Realm. |
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 está vacío, toma el valor de u_event_source_ip . |
nombre de usuario | principal.user.userid o target.user.userid |
En la mayoría de los casos, se asigna a principal.user.userid . Se asigna a target.user.userid en algunas situaciones específicas (p.ej., cuando detect_user_logout_failed es falso y detect_policy_change_failed es falso). |
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 establecen según la lógica del analizador en función de las condiciones que se describen en la columna Logic.
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.