viernes, 11 de marzo de 2011

Pwn2Own: vulneran iOS 4.2.1, iOS 4.3 resiste pero iOS 4.3.1 podría ser inminente

Segunda jornada de la competición anual de hacking Pwn2Own donde por unos días, compañías y algunos de los mayores expertos técnicos en seguridad, capaces de comprometer cualquier sistema, se convierten en los mejores amigos. Es la prueba de fuego para navegadores o sistemas operativos, en cuanto a testeo de su seguridad para el usuario. Aquel que consiga entrar en algún sistema (encontrar un exploit) recibe un reconocimiento, un premio en metálico y varias más que probables ofertas de empleo en los departamentos de seguridad de los grandes del mundo de la informática y la tecnología.

Como nuestro compañero David nos ha contado esta tarde, en la primera jornada tocó el turno de los navegadores, donde las últimas versiones de Safari e Internet Explorer 8 han caído en sus protecciones, dejando ejecutar instrucciones del sistema operativo sin el consentimiento del usuario. No así Google Chrome que ha pasado indemne los ataques.

Para que os hagáis una idea de la importancia de estos eventos, el experto en seguridad Stefan Esser, el pasado diciembre, fue capaz de comprometer la seguridad del iPhone 4 en sólo 20 segundos y demostrar que el sistema operativo móvil de Apple era de los más inseguros. Esser desarrolló una herramienta propia llamada Antid0te, que proporcionaba al sistema operativo una capa de protección ASLR, que protegía iPhone contra ataques. Esser entregó a Apple esta información, la integraron en su sistema y de ahí ha surgido la inclusión de esta capa de protección en la versión iOS 4.3.

Pues bien, el segundo día del evento, según nos cuentan desde ArsTechnica, ha sido el turno de los smartphones donde Charlie Miller, un experto con experiencia que ha conseguido saltar la seguridad de los ordenadores y smartphones de Apple los tres últimos años, trabajando junto a Dion Blazakis, ha conseguido un exploit que ha pasado la seguridad del iPhone 4. A través del navegador Safari Mobile, ha conseguido acceder a los datos de la agenda de contactos, con la simple visita a una página web que preparaba el sistema para permitirle la ejecución de un código que pasaba la seguridad del sistema y accedía a estos datos.

En el Pwn2Own, para asegurar la legalidad de la competición y que los participantes trabajan contra la última versión del sistema a explotar, muchas veces se “congela” el software. De esta forma, hace una semana se cogió una release de iOS 4.2.1 para la competición que no se ha visto alterada y cuya seguridad se ha comprometido. Por lo tanto, al ser esta la versión en competición, Miller se ha llevado el premio, a pesar que iOS 4.3 ha mostrado una cara más agradable. Todo gracias a ASLR, el sistema de protección que Apple ha incorporado a alguna de las principales librerías de iOS, y que han conseguido que este exploit realizado por Miller no se ejecutara.

La realidad es que el exploit en sí, sigue funcionando, pero ASLR no le permite acceder donde él quiere y por lo tanto invalida el ataque. La explicación es bien sencilla. La página web que Miller creo para ejecutar su código que explota la seguridad del iPhone sigue funcionando, pero cuando intenta acceder a la dirección de memoria donde se encuentra la agenda de contactos, no la encuentra y por lo tanto no se hace efectivo el exploit. Esto es debido a esta nueva capa de protección de sistema, llamada ASLR, que viene siendo usada desde hace años por otros sistemas como Linux, Windows o el propio Mac OS X.

¿Y qué es exactamente ASLR? Su traducción es Capa Aleatoria del Espacio de Direcciones. Es una técnica de seguridad informática creada en el año 2005, que implica el cambio aleatorio del espacio de direcciones que ocupan elementos clave del sistema, como librerías, pilas de datos, etc. Pongamos el símil que queremos pasar a través de las protecciones de un sistema para llegar a un componente que buscamos leer, como en este caso los datos de la agenda. Cuando conseguimos entrar al sistema y leer en su espacio de direcciones en memoria, sabemos de antemano qué posición ocupan determinados datos dentro de las direcciones que tiene este para sus propios componentes.

