Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Descripción general de Veriexec

Verified Exec (también conocido como veriexec) es un esquema de firma y verificación de archivos que protege el sistema operativo (SO) de Junos contra software y actividad no autorizados que podrían comprometer la integridad de su dispositivo. Originalmente desarrollado para NetBSD OS, veriexec se adaptó para Junos OS y se habilitó de forma predeterminada desde junos OS versión 7.5 en adelante.

Los archivos autorizados, es decir, ciertos archivos que se envían con Junos OS, tienen una huella digital asociada que veriexec comprueba para determinar si el archivo se puede usar (ejecutar o incluso abrir). Cualquier archivo que no tenga una huella digital válida no puede ser ejecutado o leído por aplicaciones que requieren una entrada verificada.

Tenga en cuenta que /bin/sh no requiere entrada verificada. Se puede utilizar para ejecutar scripts arbitrarios porque, desde una perspectiva de riesgo, son los mismos que los comandos interactivos, lo que ya se controla mediante la autenticación y los permisos del usuario. Sin embargo, si una secuencia de comandos de shell verificada contiene instrucciones para ejecutar una secuencia de comandos arbitraria, es decir, un archivo que no tiene una firma en el manifiesto, se impedirá la ejecución de ese archivo.

Cómo funciona Veriexec

Veriexec proporciona al kernel un manifiesto firmado digitalmente que consta de un conjunto de huellas digitales para todos los ejecutables y otros archivos que deberían permanecer inmutables. El cargador veriexec alimenta el contenido del manifiesto al núcleo solo si la firma digital del manifiesto se verifica correctamente. Luego, el kernel puede verificar si un archivo coincide con su huella digital. Si se aplica veriexec, solo se ejecutarán ejecutables con una huella digital verificada. Los archivos protegidos no se pueden escribir, modificar ni cambiar.

Cada imagen de instalación contiene un manifiesto. El manifiesto es de solo lectura. Contiene entradas como las siguientes:

Si se ha modificado un archivo y la huella digital resultante difiere de la del manifiesto, verá un mensaje de registro, como el siguiente ejemplo:

El mensaje de registro tiene el formato siguiente:

La discordancia de huella digital indica que el archivo se ha modificado. No intente ejecutar el archivo. Podría contener código dañado. Comuníquese con JTAC.

La importancia de Veriexec

Veriexec es una herramienta eficaz e importante para proteger contra aquellos que buscan vulnerar la seguridad del sistema de los enrutadores, conmutadores y firewalls de Juniper Networks. Esto frustra a los actores de amenazas que podrían querer establecer un punto de apoyo en el sistema, obtener acceso no autorizado persistente o, de otro modo, hacer la transición del sistema a un estado de falla. Si estos actores pueden ejecutar binarios arbitrarios sin firmar, pueden hacer modificaciones no autorizadas y ejecutar malware u otro código que infrinja la política de seguridad.

Los clientes pueden agregar código firmado y autorizado con veriexec aplicado a Junos OS mediante el uso de JET SDK. Para obtener más información sobre la solución SDK, consulte Desarrollo de aplicaciones JET en el dispositivo en la Guía para desarrolladores del kit de herramientas de extensión de Juniper.

Cómo verificar si Se aplica Veriexec en un dispositivo que ejecuta Junos OS

Las siguientes subsecciones ofrecen procedimientos sobre cómo comprobar si se aplica o no veriexec.

Algunas plataformas de Junos OS ofrecen una versión opcional de Junos OS con la aplicación veriexec deshabilitada (conocida como Junos Enhanced Automation o Junos Flex). Para obtener más información acerca de la automatización mejorada de Junos, consulte Descripción general de las mejoras de automatización de Junos en dispositivos que ejecutan Junos OS con automatización mejorada.

Utilice el comando sysctl security.mac.veriexec.state para Junos OS versión 15.1 y posteriores

