EVOLUCIÓN DE LOS VIRUS INFORMÁTICOS: LAS VULNERABILIDADES DEL SOFTWARE
En este nuevo capítulo de la evolución de los virus informáticos nos referiremos a cómo los creadores de virus comenzaron a aprovechar vulnerabilidades de software de uso habitual. Una vulnerabilidad puede definirse como un fallo de seguridad detectado en algún programa o sistema informático, que puede ser aprovechado por virus para propagarse e infectar. Pese a que el aprovechamiento de vulnerabilidades de software pueda parecer algo muy reciente, en realidad comenzaron a emplearse en 1998. De ello se encargó el troyano Back Orifice, que utilizaba puertos de comunicaciones desprotegidos para introducirse en los sistemas y dejarlos a merced de hackers que podían controlar los equipos de forma remota.
Pero muy poco tiempo después comenzaron a utilizarse vulnerabilidades como las que conocemos ahora. Así, en 1999 apareció el gusano Bubble Boy que, aprovechando un agujero de seguridad de Internet Explorer, se activaba de forma automática simplemente con visualizar el mensaje de correo en el que llegaba al equipo. Esto mismo también lo hacía el gusano Kak, cuyo código se ocultaba en la autofirma de los mensajes generados con Microsoft Outlook Express.
Los exploits
Casi siempre, el aprovechamiento de una vulnerabilidad de software por parte de un virus se hace a través de un exploit que ha sido previamente programado por otros usuarios o, raramente, por el propio autor del código malicioso. Técnicamente, un exploit es un bloque de código que se ejecuta únicamente si en la máquina objeto del ataque se produce un error esperado y muy concreto, es decir, en caso de que la máquina presente la vulnerabilidad que el exploit trata de utilizar.
La creación de un exploit es una tarea compleja, no apta para cualquier usuario, ya que para ello -casi siempre- debe utilizarse lenguaje ensamblador. El problema es que, en muchas ocasiones, el autor del exploit lo pone a disposición de otros usuarios maliciosos que, a su vez, lo incorporan a programas escritos con lenguajes de alto nivel. Esos programas pueden ser, obviamente, virus informáticos que gracias a la incorporación del exploit, pueden infectar ordenadores aprovechando la vulnerabilidad objeto del exploit.
Precisamente, la incorporación de exploits a virus o gusanos informáticos puede considerarse como el inicio de una “nueva era” para los códigos maliciosos. El hecho de que un virus se propague o infecte los sistemas aprovechando una vulnerabilidad implica varias ventajas para su creador. Por una parte, si se trata de una vulnerabilidad que afecte a un sistema operativo, como puede ser Windows, supone que millones de equipos de todo el mundo son víctimas potenciales del ataque del código malicioso. Por otro lado, los virus que incorporan exploits suelen tener una velocidad de propagación extremadamente rápida, ya que nada se interpone en su camino.
Por ejemplo, si se trata de un virus que aprovecha una vulnerabilidad por la que puede introducirse en los ordenadores a través de un puerto de comunicación desprotegido, un software antivirus actualizado tan sólo podría detectarlo cuando ya se encuentre dentro del equipo. En ese caso el antivirus lo detectará y eliminará, pero no podrá evitar que el virus vuelva a entrar una y otra vez. La única solución posible pasa por reparar la vulnerabilidad de la que hace uso el virus.