Windows Vista, jaqueado en Black Hat

Fueron por lana y salieron trasquilados. Tal y como estaba previsto, Microsoft habló sobre la seguridad de Windows Vista en Black Hat. Mientras tanto, en una sala contigua, la investigadora polaca Joanna Rutkowska (en la foto) mostraba cómo utilizar su técnica Blue Pill (más detalles técnicos aquí) para insertar código malicioso en las mismísimas entrañas de una copia de Windows Vista versión 64-bit.

Rutkowska encontró una forma de traspasar el polémico mecanismo con el que Microsoft intenta que sólo se puedan cargar en el kernel de Vista los drivers digitalmente firmados...

Algunos ecos de la noticia en español (a 7-Agosto):

Según informa CNet, la investigadora afirmó que "el hecho de que ese mecanismo fuera traspasado no significa que Vista sea completamente inseguro. Sólo que no es tan seguro como se ha anunciado".

Microsoft, por su parte, afirmó estar investigando soluciones para proteger la versión final de Vista de los ataques demostrados, al tiempo que trabaja con sus socios en hardware para investigar formas de prevenir el ataque de virtualización desarrollado por Rutkowska.

Comentarios

Selecciona arriba tu forma preferida de visualizar
los comentarios y pulsa el botón para guardar tus
preferencias. Éstas sólo se recordarán para tus
próximas visitas si eres usuario registrado.

No estoy en contra de nadie,

No estoy en contra de nadie, pero si mi trabajo profesional fuese buscarle las cinco patas al gato a la seguridad de los sistemas operativos, dad por seguro que los encontraria, y no solo yo, sino cualquiera que dedicase su vida profesional a ese fin.

one step beyond you, always

Interesante concepto

En realidad son 2 cosas.

Una es el concepto ideado por Joanna, el BluePill, que me parece muy interesante y peligroso en un futuro (y no solo para Microsoft) y otra el como lo ha llegado a introducir en el Vista64. Esto ultimo lo ha hecho sorteando el sistema de certificados del Vista64 (todos los drivers que se ejecuten en modo kernel para esta version de 64 bits han de ir obligatoriamente firmados digitalmente). El problema es que al ser una beta, ese sistema no esta completamente terminado y todavia no se ha decidido que tipo de certificacion va a ser necesaria, pudiendose instalar ahora cualquier cosa firmada por cualquiera. Por lo tanto, este aspecto no parece preocupante por ahora. (Ademas lo ha hecho con una cuenta de Administrador, ¿es que nadie lee mi firma? :P)

El problema va a ser el Bluepill, que consiste en usar las capacidades de virtualizacion por hardware de los ultimos procesadores tanto de AMD como de Intel. Es decir, sin estos procesadores el concepto del Bluepill no funciona. Algunos de vosotros habreis usado alguna vez una maquina virtual, por ejemplo ejecutar en un XP el VirtualPC y dentro de este un Windows 98. El Windows 98 no se "entera" de que esta siendo ejecutado dentro de un XP, se "cree" que esta en una maquina cualquiera con todo el hardware a su disposicion y solo para el. Bien, esto que se hace por software con programas tipo VirtualPC, en los nuevos AMD con su Pacifica y en los Intel con su bit VT, se hara por hardware, a plena velocidad. Esto es lo que aprovecha el Bluepill de Joanna, su codigo malicioso hace correr el Vista64 en modo virtualizado, por eso el Vista64 no se entera que esta siendo supervisado continuamente por el codigo malicioso. Esto es aplicable a Linux, BSD, etc. no solo Windows. Asi que ojo con este concepto, nadie va a estar a salvo :-;

--
La primera regla de seguridad es NO trabajar con cuenta de Administrador

No es eso

El problema es más sencilo (y más complicado de arreglar).

Se trata tan sólo de que hay una instrucción (la SIDT) que NO es privilegiada (es decir, no causa una excepción) y que SÍ es sensitiva (es decir, da un resultado distinto en la VM Level 1 que en la RM Level 0).

A lo fácil: ejecutar SIDT da un resultado si lo ejecutas en el Vista dentro del virtualizador que si lo ejecutas en el Vista fuera del virtualizador. Y eso no proporciona escaladas de privilegios ni nada parecido. Sólo da una información que no debería: proporciona el conocimiento de si se está en una VM o no. Y ése es el problema: uno no debería poder saber NUNCA si está en una VM.

No estoy de acuerdo con lo que dices, pero defendería con mi vida tu derecho a decirlo.
- Voltaire -

No hablamos de lo mismo

Estas haciendo referencias a RedPill, que si es detectable y es un concepto de hace un par de años por lo menos. Aqui se habla de BluePill y es, como bien dice su propia autora, indetectable.

--
La primera regla de seguridad es NO trabajar con cuenta de Administrador

Sobre BluePill

...como lo ha llegado a introducir en el Vista64. Esto ultimo lo ha hecho sorteando el sistema de certificados del Vista64 ...

Creo que eso no es así: leyendo al artículo que se ha enlazado desde kriptopolis, lo que yo entiendo es que Joana presentó 2 resultados sorprendentes:

1.- El concepto de BluePill y la introducción del mismo "al vuelo" en un sistema Vista x64 en funcionamiento y sin requerir reinicio del sistema. Eso es posible, según el artículo, debido a un bug "de diseño" de Pacifica y no a un bug de implementación.

2.- Se presentó un método genérico (de nuevo no basado en bugs de implementación) que permite insertar código arbitrario en el kernel de Vista Beta 2 x64. Este método puede ser usado, por ejemplo, para sortear el sistema de certificados usados en la instalación de drivers en Vista.

