Sugieren el uso de Sigstore para la verificación de paquetes en NPM
Se dio a conocer la noticia de que en GitHub se ha puesto a discusión una propuesta para implementar el servicio Sigstore para verificar paquetes con firmas digitales y mantener un registro público para confirmar la autenticidad al distribuir lanzamientos.
Sobre la propuesta se menciona que el uso de Sigstore permitirá implementar un nivel adicional de protección contra ataques dirigidos a reemplazar componentes y dependencias de software (cadena de suministro).
Asegurar la cadena de suministro de software es uno de los mayores desafíos de seguridad que enfrenta nuestra industria en este momento. Esta propuesta es un próximo paso importante, pero resolver verdaderamente este desafío requerirá compromiso e inversión en toda la comunidad…
Estos cambios ayudan a proteger a los consumidores de código abierto de los ataques a la cadena de suministro de software; en otras palabras, cuando los usuarios malintencionados intentan propagar malware violando la cuenta de un mantenedor y agregando software malicioso a las dependencias de código abierto que usan muchos desarrolladores.
Por ejemplo, el cambio implementado protegerá las fuentes de los proyectos en caso de que la cuenta de desarrollador de una de las dependencias en NPM se vea comprometida y un atacante genere una actualización de paquete con código malicioso.
Cabe mencionar que Sigstore no es solo otra herramienta de firma de código, ya que su enfoque normal es eliminar la necesidad de administrar claves de firma mediante la emisión de claves a corto plazo basadas en identidades de OpenID Connect (OIDC), al mismo tiempo que registra las acciones en un libro mayor inmutable llamado rekor, ademas de que Sigstore tiene su propia autoridad de certificación llamada Fulcio
Gracias al nuevo nivel de protección, los desarrolladores podrán vincular el paquete generado con el código fuente utilizado y el entorno de construcción, dando al usuario la oportunidad de verificar que el contenido del paquete se corresponde con el contenido de las fuentes en el repositorio del proyecto principal.
El uso de Sigstore simplifica enormemente el proceso de gestión de claves y elimina las complejidades asociadas con el registro, la revocación y la gestión de claves criptográficas. Sigstore se promociona como Let’s Encrypt para el código, proporcionando certificados para el código de firma digital y herramientas para automatizar la verificación.
Hoy abrimos una nueva solicitud de comentarios (RFC) , que analiza la vinculación de un paquete con su repositorio de origen y su entorno de compilación. Cuando los mantenedores de paquetes optan por este sistema, los consumidores de sus paquetes pueden tener más confianza en que el contenido del paquete coincide con el contenido del repositorio vinculado.
En lugar de claves permanentes, Sigstore utiliza claves efímeras de corta duración que se generan en función de los permisos. El material utilizado para la firma se refleja en un registro público protegido de modificación, lo que le permite asegurarse de que el autor de la firma es exactamente quien dice ser, y la firma fue formada por el mismo participante que fue responsable.
El proyecto ha visto una adopción temprana con otros ecosistemas de administradores de paquetes . Con el RFC de hoy, proponemos agregar soporte para la firma de un extremo a otro de paquetes npm mediante Sigstore. Este proceso incluiría la generación de certificaciones sobre dónde, cuándo y cómo se creó el paquete, para que pueda verificarse más adelante.
Para garantizar la integridad y la protección contra la corrupción de datos, se utiliza una estructura de árbol Merkle Tree en la que cada rama verifica todas las ramas y nodos subyacentes a través de hash conjunto (árbol). Al tener un hash final, el usuario puede verificar la exactitud de todo el historial de operaciones, así como la exactitud de los estados pasados de la base de datos (el hash de verificación raíz del nuevo estado de la base de datos se calcula teniendo en cuenta el estado pasado).
Finalmente cabe mencionar que Sigstore está desarrollado conjuntamente por Linux Foundation, Google, Red Hat, Purdue University y Chainguard.
Si quieres conocer más al respecto, puedes consultar los detalles en el siguiente enlace.