En el mundo de la tecnología, cuando alguien dice “
bug” no está haciendo referencia a un bicho usando el inglés caprichosamente. Está hablando de un error de software que, no solo es bastante más usual de lo que un usuario común podría pensar, sino que además puede pasar desapercibido durante años.
El martes,
Microsoft publicó un parche para un bug que afectaba a Windows y que potencialmente permitía a los hackers controlar computadoras de forma remota. Pero no se trataba de un error reciente. Los investigadores de IBM que lo encontraron dijeron que existe desde hace dos décadas, resaltando la dificultad de encontrar y reparar
bugs incluso en códigos que han pasado por controles exhaustivos.
“Es posible que vulnerabilidades significativas no sean detectadas durante un buen tiempo”, escribió Robert Freeman, director del equipo IBM X-Force en una
publicación de su blog. “En este caso, el
bug en el código tiene al menos 19 años de antigüedad y la posibilidad de explotarlo de forma remota existe desde hace 18 años”. El error, agregó, ha estado presente desde el lanzamiento original de Windows 95.
El equipo de IBM no encontró pruebas de que el
bug haya sido explotado. Aún así, existe todo un mercado para encontrar errores de software, donde los cibercriminales e incluso los gobiernos pagan por encontrar formas de hackear sistemas informáticos. Según IBM, este
bug recién descubierto podría haber agregado una cifra de seis dígitos a este mercado, el cual se encuentra en un área legal gris.
Graves fallas escondidas
Esta no es la primera vez que un problema grande pasa desapercibido por años. En 2010, un ingeniero de Google descubrió una vulnerabilidad de Windows que existía desde hacía 17 años. La misma afectaba todas las versiones de 32 bits del sistema operativo y podía ser usada para tomar el control de las PC.
En setiembre, otro problema llamado Shellshock fue descubierto en un paquete de software libre construido sobre cerca del 70% de todos los dispositivos conectados a internet. El
bug podía llevar más de 22 años de vida, dijo Chet Ramey, encargado de mantener el código. Hay otros ejemplos como el infame
Heartbleed, que se dio a conocer en abril pero tenía ya dos años.
Años sin ser vistos
¿Cómo es posible que problemas así de importantes en sistemas críticos lleven tanto tiempo en ser descubiertos y arreglados? La respuesta está en el proceso por el cual el software es desarrollado y controlado.
Escribir código no es una tarea tradicional de ingeniería como construir un puente, donde hay definiciones claras sobre qué debe tener un proyecto para alcanzar las especificaciones técnicas. La programación es un medio más caótico y puede ser difícil saber con exactitud cómo un grupo de piezas individuales funcionarán juntas al ser combinadas en un producto final.
A su vez, los desarrolladores hacen sus propias evaluaciones de producto y, en muchos casos, contratan
testers (personas que prueban) para buscar defectos obvios. Pero, a menudo, la verdadera prueba de seguridad de un software llega después de que ha sido publicado. Entonces, el código es expuesto a investigadores de seguridad externos y hackers, que empiezan a despedazarlo en busca de puntos débiles.
Muchas compañías, incluyendo Microsoft, ofrecen incentivos económicos para acelerar este proceso de prueba. De hecho, hay personas que viven de buscar
bugs y cobrar las recompensas.
Sin embargo, a pesar de todos estos esfuerzos, nadie sabe cuántos
bugs hay ahí afuera, esperando a ser descubiertos. Por eso, a veces lleva décadas encontrarlos.