El hacking de algunas cuentas gmail de disidentes chinos que motivó a Google a amenazar con retirarse de China, y la consiguiente tensión entre el gobierno chino y Google ha dejado al descubierto nuevamente lo frágil y propenso a ataques que resulta Windows. Al parecer luego de que se hiciera público de que el ataque se realizó aprovechando un exploit 0 day de Internet Explorer, Microsoft respondió con el Boletín de Seguridad 979352, como siempre una respuesta insuficiente y demasiado tardía.
En el mismo camino de la vulnerabilidad aneterior Tavis Ormandy (@taviso), un especialista suizo en seguridad informática nos da un link en su Twitter sobre un error en el kernel de Windows que permite escalar privilegios en todo Windows basado en la tecnología NT, es decir todos los Windows desde NT hasta Windows 7 son vulnerables a éste exploit que en la práctica es otro 0 day exploit, con todas las consecuencias que esto implica.
La mécanica de la vulnerabildad es la siguiente:
"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." (tomado de Hispasec)
Lo más inquitante es que el mismo Ormandy asegura haber reportado el error a Microsoft el pasado 12 de junio de 2009, y Microsoft confirmó haber recibido el reporte el 22 de junio de 2009. La pregunta es entonces, como es posible que tras haber transcurrido más de seis meses Microsoft no haya hecho nada al respecto. Si bien es cierto el error ha estado alli desde la primera versión del kernel NT, es decir desde 1993, pensar que nadie más se daría cuenta de él es sencillamente una posición infantil. Ya que en Microsoft hay gerentes de proyectos de software y expertos en seguridad que ganan una pequeña fortuna y poseen amplia experiencia en la meteria, no voy a asumir que Microsoft negligentemente no hizo nada, sino que por el contrario la misma estructura de Windows y su tan publicitada compatibilidad a nivel de binario le impide corregir este tipo de errores sin que eso genere crear otros nuevos. Recordemos que este tipo de problemas no es nuevo en Windows y ya un par de analistas de Gartner Michael A. Silver y Neil MacDonald en un reporte titulado "Windows está colapsando" nos informaban en abril del 2008 que debido a la política de Microsoft de mantener una compatibilidad abosoluta hacia atras a nivel de código fuente, esta en un punto en el cuál cualquier innovación es casi imposible.