Firewall,
cuando el antivirus ya no es suficiente
:: Blaster, el virus que nos demostró
la utilidad del cortafuegos ::
Aunque
el virus Blaster arrasara hace unos veranos, y aún pueda
estar dando sus últimos(?) coletazos, siempre es de sabios
sacar una conclusión útil de todo mal, y en este
caso, este maléfico programa que ha traído de cabeza
a todos los usuarios de sistemas XP, llevándolos a una
carrera contrarreloj en la que el ordenador se reiniciaba en un
minuto ante sus impotentes dedos que intentaban teclear y buscar
una solución a toda prisa antes del desastre, este virus,
como digo, nos ha enseñado que existe una herramienta necesaria
para los usuarios: el cortafuegos personal.
Y es que, según los expertos,
la primera versión del virus está realmente mal
programada. Es extremadamente ineficiente, a pesar de su velocidad
de expansión. El autor no se preocupó de programar
un virus en sí, sino que copió y pegó el
código del conocido exploit que aprovechaba la vulnerabilidad
y le proporcionó un mecanismo artesano para propagarse,
añadiendo una rutina que genera 20 direcciones IP al azar
tomando como base la dirección del propio ordenador infectado.
Esto demuestra una lentitud extrema con respecto al Code Red,
que era capaz de escanear 100 o 200 direcciones a la vez.
Tampoco se preocupaba de averiguar
qué tipo de sistema operativo está intentando infectar
(Windows XP ó 2000). Teniendo en cuenta que el exploit
necesitaba conocer el sistema operativo para aplicar una dirección
de retorno de pila adecuada y funcionar correctamente, esto suponía
un gran problema de expansión para el virus, que elegía
aleatoriamente la variante del exploit, reduciendo así
al 50 por ciento su capacidad de infección. Esta es la
causa de que los sistemas XP se reinicien cada pocos minutos.
En estos ordenadores, el virus ha intentado aplicar el exploit
pensado para Windows 2000.
Pero aún así, con
todas estas taras y algunas más, el virus consiguió
una propagación masiva. Hoy día, meses después
de su descubrimiento, se puede calificar de negligencia absoluta
el hecho de conectarse a Internet con un sistema XP no parcheado
o sin cortafuegos. Muchos conocerán esta sensación:
acaban de formatear su ordenador, instalan su Windows, y se conectan
a Internet para actualizar ciertas aplicaciones. Antes de que
hayan podido acceder a la página deseada, ya están
infectados, y el sistema operativo avisa de que va a reiniciar
en un minuto. El virus Blaster continúa al acecho.
El gusano se aprovecha de una
vulnerabilidad descubierta el 16 de Julio en el RPC (Remote Procedure
Call) de prácticamente todos los sistemas Windows. Este
es un protocolo que proporciona a Windows un mecanismo de comunicación
entre procesos para que un programa que se está ejecutando
en un equipo pueda ejecutar también código en un
sistema remoto. La facilidad para explotar este problema y conseguir
ejecutar código arbitrario en la víctima ya estaba
reportando suculentos beneficios a los hackers maliciosos que
buscaban potenciales víctimas en el IRC desde finales de
julio, cuando se hizo público el exploit. Aprovecharse
del problema "a mano" conociendo la IP de la víctima
resultaba trivial. Para colmo, poco después de la aparición
del parche que solventaba la vulnerabilidad, se volvió
a descubrir otro fallo en el mismo servicio RPC DCOM tan peligroso
como el primero, que permitía a otras variantes del virus
expandirse de forma muy parecida, aunque las víctimas hubiesen
parcheado su sistema con la primera actualización.
Todo esto se hubiese podido evitar
si los cortafuegos personales gozaran de la misma popularidad
que los sistemas antivirus. Somos conscientes de que un virus
puede echar a perder nuestro sistema Windows, pero tenemos todavía
en la conciencia que es necesario ejecutar algo que nos llega
por correo para que nos infectemos. Blaster nos ha enseñado
que esto no tiene porqué ser así. Un virus puede
aprovecharse de uno de los servicios que mantenemos abiertos al
público. En este caso concreto, el RPC. No todo es ejecutar
archivos que contengan código malicioso, los sistemas abren
puertos para poder comunicarse con otras redes o para que otros
ordenadores puedan compartir información con nosotros,
esto es más habitual de lo que pensamos. Si queremos saber
qué puertos están abiertos (escuchando) en nuestro
sistema, debemos irnos a una consola de Windows, tecleando cmd.exe
en "Inicio", "Ejecutar". Una vez en la
línea de comando, escribimos:
netstat -a
Y se nos mostrará una lista
completa de puertos abiertos. No olvidemos que detrás de
cada puerto existe un programa que escucha y atiende las peticiones
que realizan los otros sistemas, y estos programas no son infalibles,
pueden (y de hecho lo hacen con mayor asiduidad de la que nos
gustaría) cometer errores, o tener problemas de diseño
esperando a ser descubiertos. En el caso de Blaster, aprovechaba
un desbordamiento de búfer en el protocolo RPC. Esto se
produce cuando el programador ha olvidado controlar el tamaño
o el formato de la entrada. Si se espera una cadena de texto,
por ejemplo, de diez caracteres como máximo, y se le introducen
diez mil, si la persona que ha programado la aplicación
no se ha preocupado de controlar este tipo de comportamiento,
el programa puede volverse inestable y desbordar la memoria del
ordenador. Es en este momento en el que los verdaderos hackers
tienen que estudiar el estado en el que queda la memoria y poder
así aprovecharse del momento de debilidad para ejecutar
o "inyectar" código, ya sea un virus o lo necesario
para tomar el control de la víctima.
El desbordamiento de búfer
es una de las piedras angulares de la seguridad, mucho más
común y difícil de detectar de lo que pensamos.
Normalmente ocurre en los programas que abren puertos, y los puertos
siempre, sin excusa, deben estar vigilados. Aprendamos a navegar
con un buen cortafuegos personal. Su uso, aunque en principio
sea un poco complicado, se vuelve sencillo con la práctica.
Es necesario indicarle qué aplicaciones pueden acceder
al exterior por medio de qué puertos, y nos avisan cuando
intenta acceder desde el exterior a alguno de nuestros servicios
internos. Se crean reglas para que recuerde cómo queremos
que se comporten nuestros programas y permanece siempre residente
en memoria, ocupando no demasiados recursos.
No hay excusa cuando descubrimos
que la mayoría de estos programas son gratuitos. Uno de
los más populares es ZoneAlarm, o Kerio, programas freeware
que nos pueden evitar más de un problema en Internet, una
red cada vez más peligrosa.
Se pueden descargar desde www.kerio.com
o www.zonelabs.com.