Вы находитесь на странице: 1из 6

RECSI 2014, Alicante, 2-5 septiembre 2014

Analisis Visual del Comportamiento de


Aplicaciones para Android
Oscar Somarriba, Ignacio Arenaza-Nuno, Roberto Uribeetxeberria, Urko Zurutuza
Dpto. de Electronica e Informatica
Mondragon Goi Eskola Politeknikoa
Mondragon Unibertsitatea
Emails: oscar.somarriba@alumni.mondragon.edu, {iarenaza,ruribeetxeberria,uzurutuza}@mondragon.edu

ResumenLos dispositivos moviles inteligentes equipados con


funciones avanzadas de computacion y comunicaciones han
crecido rapidamente. Sin embargo, a pesar de los mecanismos de
seguridad existentes, y dada la cantidad creciente de dispositivos
conectados a Internet, tambien han aumentado exponencialmente
la cantidad de aplicaciones maliciosas (malware) dirigidas a ellos.
En este trabajo mostramos como los componentes peligrosos
y maliciosos del malware movil se pueden visualizar de una
manera intuitiva a fin de descubrir facilmente que funciones de
Android pueden desencadenar el fraude. Nuestro enfoque incluye
un metodo para interceptar llamadas a funciones (hooking) con
el fin de recoger trazas pertinentes de la aplicacion durante de
tiempo de ejecucion. Esto permite la monitorizacion de llamadas
a funciones de la API de Android relacionadas con los permisos
de instalacion de la misma. Las trazas obtenidas se colectan en
un servidor web central donde tiene lugar la visualizacion del
comportamiento de las aplicaciones.
Palabras claveseguridad en aplicaciones moviles (mobile
application security), software malicioso en aplicaciones moviles
(mobile malware), analisis Visual (visual analytics), analisis del
comportamiento de aplicaciones moviles (application behavior
analysis)

I.

I NTRODUCCI ON

La adopcion masiva de las comunicaciones moviles en la


vida cotidiana ha trado una necesidad de establecer en la
sociedad una confianza en la infraestructura movil, y esto
supone un gran reto en la actualidad. Esto es debido a que las
plataformas moviles, como telefonos inteligentes y tabletas,
as como las aplicaciones moviles estan aumentando exponencialmente en popularidad. Actualmente existen alrededor
de 1 million de aplicaciones para el Sistema Operativo movil
Android en su sitio web de ventas en lnea Google Play, con un
estimado de 50 mil millones de descargas [1]. En contraste, el
software malicioso (malware) que ataca la plataforma Android
ha aumentado considerablemente en los u ltimos 24 meses en
un 100 %. Las nuevas familias de malware Android estan
evolucionando rapidamente para evitar ser detectados por los
escaneres tradicionales basados en firmas. Hay una necesidad de mejorar las capacidades de deteccion para superar
los nuevos desafos de deteccion debido a la ofuscacion, y
as mitigar o remediar el impacto de la evolucion de malware
para Android.
Dado que el sistema operativo movil mas popular es Android OS de la compania Google (en la actualidad tiene el 70 %

del mercado), Android es el OS mas atacado con un 99 % de


