Se han publicado los detalles de una grave vulnerabilidad en todas las versiones de Windows que permite elevar privilegios en el sistema. No existe parche disponible y el exploit está al alcance de cualquiera, lo que lo convierte en un serio "0 day" para Microsoft.
Tavis Ormandy, reputado investigador de seguridad que ha encontrado numerosos fallos de seguridad en diferentes programas, ha publicado un exploit para una vulnerabilidad que permite elevar privilegios en Windows. Se trata de un fallo de diseño que arrastran todos los Windows de 32 bits (basados en tecnología NT) desde 1993. Esto va desde el NT hasta Windows 7, pasando por 2000, 2003, 2008, XP y Vista.
El fallo reside en el soporte heredado de aplicaciones de 16 bits. No se valida correctamente el cambio de contexto y pila que se efectúa al llamar al manejador GP trap. Windows comete algunos errores y asume incorrectamente que:
* Se requiere el privilegio SeTcbPrivilege para configurar un contexto VDM (Virtual DOS Machine) .
* Código en ring3 no puede instalar selectores de segmento de código arbitrarios. Usando el modo Virtual-8086, es posible.
* Código alojado en el ring3 (espacio de usuario) no puede falsificar un "trap frame".
Ormandy consigue eludir estas cuestiones, y el resultado es que un usuario puede realizar un cambio de contexto en el núcleo y ejecutar código como SYSTEM, el máximo privilegio en el sistema.
Para eludir el tercer punto, se necesita acceder a una dirección de memoria, que es siempre la misma en todos los Windows menos Vista y Windows 7 que realizan una "aleatorización" de la carga en memoria. Se supone que esto protege de este tipo de ataques. Sin embargo, usando NtQuerySystemInformation(), se puede llegar a calcular dónde está esa dirección aunque sea diferente en cada inicio, con lo que la protección ASLR (Address space layout randomization) también se ve eludida.
Ormandy avisó a Microsoft en junio de 2009, y poco después confirmaron el problema. Harto de que no publicasen una solución (que considera no muy compleja), ha decidido hacer público el fallo. Él mismo entiende que esta vulnerabilidad afecta de forma más seria a empresas y corporaciones que mantienen a sus usuarios con privilegios limitados. Por desgracia, la mayoría de usuarios caseros utilizan ya la cuenta de administrador en su Windows (no tan poderosa como SYSTEM, pero equivalente a efectos prácticos) para tareas cotidianas, con lo que la elevación de privilegios no suele ser un requisito en los ataques.
El exploit ha sido probado y funciona a la perfección. La buena noticia es que es relativamente sencillo mitigar el problema. Incluso ha publicado vídeos en Youtube de cómo hacerlo, destinados principalmente a administradores. Evitar el fallo implica deshabilitar el soporte para aplicaciones de 16 bits, que se supone no será ningún problema para la mayoría de usuarios.
Los pasos son los siguientes:
Desde la consola de políticas (gpedit.msc) abrir "Configuración de equipo", "Plantillas administrativas", "Componentes de Windows", "Compatibilidad de aplicación" y habilitar la política "Impedir el acceso a aplicaciones de 16 bits". Es importante asegurarse de que es aplicada a los sistemas que dependen del controlador de dominio, forzando una actualización de políticas.
Los vídeos publicados con cómo realizar esto (en inglés) desde la consola de políticas y aplicarlo a todos los clientes de un Directorio Activo están disponibles desde:
Windows Server 2003:
Windows Server 2008:
Para Windows XP:
No hay comentarios
Publicar un comentario