Una de las características de seguridad añadidas en el Service Pack 2 de Windows XP y de las que se conoce menos es DEP (Data Execution Prevention). Esta técnica intenta mitigar algunos de los ataques más comunes que se producen. Aunque existen versiones por hardware y por software, vamos a centrarnos en la que funciona por hardware, por ser más efectiva.
Sin entrar en cuestiones demasiado técnicas, DEP se basa en marcar las zonas de memoria como no-ejecutables a no ser que contengan explícitamente código ejecutable. Así, los ataques que se basan en grabar código en memoria (normalmente en la pila) y apuntar el flujo de instrucciones hacia allí dejan de funcionar, ya que esa zona de memoria no está marcada como ejecutable.
Para funcionar, DEP requiere que el procesador lo soporte, cosa que hacen todos los procesadores actuales, tanto de Intel, que dispone del bit Execute Disable, como de AMD, que dispone del NX. Si queremos comprobar si nuestro procesador lo soporta o activarlo, podemos ir al icono de Sistema dentro del panel de control de Windows XP SP2, en la pestaña Avanzado apartado Rendimiento.
Allí podemos activar DEP solo para los servicios básicos que ofrece Windows o para todos los programas del sistema excepto los que nosotros le indiquemos. ¿No todos los programas soportan DEP? Pues, por desgracia, no. Igual que en el caso de los que requieren permisos de administrador, mucho software todavía no está soportado bajo DEP, por lo que tendremos que añadirlo a la lista de excepciones.
No está claro todavía si Vista vendrá con DEP activado por defecto para todos los programas o, como en XP SP2, solo para los servicios básicos de Windows. En cualquier caso, si somos programadores será necesario que comprobemos que nuestro software funcione con DEP. La propia Microsoft todavía no ha resuelto todos los problemas en su software con DEP, por ejemplo, Microsoft LiveMeeting no arranca si lo tenemos activado, pero en poco tiempo es probable que la mayoría de programas funcionen correctamente.
Ver 2 comentarios