Menú principal

jueves, 10 de mayo de 2012

Hijacking en Facebook para iOS y Android: Demostración

A principios de este mes de Abril, el investigador/desarrollador británico de plataformas móviles Gareth Wright, reportó un serio problema de seguridad en la aplicación nativa de Facebook para iOS - también en la de Android -. El problema reside en que la aplicación almacena información sensible, en los ya conocidos archivos de configuración plist - muy utilizados en los sistemas operativos de Apple -.

Entre la información que se almacena en estos archivos, se encuentran las credenciales oAuth  - oAuth key and secret - utilizadas para acceder a las cuentas de Facebook. Este fallo de seguridad da pie a ataques como hijacking de sesión, y a partir de ahí todo el destrozo que alguien malintencionado pueda causar en una cuenta personal de Facebook. Además según afirma Wright, se podría utilizar el FQL (Facebook Query Language) y obtener datos extras de la cuenta Facebook del usuario.

Figura 1: Datos de sesión en el fichero com.facebook.Facebook.plist

Tal y como comentó Wright, el error fue encontrado, mientras se navegaba por el sistema de ficheros con un explorador de ficheros de iPhone, es decir, una herramienta del tipo iFunBox, DiskAid, o similares. En Seguridad Apple hicimos pruebas para ver si continúan los errores, y poder testear el fallo de primera mano. Y este es el resultado para la demo que se enseño en The App Fest.

Esto se puede hacer ahora fácilmente con la herramienta Facebook Recover para iOS, que con solo apretar un botón extrae la sesión Facebook de un terminal iOS o de un Backup de iOS. 

Figura 1.1: Facebook Recover para iOS

Hijacking en Facebook para iOS: Prueba de Concepto

El primer paso es conectar el dispositivo - en este caso un iPhone 4 - a un equipo  con cualquier sistema operativo con iFunBox instalado para poder acceder al sistema de ficheros del terminal, y situarse en la siguiente ruta:

Figura 2: Ruta a los ficheros de sesión

En  ella se encuentran las dos carpetas que contienen los archivos que interesan, que son los siguientes:
Cookies.binarycookies
com.facebook.Facebook.plist
El primero se encuentra en la carpeta Cookies, y el segundo en la carpeta Preferences. Una vez localizados los archivos basta con copiarlos al equipo en el que se tiene instalado el iFunBox.

Figura 3: Ficheros que forman parte de la sandbox de Facebook para iOS

Una vez se tienen los ficheros en el equipo de escritorio, posteriormente dichos archivos pueden ser copiados a otro dispositivo iOS, robando de esa manera la sesión de Facebook. Para hacer las pruebas y ver de manera correcta como se realiza el robo de sesión, sería conveniente acceder primero a una cuenta iOS, y después salir o cerrar la sesión, tal y como se aprecia en la siguiente captura:

Figura 4: Una vez copiados los ficheros, cerramos la sesión de la cuenta robada

De esta manera, la próxima vez que se ejecute la aplicación Facebook, aparecerá el panel de login, tal y como se muestra a continuación:

Figura 5: La sesión está cerrada, y no se conecta la aplicación

Sin embargo, los ficheros robados mantienen la sesión via, por lo que una vez que se han copiado estos dos archivos a otro dispositivo iOS  - o al mismo que se le han robado los fichero ya que para hacer la prueba basta con un terminal -, se puede comprobar como al arrancar la aplicación de Facebook, ésta accede a la cuenta del usuario al que se le han robado los archivos, sin pedir los datos de autenticación, tal y como se muestra en la siguiente captura:

Figura 6: La sesión vuelve a aparecer

Estado del bug

En el primer mensaje de Wright no se indicaba si el fallo afectaba tan sólo a dispositivos que tuviesen el Jailbreak realizado y Facebook, contestó con lo siguiente al mensaje de Wright con el fallo de seguridad:

Figura 7: Contestación de Facebook al fallo de seguridad reportado por Wright

Así que Wright respondió de nuevo, diciendo que se puede realizar tanto en dispositivos a los que se les haya realizado el Jailbreak, como a los que no lo tengan, ya que basta con acceder a estos ficheros en un backup del terminal. Con lo que queda clara la afirmación de Wright de que todos los usuarios de Facebook en iOS son vulnerables.

Además dice Wright, que es mayor riesgo reside en el malware y virus especialmente diseñados para adquirir datos de los dispositivos conectados a un equipo de escritorio. Por lo que hay que pensárselo dos veces antes de conectar nuestro dispositivo iOS - o Android - a un PC no fortificado, y las music stations o cargadores de batería públicos en las que puedan hacernos un juice jacking.

Facebook ha confirmado que está trabajando en cerrar dicha vulnerabilidad, pero mientras tanto, cuidado donde dejáis los teléfonos y donde los conectáis.

3 comentarios:

  1. Hola,
    Me gustaria que me aclararan si una vez cerrada la app de Facebook, los ficheros:
    Cookies.binarycookies
    com.facebook.Facebook.plist
    siguen manteniendo los datos de la sesión de Facebook, ¿es esto así? o ¿si se cierra la sesión ya no está la información de estos ficheros disponible?
    Un saludo y gracias,
    Carmen

    ResponderEliminar
  2. @Menita, si cierras la sesión, los datos de esos ficheros se borran, pero si alguien los copia antes de que la mates, pueden volver a abrir la sesión, según las pruebas que nosotros hicimos.

    Saludos!

    ResponderEliminar
  3. Se habla de IOS, pero con Android aplica esto???, acaso los archivos son los mismos???

    ResponderEliminar

Artículos relacionados

Otras historias relacionadas

Entradas populares