La columna escrita por Enrique Dans en Invertia de esta semana se titula «Vulnerabilidades de software: ¿el cuento de nunca acabar?» (pdf), y habla de la naturaleza del desarrollo de software y de por qué el descubrimiento de problemas tan graves como el reciente Log4Shell, que afecta a prácticamente la totalidad de sistemas, no solo no debe sorprendernos ni hacernos despotricar contra nada ni nadie, sino simplemente llevarnos a desarrollar habilidades para la resolución rápida de los eventuales problemas que pueda generar.
Como muy bien afirmó hace años el bueno de Marc Andreessen, «el software se está comiendo el mundo«. Cada vez más cosas de las que hacemos regularmente en nuestro día a día están de una u otra manera basadas en software, en código ejecutable, en el que, con cierta periodicidad y a modo de cuento de nunca acabar, aparecen vulnerabilidades que, en muchos casos, comprometen su seguridad y ofrecen oportunidades a delincuentes de toda ralea para todo tipo de maldades.
El problema fundamental de Log4Shell es que afecta a un módulo de software, un generador de mensajes de registro o logging framework en Java denominado Log4j, creado por la Apache Software Foundation y posteriormente implementado en multitud de lenguajes, que resulta ser extremadamente popular y utilizado en todas partes. Lo que un módulo de este tipo hace es, básicamente, registrar la actividad de las transacciones en tiempo de ejecución, y permitir posteriormente al desarrollador filtrarlas en función de su criticidad.
¿Por qué está este software en todas partes? Muy simple: porque lo que hace, lo hace razonablemente bien, y porque una de las reglas básicas del desarrollo de software es no tratar nunca de reinventar la rueda. Esto, que en muchas ocasiones genera sistemas con dependencias de todo tipo que se apoyan en componentes que nadie se ha preocupado de tocar en años, lleva a que algunos definan Log4Shell como «la vulnerabilidad más importante y más crítica de la última década, y posiblemente la más grande en la historia de la informática moderna«, no solo porque afecta a infinidad de sistemas y dispositivos, sino porque el desarrollador de Alibaba que se encontró con la vulnerabilidad decidió, además, publicarla en Twitter.
Esto ha generado una auténtica pesadilla de seguridad, porque además de tener una presencia generalizada, la velocidad con la que ciberdelincuentes de toda condición se han puesto a explotar la vulnerabilidad ha sido prácticamente sin precedentes. Hablamos de responsables de sistemas en todo el mundo que, desde que el pasado jueves 9 se publicó ese tweet posteriormente eliminado, se han pasado horas y horas buscando una forma de arreglar el problema, localizando un parche para ello, e instalándolo en todas partes.
¿Qué pasa si no instalas la actualización que corrige la vulnerabilidad? Simplemente, que lo único que tiene que hacer un potencial atacante es lograr enviar un mensaje para que el módulo de logging del sistema lo registre, y que ese mensaje contenga, por ejemplo, instrucciones para acceder a un sitio gestionado por el atacante, donde el sistema hará y ejecutará lo que le digan, sea robar datos, ejecutar programas para minar criptomonedas, o lo que sea. Esto supone prácticamente poder acceder sin esfuerzo a prácticamente cualquier sistema, y sin necesidad de ninguna contraseña.
¿Debemos llevarnos las manos a la cabeza por un problema de este tipo? No, en absoluto. Este tipo de problemas son habituales en el software, lo han sido siempre y lo van a seguir siendo, seguramente hasta que el software dejen de hacerlo seres humanos – y posiblemente después, también. No hay más forma de evitarlo que intentar que, siguiendo la conocida ley de Linus, sean cuantos más mejor los ojos que puedan examinar el software, porque «dado un número suficientemente elevado de ojos, todos los errores se vuelven obvios». Siempre es mejor que este tipo de errores aparezcan en un módulo de software de código abierto, entorno en el que cualquiera puede detectarlos y corregirlos rápidamente, que el que surjan en un código propietario que solo una empresa, en función de sus intereses y de su estimación de la criticidad del problema, puede corregir.
Pero lo realmente importante no es la vulnerabilidad en sí, sino que todos los afectados sean capaces de ponerse las pilas y corregir rápidamente el potencial problema. Para ello, es preciso no solo que estén bien informados y se enteren con la premura necesaria, sino además, que tengan todos sus sistemas convenientemente registrados, inventariados y con todas sus dependencias correctamente documentadas, para poder plantearse corregir el problema rápidamente y en todos los sitios en los que se encuentre.
Eso, y no otra cosa, es lo que distingue a las compañías que actúan con responsabilidad de las que no lo hacen. A partir de ahora, nos encontraremos de todo: desde compañías que no dan oportunidad a ningún delincuente porque aplicaron los correspondientes parches quedándose a trabajar durante el fin de semana del 9 y el 10 de diciembre, inmediatamente tras la publicación de la vulnerabilidad, hasta otras que no se enteren o no tengan a bien hacer nada durante meses o años, y que únicamente estarán esperando a que el delincuente de turno estime que tiene algo que ganar por el hecho de entrar en sus sistemas sin ningún tipo de esfuerzo, como Pedro por su casa.
El software se está comiendo el mundo, sí. Pero el software tiene sus certezas, y es que de vez en cuando, aparece alguna vulnerabilidad que hay que corregir. En lugar de despotricar contra la naturaleza del software, que es la que es dede hace mucho tiempo, despotriquemos contra aquellos que no la entienden y que no toman las medidas adecuadas para controlar los problemas a tiempo.
Articulo desarrollado por Enrique Dans, enlace original aquí
Enrique Dans es Profesor de Innovación en IE Business School desde el año 1990. Tras licenciarse en Ciencias Biológicas por la Universidade de Santiago de Compostela, cursó un MBA en el Instituto de Empresa, se doctoró (Ph.D.) entre 1996 y 2000 en Sistemas de Información en UCLA, y desarrolló estudios postdoctorales en Harvard Business School. En su trabajo como investigador, divulgador y asesor estudia los efectos de la innovación tecnológica sobre las personas, las empresas y la sociedad en su conjunto. Además de su actividad docente y como Senior Advisor en Innovación y Transformación Digital en IE Business School, Enrique es profesor visitante en la Escuela Diplomática en España y en la Universidad de Oxford en el Reino Unido, desarrolla labores de asesoría en varias startups y compañías consolidadas, es colaborador habitual en numerosos medios de comunicación nacionales e internacionales en temas relacionados con la red y la tecnología, y escribe diariamente desde el año 2003 en su página personal, enriquedans.com, una de las más populares del mundo sobre innovación en lengua española.