Sigstore: una solución abierta a la fiabilidad y seguridad de la cadena de suministro de software
Todo empieza en algún lugar, y el software no es diferente: así como los bienes físicos tienen un punto de origen y una cadena de suministro asociada, el código también. En el mundo actual, la historia del origen de la mayoría de las aplicaciones de software comienza, al menos parcialmente, si no totalmente, en una comunidad de código abierto. Entonces, ¿cómo se asegura la cadena de suministro de un producto que no tiene forma física, ni caja que cerrar, y que se crea en un entorno en el que cualquiera puede contribuir?
Este es el objetivo de sigstore. Ofrece un método para asegurar mejor las cadenas de suministro de software de forma abierta, transparente y accesible. La necesidad de un proyecto como sigstore aumenta con los recientes ataques y violaciones de la infraestructura digital crítica, tanto en Norteamérica como en el resto del mundo, que han tenido como respuesta una orden ejecutiva presidencial en Estados Unidos destinada a mejorar la seguridad de la cadena de suministro de software.
Entonces, ¿por qué necesitamos algo como sigstore, exactamente? ¿Y qué hace sigstore que no hagan las tecnologías existentes, creadas para certificar y firmar tecnologías digitales?
La inaccesibilidad de la firma digital
La respuesta a la seguridad de las cadenas de suministro de software consiste en firmar digitalmente los distintos artefactos que componen las aplicaciones, desde los binarios y contenedores hasta los archivos agregados (como los tarballs) y las listas de materiales de software (SBOM). Las firmas digitales » detienen» un objeto en el tiempo, indicando que en su estado actual se verifica que es lo que dice ser y que no ha sido alterado de ninguna manera. Esto es estupendo para los desarrolladores que están extrayendo mucho código y proyectos diversos en cargas de trabajo más complicadas… o lo sería si el proceso estuviera mejor equipado para gestionar el código abierto.
Muchas soluciones de firma digital son buenas para lo que hacen, pero son caras y no se ajustan al modelo del motor de innovación del código abierto. Estas dos cosas por sí solas serían un problema, pero también está la cuestión de quién tiene la clave privada, que es exactamente lo que parece y es esencialmente la identificación que dice que el código proviene de una fuente específica. En las comunidades abiertas, en las que contribuyen muchísimas personas, ¿quién se supone que tiene una clave privada? ¿todo el mundo? ¿sólo los líderes de la comunidad (si existen)? ¿el patrocinador?
Este es el reto al que se enfrenta la cadena de suministro de software, especialmente en el código abierto: los presupuestos son escasos o inexistentes para las herramientas de firma digital, el propio software cambia con frecuencia y hay que gestionar y asegurar las claves privadas a lo largo de la vida del proyecto.