Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Firma y verificación de archivos Verified Exec (Veriexec) para Junos OS

Obtenga información sobre la firma y verificación de archivos de Veriexec, los beneficios y cómo usarlos.

Para proteger el sistema operativo de Junos (OS) del software no autorizado y de actividades que podrían comprometer la integridad del dispositivo, Verified Exec (Veriexec) proporciona un marco de verificación y firma de archivos que garantiza que solo se ejecute software autorizado y confiable. Junos OS adapta el marco Veriveec, desarrollado originalmente para NetBSD, y lo habilita de forma predeterminada para ayudar a garantizar la integridad del software a través de la verificación de archivos.

Veriexec utiliza una huella digital asociada con cada archivo autorizado de Junos OS para verificar su integridad y determinar si el archivo se puede abrir o ejecutar.

Veriexec ayuda a proteger los componentes críticos del software al verificar su integridad antes de que sean utilizados por el sistema, incluyendo:

  • El kernel
  • Módulos del kernel
  • Archivos ejecutables
  • Bibliotecas compartidas
  • Paquetes de software
  • Otros archivos del sistema protegidos

Cómo funciona Veriexec

Veriexec usa un manifiesto firmado digitalmente que contiene huellas digitales de ejecutables y otros archivos que deben permanecer inmutables.

El proceso de verificación suele seguir estos pasos:

  1. El cargador de Veriexec verifica las firmas digitales asociadas con el manifiesto.
  2. Después de una verificación exitosa, el cargador proporciona el contenido del manifiesto al kernel.
  3. El sistema verifica el kernel durante el inicio.
  4. El sistema verifica los módulos del kernel cuando se cargan, ya sea durante el inicio o durante la operación del sistema.
  5. El kernel verifica que los archivos coincidan con sus huellas dactilares esperadas antes de permitir su uso.

Veriexec requiere que el kernel, la imagen del sistema de archivos raíz y los módulos del kernel pasen la verificación antes de que el sistema pueda usarlos.

Si la aplicación de Veriexec está habilitada, solo se pueden ejecutar ejecutables con huellas dactilares verificadas. Además, los archivos protegidos no se pueden escribir, modificar ni cambiar.

Alcance de la verificación

Veriexec verifica la integridad del software en múltiples etapas:

Componente Etapa de verificación
Núcleo Durante el inicio del sistema
Imagen raíz del sistema de archivos Durante el inicio del sistema
Módulos del kernel Cuando se carga durante el inicio o el tiempo de ejecución
Paquetes de software Antes de la instalación
Archivos protegidos Durante el tiempo de ejecución antes del uso

Antes de la instalación, el marco Veriexec verifica que un paquete de software no haya sido alterado y que se pueda confiar en él. La verificación de paquetes y la verificación en tiempo de ejecución utilizan el mismo marco Veriexec y admiten los mismos algoritmos hash.

Consideraciones sobre la ejecución de scripts

  • Veriexec bloquea un script de shell verificado para que no ejecute un script sin firmar que no aparece en el manifiesto.

  • Puede usar el archivo /bin/sh para ejecutar scripts arbitrarios. Desde una perspectiva de seguridad, estos scripts se tratan de manera similar a los comandos interactivos porque la ejecución se controla a través de la autenticación y los permisos del usuario.

Fallas de verificación

Si falta una huella digital o es incorrecta, el cargador o el kernel rechazan el archivo. El impacto depende del tipo de archivo y su función en el sistema.

Cuando la verificación falla:

  • El cargador o kernel rechaza el archivo afectado.
  • El impacto varía en función de la importancia del archivo.
  • De forma predeterminada, el cargador omite los archivos que no superan la verificación.
  • Opcionalmente, puede configurar el cargador para detener el proceso de arranque cuando encuentre un hash incorrecto.

Algoritmos de manifiesto y hash

Cada imagen de instalación contiene un manifiesto de solo lectura que almacena las huellas digitales y los atributos relacionados de los archivos protegidos.

Los ejemplos de huellas digitales de este tema utilizan hash SHA-1 solo con fines ilustrativos. Veriexec admite algoritmos hash SHA-1, SHA-256, SHA-384 y SHA-512. La versión y la plataforma de Junos OS determinan qué algoritmo hash utiliza Veriexec para la verificación.

El manifiesto identifica cada archivo protegido y almacena su huella digital esperada y los atributos asociados. El manifiesto contiene entradas como las siguientes:

Huellas dactilares no coincidentes y mensajes de registro

Cuando la huella digital calculada de un archivo no coincide con la huella digital almacenada en el manifiesto, Veriexec genera un mensaje de registro.

El mensaje de registro tiene el formato siguiente:

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

