Skip to main content

Cuando el software no es un «suministro»

Escrito por
Headshot of Daniel Appelquist

Daniel Appelquist

blog feature snyk iac cli enhancements

15 de febrero de 2023

0 minutos de lectura

Nota del editor: Este artículo de opinión, escrito por Daniel Appelquist, director de Estrategia de Open Source y Estándares Abiertos de Snyk, analiza el origen del término «seguridad de la cadena de suministro» y si encaja con el proceso actual de desarrollo de software de código abierto.

Me inspiré para escribir esto después de leer una publicación de Thomas Depierre en Mastodon:

Captura del tuit de Thomas Depierre: «Como mantenedor de bibliotecas y paquetes de código abierto, algo no me convencía del discurso sobre la cadena de suministro de software. Creo que es sencillo: no soy proveedor».

La publicación aborda algo que me ha estado preocupando últimamente. Cuando se trata de la seguridad del software, dedicamos mucho tiempo a hablar de la cadena de suministro de software y de conceptos relacionados, como la lista de materiales de software (SBOM). Esta metáfora proviene del léxico industrial. Quienes suelen hablar de economías y de cómo funciona la manufactura conocen la idea de la cadena de suministro. Por eso, cuando hablamos de software —en especial del software de código abierto, con sus dependencias anidadas—, es comprensible que muchas personas de la industria hayan adoptado esta metáfora. Es una forma abreviada de explicar el desarrollo de software moderno a quienes quizá no entienden conceptos como las dependencias.

Sin embargo, como muchas metáforas útiles, no es exacta y solo puede llevarse hasta cierto punto. La metáfora de la cadena de suministro pretende referirse no solo a quien mantiene el proyecto, sino a todo el ecosistema y a cada elemento que interviene para que una biblioteca llegue a un proyecto de código abierto. Por ejemplo, el registro de npm es una fuente de «suministro», mientras que el marketplace de GitHub Actions es otra.

A algunas personas les gusta tratar el mundo del código abierto como una comunidad unificada. La realidad es que está muy dividido en facciones. Hay un sector más corporativo del código abierto, a veces llamado el «complejo industrial del código abierto», para el cual la terminología de la cadena de suministro sería totalmente apropiada. En el otro extremo está el movimiento del software libre, que probablemente consideraría que el concepto de «cadena de suministro de software» va en contra de su forma de pensar. Y entre ambos hay un amplio espectro.

En su publicación, Thomas señala con razón que las dependencias del software de código abierto no implican ningún acuerdo real con proveedores. En ese sentido, quienes desarrollan software de código abierto no son proveedores de los proyectos que dependen de él. El uso de la metáfora de la «cadena de suministro» puede causar malentendidos, como cuando quienes mantienen proyectos de código abierto reciben avisos legales o cartas de empresas. De hecho, esto mismo ocurrió durante el incidente de Log4j. Daniel Stenberg, desarrollador de código abierto conocido por su trabajo fundamental en el proyecto Curl, recibió cartas de un equipo corporativo de compras (con buenas intenciones) sobre el proyecto Curl. El equipo trató a Daniel como proveedor y le exigió que proporcionara datos sobre el uso de Log4j en Curl en un plazo estricto. Este tipo de comunicación podría ser apropiado en una relación formal con un proveedor, establecida mediante un contrato con un acuerdo de nivel de servicio. Pero no es apropiado —en absoluto— en el contexto del código abierto.

Creo que la terminología y el modelo mental de la cadena de suministro de software siguen siendo muy útiles, en especial al comunicarse con responsables de políticas públicas u otras personas que toman decisiones y no conocen las dependencias de software ni cómo funciona el código abierto. Sin embargo, esta metáfora tiene sus límites. Cuando la usamos, también debemos tener en cuenta que las dependencias de código abierto no constituyen un acuerdo con proveedores y, lo que es más importante, que existe toda una comunidad de desarrolladores de software de código abierto que no se ve de esa manera. El ecosistema de seguridad del software debe ser inclusivo y dar cabida a quienes y a las comunidades que quizá no se sientan tan cómodos con la idea de la «cadena de suministro», si queremos elevar el nivel de la seguridad del software en toda la industria.

Entonces, ¿cómo podríamos abordar este problema? Creo que deberíamos considerar adoptar una terminología ligeramente diferente en algunos contextos. El término cadena de dependencias de software podría ser más adecuado cuando nos dirigimos a la comunidad general de desarrolladores de código abierto. O, como industria, debemos explicar con toda claridad a los desarrolladores de código abierto qué queremos decir —y qué no— con «cadena de suministro de software».

Leer más

feature insights context
Blog

Los ataques autónomos ya están aquí. La defensa debe estar a su altura.

Los atacantes autónomos están reduciendo el tiempo disponible para defenderse. Descubre cómo el descubrimiento, la corrección, la validación y la prevención continuos pueden ayudar a los equipos de seguridad a seguirles el ritmo.

Blog

Evo ADS Govern Agent Behavior ya está disponible: controla el uso de MCP

Evo ADS Govern Agent Behavior ya está disponible, comenzando con MCP Governance. Descubre, aprueba, monitorea, registra y bloquea el uso de servidores MCP en los principales agentes de programación con IA.

illustration hero ai
Blog

¿Qué es Agentic AppSec?

Descubre cómo Agentic AppSec usa agentes de IA con contexto, límites definidos y verificación independiente para ejecutar el ciclo de seguridad de aplicaciones.