los ataques malware segun lo publicado por Cisco y Kapersky
Labs durante el tercer trimestre Q3 del 2013, y resumido en
el reporte de SOPHOS [2]. Esta investigacion se enfoca en el
seguimiento del comportamiento en tiempo de ejecucion de las
applicaciones y la visualizacion de sus funciones maliciosas
para descubrir que tipo de ataques o intenciones existen
detras de estas. La plataforma propuesta de monitorizacion
esta compuesta basicamente de cuatro elementos, a saber: (i)
una aplicacion Android llamada (Sink) que gua al usuario en
la seleccion y parametrizacion de la aplicacion a supervisar,
(ii) un cliente embebido que se inserta en cada aplicacion a
ser supervisada, (iii) un servicio web encargado de recoger
la aplicacion a monitorizar, enviar al dispositivo la aplicacion
instrumentada, y recopilar las trazas que va generando, (iv) y
finalmente un componente de visualizacion que muestra grafos
relacionados con el comportamiento de las trazas o llamadas
a funciones, relativa a la aplicacion monitorizada.
Se preve que esta herramienta pueda ser utilizada por
analistas malware con el fin de realizar una inspeccion visual
de las aplicaciones en estudio. Por otra parte, la monitorizacion de una aplicacion en el momento de su ejecucion es
esencial para entender como esta interactua con el dispositivo,
con componentes claves tales como las APIs (Application
Programming Interfaces) provistas por el sistema. Una API
especifica como algunos componentes de software (rutinas,
protocolos y herramientas) deben actuar cuando esten sujetos
a invocaciones de otros componentes. Al rastrear y analizar
estas interacciones, podemos ser capaces de dar seguimiento
a como se comportan las aplicaciones, a como manejan datos
sensibles e interactuar con el sistema operativo.
I-A.

Contribucion y organizacion del artculo

A lo largo de este artculo se presenta un metodo para


la deteccion de malware, mediante el analisis visual de la
ejecucion de las funciones a las que llaman. La subsiguientes
partes del trabajo estan organizadas como a continuacion se
detalla. La seccion II le da al lector las nociones basicas detras
de los componentes utilizados en las siguientes secciones y recopila el trabajo previo relacionado con la tematica. La seccion
III describe la arquitectura de monitorizacion y visualizacion
del sistema presentado. La seccion IV muestra los resultados
ISBN: 978-84-9717-323-0

254

O. Somarriba, I. Arenaza, R. Uribeetxeberria, U. Zurutuza

obtenidos con la infraestructura implementada haciendo uso


de diferentes aplicaciones. Por u ltimo, las secciones V y VI
presentan las conclusiones e identifican unas posibles lneas
futuras de trabajo, respectivamente.
II.

A NTECEDENTES Y T RABAJOS RELACIONADOS

En los ambientes convencionales de Java, el codigo fuente


es compilado en un conjunto de instrucciones llamado bytecode, el cual es almacenado en un formato de ficheros .class.
Estos ficheros son mas tarde ledos por la Maquina Virtual de
Java (JVM) al momento de su ejecucion. Por otra parte, en
Android, el codigo fuente de Java que ha sido compilado en
ficheros .class debe ser convertido en ficheros .dex, frecuentemente referidos como ficheros ejecutables del tipo Dalvik
(Dalvik Executable). Ademas, Android application package
file (apk), es el formato de fichero utilizado para distribuir
e instalar software de aplicaciones y middleware en el sistema
operativo Android. Las apps se presentan en un fichero con
el formato .apk, en un contenedor de la aplicacion binaria
que consiste en ficheros .dex, AndroidManifest.xml, y los
ficheros de recursos de la aplicacion. Asimismo, el archivo
.apk resultante se firma con una clave (keystore) para establecer
la identidad del autor de la app. Existen metodos para realizar
el proceso en el sentido inverso. Apktool es un conjunto
de herramientas para realizar ingeniera inversa en apps, lo
que simplifica el proceso de ensamble y desensamble de
ficheros binarios de Android (.apk) a ficheros Smali (.smali),
permitiendo la modificacion del codigo fuente. Esto resulta
especialmente u til para el analisis de las aplicaciones.
El analisis y deteccion de malware para Android ha sido
un tema candente de la investigacion en los u ltimos anos. Un
ejemplo de los mecanismos de inspeccion para la identificacion de aplicaciones con malware para Android se presenta en
[3], donde tambien se desarrollo un sistema de instrumentacion
transparente para la automatizacion de las interacciones de los
usuarios.
Ademas, en [4] se utiliza un marco de seguridad llamado
XManDroid para extender el mecanismo de seguimiento de
Android, con el fin de detectar y prevenir ataques del tipo
escalada de privilegios a nivel de aplicacion durante el tiempo
de ejecucion sobre la base de una poltica determinada. Adicionalmente, los autores en [5] y [6] han propuesto diferentes
tecnicas de seguridad con respecto a los permisos de las
apps. Por ejemplo, en este u ltimo, se propone una herramienta
para extraer la especificacion de permisos del codigo fuente
de Android OS. Por otra parte, las tecnicas de deteccion
de malware en dispositivos moviles usualmente se pueden
clasificar de acuerdo al modo en el que se realiza el analisis:
analisis estatico y analisis dinamico. La primera se basa en
intentar identificar el codigo malicioso por descompilacion de
la aplicacion y la busqueda de cadenas o bloques de codigos
sospechosos; en la segunda se analiza el comportamiento de
una determinada aplicacion utilizando la informacion de su
estado de ejecucion. Algunos tipos recientes de deteccion de
malware son: Dendroid [7] como un ejemplo de un analisis
estatico para dispositivos con Android, y Crowdroid, sistema

