Downloaders "en diferido": Nuevas técnicas de descarga de apps maliciosas en Google Play

viernes, 27 de febrero de 2015

Los descargadores o "downloaders" no son nuevos en Android, pero últimamente, se están volviendo cada vez más importantes para los atacantes, como método que elude las barreras de entrada en Google Play y su detector de malware. En ElevenPaths hemos detectado unos downloaders que, bajo la apariencia de apps inocentes, permiten la descarga de apks más peligrosos (literalmente, cualquier apk). Necesita de la interacción del usuario y que la opción de "instalar de fuentes desconocidas" esté activa, pero el truco que utiliza para engañar al usuario es bastante ingenioso, y permite que la app descargada (la segunda) se ejecute sin que el usuario asocie los futuros problemas que tendrá con la primera app que instaló. Veamos cómo.

Los "downloaders" son un viejo truco en el mundo del PC, y algo relativamente no tan nuevo en Android. Estas apps intentan encontrar el camino hacia la victima usando permisos menos sospechosos, o incluso ofreciendo realmente la funcionalidad prometida. Así es como llegan a Google Play. Después, en una futura versión, una vez consolidados en el mercado, mutan. Se vuelven "downloaders" de un adware o malware más complejo. Los atacantes tienen mucho más éxito con estas técnicas. Hay muchas. Veamos una nueva.

Cómo funciona

Un usuario podría descargar una aplicación aparentemente inocente y, solo un tiempo después, el teléfono descargaría e intentaría instalar, engañando al usuario, otra aplicación completamente diferente: muy probablemente maliciosa (malware, dialers o suscriptores a mensajes premium, etc).

Las apps que hemos encontrado no son muy detectadas por los antivirus e incluso, si lo son, es por la carga de adware agresivo que llevan en sí mismas, no por su técnica de descarga. Incluso muchas de ellas todavía se encuentran en Google Play. Hemos analizado esta que todavía se encuentra online.


Uno de los downloaders en Google Play

Se supone que se trata de un "cambiador de voz" y en realidad lo hace, guardando un fichero .wav y modificando la frecuencia de reproducción. La app en sí misma contiene tres SDKs diferentes de tres proveedores de publicidad distintos. Esto significa que por sí misma inunda el teléfono con publicidad. Pero no es suficiente... esta app declara además un "receiver" llamado  "USER_PRESENT".

USER_PRESENT receiver, para activarse cuando el usuario desbloquea el dispositivo

Este es un evento oficial que se lanza cada vez que el dispositivo "se despierta" por una acción del usuario. En otras palabras, básicamente cuando se desbloquea. Este es el código que se lanza cuando se recibe el evento:

Código que se activa cuando el teléfono se desbloquea
Básicamente, lo que la aplicación está haciendo es asegurarse la conectividad. Comprueba que se lanza solamente una vez al día. Esto ocurre incluso cuando no se está usando la app. Cuanta (con la variable "k") cuántas veces ha sido ejecutada y se almacena en las preferencias.

Downloading... pero no hoy

La app no descarga nada el mismo día que el downloader ha sido instalado. Así evitará un "análisis dinámico". El usuario instalará entonces este "cambiador de voz", pero no notará nada extraño hasta, al menos, el día siguiente. Y entonces, el día después, se realiza otra comprobación. Dos de cada tres veces se visitará la URL mostrada en la imagen. Ahí un TXT apunta a otra app en Google Play, de forma que el atacante inunda con estos anuncios la pantalla.

Pero la parte interesante ocurre cuando la app no entra en ese "if" y baja por el código. El método Gfveaqwfea comprueba la existencia de la app com.facebook. No es la app oficial de Facebook (es com.facebook.katana), sino el adware que será instalado posteriomente.

Comprobando si existe com.facebook y si no, descarga la nueva app

La app comprueba si el dispositivo está configurado para instalar apps de fuera de Google Play. Esto es muy común en ciertos países donde el uso del mercado es limitado. También es una configuración común en los dispositivos de usuarios que instalan apps "no oficiales", así que en estos escenarios tendrá bastante éxito. Si es así, se descarga a.apk desde la URL mostrada en la imagen y se almacena como xxx.apk.

Comprueba la opción "instalar de fuera de Google Play". Si es posible, intenta descargar el nuevo apk


El nuevo apk en la carpeta "Download"
El usuario no verá nada y no se le hará ninguna pregunta para la descarga. Entonces se ejecuta. Dependiendo de la configuración del dispositivo, si el usuario ha asociado automáticamente la ejecución a Verificar Apps o Instalar Directamente, se mostrará un diálogo de selección... o no. Cuando esta segunda app está siendo instalada, esto es lo que verá el usuario:

Parece una actualización legítima de Facebook

