
ARTDEPARTMENT

En marzo de 2016 ocurrió un suceso insólito que puso en evidencia la fragilidad de nuestra infraestructura digital: un sencillo y poco conocido paquete 'open source' compuesto de tan sólo 11 líneas en JavaScript, fue eliminado por su autor del repositorio NPM (una narración para los programadores web de todo el mundo), y eso bastó para que buena parte del ecosistema de avance web colapsara durante varias horas. ¿Cómo fue posible que poco tan pequeño tenga consecuencias tan enormes?
La historia del paquete left-pad lo explica todo. El paquete left-pad tenía una función muy simple: pegar caracteres a la izquierda de una prisión de texto para que alcanzara una distancia específica: por ejemplo, convertir el número '7' en '007', una tarea trivial que cualquier programador podría escribir en minutos.


Sin retención, precisamente por su trivialidad, tenía sentido prescindir de reescribir las mismas 11 líneas una y otra vez, por lo que el paquete que las contenía fue ampliamente adoptivo como dependencia en otros proyectos, muchos de ellos fundamentales en el ecosistema JavaScript: Perturbación, Webpack, React... entre muchos otros.
En la actos, el correcto funcionamiento de millones de proyectos terminó dependiendo, directa o indirectamente, de este pequeño fragmento de código.
Azer Koçulu, el desarrollador que mantenía left-pad (y otros muchos paquetes), se vio envuelto en una disputa con la empresa Kik Messenger: ésta reclamaba para sí el nombre del paquete 'kik' en NPM, pese ser preliminar a la fundación de dicha compañía. Todo se torció cuando los responsables del repositorio favorecieron la postura de Kik y expropiaron al desarrollador de la propiedad del nombre para transferírsela a la empresa sin el consentimiento de Koçulu.
En protesta, Koçulu decidió retirar todos sus paquetes de NPM, una relación compuesta de casi 300... que incluía al ya mencionado left-pad. El problema, como decíamos, era que muchos proyectos dependían de left-pad para poder construirse o instalarse. Así que, cuando el paquete desapareció del repositorio, innumerables desarrolladores de todo el mundo comenzaron a ver errores al intentar coleccionar o ejecutar sus aplicaciones.

Durante varias horas, amplios sectores del ecosistema de JavaScript quedaron paralizados. No es que las aplicaciones web dejaran de funcionar: pero nuevas instalaciones y despliegues fallaban, especialmente en entornos de integración continua (CI/CD). Y 'NPM' tuvo que reaccionar reinstaurando (de nuevo a espaldas de Koçulu) el paquete con el mismo nombre, poco que normalmente no está permitido, oportuno a la emergencia de la situación.
En definitiva, un episodio proporcionado movido que terminó generando todo un debate ético y técnico sobre la gobernanza del software evadido.
Este incidente puso de relieve varias lecciones secreto sobre el avance de software flamante:
El caso de left-pad nos recuerda que gran parte de la tecnología que usamos a diario se sostiene sobre proyectos de código libre mantenidos por personas que, muchas veces, no reciben compensación alguna. Esta situación sigue actual hoy. Por eso, adicionalmente de utilizar software evadido, es crucial apoyarlo: económicamente, con tiempo o al menos con agradecimiento.
Porque, al final, todo Internet puede terminar dependiendo de un puñado de líneas de código escritas por un desarrollador solitario en su tiempo evadido.
Pese a ello, pocos fueron los que aprendieron la enseñanza. Esa equivocación de estudios quedó licencia con otro incidente aún más pesado: Log4Shell.
En diciembre de 2021, se descubrió una vulnerabilidad crítica (CVE-2021-44228) en Log4J, una biblioteca de código libre usada para registrar eventos en aplicaciones Java. Este parecer permitía la ejecución remota de código, lo que convertía a millones de servidores en objetivos accesibles para los atacantes.
La respuesta fue veloz: en tan pronto como 24 horas, los mantenedores —tres voluntarios que trabajaban en su tiempo evadido— lanzaron un parche. Sin retención, el escándalo fue otro: ¿cómo era posible que una biblioteca esencial para empresas multimillonarias estuviera mantenida por tres personas no remuneradas, personas que tuvieron que pasarse toda una confusión sin amodorrarse para evitar problemas masivos de ciberseguridad?
Volvía a reverlarse un patrón natural: el corazón tecnológico de las mayores corporaciones del mundo late gracias a esfuerzos individuales poco reconocidos, y peor aún, precarizados: estos desarrolladores, allá de admitir apoyo, fueron víctimas de ataques injustos mientras intentaban contener el desastre.

La caída de left-pad debía habernos enseñado sobre la fragilidad del ecosistema de software evadido (que es como afirmar el ecosistema de todo Internet). Pero no aprendimos. En extensión de acrecentar los cimientos del open source, las grandes tecnológicas continuaron capitalizando sus beneficios sin volver proporcionalmente en su sostenimiento.
La alternativa no pasa solo por hacer forks o tener listas copias de respaldo de los paquetes. Amplios sectores del mundo del código libre y/o el desarrolló web piden tomar medidas:
Imagen | Marcos Merino mediante IA
En Genbeta | Qué fue de los programadores que hace dos abriles trabajaron injusto para evitar pérdidas millonarias a grandes tecnológicas
Compartir este artículo
Consultoria Personalizada
¡Si aun no tienes presencia en internet o
necesitas ayuda con tus proyectos, por favor, escribenos!