Recopila registros de Juniper Junos

Compatible con:

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.

  1. Accede a la CLI de Juniper SRX mediante SSH a su dirección IP de administración.
  2. Escribe CLI en el mensaje de la shell y presiona Intro.
  3. Escribe configure y presiona Intro para ingresar al modo de configuración del dispositivo.
  4. Ingresa los detalles de contacto o el punto de referencia del cliente.
  5. 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.

  6. 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.

  7. 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
    
    
  8. 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.

  9. 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

  1. Selecciona Configuración de SIEM > Redireccionamientos.
  2. Haz clic en Agregar nuevo remitente.
  3. Ingresa un nombre único en el campo Nombre del remitente.
  4. Haz clic en Enviar y, luego, en Confirmar. Se agregará el reenviador y aparecerá la ventana Add collector configuration.
  5. En el campo Nombre del recopilador, ingresa un nombre único para el recopilador.
  6. Selecciona Juniper Junos como el Tipo de registro.
  7. Selecciona Syslog como el tipo de recopilador.
  8. 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.
  9. 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.