Parte 1
Parte 2

En relación al post acerca de la seguridad de nuestros tweets pudiendo ser atacados por un MitM, he decidido analizar el tráfico de datos generado por cada una de las cuatro aplicaciones que usaban SSL para transmitir los tweets y alguna otra información. La verdad es que me he llevado una sorpresa un tanto desagradable, puesto que no hay ninguna que sea segura en su totalidad.

Las aplicaciones analizadas son: Twitter (Oficial), TweetDeck, Seesmic y HootSuit. Tienen en común estas aplicaciones, que se pueden acceder a ellas y ver los tweets cargados anteriormente, junto con lo que esto conlleva (avatares, biografias…). Esto quiere decir que esta información está guardada dentro del teléfono y cada vez que nos conectamos a Internet se va actualizando y reemplazando. Esto es un tanto obvio la verdad. Lo que también deberia ser obvio, es que para el transporte de estos datos, de Internet al telefono, se hiciese todo mediante el protocolo seguro y no es así.

Por un lado, las cuatro aplicaciones cargan los avatares que posteriormente son guardados en el teléfono sin usar SSL, así que con un MitM podriamos sacar todos los avatares.

La otra falta de seguridad que comparten las cuatro aplicaciones son que, si subimos una imagen desde la aplicación para twittearla junto con nuestro estado, esta imagen también se puede recuperar al realizar un ataque MitM y cualquiera que esté escuchando, podria obtenerla, al contrario que en la versión web de Twitter, que si subimos una imagen, no se puede obtener (en la versión segura claro está).

Twitter (Oficial)

Como anteriormente dije, se pueden obtener los avatares que se cargan en la aplicación:

Cabe destacar que la recuperación de tweets, privados, menciones, búsquedas, listas, y todo en general, se hace a través de SSL, por lo que no podrán leer lo que escribimos o recibimos.

Sin embargo, como anteriormente también dije, si que podemos recuperar una imagen que subamos a Twitter directamente desde la aplicación, como podemos ver a continuación:

Finalmente, añadir que otro dato que también podemos recuperar con total precisión, es la geolocalización, es decir, la localización que se recupera al usar el propio GPS del teléfono móvil para posteriormente incluirla en los tweets. Como podemos ver, recuperamos las coordenadas que luego las ponemos en GMaps y tan tranquilamente vemos el sitio, aunque ciertamente poco sentido tiene si esto se realiza en un MitM puesto que al realizarlo en un entorno controlado, ya sabemos donde está.

TweetDeck

Al sincronizar todo por primera vez, como con todas las aplicaciones, se transfieren los avatares, incluso podemos ver que llega un paquete cuyo host es: tracking.tweetdeck.com y realiza una petición GET a la siguiente URL: /track/add_account?cl=android&tw=103288301&tz=120&v=2 de la obtenemos el número identificador de la cuenta de twitter (se hablará sobre esto en otra entrada).

Al actualizar la timeline, tweets de perfiles, privados y demás, se realiza todo mediante SSL, aunque cada 15 minutos (configurable) al actualizarse automáticamente, podemos interceptar un paquete sin tampoco demasiada importancia aunque con ciertos datos, cuyo contenido también es una petición GET de URL /track/ping?android-model=MT15i&android-sdk=2.3.3&cl=android&interval=900&tw=103288301&tz=120&v=2&ver=1.0.7.3. Aparecen el identificador, el modelo, versión de Android y el intervalo de tiempo.

Por otro lado, al subir una imagen, podemos recuperarla al igual que con la aplicación anterior, pero no solo eso, sino que también disponemos del link de la subida que se ha generado, como podemos ver:

Otra característica curiosa que tiene TweetDeck es la posibilidad de traducir tweets o biografias, pero esto tampoco pasa por SSL y es totalmente transparente, por lo que podemos ver el mensaje traducido y el original:

Por último, al agregar y desagregar de favoritos, recibimos los identificadores de los tweets que nos sirven para saber qué tweet hemos añadido o no, también en texto plano.

Como podemos ver, tenemos el identificador del tweet 104311621911982080. De esto también se hablará próximamente.

Seesmic

Al sincronizar por primera vez nuestra cuenta de twitter, además de recoger los avatares de los usuarios, podemos obtener nuestra descripción y último tweet. Al subir una imagen, además de poder recuperarla como en las demás aplicaciones, podemos ver el enlace generado junto con nuestro nombre de usuario e identificador.

Por otra parte, en un paquete de datos, vemos que alguna información es guardada en la siguiente ruta de nuestro teléfono: /sdcard/ANdroid/data/com.seesmic/stats.txt

HootSuit

Esta, es la más insegura de las cuatro sin lugar a dudas: cierto es que los tweets y privados que enviamos se hace a través de la capa segura, pero al actualizar de forma automática (cosa que hace cada 300 segundos) o de forma manual, son totalmente visibles los tweets de nuestro timeline, de nuestro usuario, y nuestros privados. Además, al sincronizar por primera vez también aparecen algunas cookies interesantes junto con nuestra descripción.

Y por supuesto, al subir alguna imagen, también la podemos obtener junto con el enlace en donde se ha subido:

Conclusión

Tristemente, no hay ninguna aplicación segura en su totalidad, pero si de alguna manera tuvieramos que ordenarlas por orden de más seguro a inseguro, seria el siguiente:

Twitter (Oficial) > Seesmic > TweetDeck > HootSuit

Resumen:
–>Todos:
-Recuperación de avatares.
-Recuperación de imágenes subidas al enviar tweet.

–>Twitter (Oficial):
-Recuperación de coordenadas al usar el GPS para ubicarnos.

–>TweetDeck
-Enlace de la imagen subida
-Sistema Operativo, versión y modelo del teléfono.
-ID del tweet que faveamos o desfaveamos.
-Nuestro ID identificador de twitter.
-Obtención de los tweets que traducimos (ambos, el original y el traducido).

–>Seesmic
-Enlace de la imagen subida.
-Nuestro ID identificador de twitter.
-Nuestro nombre de usuario de twitter.
-Sistema Operativo, versión y modelo del teléfono.

–>HootSuit
-Obtención de cookies interesantes.
-Enlace de la imagen subida.
-Obtención de los tweets de nuestro timeline, perfil y privados (junto con información de los usuarios).

Un saludo, lipman