The Update Framework, un medio para comprobar y descargar actualizaciones de forma segura

Se dio a conocer la liberación de la nueva versión 1.0 de The Update Framework, mejor conocido como  TUF y el cual se caracteriza por ser un marco que proporciona un medio para comprobar y descargar actualizaciones de forma segura.

El objetivo principal del proyecto es proteger al cliente de los ataques típicos a los repositorios y la infraestructura, lo que incluye contrarrestar la promoción de actualizaciones falsas por parte de los atacantes creados después de obtener acceso a las claves para generar firmas digitales o comprometer el repositorio.

Sobre TUF

El proyecto desarrolla una serie de bibliotecas, formatos de archivo y utilidades que se pueden integrar fácilmente en los sistemas de actualización de aplicaciones existentes, brindando protección en caso de compromiso de las claves por parte de los desarrolladores de software. Para usar TUF, basta con agregar los metadatos necesarios al repositorio e integrar los procedimientos provistos en TUF para cargar y verificar archivos en el código del cliente.

El marco TUF asume la tarea de buscar una actualización, descargar la actualización y verificar su integridad. El sistema de instalación de actualizaciones no se cruza directamente con metadatos adicionales, cuya verificación y carga está a cargo de TUF.

Para la integración con aplicaciones y sistemas de instalación de actualizaciones, se ofrece una API de bajo nivel para acceder a metadatos y la implementación de una API de cliente de alto nivel ngclient, lista para la integración con aplicaciones.

Entre los ataques que TUF puede contrarrestar se encuentran la sustitución de versiones antiguas bajo la apariencia de actualizaciones para bloquear correcciones de vulnerabilidades en el software o revertir al usuario a una versión vulnerable anterior, así como la promoción de actualizaciones maliciosas correctamente firmadas utilizando un clave comprometida, realizando ataques DoS en los clientes, como llenar el disco con una actualización interminable.

La protección contra el compromiso de la infraestructura del proveedor de software se logra manteniendo registros verificables separados del estado del repositorio o la aplicación.

Los metadatos verificados por TUF incluyen información sobre claves en las que se puede confiar, hashes criptográficos para evaluar la integridad de los archivos, firmas digitales adicionales para verificar metadatos, información sobre números de versión e información sobre la vida útil de los registros. Las claves utilizadas para la verificación tienen una vida útil limitada y requieren una actualización constante para protegerse contra la firma con claves antiguas.

La reducción del riesgo de comprometer todo el sistema se logra mediante el uso de un modelo de confianza dividida, en el que cada parte se limita solo al área de la que es directamente responsable.

El sistema utiliza una jerarquía de roles con sus propias claves, por ejemplo, el rol raíz firma las claves para los roles responsables de los metadatos en el repositorio, datos sobre el momento de la formación de actualizaciones y compilaciones de destino, a su vez, el rol responsable de las compilaciones firma los roles asociados con la certificación de los archivos entregados.

Para proteger contra el compromiso de la clave, se utiliza un mecanismo para la revocación y el reemplazo rápidos de las claves. Cada clave individual concentra solo los poderes mínimos necesarios, y las operaciones de notarización requieren el uso de varias claves (la fuga de una sola clave no permite un ataque inmediato al cliente, y para comprometer todo el sistema, es necesario capturar las claves de todos Participantes).

El cliente solo puede aceptar archivos creados más tarde que los archivos recibidos anteriormente, y los datos se descargan solo de acuerdo con el tamaño especificado en los metadatos certificados.

La versión publicada de TUF 1.0.0 ofrece una implementación de referencia completamente reescrita y estabilizada de la especificación TUF que puede usar como ejemplo listo para usar al crear sus propias implementaciones o para integrarse en sus proyectos.

La nueva implementación contiene significativamente menos código (1400 líneas en lugar de 4700), es más fácil de mantener y se puede ampliar fácilmente, por ejemplo, si necesita agregar soporte para pilas de red específicas, sistemas de almacenamiento o algoritmos de cifrado.

El proyecto se desarrolla bajo los auspicios de la Fundación Linux y se utiliza para mejorar la seguridad de la entrega de actualizaciones en proyectos como Docker, Fuchsia, Automotive Grade Linux, Bottlerocket y PyPI ( se espera la inclusión de verificación de descargas y metadatos en PyPIpronto).

Finalmente si estás interesado en poder conocer un poco más al respecto, puedes consultar los detalles en el siguiente enlace.


El contenido del artículo se adhiere a nuestros principios de ética editorial. Para notificar un error pincha aquí.

Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada.

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

bool(true)