Pero si incluimos una capa encima de esta ejecución, de forma que los elementos no residan en direcciones fijas de memoria sino que cambien aleatoriamente según la ejecución o elementos en memoria, será muy difícil para cualquier sistema atacante acceder a los datos. Aunque el ataque haya conseguido penetrar en la capa del sistema, ha de poder acceder y leer esta capa de direcciones aleatorias para saber dónde se ubica lo que pretende leer dentro de esta, y ahí es donde radica esta dificultad añadida. De hecho, cada vez que vaya a acceder a un elemento concreto, este estará en un sitio diferente y por lo tanto representa una dificultad más para los hackers.

Cuanto mayor es la memoria virtual del sistema, elemento clave de esta protección, mayor es la dificultad para acceder y leer esta tabla, interpretando su funcionamiento y cambios sin alterar el funcionamiento del sistema. En el artículo de la WikiPedia sobre este sistema podéis encontrar más información e incluso algoritmos matemáticos de cálculos de probabilidad para ataques.


 Sin embargo, Stefan Esser, creador de la capa ASLR de iOS, sí ha sido capaz de aprovechar el exploit descubierto por Charlie Miller en un sistema iOS 4.3, consiguiendo ejecutar un código a través de Safari Mobile, que permite realizar el jailbreak untethered directamente desde el navegador. Consigue instalar la capa de jailbreak y Cydia, como ya se consiguiera (de otra manera) hace tiempo con el famoso jailbreakme.com. Esser, analista de seguridad, ya ha pasado todos los datos concernientes a este exploit a Apple, y parece que en breve podría aparecer una versión 4.3.1 de iOS que solucionara este problema.
Por lo tanto, algunas fuentes comentan que, a pesar que ASLR ha salvado la seguridad de iOS 4.3, Apple está preparando una versión 4.3.1 de su sistema para cerrar el agujero de seguridad encontrado en el Pwn2Own. Todo debido principalmente a que si cualquier hacker, como ha hecho Esser, consigue superar la capa ASLR del sistema, podría hacerse jailbreak untethered directamente desde el navegador del sistema. Por lo tanto, los expertos del jailbreak han anunciado que no harán versiones para explotar la versión 4.3 y que esperarán a este nuevo parche de Apple, con el fin de no trabajar en vano.

Como hemos comentado, y se ha dejado entrever claramente, ASLR hace más difícil los ataques, pero no imposibles. La prueba es que otro equipo de hackers en la misma competición, consiguió comprometer la seguridad de Blackberry OS 6, en un terminal Blackberry Torch. En este caso, también lo hicieron a través de Webkit, el motor del nuevo navegador web del sistema, que es abierto y el mismo que usan Google para Android o Apple para iOS. RIM ha equipado a su sistema con varias capas de protección como el mencionado ASLR y otra técnica denominada DEP (Data Execution Prevention).

DEP (Prevención de Ejecución de Datos) es un sistema por el cual el sistema es capaz de marcar determinadas zonas de memoria donde se ubican datos como capaces de ejecutar código o no. De esta forma, cuando un hacker coloca código oculto dentro de un dato, al ubicarse en la memoria, consigue ejecutarlo. Pero si DEP ha marcado la zonas de datos como tales, y las ha prevenido contra ejecución, el código oculto nunca podrá ejecutarse por esta protección del sistema. Por lógica, hemos de tener en cuenta esta capa en el sistema y engañar a la zona para activar la posibilidad de ejecución en ella por nuestra cuenta si queremos que el exploit funcione. Este sistema también está presente en iOS 4.3.

En este último caso, Blackberry OS 6.0.0.246 ha sido la víctima e incluso una versión más reciente del software no ha conseguido arreglar este fallo. Notar que las competidores que quisieron atacar a los sistemas Windows Phone 7 y Android, fracasaron en su intento de ejecutar exploits que comprometieran el sistema. En el caso de Google es muy loable teniendo en cuenta que su sistema es abierto y cualquiera puede estudiar su código fuente, no como el sistema de RIM, donde los expertos que comprometieron su seguridad han declarado la inherente complejidad de conseguir su objetivo debido a que Blackberry OS es el sistema operativo más cerrado y del que menos se conoce de todos los existentes.

1 comentario:

  1. Wow, excelente post! muy buena informacion, vamos a ver cuando dura apple para sacar 4.3.1

    ResponderEliminar

Compartir

Twitter Delicious Facebook Digg Stumbleupon Favorites