que agrupa la frecuencia de llamadas al sistema de las aplicaciones para detectar malware [8]. En un reciente trabajo de
Jiang y Zhou [9] se han mapeado los tipos mas comunes
de violaciones de permisos en un gran conjunto de datos de
malware. Por otro lado, en [10], [11] se pueden encontrar
estudios mas amplios sobre el estado del arte de la seguridad
para los dispositivos moviles.
Entre los sistemas de monitorizacion de comportamiento
de aplicaciones se encuentra una propuestas que permite
visualizar mediante grafos las llamadas a funciones de una
aplicacion determinada, pero los autores lo hacen mediante
tecnicas de analisis estatico [12]. El sistema hace un mapa de
todas las funciones disponibles, mientras que este trabajo solo
monitoriza y visualiza aquellas funciones que se suceden en
tiempo de ejecucion, obteniendo ademas los parametros que
se envan a la funcion. No se han encontrado propuestas de
deteccion de malware en base a analisis dinamico que opere
en el dispositivo del usuario de manera muy ligera y online.
Esto es necesario debido a la apertura de la Plataforma
Android donde el malware puede tambien ser instalado a
traves de apps de otras fuentes, tales como paginas web y
de memorias USB, lo que requiere mecanismos de deteccion
que operan en el propio dispositivo.
III.

DEL SISTEMA
D ESCRIPCI ON

En esta seccion se presenta una solucion aplicable para la


deteccion de anomalas producto de la presencia de malware
en las aplicaciones, basada en un analisis dinamico combinado
con el soporte de un servidor web.
La Figura 1 muestra la estructura de la plataforma de monitorizacion propuesta. Las etapas para llevar a cabo la misma
consisten en los siguientes pasos logicos: Etapa I: Envio de
la aplicacion APP y de una lista de permisos que se desean
monitorizar al Servidor Web, Etapa II: Instrumentacion de la
aplicacion mediante un proceso de hooking generando APP,
Etapa III: Instalacion y activacion de la APP reemplazando a
APP en el dispositivo, Etapa IV: Almacenamiento de las trazas
de APP en una base de datos, y la Etapa V: Visualizacion de
los grafos relacionados con APP.
De nuevo, en la Figura 1 se muestra un diagrama de bloques
formado por cuatro componentes: la aplicacion Sink, un cliente
embebido, un servidor web, y el componente de visualizacion.
III-1. La Aplicacion Sink: es una aplicacion Android con
dos funciones principales: una de gestion de la aplicacion a
monitorizar, y otra para el manejo de las trazas. La parte del
tratamiento de la aplicacion, a su vez, esta compuesta de un
conjunto de actividades como se muestra en la Figura 2(d).
En la Figura 2(a) el usuario selecciona la aplicacion que
desea monitorizar, entre aquellas que no vienen reinstaladas de
fabrica. En el siguiente paso se seleccionan los permisos que
el usuario estime convenientes a monitorizar, relacionados con
la aplicacion y considerados como peligrosas segun el mapa
de funciones API obtenido con PScout [6]. La interfaz gua
despues al usuario a lo largo de varias actividades donde se
llevan a cabo la subida de la aplicacion y lista de permisos a
monitorizar al Servidor, descarga de la aplicacion modificada,