Los administradores pueden comprobar si veriexec se cumple ejecutando los siguientes comandos desde el shell de CLI de Junos OS:

  1. Inicie el shell.

  2. Utilice el sysctl security.mac.veriexec.state comando.

    Si se aplica veriexec, el resultado es security.mac.veriexec.state: loaded active enforce. Si no se aplica veriexec, el resultado es security.mac.veriexec.state: loaded active.

Nota:

El security.mac.veriexec.state comando solo es válido en Junos OS versión 15.1 y posteriores.

Otra forma de comprobar si Veriexec está funcionando

Puede confirmar si veriexec está funcionando copiando un archivo autorizado (aquí, /usr/bin/id), a una nueva ubicación, como se muestra a continuación. Veriexec impide la operación porque, aunque hay una huella digital válida para /usr/bin/id, no hay huella digital para /tmp/id aunque el archivo sea idéntico. Lo que está sucediendo es que veriexec evalúa las propiedades subyacentes de Linux del archivo, que no son idénticas después de ser copiado, en lugar del archivo en sí.

  1. Inicie el shell.

  2. Cambie los directorios y, a continuación, copie el archivo de ejemplo , /usr/bin/id a una nueva ubicación.

Resultados

Si se aplica veriexec, aparecerá un error de autenticación. Si no es así, el archivo se ejecutará con normalidad.

Salida cuando se aplica veriexec (el archivo está bloqueado):

Salida cuando no se aplica veriexec (el archivo se copia):

Cargador compatible con Veriexec para dispositivos de la serie SRX

El cargador compatible con veriexec instala una imagen de Junos OS mediante el install comando desde un servidor TFTP o un dispositivo de almacenamiento USB.

  • Instale la imagen de Junos OS desde un servidor tftp mediante el install tftp://[host]/ comando de instalación.

  • Instale la imagen de Junos OS desde un dispositivo de almacenamiento USB mediante el install file:/// comando install.

El cargador compatible con veriexec valida la imagen de Junos OS. El cargador compatible con Veriexec solo inicia una nueva imagen de Junos OS con huellas digitales y no arranca la imagen existente de Junos OS sin huellas digitales o kernel. Puede usar la nextboot función para comprobar el dispositivo de arranque actual.

Bootupgrade es una herramienta disponible en el paquete Junos OS para admitir la actualización del firmware del BIOS. Puede usar el bootupgrade comando para actualizar, comprobar uboot, cargar manualmente e instalar el cargador compatible con Veriexec de mayor tamaño. El bootupgrade -c loader comando imprime la cadena de versión para el cargador actual.

Antes de instalar el cargador compatible con veriexec en la imagen de Junos OS, se lleva a cabo una identificación de huellas digitales de Junos OS en ambas particiones de raíz dual. Solo cuando ambas particiones de raíz dual tienen Junos OS con huellas digitales, se permite la instalación del cargador compatible con veriexec.

Instale el cargador compatible con veriexec desde el shell de CLI de Junos OS:

  1. Inicie el shell.

  2. Utilice el bootupgrade -l /boot/veloader comando para instalar el cargador compatible con veriexec.

  3. Puede ver diferentes escenarios aquí:

    • Para Junos OS versión 20.3R1 y posteriores, use request system software add /var/tmp/xxx.tgz no-copy no-validate el comando para instalar Junos OS con huellas digitales normalmente.

    • Para las versiones de Junos OS anteriores a 20.3R1, si el cargador compatible con veriexec está en uso y la imagen de Junos OS de destino de las versiones anteriores no es compatible con el cargador compatible con veriexec, use el request system software add /var/tmp/xxx.tgz no-copy no-validate comando para degradar automáticamente al cargador antiguo desde el cargador compatible con veriexec.

    • Utilice el request system software add /var/tmp/xxx comando para comprobar si el paquete de Junos OS es compatible para la instalación.

      La instalación termina porque el cargador compatible con veriexec no es compatible con las versiones de Junos OS anteriores a 20.3R1.