La definición se desmorona Apenas tres meses después, se materializó un nuevo tipo de ataque que no encajaba en la tipología existente. Un nuevo tipo de ataque llamado «confusión de dependencias» fue acuñado cuando el investigador de seguridad Alex Birsan publicó por su cuenta un artículo en Medium subtitulado «Cómo hackeé a Apple, Microsoft y docenas de otras empresas». Lo inteligente de este nuevo tipo de ataque es cómo se aprovechó del comportamiento no intuitivo de los administradores de paquetes, lo que permitió a un atacante engañar a los desarrolladores para que descargaran código malicioso de un registro de paquetes externo en lugar de, como estaba previsto, un registro de paquetes interno. Si bien es similar al typosquatting, que ya era una categoría menor en nuestra tipología, este ataque en realidad no implicaba un error tipográfico. Nuestra definición original de seguridad de la cadena de suministro de software ya se había ampliado. Agregamos otra categoría menor y seguimos adelante. Luego, en diciembre de 2021, ocurrió Log4shell e «Internet estaba en llamas». Ahora nuestra tipología sufrió una herida mortal. La tipología anterior se centraba exclusivamente en la inserción de código malicioso, pero la vulnerabilidad de Log4shell no implicaba código malicioso. Sin embargo, Log4shell representaba claramente una vulnerabilidad generalizada en la cadena de suministro de software. Era una vulnerabilidad grave y fácil de explotar, introducida por un fallo en una biblioteca de registro de código abierto de Java muy popular. El episodio reveló un fallo crucial en nuestra definición existente de seguridad de la cadena de suministro de software: los fallos de seguridad no intencionados en el software de código abierto ampliamente utilizado no tenían cabida. Esa tipología original, para los fines de mi carrera, murió solo 18 meses después de su invención. Aceptar una definición más amplia Tras reflexionar, el aspecto de «cadena de suministro» de la seguridad de la cadena de suministro de software sugiere el ingrediente crucial de una definición mejorada. Los productores de software, como los fabricantes, tienen una cadena de suministro. Y los productores de software, como los fabricantes, requieren insumos y luego realizan un proceso de fabricación para construir un producto terminado. En otras palabras, un productor de software utiliza componentes, desarrollados por terceros y por ellos mismos, y tecnologías para escribir, construir y distribuir software. Una vulnerabilidad o un compromiso de esta cadena, ya sea mediante un código malicioso o mediante la explotación de una vulnerabilidad no intencional, es lo que define la seguridad de la cadena de suministro de software. Debo mencionar que un conjunto de datos similar y rival mantenido por el Atlantic Council utiliza esta definición más amplia. (Divulgación completa: ahora soy miembro no residente del Atlantic Council. Si no puedes vencerlos, únete a ellos).