lunes, agosto 01, 2011

Jugada redonda de Apple con un bug de solera

Si Apple lo quiere hacer adrede no le sale tan bien. Después de que apareciera JailbreakMe 3.0, para conseguir que con visitar una página web se hiciera el jailbreak a todos los dispositivos en el mercado, resulta que ahora, tras parchearse los fallos que se explotaban, se ha descubierto un bug en el proceso de validación de las restricciones de los certificados digitales que hace que todas las conexiónes SSL sean vulnerables a man in the middle, sin generar ninguna alerta de seguridad. Todo transparente y limpio.

Moxie Marlinspike publió este bug hace 9 años para Internet Explorer, y el fallo es tan simple como curioso. Supongamos a la entidad certificadora A, en la que confía el equipo víctima, en este caso un usuario de ay!fon, ay!Pad, ay!Pad2 o ay!Pod que no se haya actualizado a la versión 4.3.5.

Supongamos que la entidad A emite un certificado digital para www.tiendademibarrio.com, que va a ser utilizado en una conexión http-s con el sitio web y al que llamaremos certificado B. La diferencia entre el certificado A que identifica a la entidad certificadora A y el certificado B, que identifica a la tienda del barrio, es una serie de constraints que limitan lo que se puede hacer con ellos. Así, el certificado B no se "puede" utilizar para generar certificados digitales de, por ejemplo www.bankofamerica.com, www.gmail.com, www.hotmail.com o www.facebook.com.... en teoría.

El problema es que sí que se pueden utilizar en la práctica, y el certificado B podría emitir un certificado para www.hotmail.com, claro está, en él apareciría que las constraints no se lo permiten. Sin embargo, es labor del cliente que recibe ese certificado digital comprobar que se ha emitido por un certificado al que la entidad A no permitió emitir certificados y debería rechazarlo.

Pues bien, iOS (el sistema operativo de Apple par los ay!cacharros) no lo ha hecho en toda su vida. Esto permite que, con cualquier certificado digital de www.loquesea.com se pueda utilizar una herramienta Man in the Middle para hacer el ataque.

Así, Moxie Marlinspike, commemorando los 9 años de vida de la alerta de seguridad ha publicado una versión nueva de SSLSniff que permite hacerlo directamente para iOS con un bonito parámetro.

Y aquí viene la jugada maestra de Apple:

Con la actualización iOS 4.3.4 se cerraron los bugs que usa JailbreakMe 3.0 (la evolución de jailbreakme 2.0 que fue el cachondeo público hasta en las tiendas de Apple). Lógicamente, todos los jailbreakers pasaron en canoa de instalar esa versión.

Sin embargo, el fallo de SSL en la evolución de las BasicConstraints se soluciona solo en la versión iOS 4.3.5, de la que solo hay posibilidad de hacer jailbreak en versión tethered, es decir, que en cada reinicio debe volver a hacerse el proceso de jailbreak... (un coñazo para un dispositivo móvil), pero para iPad 2, no hay posibilidad de hacer ningún jailbreak.

A esto, hay que sumar que todos los ay!cacharros indican en su USER-AGENT de navegación la versión exacta del sistema operativo, y tenemos la fiesta.

La alternativa de los jailbreakers de iPad 2 es inseguro o no jailbreak, la del resto es inseguro o tethered jailbreak....¿Le ha salido redonda a Apple esta cagada o no?

Saludos Malignos!

7 comentarios:

  1. Se escribe "adrede" y en ese caso "tan bien". La primera línea me ha hecho sangrar los hogos.

    ResponderEliminar
  2. Lo cortés no quita lo valiente... no dejo de sorprenderme cada vez que leo cosas así. Son cosas tan básicas que uno no imagina que un grupo de ingenieros del nivel que debe haber en Apple no hayan tenido en cuenta ese tipo de detalles sobre certificados.

    ResponderEliminar
  3. Lo que me parece raro raro es que nadie haya publicado un parche no oficial en la store del Cydia (aka la store no oficial) en todo este tiempo... por ejemplo para la vulnerabilidad del PDF (que curiosamente era la que te permitía instalar el propio Cydia, ironías de la vida) había un parche desde casi el día 1.

    ResponderEliminar
  4. Para que os riais hoy un poco. http://www.movistar.es/on/pub/servicios/onTOEntrada/0,,entrada%2Bbuscador%2Bv_segmento%2BAHOG%2Bv_idioma%2Bes%2BambitoAcceso%2Bpub,00.html?uri=/on/pub/ServNav?servicio=redireccion&area=particulares-internet-adsl-movistar&cliente=0&URLFinal=http://qr.net/eplh&epicfail=1

    ResponderEliminar
  5. Has sido capaz de nombrar en este post no se cuantas veces a Moxie y no nombrar ni una sola vez a los que encontraron este bug en la implementación de iOS, ole xD

    Peloteo! :*

    ResponderEliminar
  6. @vierito5, Moxie es amiguete y el descubridor de bug original. El otro ya lo pusimos en Seguridad Apple... y está es Alemán!!! }:))

    ResponderEliminar