Analisis
Visual del Comportamiento de Aplicaciones para Android

255

Hooking Process

Non
Monitored
Android
application N

Stage I

Function 2

APP

Function n

Application
to hook

Disassembled
files

Permissions

Monitored
Android
application 2

partial
trace

SINK

Embedded
client

Monitored
Android
application 1

Function 1

Stage III:
Running
APP

APP

Stage II

Hooked
application

partial
trace

List of
functions
to hook

Modified
files
DrawGraph
(Java Program)

Stage IV
Databases

Database

Traces
of APP

Embedded
client

Stage V

Web Service
Smart Device

Server

Figura 1: Componentes del Sistema de Monitorizacion del comportamiento de la Aplicacion.

e instalacion de la misma. Finalmente, un boton permite iniciar


o detener la monitorizacion de la aplicacion en el cualquier
instante.
Por otra parte, el Sink permite realizar la gestion de las
trazas, ejecutando servicios en segundo plano. Este gestor
es el encargado de colectar las trazas enviadas desde los
clientes embebidos individuales, ubicados en cada una de las
aplicaciones supervisadas, anadiendoles una marca de tiempo
y el hash del ID del dispositivo, y su almacenamiento en una
memoria intermedia circular comun. Por u ltimo, las trazas se
envan periodicamente al servicio web donde se almacenan en
una base de datos.
III-2. El Cliente Embebido: consiste en un modulo de
comunicacion que utiliza el protocolo UDP para la transmision
de las trazas de las funciones modificadas invocadas en APP,
al Sink.
III-3. El Servicio Web: provee los siguientes servicios al
Sink: subir aplicaciones, descargar las aplicaciones modificadas y enviar las trazas. Ahora la pieza clave de todo el
sistema y donde reside la logica del metodo presentado, es la
herramienta que instrumenta la aplicacion, el proceso conocido
como hooking. Este componente mapea los permisos de
la aplicacion en llamadas a funciones que son marcadas, las
cuales van ser monitorizadas. Por lo tanto, este proceso es una
accion automatica realizada por el servidor Web cada vez que
una aplicacion es enviada al mismo.
Las funciones modificadas registraran el nombre de la
aplicacion, el nombre de paquete de la aplicacion, y el hash de
la aplicacion y enviara esta informacion al cliente embebido

junto con el nombre de la funcion (e.g., sendTextMessage(),


getDeviceID(), execSQL(), SendBroadcast(), etc.). A continuacion, todos los ficheros modificados junto con el resto de los
recursos desensamblados se reensamblan y se empaquetan en
un fichero binario Android .apk. Al terminar la Etapa II, la
APP es descargada al Sink.
III-4. Visualizaciones: Con el fin de realizar un analisis visual del comportamiento de las aplicaciones se utiliza una base
de datos NoSQL basada en grafos, Neo4j1 . Neo4j almacena los
datos en una estructura orientada a grafos, en lugar de utilizar
las tablas relacionales de las bases de datos convencionales.
En terminos generales, un grafo es una representacion de un
conjunto de nodos y las relaciones entre ellos unidos por medio
de enlaces, (vertices y aristas o arcos, respectivamente). Esto
se ilustra en la Etapa V de la Figura 1. De esta manera,
se puede plasmar cada uno de los comportamientos de la
aplicacion analizada con una representacion simple pero muy
ilustrativa. Los grafos se elaboran mediante relaciones de
tipo una Aplicacion incluye varias Clases que a su vez
llaman a Funciones. El primer nodo superior, Aplicacion,
contiene el nombre del paquete de la aplicacion, que es u nica
para cada una de las aplicaciones existentes, mientras que el
segundo nodo, Clase, representa el nombre del componente
de Android que ha llamado a la API call, el nodo Funcion.
Una vez se obtiene la informacion recogida por el servicio
Web en la base de datos, toda su estructura de llamadas a funciones puede ser filtrada y tratada. Inicialmente se genera un
grafo sin incluir colores empleando el lenguaje Cypher Query
1 Software

