Home > Android > Análisis de un repositorio ruso de aplicaciones Android

Con el afán de obtener aplicaciones que no están gratuitamente en la Google Play o por que se buscan aplicaciones que traigan “ciertas mejoras” sacrificamos la seguridad por los supuestos beneficios que traen las aplicaciones descargadas desde otros repositorios, en esta ocasión les dejo un análisis realizado por los chicos de hispasec al analizar un repositorio ruso de aplicaciones para Android en el cual encontraron cosas interesantes e intrigantes

Dentro de nuestra participación en el proyecto europeo NEMESYS, hemos desarrollado un “honeyclient” que nos permite de recopilar repositorios de Android, descargar las aplicaciones, y analizarlas. Hemos analizado el repositorio ruso de Android “androidar.ru”, para averiguar la confianza que podemos tener en los repositorios alternativos al oficial de Google. Vamos a mostrar algunos de nuestros descubrimientos.

Un “honeyclient” es un sistema diseñado para imitar, ya sea de forma manual o automáticamente, la serie de pasos que realizaría un usuario normal al visitar diferentes sitios web. Nuestro proyecto está destinado al análisis de repositorios Android alternativos, determinar su fiabilidad y comprobar que no se debe descargar aplicaciones de estos sitios.

Para evaluar el repositorio, hemos descargado 2.300 aplicaciones. Para cada aplicación, hemos realizado un análisis estático con Androguard y dinámico con Droidbox adaptado para la versión de Android 4.1.1. De esta forma queremos conocer el comportamiento de las aplicaciones: es decir los SMS enviados, datos privados robados, etc. Invitamos a leer nuestro informe sobre el análisis de aplicaciones Android.

Hemos notado que 622 aplicaciones Android (un 27%) mandaban SMS premium y los identificadores IMEI e IMSI del móvil por Internet a la dirección 188.42.243.203 (un servidor en Luxemburgo). Con el análisis estático, hemos averiguado que todas las aplicaciones pedían los 26 permisos siguientes y que tenían la capacidad de enviar SMS, leer SMS, leer los contactos, sacar fotos, etc.:

android.permission.ACCESS_NETWORK_STATE
android.permission.MOUNT_FORMAT_FILESYSTEMS
android.permission.WRITE_SECURE_SETTINGS
android.permission.BIND_DEVICE_ADMIN
android.permission.ACCESS_NETWORK_STATE
android.permission.SEND_SMS
android.permission.BIND_REMOTEVIEWS
android.permission.INTERNET
android.permission.WRITE_SETTINGS
android.permission.SET_PROCESS_LIMIT
android.permission.SET_WALLPAPER_HINTS
android.permission.BRICK
android.permission.DEVICE_POWER
android.permission.READ_CONTACTS
android.permission.RECEIVE_SMS
android.permission.INSTALL_PACKAGES
android.permission.READ_PHONE_STATE
android.permission.WRITE_SYNC_SETTINGS
android.permission.ACCESS_FINE_LOCATION
android.permission.SET_ANIMATION_SCALE
android.permission.CAMERA
android.permission.CHANGE_NETWORK_STATE
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.ACCESS_CHECKIN_PROPERTIES
com.android.launcher.permission.INSTALL_SHORTCUT”
android.permission.SYSTEM_ALERT_WINDOW

Abajo mostramos un ejemplo de una aplicación del repositorio que envía tres SMS premium. El primer SMS se envía a partir de dos minutos, el segundo después de 10 segundos, y el tercero después de 15 segundos. Los tres SMS se envían a números premium diferentes, pero con el mismo mensaje “43978546971 361453287722”. Pensamos que el primer SMS se envía con retraso para evitar su detección por las “sandbox” de Google o de casas antivirus. En efecto, con la gran cantidad de aplicaciones Android, imaginamos que analizar cada muestra más de un minuto pide muchos recursos, por lo que en la mayoría de los casos no se puede hacer.

Mirando el certificado de la aplicación, vemos también que el desarrollador de la aplicación no quería poner su nombre.

Además, el desarrollador ha usado técnicas de ofuscación del nombre de las clases lo que hace más difícil un análisis por ingeniería inversa. Por ejemplo, el nombre de la clase principal que se llama “imauyfxuhxd.qhlsrdb.rqdpwernbqj”.

También, nos hemos dado la cuenta de que descargando varias veces la misma aplicación desde la misma URL:
“http://androidarar.ru/api.php?n=beyondpod-key&f=beyondpod-key&a=36145&icurl=&imurl=&s=2&ss=13&mt=4&d=2&u=http%3a%2f%2fandroidar.ru%2fengine%2fdownload.php%3fid%3d1062&autoic=1” muchas veces nos devolvía aplicaciones con hash diferentes. Sin embargo, extrayendo el código binario de cada aplicación, hemos comprobado que todas las aplicaciones tienen el mismo código compilado. En otras palabras, el atacante cambia los iconos y las parámetros de configuraciones de la aplicación sin modificar el código compilado, de manera que se genera un hash diferente para la aplicación. Pensamos que el atacante lo hace intencionalmente para engañar los antivirus que usan los hash para identificar los malware Android. Un generador de firma sobre el código compilado como el generador de formas para YARA (que describimos en el blog del Laboratorio de Hispasec) seria más adecuado para identificar el malware.

Aconsejamos a todos los usuarios descargar las aplicaciones de Android desde el repositorio oficial de Google (https://play.google.com/store) y comprobar los permisos que la aplicación pide durante su instalación. Por ejemplo, un juego que pida permiso para enviar SMS premium debería hacernos sospechar.

Fuente http://unaaldia.hispasec.com/2014/06/analisis-de-un-repositorio-ruso-de.html