Documento técnico:
Estudio del troyano: "Tap Snake"
Septiembre 2010
Víctor Antonio Torre
[email protected]
Índice
1
INTRODUCCIÓN
2 ESTUDIO
3 REFERENCIAS
HISPASEC SISTEMAS
HISPASEC SISTEMAS
SEGURIDAD Y TECNOLOGÍAS
DE LA INFORMACIÓN
SEGURIDAD Y TECNOLOGÍAS
DE LA INFORMACIÓN
Hispasec Sistemas S.L.
Avda Juan López Peñalver, 17
Edificio Centro de Empresas CEPTA
Parque Tecnológico de Andalucía
29590 Campanillas (Málaga)
Telf: (+34) 902 161 025
Fax: (+34) 952 028 694
Información General
[email protected]
Comercial
[email protected]
www.hispasec.com
www.hispasec.com
Copyright
El Copyright de este documento es propiedad de
Hispasec Sistemas S.L. Hispasec Sistemas S.L.
proporciona este documento bajo la condición de
que será tratado con confidencialidad. No está
permitida su reproducción total o parcial ni su uso
con otras organizaciones para ningún otro
propósito, excepto autorización previa por escrito.
3
4
7
2
HISPASEC SISTEMAS
SEGURIDAD Y TECNOLOGÍAS
DE LA INFORMACIÓN
1 Introducción
Hace unos días Symantec detectó una nueva aplicación maliciosa para la
plataforma Android. Un troyano que recolecta datos sobre nuestra posición GPS y
que se presenta disfrazado del conocido y antiguo juego de la serpiente. Bajo el
nombre de "Tap Snake", la aplicación podía ser descargada del Android Market.
El funcionamiento malicioso es el siguiente:
Se instala el juego que contiene el troyano "Tap Snake" y se registra en una
aplicación web alojada en Google App Engine. Cada 15 minutos enviará los datos
de posicionamiento GPS a esa misma aplicación, concretamente a la dirección:
http://gpsdatapoints.appspot.com/addPoint
Es decir, el atacante debe tener acceso físico al terminal de la víctima para instalar
"Tap Snake".
Por otra parte, alguien que quisiese obtener esos datos de posicionamiento, debe
instalar otra aplicación del mismo creador llamada "GPS Spy".
"GPS Spy" es el cliente que el atacante instalará en su propio terminal para espiar
a la víctima. Si le introducimos los datos del alta de la víctima irá obteniendo los
datos almacenados de su posición.
Se efectúa análisis sobre el componente troyano, incluido en la aplicación "Tap
Snake". El cliente "GPS Spy" carece de interés ya que su funcionalidad se reduce al
consumo de datos de la aplicación web.
www.hispasec.com
3
HISPASEC SISTEMAS
SEGURIDAD Y TECNOLOGÍAS
DE LA INFORMACIÓN
2 Estudio
Denominación: AndroidOS.Tapsnake
MD5: 7937c1ab615de0e71632fe9d59a259cf.
La aplicación usa el siguiente icono:
Si desempaquetamos la aplicación podemos ver el fichero "AndroidManifest.xml"
En primer lugar vemos la versión 1.2.2 y el nombre del paquete es:
net.maxicom.android.snake.
ya en el manifiesto se puede observar la declaración de permisos que necesita la
aplicación:
android.permission.ACCESS_COARSE_LOCATION
android.permission.ACCESS_FINE_LOCATION
Respectivamente son los permisos para localización Wifi y GPS.
A continuación se declara un servicio "SnakeService" que es donde se recoge la
funcionalidad maliciosa. Dicho servicio es instalado y se inicia en cada reinicio del
terminal.
4
www.hispasec.com
HISPASEC SISTEMAS
SEGURIDAD Y TECNOLOGÍAS
DE LA INFORMACIÓN
- SnakeService:
La clase "SnakeService" inicial el hilo de la clase "SnakeService$1".
Para que el hilo sea iniciado es necesario que existan las "Properties", "settings" en
el dispositivo.
Para facilitar la lectura vamos a sustituir el nombre de $1 por Thread y $1$1 por
Handler. Esto es debido a que las clases heredan de estos objetos.
El método "void run()" de la clase "SnakeServiceThread", llama a un objeto
"LocationManager" del sistema e inserta un manejador "LocationListener" para
recabar los datos GPS.
La clase "LocationListener" envía un mensaje "onLocationChanged()" que envía un
"SnakeServiceHandler" cuando la posición GPS cambia.
Por último tenemos la clase "SnakeServiceHandler" que es quien maneja el
mensaje que envía el localizador cuando la posición es cambiada.
Podemos ver de forma simple si listamos las líneas que contengan "const-string"
los datos que envía, dónde y la codificación usada:
const-string v6, "?email="
const-string v7, "UTF-8"
const-string v6, "&code=" #Código de registro
const-string v7, "UTF-8"
const-string v6, "&time="
const-string v6, "&lat="
const-string v6, "&lng="
const-string v6, "&pro=" #Proveedor
const-string v6, "&acc=" #Precision
const-string v5, "http://gpsdatapoints.appspot.com/addPoint"
Estos datos son enviados por POST al servidor.
www.hispasec.com
5
HISPASEC SISTEMAS
SEGURIDAD Y TECNOLOGÍAS
DE LA INFORMACIÓN
El programa realiza un bucle para que los datos se envíen cada 15 minutos
(oxdbba0 = 900000 segundos) al servidor.
Sólo envía datos al servidor si el dispositivo tiene registrada la aplicación, de lo
contrario no se crea el hilo "SnakeServiceThread".
El siguiente log se produce al arrancar el dispositivo tras haber registrado el juego.
www.hispasec.com
6
HISPASEC SISTEMAS
SEGURIDAD Y TECNOLOGÍAS
DE LA INFORMACIÓN
Como podemos ver en la primera línea la aplicación tiene otros permisos implícitos
que permiten a la aplicación salvar datos en memoria. Este permiso siempre
aparece, dado que los datos de "email" y "code" se almacenan en el sistema para
posteriormente enviarlos en la petición.
3 Referencias
Informe de Symantec:
http://www.symantec.com/security_response/writeup.jsp?docid=2010-081214-
2657-99
Informe de F-secure:
http://www.f-secure.com/weblog/archives/00002011.html
Informe de TrendMicro:
http://blog.trendmicro.com/malicious-android-app-spies-on-users-location/
Reporte de VirusTotal:
http://www.virustotal.com/file-
scan/report.html?id=6953fb1a1245c4bfaba98fd799a6222fde3567b7bf7380aca2a7
ecf006c8c678-1282118088
www.hispasec.com
7
Comentarios de: Documento técnico: Estudio del troyano: "Tap Snake" (0)
No hay comentarios