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 actividades no autorizados que puedan comprometer la integridad de su dispositivo. Originalmente desarrollado para el sistema operativo NetBSD, veriexec fue adaptado para Junos OS y habilitado de forma predeterminada desde Junos OS versión 7.5 en adelante.

Los archivos autorizados, es decir, ciertos archivos que se suministran 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 carezca de 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 una entrada verificada. Se puede usar para ejecutar scripts arbitrarios porque, desde una perspectiva de riesgo, son lo mismo que los comandos interactivos, que ya se controlan a través de la autenticación y los permisos del usuario. Sin embargo, si una secuencia de comandos de shell comprobada 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 consiste en un conjunto de huellas digitales para todos los ejecutables y otros archivos que deben permanecer inmutables. El cargador veriexec alimenta el contenido del manifiesto al kernel solo si la firma digital del manifiesto se verifica correctamente. El kernel puede verificar si un archivo coincide con su huella digital. Si se está aplicando 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 siguiente formato:

La falta de coincidencia de huellas digitales indica que el archivo se ha modificado. No intente ejecutar el archivo. Podría contener código dañado. Comuníquese con el JTAC.

La importancia de Veriexec

Veriexec es una herramienta eficaz e importante para protegerse contra aquellos que buscan violar la seguridad del sistema de enrutadores, conmutadores y firewalls de Juniper Networks. Frustra a los actores de amenazas que podrían querer establecer un punto de apoyo en el sistema, obtener acceso no autorizado persistente o hacer la transición del sistema a un estado de falla. Si estos actores pueden ejecutar binarios arbitrarios sin firmar, pueden realizar 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 SDK de JET. 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 Veriexec se aplica en un dispositivo que ejecuta Junos OS

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

Algunas plataformas Junos OS ofrecen una versión opcional de Junos OS con la aplicación veriexec deshabilitada (denominada Junos Enhanced Automation o Junos Flex). Para obtener más información acerca de Junos Enhanced Automation, consulte Descripción general de las mejoras de Junos Automation 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 se aplica veriexec ejecutando los siguientes comandos desde el shell de la 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 copiadas, 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 está aplicando veriexec, aparece un error de autenticación. Si no es así, el archivo se ejecutará normalmente.

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

Salida cuando veriexec no se aplica (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 de 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 install.

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

El cargador compatible con veriexec valida la imagen de Junos OS. El cargador compatible con veriexec arranca solo una nueva imagen de Junos OS con huellas digitales y no arranca la imagen de Junos OS existente sin huellas digitales ni kernel. Puede utilizar 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 del 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 la CLI de Junos OS:

  1. Inicie el shell.

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

  3. Puedes 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 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 para versiones anteriores no es compatible con el cargador compatible con veriexec, utilice 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 con la instalación.

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