jueves, enero 19, 2012

BootKits: Windows 8, UEFI Secure Boot y Stoned Bootkit

Mucho se ha hablado ya sobre UEFI y Secure Boot, pero sigue siendo una de las cosas que más llama la atención cuando se habla de las novedades de Windows 8, como ya sucediera en el pasado con la necesidad de contar con un certificado digital especial para poder meter un driver en Windows Vista. Todas ellas son tecnologías pensadas para luchar contra el malware, pero que evidentemente tienen sus efectos colaterales.

Firmado de drivers a partir de Windows Vista

En el caso de Windows Vista y el firmado de drivers con un certificado emitido por Microsoft el objetivo era acabar con todo el malware que se paseaba por ring0 en Windows XP. Rootkits y botnets hacían del modo kernel su particular palacete de verano para hacer la vida un poco más incómoda a los usuarios que los sufrían.

A partir de Windows Vista, cada driver que se va a meter en modo kernel necesita venir firmado por una entidad con un certificado especial emitido por Microsoft, lo que hizo que muchas universidades y/o investigadores particulares vieran como tenían que cambiar sus procesos para poder seguir haciendo drivers para Windows Vista.

Figura 1: Driver no firmado bloqueado en Windows

Esta medida, aunque sí dificultó y acabó con muchos de los canales de explotación tradicionales siendo una buena medida de fortificación, no fue una medida definitiva para siempre, ya aparecieron formas de saltarse esas protecciones. 

Entre las técnicas para saltarse la protección del kernel para meter drivers firmados, una primera aproximación evidente eviente fue hacerse con certificados de fabricantes de drivers autorizados y utilizarlos para firmar malware, algo que pasó y que llegó hasta el propio servicio de Windows Update, con lo que la propia Microsoft distribuyó malware.

Bootkits

La segunda aproximación, mucho más efectiva, es similar a la que se hace en el mundo del jailbreak de dispositivos iPhone, iPod o iPad de Apple, es decir, parchear el propio kernel para quitar esa comprobación. Por supuesto, para conseguir quitar esa comprobación con el sistema arrancado hace falta encontrar un fallo en el kernel que permita parchearlo - algo bastante complejo, pero que puede llegar a pasar aprovechando una ventana de tiempo -. La otra opción es quitarla antes de que el sistema arranque.

Para quitar la protección contra la inclusión de drivers no firmados en modo kernel, se utiliza un tipo de malware especial que infecta el sector de arranque para, en el siguiente reinicio del equipo arrancar con un programa que parchee el kernel antes de arrancarlo, y ya poder meter cualquier driver en modo kernel. Este  tipo de malware se llama Bootkit.

Así, con un bootkit y un poco de ingenio se atacan también los sistemas protegidos con TrueCrypt o BitLocker, detectando si el disco está cifrado en arranque, e infectando el proceso de solicitud de contraseña, para robarla de manera definitiva, y que solo podría ser protegido en aquellos equipos en los que el disco cifrado tuviera protegidas las claves por el chip TPM [Trusted Platform Module].

Uno de este tipo de malware que más famoso se hizo fue Stoned Bootkit, una solución presentada en un paper de 46 páginas de Peter Kleissner,  más que interesante de leer, y en que no sólo explica cómo está desarrollado, sino sus usos:
It [Stoned Bootkit] can also be used for malware developers to get full access to the system. It should be the most used bootkit in the wild for 2010.
Stoned Bootkit es una solución completa, que viene con un API y una completa guía de cómo adaptar el sistema para las necesidades de cualquiera que lo quiera implementar, enseñando desde cómo se ha hecho el debugging a cómo crear los ficheros para que arranque cualquier bootkit creado con él.

Figura 2: Debugging de Stoned Bootkit

UEFI y Secure Boot

Debido a esto, la industria trabajó en un sistema de protección contra este tipo de actividades maliciosas, y generó lo que hoy en día se conoce como Secure Boot, una protección que viene implementada y basada en el propio firmware del equipo, que vendrá de serie en todos los que vengan con UEFI, la evolución de las antiguas BIOS.

Esta protección que viene de serie en la UEFI del equipo, lo que hace es evitar que se cargue un MBR de un sistema no conocido, por lo que el arranque de los sistemas operativos vendrán firmados digitalmente, y el equipo comprobará la firma del MBR antes de lanzar el arranque del sistema o liberar las claves de cifrado desde el chip TPM para que se descifren los discos con Bitlocker.

