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 tu elección para próximas visitas (sólo si eres usuario registrado).
b p s's picture

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

one step beyond you, always

FAQsimil's picture

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

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

Envite's picture

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 estoy de acuerdo con lo que dices, pero defendería con mi vida tu derecho a decirlo.
- Voltaire -

FAQsimil's picture

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

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

Krampo's picture

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.

FAQsimil's picture

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

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

Krampo's picture

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.

Rastersoft's picture

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

admin's picture

La presentación de Rutkowska (PDF)


Gracias, Anelkaos. Interesante referencia.

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