jueves, 8 de marzo de 2007

El bit NX

Es muy probable que nunca hayas oido hablar del bit NX y por tanto ignores lo que esta tecnología puede aportar a tu seguridad.

La tecnología NX (No eXecute) se utiliza para separar en la CPU las áreas que contienen datos de las que contienen código ejecutable (algo que se conoce como arquitectura Harvard y que se utiliza en los microcontroladores PIC, por ejemplo). De este modo, si algo que se encuentra marcado como dato intenta ejecutar instrucciones, el procesador detiene esa ejecución y manda un aviso al usuario, a través del sistema operativo. Dado que mucho malware trata de ejecutarse así (camuflando su código en áreas de datos de otros programas) se trata de una primera barrera defensiva. Además, áreas tan delicadas como el stack y el heap, pueden ser protegidas por el sistema operativo haciendo uso de la tecnología NX...

Esta tecnología no es nueva. Ha existido desde hace años en muchas máquinas diferentes, pero ha sido AMD quien la ha bautizado así, y al incluirla en su línea AMD64 la ha popularizado. Intel la ha denominado XD y la añade a sus procesadores a partir del Pentium 4 Prescott.

Como es lógico, para poder beneficiarse de este nivel adicional de protección son necesarias dos cosas: que el procesador lo implemente y que el sistema operativo lo soporte.

Para saber si el procesador lo soporta pueden emplearse utilidades de diagnóstico del hardware, pero tampoco es necesario. A partir de Windows XP SP2 y Windows 2003 SP1 si el procesador soporta NX (denominada DEP por Microsoft) éste se habilita por defecto para los servicios y programas más críticos. Al parecer la implementación de Microsoft ha sido mejorada en Windows Vista, cerrando alguna otra vía de ataque no contemplada en su implementación para XP/2003.

Se puede comprobar si Windows está utilizando tecnología NX accediendo a Panel de Control -> Sistema -> Avanzadas -> "Performance" (no sé cómo lo denomina Microsoft en español... ¿Rendimiento?).

A continuación muestro una imagen correspondiente a un procesador que soporta NX:





Y esta es una imagen de mi propio sistema (Pentium 4 HT) que no lo soporta (ver mensaje en la parte inferior de la ventana):



A los más desafortunados, Windows nos ofrece el consuelo de proporcionarnos una especie de NX por software que, como puede suponerse, no es lo mismo (de hecho no tiene nada que ver con NX).

¿Y qué ocurre con otros sistemas operativos? ¿Soportan NX?

Solaris lo soporta desde hace diez años en máquinas SPARC, pero lo ha añadido activo por defecto en procesadores x86 a partir de Solaris 10, hace dos años.

Mac OS X para Intel lo soporta desde la versión 10.4.4.

Linux incluye soporte para NX en x86 desde la versión 2.6.8 (2004).

Entre los BSD, NetBSD y OpenBSD lo soportan, pero FreeBSD no.

Más información:

No hay comentarios.:

 

Visitante número:
ContactosPensionesTiendasCampingPracticas