La difusión el pasado jueves de una vulnerabilidad ‘zero day’ que afecta potencialmente a millones de usuarios de cientos de populares servicios online (de Minecraft a iCloud, pasando por Steam, Cloudflare, etcétera) ha obligado administradores de todo el mundo a realizar actualizaciones urgentes para cerrarles las puertas a los cibercriminales.
La vulnerabilidad, conocida como ‘CVE-2021-44228’ o ‘Log4Shell’, fue descubierta por Chen Zhaojun (ingeniero de software de Alibaba), y afecta a Apache Log4j, una biblioteca open source desarrollada por la Apache Foundation que facilita a aplicaciones del ecosistema Java mantener un registro de actividades realizadas en tiempo de ejecución.
Por ahora, la vulnerabilidad se ha usado sobre todo para difundir malware de criptominado, pero dado que permite la ejecución remota de código en varias de las aplicaciones web más populares, sus efectos si éstas no la parchean inmediatamente pueden ser mucho más graves.
De hecho, se le ha asignado un 10/10 en el CVSS (Common Vulnerability Scoring System), un estándar de medición de la gravedad de vulnerabilidades, y en estos días se ha detectado actividad sospechosa (mayoritariamente procedente de la red Tor) escaneando masivamente la presencia de esta vulnerabilidad en servidores web.
🚨⚠️New #0-day vulnerability tracked under «Log4Shell» and CVE-2021-44228 discovered in Apache Log4j 🌶️‼️ We are observing attacks in our honeypot infrastructure coming from the TOR network. Find Mitigation instructions here: https://t.co/tUKJSn8RPF pic.twitter.com/WkAn911rZX
— Deutsche Telekom CERT (@DTCERT) December 10, 2021
Por fortuna, el parche ya existe: de hecho, se lanzó poco más de 24 horas después de tener conocimiento de la existencia de Log4Shell. Ahora, basta con actualizar a la versión 2.15.0 de Log4J para solventar el agujero de seguridad.
Demasiado bien lo han hecho los desarrolladores de Log4J…
Pero si estás pensando en atribuir esta rápida respuesta al hecho de que la Apache Foundation cuente con una amplia plantilla de desarrolladores en nómina, espera a conocer antes un dato: los responsables de evitar pérdidas millonarias a algunas de las mayores empresas tecnológicas del mundo han sido únicamente tres desarrolladores voluntarios, que trabajan en el proyecto Log4J «en su tiempo libre».
Volkan Yazici es uno de esos tres desarrolladores, y ha tenido que defenderse en Twitter de unos ataques a todas luces injustos si tenemos en cuenta las circunstancias del proyecto:
«Los mantenedores de Log4j hemos estado trabajando sin dormir en las medidas de mitigación; parches, documentos, CVE, respuestas a consultas, etc. Sin embargo, nada impide que la gente nos esté atacando, por un trabajo por el que no nos pagan, por una función [del código] que no a todos nos gusta, pero que necesitamos conservar debido a problemas de compatibilidad con versiones anteriores».
¿Por qué se valora tan poco la labor de los desarrolladores de proyectos open source críticos?
Otro de sus compañeros es Ralph Goers, creador de la versión inicial de Log4J y que actualmente mantiene actualizada la librería en el tiempo que le deja libre su empleo como «desarrollador de software a tiempo completo». Esto lo cuenta en su página de GitHub Sponsors, un servicio que muchos desarrolladores de proyectos de código abierto utilizan para conseguir patrocinadores.
En el momento en que se hizo pública la vulnerabilidad, Goers contaba únicamente con 3 patrocinadores, una cifra que la repercusión del caso ha logrado incrementar hasta los 47 en el momento de escribir estas líneas:
Sin embargo, en estos días, muchos usuarios se han mostrado escandalizados en las redes al saber de la precaria situación de un proyecto tan crítico (y agradecidos con sus responsables por su desinteresada y fundamental labor):
«El proyecto Apache Log4j está siendo mantenido por tres personas que ofrecen voluntariamente su tiempo libre. Por favor, no sea un idiota con ellos, porque compañías multimillonarias están usando su herramienta sin siquiera molestarse en donarles 1.000 dólares» (Catalin Cimpanu).
«¿¡Nadie paga a los mantenedores de Log4j2 !? Hay una página entera en la Guía del Comité de Gestión de Proyectos de la Apache Foundation sobre las responsabilidades de los desarrolladores… ¿Y NADIE LES ESTÁ PAGANDO? […] ¿Qué estamos haciendo, gente? […] El open source necesita madurar muchísimo» (Filippo Sottile).
«Medio Internet es vulnerable porque estamos confiando en un proyecto open source de un tío que tiene dos trabajos, uno de ellos no remunerado. Por supuesto que [el proyecto] tiene problemas, ¿cómo no los iba a tener? Lo está haciendo lo mejor que puede. ¿Por qué somos tan reticentes a pagar el tiempo de los desarrolladores de dependencias críticas?» (Ada Worcester).