Figura 3: Integridad de plataforma en Windows 8 con Secure Boot y TPM

Lo que generó alarma de esta tecnología, y de lo que se quejaron algunas organizaciones tras conocer que Windows 8 soportará Secure Boot, es de que los fabricantes de software como Microsoft podrían llegar a acuerdos con integradores de hardware para que no permitan arrancar sistemas que no sean Windows - o que los equipos con Apple solo puedan ejecutar Mac OS X -.

Secure Boot como Opt-in u Opt-out

Aunque esto podría llegar a suceder, y los que quieran instalar otro sistema en el equipo puedan verse incapacitados, parece que muchos fabricantes están dispuesto a dejar Secure Boot como una opción activable desde la UEFI o que venga con un selector, para que sea el propio usuario el que decida si lo quiere utilizar o no, pero que por defecto lo pondrán activo.

En mi opinión, tras haber visto como funciona el mundo del fraude online en el libro de Mikel Gastesi y Dani Creus, si el usuario tiene la posibilidad de desactivarlo fácilmente, ya se encargará la industria del malware convencer al usuario para que lo deshabilite.

Donde no hay que apostar mucho en contra, porque sí que parece que vendrán estas protecciones puestas de serie, será en consolas de vídeo juegos o plataformas empotradas, y algunos equipos puede que la traigan también cerrada, incluso con Windows - yo así, sin conocimiento de causa y haciendo mera especulación apuesto una cerveza a que en Apple la tendrá en sus equipos portátiles sin poder deshabilitarla -. Por otro lado, hay que decir, que muchos equipos portátiles, especialmente los ultraligeros, no cuentan con chip TPM, por lo que se debilita un poco toda esta arquitectura.

Veremos qué pasa en el futuro, pero i quieres aprender de todo esto, te recomiendo el libro de Sergio de los Santos "Máxima Seguridad en Windows" que habla de temas que tienen que ver con todo esto y de mucho más en la plataforma Windows.

6 comentarios:

  1. Muy buena explicacion y muy bien definido todo. Solo apuestas una cerveza a que apple hara eso? Yo apuesto la casa y el coche jeje. Un saludo!

    ResponderEliminar
  2. Hombre, y una implantacion en equipos (medios/usuario domestico) donde esto implique el "patrocinio" de la compañía?
    Cuanto middle user/usuario domestico, tiene equipos MonoSO? Si quedarse "para siempre" con Windows en ese equipo implica pagar un poco menos, pues Microsoft (por poner un ejemplo eh...) pone un poco de su parte a cambio de limitar los SO de esa maquina a los suyos, la verdad no me parece una mala idea.
    La verdad es que aun no habia leido sobre la opcion de Opt-In/Out, pero me ha gustado, la verdad es que es una excelente opcion, incluso podria usarse importacion de FIRMAS concretas para poder instalar lo k tu decidas que se puede instalar y lo que no, fuera. Asi el usuario tendria control sobre sistemas y/o claves importadas, la cantidad de ellas y para que se destinan... Quiza para High End Users... ?

    ResponderEliminar
  3. Si finalmente Microsoft y/o Apple llegan a acuerdos y "solo" se puede ejecutar Windows y/o Mac OS, sera otro paso hacia atras para la libertad de poder hacer lo que quieras con tu ordenador, eso sera horrible.

    Libertad vs Seguridad, como siempre, y yo en este caso prefiero la libertad, no me llama nada UEFI.

    ResponderEliminar
  4. Si se hace bien puede ser positivo (y no soy precisamente pro-ms).
    Lo de limitar por parte de microsoft probablemente incumpla normativas de monopolio. Dar la opción de escoger, personalmente, me parece estupendo. Lo que vería muy grave es limitar que sistema se puede usar.
    Veremos... De todas formas, Mac también ofrece lo del Bootcamp, así que no creo que limiten Windows...

    ResponderEliminar
  5. Los loaders que cambian los serials de windows 7 ( ej. http://youtu.be/cFkvlYUIuhk ) ¿se consideran bootkits y por lo tanto inseguros por defecto?

    ResponderEliminar
  6. Yo acabo de renovar mi portatil con windows 8 y no me da la opción de quitar el secure boot , me parace una estafa lo que esta haciendo microsoft , por mucho que lo defiendan sus estómagos agradecidos .

    ResponderEliminar