disponible en el sitio web http://www.neo4j.org

256

O. Somarriba, I. Arenaza, R. Uribeetxeberria, U. Zurutuza

(a)

(b)

(c)

(d)

Figura 2: Interfaz de Usuario del Sink. (a) Seleccion de la aplicacion, (b) Pasos de la aplicacion, (c) Seleccion de los permisos,
y (d) Proceso de monitorizacion.

Languaje, que permite operar y aplicar transformaciones en el


grafo.
Para ello, un experto debe completar y encadenar un
conjunto de reglas que ayudan a resaltar el comportamiento
malicioso conocido (por ejemplo, la llamada a la funcion
SendMessageText(). Para ello, se buscan los nodos en la parte
inferior del grafo relacionado con las llamadas a funciones
API consideradas maliciosas. Las reglas incluyen la busqueda
y representacion de funciones maliciosas (representadas en
rojo), sospechosas o maliciosas pero no crticas (en naranja)
y benignas (en verde). Cuando se detecta un comportamiento
malicioso como el envo de mensajes SMS a un numero de
pago premium sin el consentimiento del usuario, se procede a
representar el nodo bajo inspeccion en color rojo como senal
de alerta usando Cypher.
IV.

R ESULTADOS

En esta seccion se muestran los resultados de utilizar la


plataforma de monitorizacion y visualizacion para algunos
ejemplos. En este artculo, exploramos 3 diferentes apps con
el fin de evaluar todo el marco de trabajo:
Skype-free IM & video calls
La aplicacion popular Angry Birds
El malware Fake player
IV-A.

Las Trazas

Despues de ejecutar las aplicaciones arriba mencionadas


durante 2-3 de minutos cubriendo todas las funcionalidad de
la aplicacion, el servidor Web recolecta un gran volumen de
trazas de cada una de las mismas.
IV-B.

Analisis Visual de las Trazas

Como se ha dicho anteriormente, un conjunto de reglas


predefinidas por expertos nos permite identificar las funciones

API sospechosas, y en funcion de sus parametros, se asignan


colores a e stas. Al hacerlo, nos permite identificar rapidamente
las funciones y asociarla con elementos relacionados. Al
aplicar la clasificacion de funciones en base a un color para
cada nodo del grafo, esto permite la construccion de un mapa
visualque describe y ayuda al analisis de su funcionamiento.
Ademas, este grafo es adecuado para guiar el analista durante
el examen de clasificacion de una muestra de malware peligrosa debido a que el sombreado rojo de los nodos indican
estructuras maliciosos identificados por la infraestructura de
monitorizacion. Esta revision debe realizarse entre todos los
nodos de las funciones llamadas en el nivel mas bajos de cada
rama del a rbol del grafo. Sin embargo, con el fin de colorear
completamente el grafo de la aplicacion hasta llegar al nodo
raz, hay que recurrir a realizar un analisis de abajo hacia
arriba (bottom-top) del vecindario de cada funcion invocada
y las asociadas. Por lo tanto, si una de las ramas del grafo es
coloreada en rojo, a continuacion, la app se considera como
potencialmente maliciosa.
En particular, los grafos de las aplicaciones como Skype,
Angry Birds, y Fake Player se muestran en la Fig. 3 lo cual
proporciona al usuario una indicacion del estado de seguridad
de e llos. Para ello, se han creado reglas Cypher para colorear
aquellos nodos que contienen una llamada a funcion de envo
de SMS en rojo, y llamadas a funciones para obtener y mostrar
publicidad (Adware) en naranja.
Como resultado, el grafo generado para la aplicacion Skype
no muestra ninguna amenaza y sus nodos aparecen coloreados
en verde, tal y como se muestra en la Fig. 3(a).
Por otra parte, en la Fig. 3(b) existe una aplicacion con
Adware, por lo que varios nodos de esta aplicacion estan
coloreados en naranja, mientras en contraste las funciones
maliciosas que identifican un malware se colorean en rojo,


Analisis
Visual del Comportamiento de Aplicaciones para Android

como se muestra en la Figura 3(c) para la aplicacion Fake


Player.
V.

C ONCLUSIONES

En este trabajo se propone una arquitectura de supervision


con el objetivo de monitorizar aplicaciones Android a gran
escala, sin modificar el firmware del mismo, sin la necesidad
de obtener permisos de administrador del dispositivo, y que
resulta en un grafo de visualizacion donde se destacan las
llamadas a funcion correspondientes a los comportamientos de
malware predefinido. La plataforma esta compuesta por cuatro
componentes: el cliente embebido, el Sink, el servicio web y
la visualizacion. Antes de que una aplicacon sea supervisada,
el Sink la transfiere al Servicio Web, que se encarga de la
insercion de los hooks anadiendo el cliente embebido en el
interior la aplicacion. Finalmente el Sink descargara la aplicacion recien instrumentada. Cuando una funcion modificada
es llamada, se construye una traza parcial que sera pasada al
cliente embebido que a su vez la enviara al Sink. Este recoge
los trazas parciales de todas las aplicaciones supervisadas, las
completa, y las sube mediante el servicio Web. El Servidor
finalmente transforma las trazas y las almacena en una base
de datos de grafos.
Por u ltimo, se aplican un conjunto de reglas predefinidas
con el fin de obtener una visualizacion donde se pone de
relieve o resalta la conducta maliciosa de la aplicacion supervisada. La infraestructura desarrollada es capaz de monitorizar
simultaneamente varias aplicaciones en distintos dispositivos
y la recopilacion de todos las trazas se da en un mismo
lugar. Las pruebas realizadas en este trabajo muestran que
las aplicaciones pueden ser preparadas para ser supervisadas
en cuestion de minutos y las aplicaciones modificadas se
comportan como estaban originalmente disenadas. Ademas, se
ha mostrado que la infraestructura se puede utilizar para detectar comportamientos maliciosos en aplicaciones, tales como
el monitorizado del malware Fake Player. Las evaluaciones
del Sink han revelado que nuestro sistema de supervision es
reactivo, no pierde ninguna de las trazas parciales, y tiene un
impacto muy pequeno en el rendimiento de las aplicaciones
supervisadas.
VI.

T RABAJOS FUTUROS

Como trabajo futuro, la plataforma se puede ampliar para


ser capaz de supervisar las funciones Android conocidas como
Intents, enviadas por la aplicacion que permitiran a una
aplicacion llamar a funciones que no requieren ningun tipo
de permiso especfico (como por ejemplo que una funcion
llame a un navegador sin que la aplicacion tenga permisos
de Internet). No ser capaz de monitorear Intents significa que
la infraestructura no es capaz de realizar un seguimiento, de
si la aplicacion supervisada inicia otra aplicacion durante un
corto perodo de tiempo para realizar una tarea determinada,
e.g., para abrir un navegador web para mostrar la EULA (enduser license agreement). Ademas, esto permitira saber como
la aplicacion bajo prueba se comunica con el resto de las

257

aplicaciones de terceras partes y las aplicaciones instaladas


en el dispositivo.
Asimismo se puede ampliar el modelo anti-malware descrito
en este trabajo, desarrollando una arquitectura que lo complemente mediante la deteccion automatica de malware movil
como por ejemplo con el uso de VirusTotal, realizando as un
paso de filtrado previo. En definitiva, se podra obtener un
sistema mas versatil disponiendo en el movil de una aplicacion
que reporte anomalas (i.e., desviacion del patron de trafico de
las aplicaciones de red) a un servidor anti-malware en su red.
R EFERENCIAS
[1] Businessinsider, businessinsider. Available Online, 2014.
[2] Sophos, Sophos mobilebile security threat report. Available Online, 2014.
http://www.sophos.com/en-us/medialibrary/PDFs/other/
sophos-mobile-security-threat-report.ashx.
[3] M. Karami, M. Elsabagh, P. Najafiborazjani, and A. Stavrou, Behavioral
analysis of android applications using automated instrumentation, in
Software Security and Reliability-Companion (SERE-C), 2013 IEEE 7th
International Conference on, pp. 182187, June 2013.
[4] S. Bugiel, L. Davi, A. Dmitrienko, T. Fischer, and A.-R. Sadeghi,
Xmandroid: A new android evolution to mitigate privilege escalation
attacks, Technical Report TR-2011-04, Technische Universitat Darmstadt, Apr. 2011.
[5] J. Jeon, K. K. Micinski, J. A. Vaughan, A. Fogel, N. Reddy, J. S. Foster,
and T. Millstein, Dr. android and mr. hide: Fine-grained permissions in
android applications, in Proceedings of the Second ACM Workshop on
Security and Privacy in Smartphones and Mobile Devices, SPSM 12,
(New York, NY, USA), pp. 314, ACM, 2012.
[6] K. W. Y. Au, Y. F. Zhou, Z. Huang, and D. Lie, Pscout: Analyzing
the android permission specification, in Proceedings of the 2012 ACM
Conference on Computer and Communications Security, CCS 12, (New
York, NY, USA), pp. 217228, ACM, 2012.
[7] G. Suarez-Tangil, J. E. Tapiador, P. Peris-Lopez, and J. Blasco, Dendroid: A text mining approach to analyzing and classifying code structures in android malware families, Expert Syst. Appl., vol. 41, pp. 1104
1117, Mar. 2014.
[8] I. Burguera, U. Zurutuza, and S. Nadjm-Tehrani, Crowdroid: Behaviorbased malware detection system for android, in Proceedings of the 1st
ACM Workshop on Security and Privacy in Smartphones and Mobile
Devices, SPSM 11, (New York, NY, USA), pp. 1526, ACM, 2011.
[9] X. Jiang and Y. Zhou, Android Malware. Springer New York, 2013.
[10] M. La Polla, F. Martinelli, and D. Sgandurra, A survey on security
for mobile devices, Communications Surveys Tutorials, IEEE, vol. 15,
pp. 446471, First 2013.
[11] G. Suarez-Tangil, J. Tapiador, P. Peris-Lopez, and A. Ribagorda, Evolution, detection and analysis of malware for smart devices, Communications Surveys Tutorials, IEEE, vol. PP, no. 99, pp. 127, 2013.
[12] H. Gascon, F. Yamaguchi, D. Arp, and K. Rieck, Structural detection
of android malware using embedded call graphs, in Proceedings of the
2013 ACM workshop on Artificial intelligence and security, pp. 4554,
ACM, 2013.

258

O. Somarriba, I. Arenaza, R. Uribeetxeberria, U. Zurutuza

(a) Grafo de Skype.

(b) Grafo del juego Angry Birds.

(c) Grafo del malware Fake Player.

Figura 3: Grafos de las aplicaciones bajo prueba. (a) Diagrama Superior: Grafo de Skype, (b) Diagrama Intermedio: Grafo de
la aplicacion Angry Birds, y (c) Diagrama Inferior: Grafo del malware Fake Player.