Recopila registros de Juniper Junos
En este documento, se describe cómo puedes recopilar registros de Juniper Junos con un reenviador de Operaciones de seguridad de Google.
Para obtener más información, consulta 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 JUNIPER_JUNOS
.
Configura el registro estructurado para un dispositivo SRX de Juniper Networks
El formato de registro estructurado extrae información de los mensajes de registro. El formato del registro cumple con el protocolo Syslog.
- Accede a la CLI de Juniper SRX mediante SSH a su dirección IP de administración.
- Escribe
CLI
en el mensaje de la shell y presiona Intro. - Escribe
configure
y presiona Intro para ingresar al modo de configuración del dispositivo. - Ingresa los detalles de contacto o el punto de referencia del cliente.
Para asignar los campos a la cuenta de usuario, ejecuta los siguientes comandos:
set system syslog host FORWARDER_IP_ADDRESS any info set system syslog host FORWARDER_IP_ADDRESS structured-data
Reemplaza
FORWARDER_IP_ADDRESS
por la dirección IP del reenviador de Operaciones de seguridad de Google.Para habilitar el registro estructurado de los registros de seguridad, usa los siguientes comandos:
set security log mode stream set security log source-address SRC_IP_ADDRESS set security log stream SYSLOG_STREAM_NAME host FORWARDER_IP_ADDRESS set security log stream SYSLOG_STREAM_NAME format sd-syslog
Reemplaza lo siguiente:
SRC_IP_ADDRESS
: Es la dirección IP del dispositivo Juniper SRX.SYSLOG_STREAM_NAME
: Es el nombre que se asigna al servidor de syslog.FORWARDER_IP_ADDRESS
: Es la dirección IP del reenviador de Operaciones de seguridad de Google.
Asegúrate de que el registro esté habilitado en todas las políticas de seguridad. Para habilitar el registro, ejecuta los siguientes comandos:
set security policies from-zone <zone-name1> to-zone <zone-name2> policy <policy-name> then log session-close set security policies from-zone <zone-name1> to-zone <zone-name2> policy <policy-name> then log session-init
Configura el nombre de host en el dispositivo con el siguiente comando:
set system host-name HOSTNAME
Reemplaza
HOSTNAME
por el dispositivo Juniper Networks SRX asignado.Ingresa
commit
para guardar los comandos ejecutados en la configuración.
Configura el reenviador y el syslog de Google Security Operations para transferir registros de Juniper Junos
- Selecciona Configuración de SIEM > Redireccionamientos.
- Haz clic en Agregar nuevo remitente.
- Ingresa un nombre único en el campo Nombre del remitente.
- 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, ingresa un nombre único para el recopilador.
- Selecciona Juniper Junos como el Tipo de registro.
- Selecciona Syslog como el tipo de recopilador.
- Configura los siguientes parámetros de entrada:
- Protocolo: Especifica el protocolo como UDP.
- 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ío de Google Security Operations, consulta la documentación de reenvío de Google Security Operations. Para obtener información sobre los requisitos de cada tipo de reenviador, consulta Configuración del reenviador por tipo. 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 mensajes de syslog de Juniper JUNOS y controla los formatos de par clave-valor y no clave-valor. Usa patrones de grok para hacer coincidir varias estructuras de mensajes, incluidos los registros del firewall, la actividad de SSH y las ejecuciones de comandos, y, luego, asigna los campos extraídos a la UDM. El analizador también controla los registros con formato CEF mediante un archivo de inclusión y realiza acciones específicas según el contenido del mensaje, como combinar direcciones IP y nombres de usuario en los campos de la AUA adecuados.
Tabla de asignación de la UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
DPT |
target.port |
Es el puerto de destino de la conexión de red, convertido en un número entero. |
DST |
target.ip |
Es la dirección IP de destino de la conexión de red. |
FLAG |
additional.fields{}.key : "FLAG", additional.fields{}.value.string_value : Es el valor de FLAG . |
Es la marca de TCP asociada con la conexión de red. |
ID |
additional.fields{}.key : “ID”, additional.fields{}.value.string_value : Valor de ID |
El campo de identificación de IP |
IN |
additional.fields{}.key : "IN", additional.fields{}.value.string_value : Valor de IN |
La interfaz de red entrante. |
LEN |
additional.fields{}.key : "LEN", additional.fields{}.value.string_value : Valor de LEN |
Es la longitud del paquete IP. |
MAC |
principal.mac |
Es la dirección MAC extraída del campo MAC . |
OUT |
additional.fields{}.key : "OUT", additional.fields{}.value.string_value : Valor de OUT |
La interfaz de red saliente. |
PREC |
additional.fields{}.key : "PREC", additional.fields{}.value.string_value : Es el valor de PREC . |
El campo Prioridad en el encabezado IP. |
PROTO |
network.ip_protocol |
Es el protocolo IP que se usa en la conexión de red. |
RES |
additional.fields{}.key : "RES", additional.fields{}.value.string_value : Valor de RES |
Es un campo reservado en el encabezado TCP. |
SPT |
principal.port |
Es el puerto de origen de la conexión de red, convertido en un número entero. |
SRC |
principal.ip |
Es la dirección IP de origen de la conexión de red. |
TOS |
additional.fields{}.key : "TOS", additional.fields{}.value.string_value : Valor de TOS |
El campo de tipo de servicio en el encabezado IP |
TTL |
network.dns.additional.ttl |
Es el valor de tiempo de actividad, convertido en un número entero sin firma. |
URGP |
additional.fields{}.key : "URGP", additional.fields{}.value.string_value : Valor de URGP |
Campo de puntero de urgencia en el encabezado TCP. |
WINDOW |
additional.fields{}.key : "WINDOW_SIZE", additional.fields{}.value.string_value : Valor de WINDOW |
El tamaño de la ventana de TCP. |
action |
security_result.action |
Es la acción que realiza el firewall, extraída del mensaje CEF. |
agt |
observer.ip |
La dirección IP del agente. |
amac |
target.mac |
La dirección MAC del destino, convertida a minúsculas y con guiones reemplazados por dos puntos. |
app |
target.application |
Es la aplicación involucrada en el evento. |
artz |
observer.zone |
La zona horaria del observador. |
atz |
target.location.country_or_region |
La zona horaria de destino. |
categoryBehavior |
additional.fields{}.key : "Category Behavior", additional.fields{}.value.string_value : Valor de categoryBehavior sin barras diagonales |
El comportamiento de la categoría |
categoryDeviceGroup |
additional.fields{}.key : "Category Device Group", additional.fields{}.value.string_value : Valor de categoryDeviceGroup sin barras diagonales |
El grupo de dispositivos de la categoría |
categoryObject |
additional.fields{}.key : “Objeto de categoría”, additional.fields{}.value.string_value : Valor de categoryObject sin barras diagonales |
El objeto de categoría |
categoryOutcome |
additional.fields{}.key : "Category Outcome", additional.fields{}.value.string_value : Valor de categoryOutcome sin barras diagonales |
El resultado de la categoría |
categorySignificance |
additional.fields{}.key : "Significance of category", additional.fields{}.value.string_value : Valor de categorySignificance |
La importancia de la categoría. |
command |
target.process.command_line |
Se ejecutó el comando. |
cs1Label |
additional.fields{}.key : cs1Label , additional.fields{}.value.string_value : Valor del campo CEF correspondiente |
Etiqueta y valor del campo de cadena personalizada 1 del mensaje CEF. |
cs2Label |
additional.fields{}.key : cs2Label , additional.fields{}.value.string_value : Valor del campo CEF correspondiente |
Etiqueta y valor del campo de cadena personalizada 2 del mensaje CEF |
cs3Label |
additional.fields{}.key : cs3Label , additional.fields{}.value.string_value : Es el valor del campo CEF correspondiente. |
Etiqueta y valor del campo de cadena personalizado 3 del mensaje CEF |
cs4Label |
additional.fields{}.key : cs4Label , additional.fields{}.value.string_value : Valor del campo CEF correspondiente |
Etiqueta y valor del campo de cadena personalizado 4 del mensaje CEF |
cs5Label |
additional.fields{}.key : cs5Label , additional.fields{}.value.string_value : Valor del campo CEF correspondiente |
Etiqueta y valor del campo de cadena personalizada 5 del mensaje CEF. |
cs6Label |
additional.fields{}.key : cs6Label , additional.fields{}.value.string_value : Valor del campo CEF correspondiente |
Etiqueta y valor del campo de cadena personalizado 6 del mensaje CEF |
dhost |
target.hostname |
Nombre de host de destino. |
deviceCustomString1 |
additional.fields{}.key : cs1Label , additional.fields{}.value.string_value : Valor de deviceCustomString1 |
Cadena personalizada del dispositivo 1. |
deviceCustomString2 |
additional.fields{}.key : cs2Label , additional.fields{}.value.string_value : Valor de deviceCustomString2 |
Cadena personalizada del dispositivo 2 |
deviceCustomString3 |
additional.fields{}.key : cs3Label , additional.fields{}.value.string_value : Valor de deviceCustomString3 |
Cadena personalizada del dispositivo 3 |
deviceCustomString4 |
additional.fields{}.key : cs4Label , additional.fields{}.value.string_value : Valor de deviceCustomString4 |
Cadena personalizada del dispositivo 4. |
deviceCustomString5 |
additional.fields{}.key : cs5Label , additional.fields{}.value.string_value : Valor de deviceCustomString5 |
Cadena personalizada del dispositivo 5. |
deviceCustomString6 |
additional.fields{}.key : cs6Label , additional.fields{}.value.string_value : Valor de deviceCustomString6 |
Cadena personalizada del dispositivo 6. |
deviceDirection |
network.direction |
La dirección del tráfico de red. |
deviceEventClassId |
additional.fields{}.key : "eventId", additional.fields{}.value.string_value : Es el valor de deviceEventClassId . |
El ID de la clase de evento del dispositivo. |
deviceFacility |
observer.product.subproduct |
La instalación del dispositivo |
deviceProcessName |
about.process.command_line |
Es el nombre del proceso del dispositivo. |
deviceSeverity |
security_result.severity |
La gravedad del dispositivo |
deviceTimeZone |
observer.zone |
La zona horaria del dispositivo. |
deviceVendor |
metadata.vendor_name |
Es el proveedor del dispositivo. |
deviceVersion |
metadata.product_version |
La versión del dispositivo. |
dpt |
target.port |
Es el puerto de destino. |
dst |
target.ip |
La dirección IP de destino. |
duser |
target.user.user_display_name |
El usuario de destino. |
eventId |
additional.fields{}.key : "eventId", additional.fields{}.value.string_value : Es el valor de eventId . |
ID del evento. |
event_time |
metadata.event_timestamp |
Es la hora en la que ocurrió el evento, analizado a partir del mensaje. |
firewall_action |
security_result.action_details |
La acción que se realizó en el firewall |
host |
principal.hostname , intermediary.hostname |
Es el nombre de host del dispositivo que genera el registro. Se usa para el principal y el intermediario en diferentes casos. |
msg |
security_result.summary |
Es el mensaje asociado con el evento, que se usa como resumen del resultado de seguridad. |
name |
metadata.product_event_type |
Es el nombre del evento. |
process_name |
additional.fields{}.key : "process_name", additional.fields{}.value.string_value : Es el valor de process_name . |
Es el nombre del proceso. |
p_id |
target.process.pid |
El ID del proceso, convertido en una cadena. |
sha256 |
principal.process.file.sha256 |
Es el hash SHA256 de un archivo, extraído de la información de la clave SSH2. |
shost |
principal.hostname |
Es el nombre de host de origen. |
source_address |
principal.ip |
La dirección IP de origen. |
source_port |
principal.port |
Es el puerto de origen convertido en un número entero. |
src |
principal.ip |
La dirección IP de origen. |
src_ip |
principal.ip |
La dirección IP de origen. |
src_port |
principal.port |
Es el puerto de origen convertido en un número entero. |
ssh2 |
security_result.detection_fields{}.key : "ssh2", security_result.detection_fields{}.value : Valor de ssh2 |
Información de la clave SSH2 |
subtype |
metadata.product_event_type |
Es el subtipo del evento. |
task_summary |
security_result.description |
Es el resumen de la tarea, que se usa como descripción del resultado de seguridad. |
timestamp |
metadata.event_timestamp |
La marca de tiempo del evento. |
user |
target.user.userid |
Es el usuario asociado con el evento. |
username |
principal.user.userid |
Es el nombre de usuario asociado con el evento. |
user_name |
principal.user.userid |
El nombre de usuario. |
metadata.vendor_name |
Está codificado de forma fija en “Firewall de Juniper”. Está codificado de forma fija en “Firewall de Juniper”. Está codificado de forma fija en "JUNIPER_JUNOS". Se determina según la lógica del analizador en función del contenido del registro. El valor predeterminado es "STATUS_UPDATE" si no es un mensaje CEF y no se identifica ningún otro tipo de evento específico. Se establece en "NETWORK_HTTP" para los mensajes de CEF. Si no hay un campo desc , este campo se completa con el message_description extraído del mensaje de registro sin procesar. |
Cambios
2024-05-02
- Mejoras:
- Se agregaron patrones de Grok para admitir nuevos registros de formato SYSLOG + KV.
2023-10-25
- Mejoras:
- Se agregaron patrones de Grok para analizar registros sin analizar.
- Se asignó "source_port" a "principal.port".
- Se asignó "source_address" a "principal.ip".
- Se asignó "user_name" a "target.user.userid".
- Se asignó "application_name" a "target.application".
- Se asignó "p_id" a "target.process.pid".
- Se agregó la verificación "invalid_pattern" antes de la asignación de KV.
- Se agregó un patrón Grok para asignar "security_result.description" cuando "description_present" es falso.
2023-08-17
- Mejoras:
- Se agregó el patrón Grok a los registros sin analizar.
- Se asignó "msg" a "security_result.summary".
- Se asignó "src_ip" a "principal.ip".
- Se asignó "user" a "target.user.userid".
- Se asignó "username" a "principal.user.userid".
- Se asignó "command" a "target.process.command_line".
- Se asignó "src_port" a "principal.port".
- Se asignó "ssh2" a "security_result.detection_fields".
- Se asignó "sha256" a "principal.process.file.sha256".
- Se asignó "desc" a "sec_result.summary".
- Se asignó "mac-address" a "principal.mac".
- Se asignó "host" a "principal.hostname" si event_type es "STATUS_UPDATE".
2023-01-15
- Mejoras:
- Se modificó el patrón Grok para admitir registros sin analizar que contienen el tipo "UI_CMDLINE_READ_LINE", "UI_COMMIT_PROGRESS", "UI_CHILD_START".
- "UI_CFG_AUDIT_OTHER", "UI_LOGIN_EVENT", "UI_CHILD_STATUS", "UI_LOGOUT_EVENT", "UI_LOAD_EVENT",
- "JTASK_IO_CONNECT_FAILED", "UI_AUTH_EVENT", "UI_NETCONF_CMD", "UI_COMMIT_NO_MASTER_PASSWORD", "UI_CFG_AUDIT_SET", "UI_JUNOSCRIPT_CMD",
- "SNMPD_AUTH_FAILURE", "UI_CFG_AUDIT_NEW", "UI_COMMIT" , "LIBJNX_LOGIN_ACCOUNT_LOCKED", "UI_COMMIT_COMPLETED",
- "PAM_USER_LOCK_LOGIN_REQUESTS_DENIED", "RTPERF_CPU_USAGE_OK", "RTPERF_CPU_THRESHOLD_EXCEEDED", "LIBJNX_LOGIN_ACCOUNT_UNLOCKED",
- "JSRPD_SET_OTHER_INTF_MON_FAIL", "JSRPD_SET_SCHED_MON_FAILURE", "UI_CHILD_WAITPID", "UI_DBASE_LOGIN_EVENT".
2022-05-02
- Nuevo analizador predeterminado.
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.