Una no coincidencia de huellas digitales indica que el contenido del archivo no coincide con la huella digital de confianza almacenada en el manifiesto. Esta discrepancia puede producirse debido a daños en los archivos, problemas de almacenamiento o modificaciones no autorizadas.

No se puede confiar en los archivos críticos que no pasan la verificación. Comuníquese con el JTAC para obtener orientación.

Beneficios de Veriexec

  • Sistemas seguros: proteja los enrutadores, conmutadores y firewalls de Juniper Networks de las infracciones de seguridad.

  • Evite el acceso no autorizado: impida que los actores de amenazas obtengan acceso persistente y no autorizado o que causen fallas en el sistema.

  • Evitar la ejecución de malware: bloquee las modificaciones no autorizadas y el malware mediante la prevención de la ejecución de binarios sin firmar.

  • Admitir código autorizado: agregue código firmado y autorizado a Junos OS con la aplicación de Veriexec mediante el uso del SDK de JET. Para obtener más información acerca de la solución SDK, consulte la Guía para desarrolladores del kit de herramientas de extensión de Juniper.

Verifique el estado de cumplimiento de Veriexec

En las plataformas compatibles, Junos OS ofrece una versión opcional con la aplicación de Veriexec deshabilitada. Para obtener más información sobre esta función y sus casos de uso, consulte Automatizaciσn mejorada de Junos.

Para comprobar si se aplica Veriveec, ejecute los siguientes comandos desde el shell de la CLI de Junos OS:

  1. Inicie la cáscara.

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

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

Valide la aplicación de archivos de Veriexec

Para comprobar que la aplicación de Veriexec está activa, copie un archivo autorizado en una ubicación no protegida fuera del ámbito del manifiesto (por ejemplo, /usr/bin/id) en una nueva ubicación, como se muestra a continuación. Veriexec impide que el archivo copiado se ejecute porque el manifiesto contiene una entrada válida para /usr/bin/id pero no para /tmp/id. Aunque la copia no cambia el contenido del archivo, Veriexec valida el archivo con la entrada del manifiesto, incluida su ruta y los metadatos asociados. Como resultado, Veriexec bloquea el archivo copiado porque no coincide con ninguna entrada de manifiesto protegida.

  1. Inicie la cáscara.

  2. Cambie de directorio y luego copie un archivo autorizado, por ejemplo, /usr/bin/id, a una nueva ubicación.

Resultados

Si se aplica Verexec, el sistema genera un error de autenticación. Si no se aplica Veriveec, el archivo se ejecuta normalmente:

Salida generada cuando no se aplica Veriveec, que muestra que el archivo copiado se ejecuta correctamente:

Salida generada cuando no se aplica Veriexec que muestra que el archivo está copiado

Instalar Veriexec Loader

El cargador con capacidad de Veriexec (veloader) se utiliza en plataformas de Junos basadas en BSDX a partir de Junos OS versión 19.2. El cargador valida las imágenes de Junos OS antes de que se confíen en ellas para el arranque. El cargador de Veriexec valida la imagen de Junos OS que instale desde un servidor del Protocolo de transferencia de archivos trivial (TFTP) o un dispositivo de almacenamiento USB.

  • Para instalar una imagen de Junos OS desde un servidor TFTP, utilice el siguiente comando:

  • Para instalar una imagen de Junos OS desde un dispositivo de almacenamiento USB, utilice el siguiente comando:

El cargador compatible con Veriexec valida la imagen de Junos OS.

El cargador inicia solo imágenes de Junos OS que contengan huellas digitales y no arranca imágenes que no contengan huellas digitales o un kernel válido. Puede utilizar la nextboot función para comprobar el dispositivo de arranque actual.

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

Antes de instalar el cargador compatible con Veriexec, el sistema verifica que ambas particiones de raíz doble contengan huellas digitales de Junos OS.

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

  1. Inicie la cáscara.

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

  3. Puedes ver diferentes escenarios aquí:

    • Use request system software add /var/tmp/xxx.tgz no-copy no-validate comando para instalar Junos OS con huellas digitales. La no-validate opción no deshabilita la verificación de firma de paquetes y el sistema continúa rechazando paquetes no válidos.

    • Si el cargador compatible con Veriexec no admite una imagen de Junos OS de destino de una versión anterior, puede degradar el cargador a una versión que sea compatible con esa versión. Use el request system software add /var/tmp/xxx.tgz no-copy no-validate comando para cambiar automáticamente a una versión anterior del cargador.
    • Use el request system software add /var/tmp/xxx comando para comprobar si el paquete de Junos OS es compatible con el cargador de Veriveec.

      En este ejemplo, el sistema finaliza la instalación porque el cargador de Veriexec no es compatible con versiones de Junos OS anteriores a la 20.3R1.