jueves, junio 19, 2014

PlayDrone: Tokens de autenticación en apps Google Play

Un grupo de investigadores de la Universidad de Columbia han publicado un paper titulado "A Measurement Study of Google Play", donde explican cómo han realizado un estudio sobre las apps publicadas en Google Play y los resultados descubiertos, donde llama poderosamente la atención el descubrimiento de los tokens de autenticación hardcodeados en el código de las apps.

Figura 1: El paper que describe PlayDrone y el estudio de Google Play

Los miembros del equipo, Nicolas Viennot, Edward Garcia y Jason Nieh han construido para su análisis PlayDrone, un sistema que hace crawling de todo Google Play para descubrir el máximo número de apps y descargarlas. Hacer esto no es trivial, ya que Google no permite hacer esto, así que han tenido que utilizar técnicas conocidas por la industria de seguridad para obtener la máxima visibilidad de ellas.

Una vez conseguidas las apps, más de 1.000.000 de apps distintas, los investigadores han hecho una serie de catalogación de las apps en base a las librerías que utilizan, los tipos de servicios que ofrecen, etcétera, que siempre vienen bien para poder entender mejor Google Play.

Figura 2: PlayDrone y el análisis de la app de Gmail para Android

Esto es importante, sobre todo vista la industria de Fake Apps que se ha creado alrededor de Android, para poder localizar aquellas que utilizan los mismos patrones, como por ejemplo las mismas librerías de publicidad. O para localizar apps maliciosas que te quieran robar el WhatsApp para que otro te pueda espiar WhatsApp o  los números de teléfono de tu terminal para hacer suscripciones a sistemas SMS Premium.

Sin embargo, lo que más llama la atención es que tras decompilar todas las apps han realizado una búsqueda de tokens OAuth y credenciales para la API de AWS (Amazon Web Services) y han podido descubrir miles y miles de tokens hardcodeados, incluido los de cuentas de Facebook, Twitter, Linkedin, Flickr, BitLy, FourSquare, etcétera.

Figura 3: Tokens de cuentas de servicios localizados en apps 

Cualquiera que consiga estos tokens podrá gestionar gran parte de las cosas que se haya autorizado a ese token, como por ejemplo poner twitts o hacer follow en Twitter (hay más de 28.000 tokens) y poder vender retwitts o seguidores para satisfacer las necesidades de los Community Managers de Cartón Piedra. También podrían hacer like a páginas de Facebook - como hacía el tipo que se cambió el nombre a Mark Zuckerberg - o compartir contenido en los muros de Facebook y distribuir malware (como se hacía con la estafa de la linterna molona), etcétera. Los amigos del Fraude Online seguro que encuentran siempre algo valioso con estas cuentas.


Figura 4: La charla de la presentación del trabajo

El uso de tokens hardcodeados en las apps lo hemos visto no solo en Android y también en las apps de App Store de iPhone se encuentra demasiado comúnmente, como se explica en el libro de Hacking iOS, e incluso a veces pueden encontrarse estos tokens simplemente revisando el log de una app usando el Apple System Log para ver cuándo hace uso de él.

Dicho esto, si tienes una app desarrollada en iOS o desarrollada en Android, o si piensas hacer una app en breve, aplícate el cuento y ten mucho cuidado con los tokens o passwords que hardcodeas en tu código, que como puedes ver si está en Google Play o en App Store está al alcance de cualquiera.

Saludos Malignos!

4 comentarios:

  1. https://twitter.com/andreasdotorg/status/479574440167346176

    ResponderEliminar
  2. ¿Entonces cuáles serían las buenas prácticas y qué es lo que habría que hacer para trabajar sin los tokens hardcodeados en las apps?

    ¡Gracias!

    ResponderEliminar
  3. Si no se deben utilizar los tokens hardcodeados en las apps ¿entonces cómo se debería hacer?.

    En el artículo echo de menos una propuesta de cómo solucionar este problema de seguridad.

    ¿Alguien conoce la respuesta?

    ¡Gracias! :)

    JJ

    ResponderEliminar
  4. Estaría bien una herramienta que conecte con PlayDrone y te avise si alguna de las apps que tienes instaladas tiene ese fallo

    ResponderEliminar