3 mar. 2010

ASLR DEP la lucha contra los exploits

Los exploits en Windows y en todos los sistemas operativos son un quebradero de cabeza tanto para la seguridad como para los desarrolladores de aplicaciones.

Un exploit en resumen es aprovecharse de un descuido en la programación de alguna aplicación, permitiendo la inclusión de código malicioso, donde se esperaba la entrada de un dato por parte del usuario (donde quedaran las clase de primero de informática donde los profesores para aprobar o suspender pulsaban todas las teclas y morían nuestras primeros programas). Pero como no todos los usuarios van a introducir solo el nombre en el campo nombre de un formulario de dar de alta productos, sino que se le ocurre dejar el dedo pulsado o introducir números donde se esperaba letras. Después de estas actuación ( lo más normal del mundo, quien no ha dejado el dedo pulsado en la calculadora), sin ningún acto de mala fe, este usuario introducir una shell en código maquina. Como estos usuarios existen y las aplicaciones cada vez hacen más acciones e interactúan con el usuario, pues los exploits aparecen se reproducen y propagan.

Pero para prevenirse de ello se han incluido unas cuantas medidas como son el DEP y el ASLR . El DEP son las siglas de Prevención de ejecución de datos (Data Execution Prevention) y ASLR son Address Space Layout Randomization, así en coloquial hacer aleatoria la memoria RAM mas o menos. Actualmente existen exploits en prueba para saltear estas protecciones.

Como las siglas no son muy intuitivas lo que se consigue con DEP es proteger la zona de RAM, estableciendo cuando una zona de memoria contiene código ejecutable y cuando solo contiene código para variables. Y el ASLR crea una aleatoriedad en la memoria para que al cargar el sistema operativo las librerías del sistema, que solo las debería usar el sistema, se posicionen en diferentes lugares de la RAM, haciendo complicado la repetición y exportación de un exploit.

¿Y por qué estas dos particularidades no dejan funcionar a un exploit?

Un exploit necesita que la zona de memoria destinada a las variables de un programa (en estas variables se guardaría los datos del formulario que el programador, en buena fe, había previsto que fuera el nombre solo con letras) sea ejecutable para introducir en ella su código malicioso. Además ha de conocer una dirección fija del sistema operativo, en la cual existe una llamada a código “arbitrario” y utilizarla como trampolín en el exploit.

Justamente el DEP actúa sobre la primera parte del ataque, marcando las zonas como ejecutables o no. El ASLR da aleatoriedad, impidiendo fijar direcciones en memoria: D esta forma en cada arranque de la maquina las direcciones son distintas impidiendo su exportación y repetición al no conocer el mapa de memoria.

El ASLR viene activado por defecto en Windows 7 y el DEP lo podemos modificar como se indica en la siguiente imagen
Como vemos podemos aplicar DEP solo a los programas manejados directamente por el sistema operativo o aplicarlos a todos los que se van a ejecutar.

Con estas dos medidas, las pruebas realizadas al sistema operativo durante su desarrollo, el uso de la plataforma Forefront,… hacen complicada la proliferación de exploits para los nuevos Windows.

Pero si un usuario recibe una lista de reproducción con 256 canciones y le van fallando varias, pero sigue reproduciéndolas. Si en ellas esta un exploit tendrá que haberse saltado la línea defensiva de Forefront y de Essentials, los cuales están vigilando la inclusión de código malicioso, y seguidamente saltarse las protecciones de TMG, vigilando las salidas y las entradas al sistema, y aun más engañar a nuestro sistema de logs, creado en el post anterior http://www.windowstecnico.com/archive/2009/12/24/visor-de-sucesos-biztalk-correlador-de-logs-y-alertas.aspx , lo va tener complicado, será más fácil hacer aplicaciones con buenos fines.


Autor: ibriones
Fuente: WindowsTecnico.com

0 comentarios:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!