[ad_1]

El software de código abierto (software que se distribuye libremente, junto con su código fuente, para que se puedan realizar fácilmente copias, adiciones o modificaciones) está “en todas partes”, como cita el Informe de análisis de riesgos y seguridad de código abierto de 2023. El noventa y seis por ciento de los programas informáticos utilizados por las principales industrias incluyen software de código abierto, y el 76 por ciento de esos programas consisten en software de código abierto. Pero el porcentaje de paquetes de software “que contienen vulnerabilidades de seguridad sigue siendo preocupantemente alto”, advirtió el informe.
Una preocupación es que "el software que usted obtuvo de lo que usted cree que es un desarrollador confiable se haya visto comprometido de alguna manera", dice Kelsey Merril ’22, MEng ’23, ingeniero de software que obtuvo una maestría a principios de este año en el Departamento de Ingeniería Eléctrica y Ciencias de la Computación del MIT. "Supongamos que en algún punto de la cadena de suministro, un atacante con intenciones maliciosas ha modificado el software".
El riesgo de una violación de seguridad de este tipo no es en absoluto abstracto. En 2020, por poner un ejemplo notorio, la empresa texana SolarWinds realizó una actualización de software de su programa ampliamente utilizado llamado Orion. Los piratas informáticos irrumpieron en el sistema e insertaron código pernicioso en el software antes de que SolarWinds enviara la última versión de Orion a más de 18.000 clientes, incluidos Microsoft, Intel y aproximadamente otras 100 empresas, así como a una docena de agencias gubernamentales de EE. UU., incluidos los departamentos de Estado, Defensa, Hacienda, Comercio y Seguridad Nacional. En este caso, el producto dañado procedía de una gran empresa comercial, pero es posible que se produzcan fallos incluso más probables en el ámbito del código abierto, afirma Merrill, "donde personas de diversos orígenes, muchos de los cuales son aficionados sin ninguna formación en seguridad". – puede publicar software que se utiliza en todo el mundo”.
Ahora, ella y tres colaboradores (su ex asesor Karen Sollins, investigador principal del Laboratorio de Ciencias de la Computación e Inteligencia Artificial del MIT; Santiago Torres-Arias, profesor asistente de informática en la Universidad Purdue; y Zachary Newman SM ’20, científico investigador de Chainguard Labs, han desarrollado un nuevo sistema llamado esperanzacuyo objetivo es asegurar a los consumidores de software que el producto que están adquiriendo no ha sido manipulado y proviene directamente de una fuente en la que confían.
"Lo que hemos hecho", explica Sollins, "es desarrollar, probar que es correcto y demostrar la viabilidad de un enfoque que permite a los mantenedores (del software) permanecer en el anonimato". Preservar el anonimato es obviamente importante, dado que casi todo el mundo (incluidos los desarrolladores de software) valora su confidencialidad. Este nuevo enfoque, añade Sollins, "al mismo tiempo permite a los usuarios (de software) tener confianza en que los mantenedores son, de hecho, mantenedores legítimos y, además, que el código que se descarga es, de hecho, el código correcto de ese mantenedor".
Entonces, ¿cómo pueden los usuarios confirmar la autenticidad de un paquete de software para garantizar, como dice Merrill, “que quienes lo mantienen son quienes dicen ser?” La forma clásica de hacerlo, inventada hace más de 40 años, es mediante una firma digital, que es análoga a una firma manuscrita, aunque con una seguridad incorporada mucho mayor mediante el uso de diversas técnicas criptográficas.
Para realizar una firma digital, se generan dos “claves” al mismo tiempo, cada una de las cuales es un número compuesto de ceros y unos, de 256 dígitos. Una clave se denomina "privada" y la otra "pública", pero constituyen un par que está vinculado matemáticamente. Un desarrollador de software puede utilizar su clave privada, junto con el contenido del documento o programa informático, para generar una firma digital que se adjunta exclusivamente a ese documento o programa. Luego, un usuario de software puede usar la clave pública (así como la firma del desarrollador, más el contenido del paquete que descargó) para verificar la autenticidad del paquete.
La validación viene en forma de sí o no, uno o cero. "Obtener uno significa que se ha asegurado la autenticidad", explica Merrill. “El documento es el mismo que cuando se firmó y, por tanto, no ha cambiado. Un cero significa que algo anda mal y es posible que no desee confiar en ese documento”.
Aunque este enfoque de décadas de antigüedad está probado y es cierto en cierto sentido, está lejos de ser perfecto. Un problema, señala Merrill, "es que las personas son malas en la gestión de claves criptográficas, que consisten en números muy largos, de una manera segura y que evita que se pierdan". La gente pierde sus contraseñas todo el tiempo, afirma Merrill. "Y si un desarrollador de software perdiera la clave privada y luego se pusiera en contacto con un usuario para decirle: 'Oye, tengo una clave nueva', ¿cómo sabrías quién es realmente?"
Para abordar esas preocupaciones, Speranza está construyendo a partir de “Sigstore”, un sistema introducido el año pasado para mejorar la seguridad de la cadena de suministro de software. Sigstore fue desarrollado por Newman (quien instigó el proyecto Speranza) y Torres-Arias, junto con John Speed Meyers de Chainguard Labs. Sigstore automatiza y agiliza el proceso de firma digital. Los usuarios ya no tienen que administrar claves criptográficas largas, sino que reciben claves efímeras (un enfoque llamado “firma sin clave”) que caducan rápidamente (tal vez en cuestión de minutos) y, por lo tanto, no es necesario almacenarlas.
Un inconveniente de Sigstore surge del hecho de que prescinde de claves públicas duraderas, por lo que los mantenedores del software tienen que identificarse (a través de un protocolo llamado OpenID Connect (OIDC)) de una manera que pueda vincularse a sus direcciones de correo electrónico. Esa característica, por sí sola, puede inhibir la adopción generalizada de Sigstore, y sirvió como factor motivador y razón de ser de Speranza. "Tomamos la infraestructura básica de Sigstore y la cambiamos para brindar garantías de privacidad", explica Merrill.
Con Speranza, la privacidad se logra a través de una idea original que ella y sus colaboradores llaman “co-compromisos de identidad”. Así es, en términos simples, cómo funciona la idea: la identidad de un desarrollador de software, en forma de dirección de correo electrónico, se convierte en el llamado "compromiso" que consiste en un gran número pseudoaleatorio. (Un número pseudoaleatorio no cumple con la definición técnica de “aleatorio” pero, en la práctica, es tan bueno como aleatorio).
Mientras tanto, se genera otro gran número aleatorio (el compromiso o co-compromiso que lo acompaña) asociado con un paquete de software que este desarrollador creó o al que se le concedió permiso para modificar. Para demostrarle a un posible usuario de un paquete de software en particular quién creó esta versión del paquete y quién lo firmó, el desarrollador autorizado publicaría una prueba que establezca un vínculo inequívoco entre el compromiso que representa su identidad y el compromiso adjunto a el producto de software. La prueba que se lleva a cabo es de un tipo especial, llamada prueba de conocimiento cero, que es una forma de mostrar, por ejemplo, que dos cosas tienen un límite común, sin divulgar detalles sobre cuáles son esas cosas, como la dirección de correo electrónico, en realidad lo son.
"Speranza garantiza que el software provenga de la fuente correcta sin exigir a los desarrolladores que revelen información personal como sus direcciones de correo electrónico", comenta Marina Moore, candidata a doctorado en el Centro de Seguridad Cibernética de la Universidad de Nueva York. “Permite a los verificadores ver que el mismo desarrollador firmó un paquete varias veces sin revelar quién es el desarrollador o incluso otros paquetes en los que trabajan. Esto proporciona una mejora de usabilidad con respecto a las claves de firma a largo plazo y un beneficio de privacidad con respecto a otras soluciones basadas en OIDC como Sigstore”.
Marcela Mellara, científica investigadora del grupo de Investigación de Seguridad y Privacidad de Intel Labs, dice: "Este enfoque tiene la ventaja de permitir a los consumidores de software verificar automáticamente que el paquete que obtienen de un repositorio habilitado para Speranza se originó a partir de un mantenedor esperado, y ganar confianza en que el software que están utilizando es auténtico”.
A artículo sobre Esperanza se presentó en la Conferencia sobre seguridad informática y de las comunicaciones en Copenhague, Dinamarca.
[ad_2]
Source link