Es importante recordar que esta es la imagen que aparecerá cuando el usuario desbloquee el teléfono, el día después de que fuera instalada la app original, y solo una de cada tres veces hasta que sea instalada... así que es bastante improbable que la víctima asocie la primera instalación del "cambiador de voz" por ejemplo, con esta "actualización" que parece legítima de Facebook. El icono es similar y el nombre lo hace aun más confuso.


Esquema general del downloader

Esta nueva app descargada podría ser, literalmente, cualquier cosa. En este caso se hace pasar por Facebook, y el icono desaparece un segundo después de ser instalada. Si el  usuario tiene el Facebook real en su teléfono, pensará que se está autoactualizando, y probablemente no le otorgue mayor importancia. Pero la realidad es que se trata de un adware muy agresivo que será instalado por el usuario gracias a este truco de ingeniería social.

El icono del falso Facebook desaparecerá
Conclusiones

Los atacantes están especializándose cada vez más en que las apps lleguen a Google Play, y transformarlas luego en adware/malware a largo plazo. Esta operación a largo plazo les proporcionará más víctimas y estamos detectando este patrón cada vez más en apps maliciosas. El truco de ejecutar la app solo cuando el teléfono se desbloquea, otorga mayor "credibilidad" para la víctima.

Con Path5, hemos identificado a la persona detrás de estos ataques (un programador polaco). Ha estado operando desde finales de 2014. En estos momentos están activas unas 20 apps suyas en Google Play, de unas 100 que ha subido en las últimas semanas. La app que acabamos de analizar es  us.free.voice.changer.funny.voices.lolapps, con el SHA1: c0eb7cde5a1b3818a1d7af2f580f8ea3fa1e8d61

Las que parecen ser del mismo programador, usando técnicas similares, y todavía están online son:
  • TV remote controller, us.tv.remote.pilot.television.free.tool2, 88287f102bbd9cf3a3e5e7601b5bc8ee760d4525
  • Faster Wifi PRANK, us.phonehelper.wifi.booster.free, 74b2cc8d95c001832a4d4fb11ea3cb9638daf5e8
  • Visión nocturna gratis, us.night.vision.nightvision.free.useit, 1606ce1f616e3ba29ac021e4ce1ac1cb5e84b7a4
  • Funny voice changer, us.free.voice.changer.funny.voices.lolapps,c0eb7cde5a1b3818a1d7af2f580f8ea3fa1e8d61
  • Fake phone call, us.free.fake.call.caller.lolapps, 3b0a2b88effd264235e75984cea3bc77a6304e8b
  • Fake connection, us.fake.call.caller.free.usapps, 2f3c8a8cd1e5ecdad0e348484c72f25aff45d755
  • Faster internet PRANK, us.phonehelper.internet.booster.free, c2b083d0ce9d13e8df2f680f2901cd54778d385e
  • Increase battery life PRANK, us.phonehelper.battery.booster.free, 4890c7437268b65ef376515047c13e0eecffdd9a
  • Funny voice changer, us.free.voice.changer.funny.voices.lolapps, a97c7f6669c41ead0ba54928ebe2cad5ba706bc5
  • Transparent phone HD, us.transparent.screen.diaphanous.phone.lolapps, 64e44c0d234f96eff5f0e44305d25b35242b0e51
  • Flash-Player installation, us.flashapps.free.flashplayer, 9f0c9145f2a265d476b936830fa9dde3d024eab6
  • Diáfano teléfono (gratis),us.transparent.screen.diaphanous.phone.free.smartools,c6c2617f7cf512669f553876939e5ca367c9e746
  • Increase volume sound PRANK, us.phonehelper.sound.booster.free, 3e360ee39146cbd834280c18d656e3e9f6d0df2f
  • Termómetro electrónico gratis, us.digital.electronic.thermometer.free.measure.temperature.temp, 722f7f2c10c4b656ded858cf9f91a8c55ea226b6
  • Ski jumping 2015, us.ski.jumping.free.game.full.sportgames, 638a1c331e76bec73b1a46a451e4d1de6cd20879
  • FlashPlayer, us.flashapps.free.flashplayer2, 9f7aa1bc90770748681b08e3ee63dcb974195f7a
  • Falsa llamada entrante, us.free.fake.call.caller.smartools, fb9c05094eb1fdcfa8aec07eeff1e95ee7814e76
  • Increase network signal PRANK,us.phonehelper.signal.booster.free,495b151c5e709bfa50c671c8fb93cbeaee29e025
  • Control remoto para la TV, us.tv.remote.pilot.television.free.tool, dbfd108973388d6c1a506ac68b79463df8271f5c
  • Fake phone call, us.free.fake.call.caller.lolapps, e96d2ab7d8d0c7990be07bd42b9e9bc079e70f3a
  • Tonos para Navidad, us.christmas.ringtones.free.carols.mp3.ringtonedownloader, fa57543faf60073f56041caee0f1524cfc9f77dd


Sergio de los Santos
ssantos@11paths.com

Juan Manuel Tirado
juanmanuel.tirado@11paths.com


No hay comentarios:

Publicar un comentario