Disponible TUF 1.0, un marco para organizar la entrega segura de actualizaciones

Se ha publicado el lanzamiento de TUF 1.0 (The Update Framework), que proporciona herramientas para buscar 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, incluida la lucha contra la promoción por parte de atacantes de actualizaciones ficticias creadas después de obtener acceso a claves para generar firmas digitales o comprometer el repositorio. 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 descarga y metadatos en PyPI en el futuro cercano). El código de implementación de referencia de TUF está escrito en Python y distribuido bajo la licencia Apache 2.0.

El proyecto está desarrollando una serie de bibliotecas, formatos de archivos y utilidades que pueden integrarse fácilmente en los sistemas de actualización de aplicaciones existentes, brindando protección en caso de que los desarrolladores de software se vean comprometidos. Para utilizar TUF, basta con agregar los metadatos necesarios al repositorio e integrar los procedimientos proporcionados en TUF para descargar y verificar archivos en el código del cliente.

El marco TUF asume las tareas de buscar una actualización, descargarla y verificar su integridad. El sistema de instalación de actualizaciones no interfiere directamente con metadatos adicionales, cuya verificación y carga realiza 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 una 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 la corrección de vulnerabilidades del software o la reversión del usuario a una versión antigua vulnerable, así como la promoción de actualizaciones maliciosas firmadas correctamente utilizando un software comprometido. clave, ataques DoS a los clientes, como llenar el disco con actualizaciones interminables.

La protección contra el compromiso de la infraestructura del proveedor de software se logra manteniendo registros separados y verificables del estado del repositorio o 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 los metadatos, información sobre los 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 protegerlas contra la formación de firmas mediante claves antiguas.

La reducción del riesgo de comprometer todo el sistema se logra mediante el uso de un modelo de confianza compartida, en el que cada parte está limitada únicamente 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 claves para los roles responsables de los metadatos en el repositorio, datos sobre el momento de generación de actualizaciones y ensamblajes de destino, a su vez, el rol responsable de los ensamblajes firma roles asociados con la certificación de los archivos entregados.

Disponible TUF 1.0, un marco para organizar la entrega segura de actualizaciones

Para protegerse contra el compromiso de claves, se utiliza un mecanismo para la pronta revocación y reemplazo de claves. Cada clave individual contiene sólo los poderes mínimos necesarios, y las operaciones de autenticación requieren el uso de varias claves (la filtración de una única clave no permite un ataque inmediato al cliente, y para comprometer todo el sistema, las claves de todos los participantes deben ser capturado). El cliente solo puede aceptar archivos que sean más recientes que los archivos recibidos anteriormente, y los datos se descargan únicamente 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 utilizar como ejemplo listo para usar al crear sus propias implementaciones o para la integración 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 es necesario agregar soporte para pilas de red, sistemas de almacenamiento o algoritmos de cifrado específicos.

Fuente: opennet.ru

Añadir un comentario