Lo que no veo claro es que la técnica que ha permitido todo esto sea el hecho de haber sorteado el sistema de certificados del Vista64. Más bien me parece que el bug (de diseño) de Pacifica ha permitido tanto el primero como el segundo de los resultados sorprendentes.

Pero, de hecho, si admitimos que es posible conseguir el primero de los dos resultados presentados, el segundo resultado no parece tan sorprendente, dado que estaríamos en un contexto en el que tenemos un Vista encerrado en un sandbox completamente bajo nuestro control.

Por cierto, ¿alguien sabe dónde se pueden leer los detalles técnicos revelados en BlackHat?. En los comentarios de la página que se enlaza desde el artículo de kriptopolis se dejan abiertos muchos interrogantes interesantes con la excusa de que "alguna cosa se tenía que reservar para BlackHat".

Saludos.

Certificados

"Lo que no veo claro es que la técnica que ha permitido todo esto sea el hecho de haber sorteado el sistema de certificados del Vista64. Más bien me parece que el bug (de diseño) de Pacifica ha permitido tanto el primero como el segundo de los resultados sorprendentes."

No hay ningun bug, ni en el Vista64 ni en el Pacifica de AMD. Ella mismo lo dice: "Blue Pill does *not* rely on any bug in Pacifica neither in OS. Blue Pill uses only the documented features of Pacifica".

Es tan sencillo como hacer doble click sobre el instalador de un driver de red modificado por la propia Joanna. Ese driver se ejecuta en el kernel porque esta firmado digitalmente y porque Vista64 NO ha implementado todavia esa proteccion. Ella hace enfasis en indicar que es el Vista Beta 2 (la version publica). Lo mas normal es que cuando salga el Vista64 solo se puedan instalar drivers con certificacion WHQL por lo que el metodo utilizado por Joanna no funcionara.

--
La primera regla de seguridad es NO trabajar con cuenta de Administrador

Blue Pill y el bug "de diseño" en Pacifica

Acabo de localizar un interesante artículo sobre la intervención de Joanna en Black Hat y, según lo relatan ahí, las dos partes de su presentación no guardan relación directa entre sí.

Es decir, tienes tu razón en que ha encontrado un método de saltarse la verificación de las firmas electrónicas de los drivers en Vista. Y eso no parece guardar ninguna relación con Blue Pill, al contrario de lo que yo había supuesto en mi anterior comentario.

No obstante, en lo que se refiere al tema del Blue Pill, sí que hay un bug "de diseño" (no de implementación) en Pacifica. Lo puedes leer en "palabras" de la propia Joanna en los comentarios de su artículo:

I did not write it can not be blocked - I only stated it's a 'generic' attack, by which I mean that it does not rely on any implementation bug (like buffer overflow), but just exploits some design flaw. Surly it can be blocked and I will even discuss three approaches of how this could be done...

Por último, en lo que se refiere a Vista (y el tema de saltarse la verificación de las firmas electrónicas de los drivers), yo creo que SÍ hay un bug (supongo que también de diseño, es decir no basado en buffer overflows ni nada parecido) ya que Microsoft ha afirmado que va a estudiar la medidas sugeridas por Joanna para evitar este problema.

Saludos.

sí hay una manera de evitar BluePill

Hay una manera de bloquear a BluePill, y bastante sencilla: que, por defecto, el sistema operativo trabaje en cooperación sobre un virtualizador propio, también de "capa fina", que redirija cualquier llamada al hardware. Como dice el artículo, la gran ventaja de BluePill es que se inserta "en caliente", sin reiniciar, por eso no puede ser detectado (no modifica nada en el arranque para ser lanzado después de reiniciar). Sin embargo, si ya existe un virtualizador, éste detectará que otro virtualizador intenta meterse, por lo que puede interactuar con el Sistema Operativo y alertar al usuario.

¿Qué? ¿Me he ganado un gallifante? :D

La presentación de Rutkowska (PDF)

Gracias, Anelkaos. Interesante referencia.

Y en concreto, la presentación del tema que se comenta, en PDF, aquí.

Opinar

Salvo circunstancias especiales LOS COMENTARIOS DE ESTE SITIO SERÁN MODERADOS.

Como norma general, en este sitio NO SE PUBLICARÁN aquellos comentarios que incluyan datos personales, ni direcciones de correo, ni ninguna otra forma de establecer contactos privados o comerciales. Tampoco los que no se ajusten al tema, a la netiqueta, la ortografía o la educación, así como los comentarios ofensivos o claramente publicitarios, los que no aporten nada a la discusión o los que pretendan suplantar a terceras personas.

En cualquier caso los comentarios publicados en este sitio expresan sólo la opinión de su autor, quien será el único responsable -incluso ante la Ley- de los mismos. La publicación de cualquier comentario no supone en absoluto la conformidad del responsable de este sitio con su contenido.

Para poder enviar tus comentarios no necesitas ningún registro, pero has de permitir las cookies del sitio. Sólo si deseas disponer de un alias permanente has de registrarte.

Si no aceptas estas condiciones, por favor, absténte de participar en los debates. Muchas gracias

Kriptópolis, 21 de noviembre de 2008.

  • Etiquetas HTML permitidas: <a> <em> <strong> <ul> <ol> <li> <p> <u> <br><strike> <blockquote> <div>

Más información sobre las opciones de formato...

CAPTCHA
Esta prueba busca evitar la entrada de mensajes basura automatizados. Muchas gracias por tu colaboración.
2 + 10 =
Resuelve esta sencilla operación e introduce el resultado.