Recopila registros de Pulse Secure
En este documento, se describe cómo puedes recopilar registros de Pulse Secure con un reenviador 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 al formato estructurado del UDM. 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, haz lo siguiente:
- Configura la VPN de Pulse Secure versión 8.3R3 y anteriores
- Configura la VPN de Pulse Secure versión 8.3R4 y posteriores
Configura la VPN de Pulse Secure versión 8.3R3 y anteriores
- Accede a la consola de Pulse Connect Secure.
- En la consola de Pulse Connect Secure, selecciona Sistema > Registro/supervisión > Configuración. Puedes seleccionar Configuración en la pestaña Eventos, Acceso de los usuarios o Acceso de administrador.
- En la sección Seleccionar eventos para registrar, selecciona todas las casillas de verificación que correspondan a los eventos.
- En la sección Servidores de Syslog, haz lo siguiente:
- En el campo Nombre o IP del servidor, especifica la dirección IP del reenviador de Google Security Operations.
- En la lista Facility, selecciona LOCAL0. La lista Facility proporciona ocho instalaciones: de
LOCAL0
aLOCAL7
. Puedes usar uno de estos parámetros de configuración para asignar instalaciones en tu servidor de syslog. - En la lista Tipo, selecciona UDP o TCP.
- Haz clic en Agregar.
- Opcional: Para agregar varios servidores syslog para eventos, acceso de administrador o registros de acceso de usuarios, repite los pasos del 2 al 4.
- Haz clic en Guardar cambios.
- Para asegurarte de que el formato de registro estándar se establezca de forma predeterminada, haz lo siguiente:
- Abre la consola de Pulse Connect Secure.
- En las pestañas Eventos, Acceso de los usuarios y Acceso de los administradores, 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 VPN de Pulse Secure versión 8.3R4 y posteriores
- En la consola de Pulse Connect Secure, haz clic en la pestaña Eventos, Acceso de los usuarios o Acceso de los administradores y, luego, establece Filtros en Nuevo filtro.
- 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 la VPN de Pulse Secure
- 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 Sistema > Registro/supervisión > Configuración. Puedes seleccionar Configuración en la pestaña Eventos, Acceso de los usuarios o Acceso de administrador.
- En la sección Seleccionar eventos para registrar, 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 Syslog server, ingresa información sobre los servidores syslog.
- En la sección Servidores de Syslog, haz lo siguiente:
- En el campo Nombre o IP del servidor, ingresa el nombre del servidor o la dirección IP del reenviador de Google Security Operations.
- En la lista Facility, selecciona LOCAL0.
- En la lista Filtro, selecciona el filtro que creaste antes.
- Haz clic en Agregar.
- Opcional: Para agregar varios servidores syslog para eventos, acceso de administrador o registros de acceso de usuarios, 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 Eventos, Acceso de usuario o Acceso de administrador y, luego, selecciona Filtros.
- 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 Sistema > Registro/supervisión y, luego, selecciona la pestaña Configuración.
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 o 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 Facility, selecciona un nivel de facilidad del servidor de 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, selecciona el certificado de cliente instalado que se usará para autenticar el servidor de syslog. Los certificados de cliente se definen en la ventana Configuration > Certificates > Client auth certificates. Los certificados de cliente deben instalarse en el dispositivo para poder usarlos. Comunícate con tu autoridad certificadora para obtener el certificado.
En la lista Filtro, selecciona Personalizado.
Haz clic en Agregar.
Configura el reenviador de Google Security Operations para transferir registros de Pulse Secure
- Selecciona Configuración de SIEM > Redireccionamientos.
- Haz clic en Agregar nuevo remitente.
- En el campo Nombre del reenviador, ingresa un nombre único para el reenviador.
- Haz clic en Enviar y, luego, en Confirmar. Se agregará el reenviador 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 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.
- Haz clic en Enviar.
Para obtener más información sobre los reenvíos de Google Security Operations, consulta Cómo administrar las configuraciones de reenvío a través de la IU de Google Security Operations.
Si tienes problemas cuando creas reenvío de correo, 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 la VPN de Pulse Secure y controla los formatos de registro de eventos de Windows y syslog. Normaliza diversas estructuras de registro en un formato común, clasificando eventos como accesos, salidas, conexiones y cambios de política, y enriqueciéndolos con datos contextuales, como usuarios-agentes, direcciones IP y marcas de tiempo.
Tabla de asignación de la UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
acción | security_result.action_details |
Se asignan directamente desde el campo action . |
aplicación | principal.application |
Se asignan 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 asignan directamente desde el campo client_host . |
cmd | principal.process.command_line |
Se asignan directamente desde el campo cmd . |
connection_status | security_result.detection_fields.value.string_value |
Se asignan directamente desde el campo connection_status . |
data_time | metadata.event_timestamp.seconds |
Se analiza desde el campo data_time con varios formatos de marca de tiempo (dd-MM-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 asignan directamente desde el campo devname . |
dstip | target.ip , target.asset.ip |
Se asignan directamente desde el campo dstip . |
dstport | target.port |
Se asigna directamente desde el campo dstport y se convierte en 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 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 correspondientes. De lo contrario, se asigna a los campos de nombre de host correspondientes. |
event_type | metadata.product_event_type |
Se asignan directamente desde el campo event_type . |
failure_reason | security_result.description |
Se asignan directamente desde el campo failure_reason . Si el mensaje contiene "because host", el texto "host" se agrega al principio del motivo de la falla. |
has_principal | event.idm.read_only_udm.principal (presencia) |
Se establece como "verdadero" si se propagan campos principales, "falso" de lo contrario. Se deriva de la lógica del analizador. |
has_target | event.idm.read_only_udm.target (presencia) |
Se establece como "verdadero" si se propagan campos de destino; de lo contrario, se establece como "falso". 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 se propaga target.user.userid , "false" de lo contrario. Se deriva de la lógica del analizador. |
host_ip | principal.ip , principal.asset.ip |
Se asignan 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 asignan directamente desde el campo http_method . |
http_response | network.http.response_code |
Se asigna directamente desde el campo http_response y se convierte en número entero. |
info_desc | about.labels.value |
Se asignan directamente desde el campo info_desc . |
ip_new | target.ip , target.asset.ip |
Se asignan directamente desde el campo ip_new . |
level | 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 procesar de level también se asigna a security_result.severity_details . |
logid | metadata.product_log_id |
Se asignan directamente desde el campo logid . |
locip | principal.ip , principal.asset.ip |
Se asignan directamente desde el campo locip . |
mensaje | metadata.description |
Se usa para extraer varios campos con filtros grok y kv. Si el mensaje contiene "EventID", se procesará 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, el tipo de producto se extrae y se asigna a metadata.product_event_type , y el mensaje restante se asigna a metadata.description . |
msg_hostname | principal.hostname , principal.asset.hostname |
Se asignan directamente desde el campo msg_hostname . |
msg_ip | principal.ip , principal.asset.ip |
Se asignan 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 número entero. |
policyid | security_result.rule_id |
Se asignan directamente desde el campo policyid . |
policyname | security_result.rule_name |
Se asignan directamente desde el campo policyname . |
policytype | security_result.rule_type |
Se asignan 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 "Severity" (consulta la sección Lógica). |
prod_name | metadata.product_name |
Se asignan directamente desde el campo prod_name . |
product_type | metadata.product_event_type |
Se asignan directamente desde el campo product_type . |
product_version | metadata.product_version |
Se asignan 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 IP mediante una búsqueda. |
pwd | principal.process.file.full_path |
Se asignan directamente desde el campo pwd . |
dominio | principal.group.attribute.labels.value |
Se asignan 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 asignan directamente desde el campo remip . |
resource_name | target.resource.name |
Se asignan directamente desde el campo resource_name después de quitar los espacios en blanco iniciales o finales y los guiones. |
resource_status | security_result.description |
Se asignan directamente desde el campo resource_status . |
resource_user_group | principal.user.group_identifiers |
Se asignan directamente desde el campo resource_user_group . |
resource_user_name | principal.user.userid |
Se asignan directamente desde el campo resource_user_name . |
roles | principal.user.group_identifiers |
Se asignan 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 asignan directamente desde el campo session_id . |
sessionid | network.session_id |
Se asignan directamente desde el campo sessionid . |
srcip | principal.ip , principal.asset.ip |
Se asignan directamente desde el campo srcip . |
srcport | principal.port |
Se asigna directamente desde el campo srcport y se convierte en 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 asignan directamente desde el campo target_file . |
target_host | target.hostname , target.asset.hostname |
Se asignan directamente desde el campo target_host . |
target_ip | target.ip , target.asset.ip |
Se asignan directamente desde el campo target_ip . |
target_port | target.port |
Se asigna directamente desde el campo target_port y se convierte en número entero. |
target_url | target.url |
Se asignan directamente desde el campo target_url . |
hora | metadata.event_timestamp.seconds |
Se analiza desde el 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 asignan directamente desde el campo u_observer_ip . |
u_prin_ip | principal.ip , principal.asset.ip |
Se asignan directamente desde el campo u_prin_ip . |
usuario | target.user.userid |
Se asignan 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 |
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 Realm. |
user_ip | principal.ip , principal.asset.ip |
Se asignan 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 |
Se asigna a principal.user.userid en la mayoría de los casos. 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 asignan directamente desde el campo username_removed . |
vd | principal.administrative_domain |
Se asignan directamente desde el campo vd . |
La lógica del analizador deriva o establece 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
en función de las condiciones que se describen en la columna Lógica.
Cambios
2024-05-27
- Se asignó "observer_hostname" a "observer.hostname".
- Cuando “dvc_hostname” es una dirección IP válida, se asigna a “principal.ip”, de lo contrario, se asigna a “principal.hostname”.
- Se asignaron "priority_code", "Syslog_version" y "info_desc" a "about.labels".
- Se asignó "prod_name" a "metadata.product_event_type".
2024-04-16
- Se agregó un nuevo patrón GROK para analizar un nuevo patrón de registros SYSLOG.
- Se asignó "connection_status" a "security_result.detection_fields".
2024-02-26
- Se agregó un bloque "kv" para analizar datos de par clave-valor.
- Se asignó "username" a "target.user.userid".
- Se agregó una verificación condicional para "message_info".
- Se asignó "u_prin_ip" a "principal.ip".
- Se asignó "u_observer_ip" a "observer.ip".
2023-11-07
- Corrección de errores:
- Se modificó la asignación de "observer_host" de "observer.hostname" a "additional.fields".
2023-08-19
- Se agregó un patrón Grok para analizar los registros con errores.
2023-05-26
- Se agregó un patrón de Grok para admitir los nuevos registros de syslog.
2023-01-06
- Se modificó grok para analizar "product_type" y se asignó a "metadata.product_event_type".
2022-10-25
- Se agregaron nuevos patrones de Grok para “message_info” para extraer session_id.
- Se asignó "session_id" a "network.session_id".
- Se cambió target.ip a principal.ip cuando detect_policy_change_failed es falso.
- Se cambió target.mac a principal.mac cuando detect_policy_change_failed es falso.
2022-10-12
- Mejora: Se agregaron asignaciones para los siguientes campos:
- Se extrajo el valor de la IP del campo "msg" y se asignó a "principal.ip".
- Se extrajo el valor del nombre de host del campo "msg" y se asignó a "principal.hostname".
- Se asignó "user" a "target.user.userid".
- Se asignó "realm" a "principal.group.attribute.labels".
- Se asignó "roles" a "principal.user.group_identifiers".
- Se modificó el valor de "metadata.event_type" de "GENERIC_EVENT" a "USER_UNCATEGORIZED".
2022-10-03
- Mejora: Se analizaron los registros que contienen "sudo".
- Se agregó compatibilidad con nuevos formatos de registro de tipo de par clave-valor.
2022-07-01
- Mejora: Se generó un evento nuevo para el ID de evento: 4624
- Se cambió metadata.event_type de "GENERIC_EVENT" a "STATUS_UPDATE" o "NETWORK_CONNECTION", donde "principal.ip", "target.ip" o "principal.hostname" no son nulos.
13-4-2022
- Mejora: Se agregaron asignaciones para campos nuevos en el tipo de evento GENERIC_EVENT:
- user_ip a event.idm.read_only_udm.principal.ip.
- user_group_identifier a event.idm.read_only_udm.target.user.group_identifiers.
- Se modificó la marca de tiempo en todos los event_type para incluir la zona horaria.
- Se modificó el campo user_ip, target_ip para los tipos de eventos GENERIC y NETWORK_CONNECTION.