Microsoft ha incluido en la Beta 2 de Windows Vista una nueva funcionalidad destinada a prevenir la ejecución de código no deseado en el sistema a través de, habitualmente, desbordamientos de memoria intermedia (buffer).
Con su Beta 2, Vista se sube al carro de otros sistemas como OpenBSD y varias distribuciones Linux e implementa ASLR (Address Space Layout
Randomization) para Windows Vista. Además, lo activa por defecto.
Para comprender qué implica esto, se debe entender en qué suelen consistir los ataques de desbordamiento de memoria intermedia y cómo son aprovechados. Cuando ocurre un desbordamiento de memoria, el espacio de direcciones de memoria del sistema operativo se corrompe de alguna forma. Si un atacante, a través de cualquier vulnerabilidad, es capaz de sobreescribir ciertos valores, puede tomar el control del sistema y hacer que se ejecute cualquier parte de la memoria (con el código que contenga).
Es habitual que los atacantes «se ayuden» de ciertas direcciones de memoria conocidas para poder «saltar» en el espacio de memoria y ejecutar su código inyectado. Estas direcciones coinciden habitualmente con las librerías básicas del sistema operativo, que son siempre cargadas en el mismo espacio de memoria. Así los exploits, programados con una dirección concreta, funcionan siempre en las mismas versiones de Windows, pues saben exactamente dónde ir para poder ser ejecutados porque los procesos principales siempre se cargan en el mismo espacio.
Este procedimiento (presentado de una forma muy básica) es el que ha permitido ataques como el de Sasser y derivados, SQL Slammer o el más reciente ocurrido por el problema de Windows Meta File (WMF).
Esta facilidad para predecir las direcciones comunes es precisamente el punto que ataca ASLR. Cada vez que se arranca el sistema el método se ocupa de cargar las áreas críticas del sistema en espacios más o menos aleatorios, de forma que no pueden ser predichas de forma sencilla. Al menos, un atacante tendría que probar un número significativo de valores (hasta 256) para poder acertar con la dirección adecuada. Incluso así, este valor no sería el mismo en cualquier otro sistema Windows Vista, por lo que un sistema automatizado de ataque (por ejemplo un gusano) tendría que adivinar en cada sistema atacado la dirección concreta. Sin duda, un freno importante para los ataques automatizados que cada cierto tiempo azotan la Red.
ASLR hubiese sido especialmente útil hace algunos años. Actualmente los gusanos que aprovechan de forma automática desbordamientos de memoria intermedia en el sistema y se replican de un sistema a otro, no están entre las preferencias de los atacantes. Hoy en día los esfuerzos están concentrados en sofisticadas técnicas de phishing, ataques segmentados de ingeniería social, troyanos indetectables y virus personalizados… lejos quedaron los días en los que los creadores de malware deseaban hacer el mayor ruido posible.
ASLR no es ninguna nueva tecnología ni la solución definitiva contra ataques automatizados. Es una defensa destinada a poner trabas a la habitual ejecución solapada de código no deseado. Prácticas de usuario como el trabajo diario bajo cuentas limitadas siguen siendo técnicas de protección incluso más eficaces. Aun así ASLR resulta una novedad bienvenida en sistemas Windows y, junto con otras funcionalidades que se están añadiendo al nuevo sistema (entre otros, forzar privilegios más bajos en el nuevo navegador), puede elevar considerablemente la seguridad del próximo lanzamiento de Microsoft.
Poco a poco se va perfilando el carácter del incipiente Microsoft Vista, volcado principalmente en funcionalidades destinadas a una mayor vistosidad y seguridad. Aunque todo esfuerzo en este último sentido es bienvenido, es necesario que el usuario final del sistema o el propio administrador conozcan realmente qué funciones de seguridad posee el sistema operativo, de qué le protegen y cómo configurarlas adecuadamente. Sin estas premisas, todo intento es vano. Por ejemplo, es importante destacar que ASLR intentará evitar la ejecución de código no deseado de forma automática pero en ningún caso, por sí solo, protegerá de la ejecución intencionada de archivos. Sólo el sentido común y la prudencia pueden ayudar en este sentido.
En cualquier caso, esta funcionalidad no exime de la necesidad de seguir actualizando y protegiendo los sistemas con el mayor de los cuidados.