scieee AI-readable full text Open interactive document viewer

Sistema de detección de malware en Android

Heras Cáceres, Inés; Sierra Liras, Diego

Abstract

El presente trabajo trata de dar respuesta al problema de la detección del malware en los dispositivos móviles. Los sistemas de protección que actualmente poseen los dispositivos móviles inteligentes se han mostrado ineficaces. Para asegurarlos frente a una posible infección de software malicioso, debe completarse la seguridad que ofrecen las características del sistema o la criba de aplicaciones en los mercados de descarga oficiales. Siendo un área de investigación reciente, la mayor parte de los trabajos se han centrado en la detección del malware estudiando su comportamiento en ejecución, que viene determinado por las llamadas al sistema que realiza. La principal motivación de este trabajo procede de la escasez de trabajos que realizan un estudio rápido y desligado de la actividad del usuario. Para ello el sistema propuesto extrae las llamadas al sistema realizadas durante los primeros segundos de ejecución de una aplicación en un entorno aislado. Además se tiene en cuenta no sólo la cantidad de llamadas al sistema sino también la información que se puede extraer de su secuencia temporal, gracias a la aplicación de algoritmos de alineamiento de secuencias. Los experimentos realizados demuestran que la actividad del malware tiene presencia al inicio de las ejecuciones, consiguiéndose así su detección temprana en la mayoría de los casos y minimizándose el impacto sobre el sistema protegido.

Full text

Sistema de Detecci´on de Malware en Android TRABAJO DE FIN DE GRADO In´es Heras C´aceres Diego Sierra Liras Directores: Luis Javier Garc´ıa Villalba Ana Lucila Sandoval Orozco Grado en Ingenier´ıa Inform´atica Facultad de Inform´atica Universidad Complutense de Madrid Madrid, Junio de 2015 iii Agradecimientos Quisi´eramos agradecer a Luis Javier Garc´ıa Villalba y a Ana Lucila Sandoval Orozco, los Directores de este Trabajo, el apoyo brindado. Asimismo, quisi´eramos agradecer la dedicaci´on de Jorge Maestre Vidal. Sin su inestimable ayuda, este Trabajo no habr´ıa sido posible. Finalmente, nuestro m´as sincero agradecimiento al resto de miembros del Grupo GASS (Grupo de An´alisis, Seguridad y Sistemas, http://gass.ucm.es), Grupo de Investigaci´on del Departamento de Ingenier´ıa del Software e Inteligencia Artificial de la Facultad de Inform´atica de la Universidad Complutense de Madrid, por las facilidades ofrecidas. iv v Resumen El presente trabajo trata de dar respuesta al problema de la detecci´on del malware en los dispositivos m´oviles. Los sistemas de protecci´on que actualmente poseen los dispositivos m´oviles inteligentes se han mostrado ineficaces. Para asegurarlos frente a una posible infecci´on de software malicioso, debe completarse la seguridad que ofrecen las caracter´ısticas del sistema o la criba de aplicaciones en los mercados de descarga oficiales. Siendo un ´area de investigaci´on reciente, la mayor parte de los trabajos se han centrado en la detecci´on del malware estudiando su comportamiento en ejecuci´on, que viene determinado por las llamadas al sistema que realiza. La principal motivaci´on de este trabajo procede de la escasez de trabajos que realizan un estudio r´apido y desligado de la actividad del usuario. Para ello el sistema propuesto extrae las llamadas al sistema realizadas durante los primeros segundos de ejecuci´on de una aplicaci´on en un entorno aislado. Adem´as se tiene en cuenta no s´olo la cantidad de llamadas al sistema sino tambi´en la informaci´on que se puede extraer de su secuencia temporal, gracias a la aplicaci´on de algoritmos de alineamiento de secuencias. Los experimentos realizados demuestran que la actividad del malware tiene presencia al inicio de las ejecuciones, consigui´endose as´ı su detecci´on temprana en la mayor´ıa de los casos y minimiz´andose el impacto sobre el sistema protegido. Palabras Clave Alineamiento de Secuencias, Android, Aplicaci´on, Detecci´on, Dispositivos Inteligentes, Llamadas al Sistema, Malicioso, Malware. vii Abstract This work seeks to solve the problem of detecting malware on mobile devices. Protection systems currently have smart mobile devices have proven ineffective. In order to insure against possible infection of malicious software, security must be completed features offered by the system or the official markets. Being an area of recent research, most of the work has focused on the detection of malware studying their behavior, which is determined by the system calls during the execution. The main motivation of this work comes from the scarcity of jobs performed quickly and detached study of user activity. For this, the proposed system extracts the system calls made during the first seconds of running an application in an isolated environment. Also it is taking into account not only the number of system calls but also information that can be gleaned from their timing, using sequence alignment algorithms. The results obtained from the experiments demonstrate the objectives were successfully completed. The proposal has shown that malware activity is present at the beginning of the executions. It has also got an early detection of malware in most cases, thus the impact on the protected system has been minimal. Keywords Android, Application, Detection, Malicious, Malware, Sequence Alignment, Smart Devices, System Calls. Los abajo firmantes autorizan a la Universidad Complutense de Madrid (UCM) a difundir y utilizar con fines acad´emicos, no comerciales y mencionando expresamente a sus autores el presente Trabajo Fin de Grado: “Sistema de Detecci´on de Malware en Android”, realizado durante el curso acad´emico 2014-2015 bajo la direcci´on de Luis Javier Garc´ıa Villalba y Ana Lucila Sandoval Orozco en el Departamento de Ingenier´ıa del Software e Inteligencia Artificial, y a la Biblioteca de la UCM a depositarlo en el Archivo Institucional E-Prints Complutense con el objeto de incrementar la difusi´on, uso e impacto del trabajo en Internet y garantizar su preservaci´on y acceso a largo plazo. In´es Heras C´aceres Diego Sierra Liras 2 Cap´ıtulo 1 Introducci´on En los ´ultimos a˜nos se ha incrementado la aparici´on de distintos tipos de dispositivos inteligentes. As´ı, entre un 60 y un 80 por ciento de la poblaci´on de los pa´ıses en los que hay acceso a Internet, lo hacen a trav´es de Smartphones o Tabletas [1], los cuales son utilizados una media de dos horas diarias. Adem´as, se estima que en 2017 habr´a en el mundo 1,4 dispositivos m´oviles por habitante y sus ventas superar´an a las de las computadoras personales. A la luz de estos datos, es evidente que el inter´es y la importancia de estos dispositivos en la sociedad es cada vez m´as notable y, presumiblemente, seguir´a avanzando a pasos agigantados. De entre las caracter´ısticas de los dispositivos m´oviles destaca la presencia de sensores tales como giroscopios, micr´ofonos, localizadores GPS, etc.; la capacidad de conexi´on a alg´un tipo de red telef´onica, Bluetooth, Wi-Fi; o la posibilidad de adquirir y utilizar aplicaciones desarrolladas por terceros [2]. Pero a pesar de las evidentes ventajas que ofrecen, presentan tambi´en ciertos problemas que pueden llegar a ser cruciales para la seguridad del usuario. Esto es debido a que estos dispositivos almacenan informaci´on muy sensible y variada, que puede comprometer la seguridad, la privacidad e, incluso, la econom´ıa del propietario o la de terceros. Los sensores que incorporan estas tecnolog´ıas tambi´en pueden recoger datos sin que el usuario sea realmente consciente de la cantidad de informaci´on que el dispositivo est´a manejando. Es por esto por lo que la creaci´on de software malicioso o malware, espec´ıfico para este ´ambito, se ha disparado a la misma velocidad que su uso. Finalmente, es importante destacar que entre los usuarios no existe conciencia del peligro al que est´an expuestos ante un posible ataque. La inmensa mayor´ıa desconoce incluso que el malware para m´oviles existe, y que las aplicaciones que instalan en sus dispositivos pueden presentar comportamientos malintencionados. Por ello, se hace necesario plantear modelos de seguridad m´as all´a de la acci´on del usuario, controlando los mercados y los dispositivos. 3 4Cap ´ ıtulo 1. Introducci´ on 1.1. Malware para M´oviles Malware es cualquier tipo de software o c´odigo de programa hostil, intrusivo o dise˜nado para usar un dispositivo sin el conocimiento del propietario. La evoluci´on y proliferaci´on del malware en dispositivos m´oviles est´a ´ıntimamente ligada al aumento de sus capacidades de red y recursos inform´aticos. As´ı, se tienen evidencias de que el primer malware para m´oviles fue desarrollado en 2004 para atacar a dispositivos Symbian [3]. Sin embargo, es a partir de 2010 cuando empieza a crecer significativamente [4], estando dedicado principalmente a los sistemas Android e iOs. S´olo para Android en 2012 se estima que exist´ıan cerca de 35.000 programas maliciosos, siendo objetivo del 79 % del malware generado durante ese a˜no frente al 11,5 % del a˜no 2010 [5]. Para analizar los ataques y sus tipos, se deben tener en cuenta tres perspectivas: comportamiento y objetivos, formas de distribuci´on del malware y m´etodos de adquisici´on de privilegios. 1.1.1. Comportamiento y Objetivos del Ataque En la mayor´ıa de los casos el malware persigue varios objetivos y adem´as su prop´osito y comportamiento puede variar por medio de una orden remota emitida por quienes lo controlan. El m´as com´un de sus objetivos es el beneficio econ´omico. En este sentido se pueden encontrar ejemplos varios, como en el caso del fraude u overbilling. Este ataque consiste en cargar gastos a la cuenta de la v´ıctima (que son transferidos a la del atacante) por medio de llamadas o SMS enviados a n´umeros de tarificaci´on adicional sin el consentimiento del usuario. Habitualmente, el usuario relaciona este tipo de ataques con un conflicto con la compa˜n´ıa proveedora del servicio, pasando por alto su verdadera naturaleza [6]. Otro tipo de ataque es el de la denegaci´on de servicio o sabotaje, el llamado ataque DoS (del ingl´es Denial of Service) que trata de consumir la bater´ıa del dispositivo limitando su tiempo de operaci´on, o bien de negarle al usuario el acceso a determinados recursos o redes [7]. Cuando se ejecuta de forma distribuida (DDoS), puede ocasionar perjuicios no s´olo a uno o varios usuarios, sino incluso a diversas organizaciones [2]. Por ejemplo, se puede llegar a colapsar la conexi´on a Internet de una zona o servidor si se empiezan a enviar paquetes masivos a una red. Por ´ultimo, se puede tratar de comprometer la privacidad por medio de la t´ecnica llamada sniffing [8], la cual aprovecha los datos que recogen los sensores y las redes de las que hace uso el dispositivo, pudiendo obtener im´agenes [9], grabaciones telef´onicas, contrase˜nas, mensajes de correo electr´onico, datos bancarios o cualquier tipo de informaci´on que maneje, env´ıe o reciba el dispositivo. Esta es una de las amenazas m´as preocupantes 1.1. Malware para M´ oviles 5 para los usuarios u organizaciones, puesto que en los dispositivos m´oviles se almacenan y se tratan datos privados y clasificados, tanto personales como empresariales. En la Figura 1.1 se detalla la ocurrencia de cada tipo de objetivo por cada sistema operativo. Hoja1 Robo Mal uso Sabotaje SPAM Fraude Symbian 50.00% 0 50.00% 0 0 BB 66.00% 33.00% 0 0 0 Android 65.00% 30.00% 0 10.00% 20.00% Iphone 23.00% 0.00% 0 0 23.00% Windows 0 60.00% 0 0 0 % ventas de aplicaciones 2011 2012 2013 Android 49.00% 69.00% 78.00% iOs 18.00% 18.00% 15.00% Windows 2.00% 3.00% 4.00% BB 11.00% 4.00% 2.00% Others 20.00% 6.00% 1.00% 1281 1281 1281 1282 1282 1283 1283 1283 1283 1283 1283 1284 1284 1285 1285 1285 1285 1287 1287 1288 1288 1288 1288 1295 Objetivos 0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% Symbian BB Android Iphone Windows Objetivos Robo Mal uso Sabotaje SPAM Fraude 0.00% 20.00% 40.00% 60.00% 80.00% 100.00% 120.00% Symbian BB Android Iphone Windows Distribución M2D A2D W2D N2D U2D S2D Página 1 Figura 1.1: Tipos de ataques 1.1.2. M´etodos de Distribuci´on Es importante conocer los medios por los que se distribuyen los programas maliciosos, para as´ı atajar el contagio. Hay dos grandes aproximaciones [10]: la autopropagaci´on y la ingenier´ıa social. Dentro del primer tipo se agrupan los siguientes m´etodos: Aplicaci´on a Dispositivo (Application to Device, A2D, el c´odigo malicioso se encuentra en una aplicaci´on que luego infecta al dispositivo), SMS a Dispositivo (SMS to Device, S2D, se contagia el dispositivo por medio de un SMS), USB a Dispositivo (USB to Device, U2D), Red a Dispositivo (Network to Device, N2D), Dispositivo a Dispositivo (Device to Device, D2D) y Nube a Dispositivo (Cloud to Device, C2D). En estos casos el malware est´a programado para contaminar el dispositivo cuando se pone en contacto con ´el. Por otro lado, la ingenier´ıa social, agrupa m´etodos como Mercado a Dispositivo (Market to Device, M2D, el usuario descarga desde el mercado un programa malicioso) o el de Navegador Web a Dispositivo (Web-browser to Device, W2D). Como se muestra en la Figura 1.2, la ingenier´ıa social es el principal m´etodo de distribuci´on de malware. Posiblemente esto se deba a la poca conciencia ante el peligro que muestran los usuarios; habitualmente son los que descargan las aplicaciones infectadas desde los mercados. Tambi´en es frecuente la combinaci´on de ambas estrategias. 6Cap ´ ıtulo 1. Introducci´ on Hoja1 Robo Mal uso Sabotaje SPAM Fraude Symbian 50.00% 0 50.00% 0 0 BB 66.00% 33.00% 0 0 0 Android 65.00% 30.00% 0 10.00% 20.00% Iphone 23.00% 0.00% 0 0 23.00% Windows 0 60.00% 0 0 0 % ventas de aplicaciones 2011 2012 2013 Android 49.00% 69.00% 78.00% iOs 18.00% 18.00% 15.00% Windows 2.00% 3.00% 4.00% BB 11.00% 4.00% 2.00% Others 20.00% 6.00% 1.00% 1281 1281 1281 1282 1282 1283 1283 1283 1283 1283 1283 1284 1284 1285 1285 1285 1285 1287 1287 1288 1288 1288 1288 1295 Objetivos 0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% Symbian BB Android Iphone Windows Objetivos Robo Mal uso Sabotaje SPAM Fraude 0.00% 20.00% 40.00% 60.00% 80.00% 100.00% 120.00% Symbian BB Android Iphone Windows Distribución M2D A2D W2D N2D U2D S2D Página 1 Figura 1.2: Tipos de distribuciones 1.1.3. Adquisici´on de Privilegios Para que el malware sea efectivo no es suficiente con que se propague al dispositivo, tambi´en tiene que conseguir una serie de privilegios para poder acceder a las partes cr´ıticas del sistema y realizar las acciones necesarias para ejecutar su labor. Habitualmente, estos privilegios son directamente concedidos por los usuarios [10] al instalar aplicaciones en apariencia leg´ıtimas pero que esconden alg´un comportamiento malicioso. Los usuarios no son conscientes de la repercusi´on de transferir determinados permisos a programas desconocidos y, en ocasiones, ni tan siquiera prestan atenci´on a las peticiones para su autorizaci´on. Por lo tanto, este m´etodo es altamente eficaz, tal y como se muestra en la Figura 1.3. Otro procedimiento basado en la tecnolog´ıa consiste en la explotaci´on de las vulnerabilidades o errores en la configuraci´on de la plataforma [11]. Se utilizan rootkits para detectar de qu´e forma se pueden aprovechar dichos errores. Este tipo de malware infecta el sistema operativo, por lo que puede ser considerablemente peligroso y, adem´as, dejan la puerta abierta a futuras infecciones. 1.2. Modelos de Seguridad Hoy en d´ıa, los mercados oficiales de distribuci´on de aplicaciones cuentan con distintos mecanismos para intentar garantizar la seguridad de las mismas. Principalmente, utilizan pruebas de verificaci´on para comprobar la legitimidad del c´odigo de la aplicaci´on. Sin embargo, detectar el malware es demasiado complejo; no se conoce en detalle el funcionamiento interno de estas pruebas y la presencia de un considerable n´umero de aplicaciones maliciosas evidencia que es un m´etodo insuficiente. Adem´as se deben tener en cuenta las 1.2. Modelos de Seguridad 7 Hoja1 Theft Misuse Sabotage SPAM Fraudulence Symbian 50.00% 0 50.00% 0 0 BB 66.00% 33.00% 0 0 0 Android 65.00% 30.00% 0 10.00% 20.00% Iphone 23.00% 0.00% 0 0 23.00% Windows 0 60.00% 0 0 0 % ventas de aplicaciones 2011 2012 2013 Android 49.00% 69.00% 78.00% iOs 18.00% 18.00% 15.00% Windows 2.00% 3.00% 4.00% BB 11.00% 4.00% 2.00% Others 20.00% 6.00% 1.00% 1281 1281 1281 1282 1282 1283 1283 1283 1283 1283 1283 1284 1284 1285 1285 1285 1285 1287 1287 1288 1288 1288 1288 1295 Objetivos 0.00% 20.00% 40.00% 60.00% 80.00% 100.00% 120.00% Symbian Android Distribution 0 0.2 0.4 0.6 0.8 1 1.2 Symbian BB Android Iphone Windows Adquisición de privilegios Usuarios Errores 0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% 80.00% 90.00% Android Windows Others % aplication sales 2011 2012 2013 Página 1 Figura 1.3: Formas de adquisici´on de privilegios Hoja1 Robo Mal uso Sabotaje SPAM Fraude Symbian 50.00% 0 50.00% 0 0 BB 66.00% 33.00% 0 0 0 Android 65.00% 30.00% 0 10.00% 20.00% Iphone 23.00% 0.00% 0 0 23.00% Windows 0 60.00% 0 0 0 % ventas de aplicaciones 2011 2012 2013 Android 49.00% 69.00% 78.00% iOs 18.00% 18.00% 15.00% Windows 2.00% 3.00% 4.00% BB 11.00% 4.00% 2.00% Others 20.00% 6.00% 1.00% 1281 1281 1281 1282 1282 1283 1283 1283 1283 1283 1283 1284 1284 1285 1285 1285 1285 1287 1287 1288 1288 1288 1288 1295 Objetivos 0.00% 20.00% 40.00% 60.00% 80.00% 100.00% 120.00% Symbian BB Android Iphone Windows Distribución M2D A2D W2D N2D U2D S2D 0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% 80.00% 90.00% Android iOs Windows BB Others % de ventas de aplicaciones 2011 2012 2013 Página 1 Figura 1.4: Ventas de aplicaciones descargas desde mercados no oficiales que no poseen ning´un tipo de filtro de seguridad y son altamente peligrosas. Desde el punto de vista de la plataforma, una manera de tratar de garantizar la seguridad es la de restringir la comunicaci´on entre aplicaciones y las acciones que ´estas pueden realizar, incluyendo el acceso a datos y servicios. Tambi´en se propone la t´ecnica de aislar la ejecuci´on de la aplicaci´on en entornos controlados, llamada sandboxing. En la Figura 1.4 se muestra que Android es el sistema operativo m´ovil que predomina, as´ı como una tendencia a que contin´ue creciendo [5]. iOS es el segundo m´as vendido, aunque a cierta distancia de Android, y el resto cada vez tiene menos importancia en cuanto a ventas de dispositivos y aplicaciones. 8Cap ´ ıtulo 1. Introducci´ on A continuaci´on, se analizan los m´etodos y decisiones adoptados por los cinco principales sistemas operativos que dominan actualmente. 1.2.1. Symbian El modelo de seguridad de Symbian se basa en un sistema b´asico de permisos para controlar los recursos del dispositivo. Las aplicaciones se ejecutan en el espacio de usuario mientras que el sistema operativo lo hace en el espacio del n´ucleo. Las aplicaciones que requieren acceso a bibliotecas protegidas y, por lo tanto, son m´as vulnerables, deben estar firmadas con un certificado expedido por Symbian [12], mientras que todas las dem´as pueden estar autofirmadas, no teniendo acceso a estas librer´ıas peligrosas. De esta forma las aplicaciones ya est´an controladas y la seguridad de los mercados se hace innecesaria, siendo casi inexistente. Para la mejora de la seguridad de Symbian se ha propuesto el uso de algoritmos de aprendizaje autom´atico que analicen el comportamiento de las aplicaciones [13]. A pesar de su alta fiabilidad, Symbian es de los sistemas operativos menos utilizados. 1.2.2. BlackBerry La seguridad de BlackBerry se basa en un esquema amplio de permisos que ha demostrado ser muy seguro [14]. Inicialmente, las aplicaciones tienen un acceso muy limitado a los recursos y, posteriormente, pueden recibir autorizaci´on para escalar sus privilegios. Es necesaria la firma del fabricante para acceder a las bibliotecas, ofreciendo un sistema de protecci´on b´asico para procesos y memoria. Este es probablemente el sistema m´as seguro de los que se han analizado, pero presenta el inconveniente de ser tambi´en muy cerrado, con un mercado muy limitado. 1.2.3. Windows Mobile Microsoft [15] basa su modelo de seguridad en la validaci´on de los desarrolladores y la reputaci´on y valoraci´on de cada aplicaci´on. En las ´ultimas versiones, cada aplicaci´on se ejecuta en su propio sandbox, en el que se conceden los permisos a los que se ha dado autorizaci´on, de forma similar a como se relaciona en el sistema Android. Sin embargo, estos permisos se piden en la instalaci´on y deben ser concedidos por los usuarios, los cuales no suelen tener en cuenta la importancia de los mismos. Adem´as, es muy dif´ıcil modificarlos en tiempo de ejecuci´on [16]. 1.3. Estructura de la Memoria 9 1.2.4. Android El esquema de seguridad de Android se centra principalmente en el propio dispositivo, ya que los usuarios est´an autorizados a descargar aplicaciones desde cualquier plataforma de distribuci´on o mercado. El formato de permisos se traduce en un manifiesto que debe ser autorizado por el usuario durante la instalaci´on y adjudicado en tiempo de ejecuci´on. Sin embargo, debido a la tolerancia del usuario respecto a la concesi´on de permisos, esta t´ecnica es poco efectiva. Android tambi´en utiliza la t´ecnica del sandboxing [17] [18], aislando cada aplicaci´on en su propia m´aquina Dalvik. ´ Esta genera un c´odigo de bytes y otorga a cada una un identificador de usuario distinto, a excepci´on de las aplicaciones de un mismo desarrollador, las cuales comparten identificador, lo que les permite compartir recursos. Sin embargo, las aplicaciones pueden compartir informaci´on entre ellas expl´ıcitamente mediante una interfaz para la comunicaci´on. Es interesante centrarse en este sistema en concreto puesto que es el m´as utilizado, y tambi´en el que m´as infecciones sufre. 1.2.5. iOS A diferencia de Android, Apple dirige su seguridad hacia el mercado debido a que limita la capacidad de descarga al suyo propio [19]. Por lo tanto, las aplicaciones y los desarrolladores necesitan para su verificaci´on una firma mediante un certificado expedido por Apple. Sin embargo, los detalles de las pruebas de verificaci´on no son de dominio p´ublico, por lo que su eficacia es dif´ıcil de evaluar. Por lo general, su seguridad a nivel de plataforma es m´as d´ebil que en Android, o pr´acticamente inexistente, ya que las aplicaciones se ejecutan en un ´unico entorno aislado, com´un para todas ellas, teniendo adem´as acceso a la mayor´ıa de los recursos del dispositivo. Por ello, en los ´ultimos modelos se est´a tratando de ampliar este sistema, controlando el tr´afico de datos personales. 1.3. Estructura de la Memoria Esta memoria se estructura en 5 Cap´ıtulos, siendo el primero la presente introducci´on. En el Cap´ıtulo 2se exponen los trabajos que previamente han tratado de dar respuesta al problema del malware en dispositivos m´oviles. En el Cap´ıtulo 3se explican las principales herramientas que se han tenido en cuenta a la hora de tomar la decisi´on de si los datos observados se considera leg´ıtimos o maliciosos. En el Cap´ıtulo 4queda detallada la propuesta que expone el proyecto. El Cap´ıtulo 5muestra las conclusiones de este trabajo. 10 Cap ´ ıtulo 1. Introducci´ on Cap´ıtulo 2 Trabajos Relacionados Para la realizaci´on de este trabajo se han analizado los estudios y proyectos que previamente han tratado de dar soluci´on al problema del malware en dispositivos m´oviles. As´ı, se puede dar una visi´on general de las utilidades necesarias para llevar a cabo esta labor y conocer de forma concisa c´omo se puede implementar el proceso de detecci´on de malware para dispositivos m´oviles. En este cap´ıtulo se estudian los modos de tratar los datos una vez han sido recopilados y extra´ıdos del dispositivo que se va a estudiar, as´ı como los tipos de estrategias de detecci´on de malware en dispositivos m´oviles desde cuatro perspectivas, dependiendo de la naturaleza de los datos. ´ Estas son: an´alisis est´atico, an´alisis din´amico, an´alisis mixto y an´alisis de metadatos. Tambi´en se detallan los conjuntos de malware m´as utilizados parece realizar pruebas. 2.1. Tratamiento de Datos Los dispositivos m´oviles cuentan con recursos bastante limitados, sobre todo en cuanto a la bater´ıa y velocidad de procesamiento, por lo que es importante determinar de forma correcta el lugar en el cual se van a analizar los datos extra´ıdos del mismo y la forma en la que se va a realizar dicho an´alisis [20]. Una primera aproximaci´on consiste en realizar el an´alisis en el propio dispositivo. Resulta una ventaja puesto que, al no ser necesaria una conexi´on con el exterior, no existe dependencia de otros servidores o de la velocidad de la conexi´on a Internet. Adem´as, se evitan las brechas de seguridad derivadas de la transmisi´on de datos a trav´es de la red, ya que pueden ser interceptados y modificados. Sin embargo, la mayor´ıa de los proyectos estudiados realizan el an´alisis en servidores remotos o en la nube. Se tiene en cuenta que la mayor´ıa de los dispositivos m´oviles est´an 11 18 Cap ´ ıtulo 2. Trabajos Relacionados Cap´ıtulo 3 M´etodos de An´alisis Para llevar a cabo este proyecto se han estudiado distintos m´etodos de an´alisis y clasificaci´on de datos. En este cap´ıtulo se explican los algoritmos que se han tenido en cuenta para procesar y comparar los datos utilizados como referencia con aquellos de origen desconocido, con el fin de determinar su naturaleza. ´ Estos son: redes bayesianas, m´aquinas de vector soporte y alineamiento de secuencias. Adem´as, se describen las pruebas estad´ısticas estudiadas que permiten, a partir de las puntuaciones obtenidas de los algoritmos, calcular el estad´ıstico que revela a qu´e poblaci´on pertenece una muestra. Por ´ultimo, se detalla el funcionamiento de m´etodos para la creaci´on de modelos que definan las poblaciones de muestras que se toman para el estudio. 3.1. Procesamiento de Datos Para procesar los datos es necesaria la aplicaci´on de algoritmos que conviertan la informaci´on extra´ıda en informaci´on ´util con la que identificar los puntos m´as relevantes para la identificaci´on del malware. A continuaci´on se explican los algoritmos cuyo uso est´a m´as extendido en este ´ambito. 3.1.1. Red Bayesiana Las redes bayesianas [36] consisten en un tipo de modelo de probabilidad en el que se relacionan una serie de hechos aleatorios que pueden ocurrir y la relaci´on de probabilidad entre ellos. Se representa como un grafo en el que cada nodo supone un suceso y las aristas implican dependencia condicional. Cada nodo tiene una distribuci´on de probabilidad que depende de los datos de entrada y tiene como salida la probabilidad de que ese suceso ocurra. Las redes bayesianas pueden entenderse como la relaci´on de causa-efecto entre hechos que pueden ocurrir. As´ı, en la Figura 3.1 se representa que si el suceso B ocurre, 19 20 Cap ´ ıtulo 3. M´ etodos de An´ alisis existe una cierta probabilidad de que ocurra A y, a su vez, C. Adem´as, la probabilidad de que ocurra C ser´a: P(C) = P(B)P(A) Este tipo de redes son utilizadas en muy diversos campos, como bioinform´atica, procesamiento de im´agenes y textos o sistemas de toma de decisiones. En este ´ultimo caso, las redes bayesianas resultan muy ´utiles cuando no se tienen muchos par´ametros de entrada. Sin embargo, no tienen en cuenta la secuencia de hechos, simplemente se necesita conocer el estado anterior, lo cual puede suponer un problema en el caso de los programas inform´aticos, en los que el orden en el que ocurren los sucesos suele ser relevante. C A B Figura 3.1: Esquema de decisi´on de las redes bayesianas Hoja1 5 9 8 7 10 8 5 4 8 9 6 7 8 10 5 6 9 8 7 6 15 19 18 17 20 18 15 14 18 19 16 17 18 20 15 16 19 18 17 16 0 5 10 15 20 25 14710 13 16 19 22 25 28 31 34 37 40 Página 1 Figura 3.2: Plano de representaci´on de datos en SVM 3.1.2. Cadenas de Markov Para solucionar el inconveniente de no tener en cuenta la secuencia temporal de hechos presente en las redes bayesianas, se pueden utilizar las cadenas o modelos de Markov [37]. 3.1. Procesamiento de Datos 21 Se trata de un tipo de proceso en el que la probabilidad de que un evento llegue a ocurrir depende ´unica y exclusivamente del suceso anterior, cumpliendo as´ı la llamada propiedad de Markov. Sin embargo, aunque un estado dependa solamente del anterior, el historial de eventos ocurridos queda representado en cada estado, de forma que se dispone de toda la informaci´on necesaria para determinar la probabilidad de que ocurran los estados siguientes. La cadena de Markov se compone de una secuencia de eventos aleatorios X1, X2, . . . , Xn, Xn+1. Por la propiedad de Markov, la probabilidad de Xn+1 depende ´unicamente de Xn: P(Xn+1 =xn+1|xn, Xn−1=xn−1, . . . , X2=x2, X1=x1) = P(Xn+1 =xn+1|Xn=xn) A pesar de que de este m´etodo es utilizado en muy diversos campos como medicina, f´ısica o juegos de azar y, aunque ya se ha utilizado en otros proyectos de detecci´on de malware, pueden alcanzar una complejidad considerable cuando se trata de cadenas con una alta cantidad de posibles eventos aleatorios. 3.1.3. M´aquinas de Vector Soporte Las m´aquinas de vector soporte (o SVM, del ingl´es Support Vector Machines) son un conjunto de algoritmos supervisados que pertenecen a la familia de los clasificadores lineales. Estos algoritmos representan los datos como puntos en un plano, lo cual permite crear clasificaciones dependiendo de las agrupaciones de puntos. Para crear un correcto modelo de clases, debe existir una fase de entrenamiento que permita definir mediante la generaci´on de un hiperplano una separaci´on ´optima entre conjuntos de puntos [38], tal y como se muestra en la Figura 3.2. Una vez obtenido el modelo, dada una muestra desconocida permite diferenciar de forma clara los datos analizados para determinar a qu´e clase pertenecen. Este tipo de algoritmo ya ha sido utilizado en otros proyectos de detecci´on de malware [13], lo cual supone una ventaja puesto que ya han sido probados. Sin embargo, en la fase de entrenamiento es complicado determinar cu´al debe ser la diferencia para considerar un dato como perteneciente a un grupo o a otro, lo cual puede dar lugar a errores. Adem´as, como en el caso de redes bayesianas, solamente se tienen en cuenta los hechos ocurridos, y no la secuencia temporal de los mismos, lo cual es importante a la hora de analizar la ejecuci´on de programas. 22 Cap ´ ıtulo 3. M´ etodos de An´ alisis 3.1.4. Alineamiento de Secuencias Los algoritmos de alineamiento de secuencias [39] tratan de comparar dos cadenas de elementos para resaltar sus zonas de similitud, rellenando con huecos las partes no coincidentes. Habitualmente, son utilizados en bioinform´atica para comparar cadenas de ADN y ARN. Sin embargo, son perfectamente aplicables en otros ´ambitos. Las cadenas a comparar se colocan de tal forma que se hagan coincidir las zonas de mayor similitud. Finalmente, resulta una puntuaci´on que determina el grado de semejanza entre ambas. Esto se consigue a˜nadiendo huecos o espacios, que ser´an los que se penalizan negativamente. Adem´as, existen varios tipos de alineamientos de secuencias, entre los que destacan el alineamiento global y el local. Aunque para cadenas suficientemente similares, los resultados entre ellos no se diferencian. En la Figura 3.3 se muestran ambos, visualiz´andose el sistema de adici´on de huecos en cada caso. Global Local A B A B C D E D D C F C F A B A B C D E D D C F C F A - - B C D - D D C - C F - - A B C D - D D - C F - FIGURA 7 - A B C D A 2 -3 4 1 B -3 5 0 1 C 4 0 8 -7 D 1 1 -7 -5 d=-1 A B A B C D A - - B C C S(A,A) + 2*d + S(B,B) + S(C,C) + S(D,C)= 2 + (-2) + 5 + 8 + (-7) = 6 FIGURA 8 match = -1 mismatch = -1 gap = -1 G C A T G C U 0 -1 -2 -3 -4 -5 -6 -7 G -1 1 0 -1 -2 -3 -4 -5 A -2 0 0 1 0 -2 -2 -3 T -3 -1 -1 0 2 1 0 -1 T -4 -2 -2 -1 1 1 0 -1 A -5 -3 -3 -1 0 0 0 -1 C -6 -4 -2 -2 -1 -1 1 0 A -7 -5 -3 -1 -2 -2 0 0 FIGURA9 Figura 3.3: Alineamiento Global versus Alineamiento Local Habitualmente, las secuencias est´an formadas por los elementos de un alfabeto finito de s´ımbolos. En un principio, es necesario establecer un grado de semejanza entre estos s´ımbolos, lo que se puede conseguir mediante una matriz cuadrada de similitud. En esta matriz de similitud (S) se encuentra en cada celda S(i, j) el valor indicado para los s´ımbolos iyjdel alfabeto. Adicionalmente, se requiere de un par´ametro (d) que indique la penalizaci´on por hueco o gap. En la Figura 3.4 se muestra un ejemplo de alineamiento y los par´ametros utilizados. 3.1.4.1. Alineamiento Global El alineamiento global sirve para cotejar cadenas en su conjunto forzando la comparaci´on desde su inicio hasta ocupar la longitud total. Por este motivo, funciona especialmente bien cuando las secuencias iniciales son similares y globalmente son de tama˜no parecido. Un algoritmo habitual para su implementaci´on y que consigue la ordenaci´on de las secuencias es el algoritmo Needleman-Wunsch [40], basado en programaci´on din´amica. 3.1. Procesamiento de Datos 23 Global Local A B A B C D E D D C F C F A B A B C D E D D C F C F A - - B C D - D D C - C F - - A B C D - D D - C F - FIGURA 7 - A B C D A 2 -3 4 1 B -3 5 0 1 C 4 0 8 -7 D 1 1 -7 -5 d=-1 A B A B C D A - - B C C S(A,A) + 2*d + S(B,B) + S(C,C) + S(D,C)= 2 + (-2) + 5 + 8 + (-7) = 6 FIGURA 8 match = -1 mismatch = -1 gap = -1 G C A T G C U 0 -1 -2 -3 -4 -5 -6 -7 G -1 1 0 -1 -2 -3 -4 -5 A -2 0 0 1 0 -2 -2 -3 T -3 -1 -1 0 2 1 0 -1 T -4 -2 -2 -1 1 1 0 -1 A -5 -3 -3 -1 0 0 0 -1 C -6 -4 -2 -2 -1 -1 1 0 A -7 -5 -3 -1 -2 -2 0 0 FIGURA9 Figura 3.4: Tabla de grado de semejanza y penalizaci´on por hueco Resulta fiable porque siempre termina, funciona de forma independiente a las secuencias de entrada y adem´as asegura la mejor soluci´on. El algoritmo ordena ambas secuencias mediante una matriz (F), de tama˜no la longitud de la primera secuencia |A|=my la longitud de la segunda secuencia |B|=n, esto es, (|A|×|B|). En esta matriz el valor de la celda F(i, j) corresponde a la puntuaci´on del mejor alineamiento entre los subsegmentos de los primeros ielementos de la secuencia A y los jprimeros elementos de la secuencia B. Es decir, la matriz Fguarda el valor de los alineamientos parciales. De esta forma el valor de F(m, n) es el ´optimo para el alineamiento de ambas secuencias en su totalidad. La primera fila y columna de (F) vienen determinadas por los elementos de las secuencias y la penalizaci´on por hueco de la siguiente forma: F(0, j) = d∗j;F(i, 0) = d∗j A partir de esos datos es posible completar el resto de la matriz. El valor de una celda F(i,j) viene determinado por el de la fila, columna o diagonal anteriores de la siguiente forma: m´ax [F(i−1, j) + d, F (i, j −1) + d, F (i−1, j −1) + S(Ai, Bj)] 24 Cap ´ ıtulo 3. M´ etodos de An´ alisis Una vez completada la matriz (F), para ordenar las secuencias y a˜nadir los huecos pertinentes se parte de la posici´on F(m, n), como se aprecia en la Figura 3.5. En este caso se debe retroceder en la matriz, eligiendo como siguiente posici´on el mayor valor de entre F(i−1, j), F(i, j −1) y F(i−1, j −1). De esta forma se comprueba cu´al fue la soluci´on ´optima usada a la hora de construir la celda F(i, j). Si el valor elegido es F(i−1, j), debe alinearse A(i) con un hueco, si fue F(i, j −1) es B(i) el que debe alinearse con un hueco y, finalmente, si se eligi´o F(i−1, j −1), AiyBiest´an alineados entre s´ı. El proceso se repite hasta acabar en un valor de la primera fila o columna [41]. Global Local A B A B C D E D D C F C F A B A B C D E D D C F C F A - - B C D - D D C - C F - - A B C D - D D - C F - FIGURA 7 - A B C D A 2 -3 4 1 B -3 5 0 1 C 4 0 8 -7 D 1 1 -7 -5 d=-1 A B A B C D A - - B C C S(A,A) + 2*d + S(B,B) + S(C,C) + S(D,C)= 2 + (-2) + 5 + 8 + (-7) = 6 FIGURA 8 match = -1 mismatch = -1 gap = -1 G C A T G C U 0 -1 -2 -3 -4 -5 -6 -7 G -1 1 0 -1 -2 -3 -4 -5 A -2 0 0 1 0 -2 -2 -3 T -3 -1 -1 0 2 1 0 -1 T -4 -2 -2 -1 1 1 0 -1 A -5 -3 -3 -1 0 0 0 -1 C -6 -4 -2 -2 -1 -1 1 0 A -7 -5 -3 -1 -2 -2 0 0 FIGURA9 Figura 3.5: Matriz de decisi´on en el algoritmo de Needleman-Wunsch 3.1.4.2. Alineamiento Local El alineamiento local es m´as apropiado para encontrar subsecuencias similares dentro de un contexto mayor, al contrario que el global que compara las secuencias en su conjunto. En este caso, al intentar buscar secciones dispersas de gran similitud, la diferencia de longitud entre las cadenas no perjudica excesivamente el resultado final. Para llevarlo a cabo se utiliza habitualmente el algoritmo recursivo de Smith-Waterman [42]. El ordenamiento de las secuencias se consigue recorriendo la matriz (F) de la misma forma en la que se recorr´ıa en el algoritmo Needleman-Wunsch. Sin embargo, las caracter´ısticas de (F) son distintas. La primera diferencia es la forma de completar la primera columna y fila que, en este caso, valen 0, esto es: F(0, j) = 0; F(i, 0) = 0 Adem´as, el valor ´optimo para el alineamiento se puede encontrar en cualquier celda de 3.2. Pruebas Estad ´ ısticas 25 la matriz y se empieza a recorrer a partir de ella en vez de F(m, n) hasta que se encuentra un 0, como se expone en la Figura 3.6. G G A T T C A G T T A 0 0 0 0 0 0 0 0 0 0 0 0 G 0 5 1 0 0 0 0 0 5 1 0 0 G 0 5 2 0 0 0 0 0 5 2 0 0 A 0 1 10 7 3 0 0 5 1 2 0 5 T 0 0 6 7 12 8 4 1 2 -6 7 3 C 0 0 2 3 8 9 13 9 5 2 3 4 G 0 5 1 0 4 5 9 10 14 10 6 2 A 0 1 10 6 2 1 4 14 10 11 4 11 No hay huecos G G A T T CA G T T A Hueco en la segunda secuencia G G A T - C G A Hueco en la secuencia superior FIGURA 10 Figura 3.6: Matriz de decisi´on en el algoritmo de Smith-Waterman 3.2. Pruebas Estad´ısticas Una vez se dispone de una o varias poblaciones de datos, se lleva a cabo un contraste para calcular el estad´ıstico que permita decidir si los resultados de una muestra desconocida analizada pertenecen a alguna de ellas o, si por el contrario, no se tienen datos suficientes para decidirlo. Como se muestra en la Figura 3.7, existen multitud de pruebas estad´ısticas indicadas para distintos tipos de distribuciones y datos. En el caso de los datos que vamos a analizar relativos a las llamadas al sistema, no se puede asumir que su distribuci´on vaya a ser normal, por lo tanto se tratan como datos no normalizados. Por ello, se han estudiado dos pruebas populares para variables continuas como son la prueba de los rangos con signo de Wilcoxon y la prueba U de Mann-Whitney. Al no suponer ninguna distribuci´on, utilizan la mediana de las muestras para comparar; adem´as tambi´en trabajan con rangos de orden. 26 Cap ´ ıtulo 3. M´ etodos de An´ alisis Tipo de Distribución Normales No normales Independientes Apareados T-Student por pares Tamaño muestral grande Normal Tamaño muestral pequeño T-Student Independientes U-test Apareados Wilcoxon Figura 3.7: Esquema de pruebas estad´ısticas seg´un sus caracter´ısticas 3.2.1. Prueba de los Rangos con Signo de Wilcoxon La prueba de Wilcoxon [43] trabaja sobre vectores con datos apareados, es decir, se comparan entre s´ı los datos con el mismo ´ındice. Esto supone que el tama˜no de los vectores (n) debe ser muy similar para las dos muestras. La hip´otesis nula viene definida como que la mediana de las diferencias de los elementos del vector sea igual a 0. El proceso que sigue permite obtener un valor ppara decidir si no se cumple la hip´otesis nula, esto es, que dicha diferencia no se deba al azar y, por lo tanto, se pueda determinar que ambas poblaciones son la misma. 1. Primero se obtienen las diferencias de los pares de elementos que se est´an comparando uno a uno Tabla 3.1: Diferencia entre elementos en la prueba de Wilcoxon A 4 3 6 7 9 4 2 5 B 3 4 6 6 5 4 7 3 Diferencia 1 -1 6 1 4 0 -5 2 3.2. Pruebas Estad ´ ısticas 27 2. Las diferencias se ordenan sin tener en cuenta los signos. Tabla 3.2: Diferencias ordenadas en la prueba de Wilcoxon Diferencias ordenadas sin signo 0 0 1 1 1 2 4 5 3. Una vez ordenadas, se les asigna un rango. Si existen elementos repetidos, el rango se determina en la media de los rangos correspondientes. Tabla 3.3: Asignaci´on de rangos de orden en la prueba de Wilcoxon Diferencias ordenadas sin signo 0 0 1 1 1 2 4 5 Rangos - - 2 2 2 4 5 6 4. Se suman por un lado los rangos de las diferencias positivas (T+) y por otro lado los rangos de las diferencias negativas (T−) y se calcula el estad´ıstico contraste T como el m´ınimo de ambos: T= m´ın[T+, T −]. Tabla 3.4: Resultado de T+, Ty T A 4 3 6 7 9 4 2 5 B 3 4 6 6 5 4 7 3 Diferencia 1 -1 6 1 4 0 -5 2 Rangos 2 2 - 2 5 - 6 4 T+ = 13 T−= 8 T= 8 5. Una vez obtenidos estos 3 par´ametros, a partir del estad´ıstico Tse obtiene un p valor. Para tama˜nos muestrales peque˜nos (n < 20) el pvalor se calcula gracias a la tabla estad´ıstica de la distribuci´on de Wilcoxon. Para tama˜nos muestrales mayores se consigue mediante Zque es una aproximaci´on normal del valor Tpor la siguiente f´ormula: Z= T−n(n+1) 4 qn(n+1)(2n+1) 24 En funci´on del intervalo de confianza utilizado, normalmente 0,05 o 0,01, y de la p obtenida, se puede determinar si ambos vectores son similares o si la diferencia es significativa. Si p <intervalo, se deduce que la diferencia entre poblaciones no se debe al azar y, 34 Cap ´ ıtulo 4. Detecci´ on de Malware en Android llamadas al sistema que han ocurrido y en el orden que han sucedido, representadas por n´umeros, de forma que resultar´a m´as sencillo de procesar. Tras esta simplificaci´on, se ha optado por una estrategia de identificaci´on basada en anomal´ıa. Se comparan los datos desconocidos con los conocidos como leg´ıtimos mediante un algoritmo de alineamiento de secuencias global descrito en el apartado 3.1.4. Como resultado del algoritmo se obtiene una puntuaci´on de similitud entre vectores. A continuaci´on, las puntuaciones que se conocen como leg´ıtimas y las desconocidas son sometidas a una prueba no param´etrica de Wilcoxon (descrita en el apartado 3.2.1), y en funci´on de la p obtenida y de la diferencia de medias, se determina si la muestra es leg´ıtima o maliciosa. 4.3. Experimentaci´on La fase de experimentaci´on se ha realizado utilizando una m´aquina virtual de Android 4.4 KitKat. Se han realizado las pruebas con 19 aplicaciones distintas de las que se disponen de una versi´on leg´ıtima y otra contaminada, que se han obtenido del repositorio Android Malware Genome yDrebin dataset. En concreto las aplicaciones son Diner Dash 2, Jaro, Mash, Plumber, Fruits Maching, Scrambled Net, Solitaire, Tap and Furious, Robotic Space Rock, Basketball shot, Monkey Jump 2, Whites out, Super touch down, Tilt Mazes, Helix, DailyMoney, Sanity, Best Voice Changer y Z-test. Las versiones maliciosas est´an contaminadas por los siguientes tipos de malware DroidKungFu: inhibe la actividad de los programas antivirus, y adem´as crea una puerta trasera que permite a los atacantes hacerse con el control del dispositivo. Plankton: env´ıa datos del tel´efono a un servidor remoto el cual, a lo largo del tiempo, transmite ´ordenes para obtener informaci´on privada del usuario Geinimi: lee, env´ıa y borra SMS; env´ıa a un servidor la informaci´on de los contactos y la localizaci´on; descarga ficheros sin el conocimiento del usuario y abre p´aginas en el navegador. GinMaster: env´ıa informaci´on confidencial a un servidor remoto e instala aplicaciones sin el permiso del usuario. Cogos: malware gen´erico de pruebas 4.3. Experimentaci´ on 35 jSMSHider: un gusano que, adem´as de enviar y recibir mensajes de texto, tiene la capacidad de abrir p´aginas webs y aplicaciones sin el conocimiento del usuario. Las consecuencias de ambos son de extrema gravedad. VdLoader: env´ıa notificaciones por SMS y transmite la informaci´on de las aplicaciones instaladas en el dispositivo a un servidor remoto. Gapev: descarga otras aplicaciones y suscribe al usuario a un servicio de SMS premium. Gamex: descarga ficheros sin el conocimiento del usuario 4.3.1. Etapas Para cada una de las aplicaciones la experimentaci´on se ha realizado en tres etapas. Etapa 1: En esta primera etapa se extraen los datos de 30 ejecuciones distintas de la aplicaci´on en su versi´on leg´ıtima. A continuaci´on, esas 30 muestras se han cruzado entre s´ı (Figura 4.3) usando el algoritmo de alineamiento, obteniendo para cada una un vector de 30 puntuaciones. Se ha calculado la media de cada uno de esos vectores, logrando finalmente 30 medias (marcadas en azul en la Figura 4.3). Etapa 2: En la segunda etapa se extraen los datos de las ejecuciones desconocidas cuya naturaleza se quiera definir. Para este proyecto se han tomado varias decenas de muestras de la aplicaci´on leg´ıtima y de la aplicaci´on que contiene malware. Cada una de estas muestras se ha cruzado con las 30 ejecuciones leg´ıtimas iniciales, obteniendo as´ı un vector de 30 posiciones con una puntuaci´on por fichero leg´ıtimo. Etapa 3: Por ´ultimo, se compara mediante Wilcoxon el vector de 30 puntuaciones de cada fichero desconocido con el vector de 30 puntuaciones de medias leg´ıtimas, como se muestra en la Figura 4.4. 4.3.2. Optimizaci´on En un primer intento se ha llevado a cabo la experimentaci´on con las aplicaciones DailyMoney y DinerDash. Para ello se ha aplicado alineamiento global sobre el total de la secuencia de llamadas al sistema de todos los archivos examinados. Para el alineamiento global se ha definido −1 como la penalizaci´on por hueco o cuando dos elementos no son iguales y +1 cuando dos elementos coinciden. 36 Cap ´ ıtulo 4. Detecci´ on de Malware en Android L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 L11 L12 L13 L14 L15 L16 L17 L18 L19 L20 L21 L22 L23 L24 L25 L26 L27 L28 L29 L30 L1 1496 1522 1427 1479 1309 1373 1485 1437 1382 1379 1404 1385 1316 1471 1433 1596 1463 1496 1363 1424 1417 1423 1446 1505 1353 1482 1410 1468 1463 L2 1496 1377 1327 1353 1439 1517 1498 1474 1429 1456 1392 1499 1412 1450 1502 1424 1345 1402 1488 1427 1537 1437 1283 1390 1561 1588 1509 1654 1426 L3 1522 1377 1355 1334 1303 1339 1428 1316 1395 1449 1316 1431 1315 1362 1335 1419 1336 1462 1392 1468 1339 1362 1438 1395 1363 1396 1382 1415 1463 L4 1427 1327 1355 1550 1317 1396 1367 1440 1258 1273 1376 1282 1418 1533 1332 1429 1531 1512 1229 1378 1374 1427 1421 1303 1285 1354 1359 1352 1381 L5 1479 1353 1334 1550 1366 1421 1323 1362 1283 1284 1295 1247 1386 1587 1334 1483 1633 1477 1255 1419 1416 1403 1445 1281 1264 1426 1389 1369 1412 L6 1309 1439 1303 1317 1366 1512 1417 1488 1353 1349 1485 1376 1492 1405 1336 1359 1334 1447 1425 1275 1532 1429 1241 1212 1510 1459 1464 1493 1434 L7 1373 1517 1339 1396 1421 1512 1472 1532 1512 1411 1501 1462 1591 1499 1438 1503 1495 1530 1551 1389 1593 1674 1308 1354 1523 1602 1615 1517 1619 L8 1485 1498 1428 1367 1323 1417 1472 1429 1549 1512 1336 1552 1452 1418 1504 1399 1382 1404 1515 1504 1516 1462 1345 1348 1477 1556 1565 1617 1455 L9 1437 1474 1316 1440 1362 1488 1532 1429 1430 1380 1417 1392 1477 1561 1412 1481 1424 1510 1433 1374 1577 1536 1336 1378 1453 1484 1520 1521 1479 L10 1382 1429 1395 1258 1283 1353 1512 1549 1430 1547 1487 1500 1385 1427 1498 1440 1320 1377 1511 1359 1394 1437 1382 1485 1455 1525 1507 1440 1425 L11 1379 1456 1449 1273 1284 1349 1411 1512 1380 1547 1509 1426 1364 1374 1615 1367 1310 1406 1489 1412 1395 1412 1377 1405 1382 1595 1495 1519 1395 L12 1404 1392 1316 1376 1295 1485 1501 1336 1417 1487 1509 1401 1359 1432 1464 1404 1349 1454 1379 1283 1359 1469 1366 1479 1335 1474 1429 1394 1474 L13 1385 1499 1431 1282 1247 1376 1462 1552 1392 1500 1426 1401 1419 1375 1477 1367 1235 1390 1450 1393 1424 1429 1278 1421 1439 1508 1524 1533 1421 L14 1316 1412 1315 1418 1386 1492 1591 1452 1477 1385 1364 1359 1419 1413 1353 1391 1372 1451 1514 1411 1501 1475 1287 1228 1435 1531 1514 1533 1511 L15 1471 1450 1362 1533 1587 1405 1499 1418 1561 1427 1374 1432 1375 1413 1386 1626 1510 1549 1344 1359 1518 1533 1400 1514 1309 1381 1536 1481 1457 L16 1433 1502 1335 1332 1334 1336 1438 1504 1412 1498 1615 1464 1477 1353 1386 1406 1340 1353 1401 1430 1429 1407 1368 1448 1452 1660 1416 1569 1375 L17 1596 1424 1419 1429 1483 1359 1503 1399 1481 1440 1367 1404 1367 1391 1626 1406 1534 1648 1311 1396 1483 1553 1395 1530 1323 1437 1491 1403 1518 L18 1463 1345 1336 1531 1633 1334 1495 1382 1424 1320 1310 1349 1235 1372 1510 1340 1534 1493 1288 1448 1398 1404 1466 1367 1285 1440 1436 1365 1435 L19 1496 1402 1462 1512 1477 1447 1530 1404 1510 1377 1406 1454 1390 1451 1549 1353 1648 1493 1361 1363 1494 1556 1367 1433 1378 1479 1474 1424 1611 L20 1363 1488 1392 1229 1255 1425 1551 1515 1433 1511 1489 1379 1450 1514 1344 1401 1311 1288 1361 1367 1499 1444 1312 1348 1543 1556 1483 1506 1480 L21 1424 1427 1468 1378 1419 1275 1389 1504 1374 1359 1412 1283 1393 1411 1359 1430 1396 1448 1363 1367 1428 1359 1412 1358 1376 1457 1421 1463 1395 L22 1417 1537 1339 1374 1416 1532 1593 1516 1577 1394 1395 1359 1424 1501 1518 1429 1483 1398 1494 1499 1428 1592 1281 1324 1536 1484 1596 1540 1535 L23 1423 1437 1362 1427 1403 1429 1674 1462 1536 1437 1412 1469 1429 1475 1533 1407 1553 1404 1556 1444 1359 1592 1299 1363 1480 1464 1489 1469 1510 L24 1446 1283 1438 1421 1445 1241 1308 1345 1336 1382 1377 1366 1278 1287 1400 1368 1395 1466 1367 1312 1412 1281 1299 1376 1269 1384 1288 1355 1327 L25 1505 1390 1395 1303 1281 1212 1354 1348 1378 1485 1405 1479 1421 1228 1514 1448 1530 1367 1433 1348 1358 1324 1363 1376 1271 1449 1367 1372 1396 L26 1353 1561 1363 1285 1264 1510 1523 1477 1453 1455 1382 1335 1439 1435 1309 1452 1323 1285 1378 1543 1376 1536 1480 1269 1271 1569 1426 1566 1452 L27 1482 1588 1396 1354 1426 1459 1602 1556 1484 1525 1595 1474 1508 1531 1381 1660 1437 1440 1479 1556 1457 1484 1464 1384 1449 1569 1508 1655 1488 L28 1410 1509 1382 1359 1389 1464 1615 1565 1520 1507 1495 1429 1524 1514 1536 1416 1491 1436 1474 1483 1421 1596 1489 1288 1367 1426 1508 1505 1543 L29 1468 1654 1415 1352 1369 1493 1517 1617 1521 1440 1519 1394 1533 1533 1481 1569 1403 1365 1424 1506 1463 1540 1469 1355 1372 1566 1655 1505 1489 L30 1463 1426 1463 1381 1412 1434 1619 1455 1479 1425 1395 1474 1421 1511 1457 1375 1518 1435 1611 1480 1395 1535 1510 1327 1396 1452 1488 1543 1489 MEDIAS 1434 1451 1386 1378 1388 1398 1491 1458 1450 1430 1423 1407 1415 1424 1455 1430 1452 1404 1458 1421 1398 1465 1458 1353 1382 1416 1496 1471 1482 1461 Figura 4.3: Resultado de puntuaciones 4.3. Experimentaci´ on 37 MEDIAS 1434 1451 1386 1378 1388 1398 1491 1458 1450 1430 1423 1407 1415 1424 1455 1430 1452 1404 1458 1421 1398 1465 1458 1353 1382 1416 1496 1471 1482 1461 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 D16 D17 D18 D19 D20 D21 D22 D23 D24 D25 D26 D27 D28 D29 D30 Desconocida 1531 1562 1521 1495 1527 1456 1488 1591 1552 1563 1558 1577 1318 1507 1524 1580 1333 1548 1585 1607 1518 1499 1057 1581 1539 1508 1518 1436 1565 1459 Figura 4.4: Comparaci´on de las medias Dada la baja precisi´on inicial obtenida (Tabla 4.1), especialmente en las secuencias m´as largas como en el caso de DinerDash (alrededor de 25.000), se ha supuesto que la actividad maliciosa podr´ıa estar localizada en un corto rango inicial de llamadas. Por ello, comparar las secuencias completas podr´ıa enmascarar esa variaci´on de comportamiento al inicio. Adem´as, como la cantidad de llamadas al sistema var´ıa en una peque˜no rango dependiendo de la ejecuci´on, supone que el alineamiento global trabaja sobre vectores de distinta magnitud lo que merma su efectividad. As´ı, se decide limitar las secuencias a analizar a las 2000 primeras llamadas al sistema generadas en cada ejecuci´on, repiti´endose la experimentaci´on. En el caso de aplicaciones muy sencillas con pocas llamadas, se ha limitado a 1000 Tabla 4.1: Primeros resultados sin optimizar el sistema Muestra Muestra Detecci´on Detecci´on Falsos Falsos leg´ıtima malware leg´ıtima malware negativos positivos Precisi´on DailyMoney 47 47 68 % 100 % 32 % 0 % 84 % DinerDash 36 36 27 % 58 % 73 % 42 % 43 % Adem´as, los valores aplicados en el alineamiento tienen como consecuencia que el vector de medias presente una desviaci´on t´ıpica elevada. Para evitar esto se propone puntuar con -1 cuando se produce un hueco, con 0 cuando dos elementos no coinciden y +1 cuando s´ı. Cabe mencionar la importancia de automatizar todo este proceso. Para ello se ha creado un archivo apk que ejecuta una aplicaci´on en el dispositivo y extrae las llamadas al sistema en ficheros txt. Posteriormente, estos ficheros se incluyen en el servidor en una carpeta determinada, dependiendo de su naturaleza (leg´ıtima o desconocida). Se ha desarrollado un script que a partir de los datos de esas carpetas desarrolla las tres etapas del proceso. En primer lugar convierte los datos en bruto en secuencias de n´umeros. Tras eso compara las secuencias resultantes mediante alineamiento global. Por ´ultimo, lleva a cabo la prueba estad´ıstica de Wilcoxon creando un fichero con la conclusi´on final. 38 Cap ´ ıtulo 4. Detecci´ on de Malware en Android 4.4. Resultados Una vez ejecutado el algoritmo de alineamiento de secuencias con las correcciones que se han explicado anteriormente, se puede observar en la Figura 4.5 que las puntuaciones obtenidas al cruzar ejecuciones leg´ıtimas con las de referencia, distan de forma muy significativa de las puntuaciones obtenidas con las ejecuciones maliciosas. Hoja1 Robo Mal uso Sabotaje SPAM Fraude Symbian 50.00% 0 50.00% 0 0 BB 66.00% 33.00% 0 0 0 Android 65.00% 30.00% 0 10.00% 20.00% Iphone 23.00% 0.00% 0 0 23.00% Windows 0 60.00% 0 0 0 % ventas de aplicaciones 2011 2012 2013 Android 49.00% 69.00% 78.00% iOs 18.00% 18.00% 15.00% Windows 2.00% 3.00% 4.00% BB 11.00% 4.00% 2.00% Otros 20.00% 6.00% 1.00% 1281 1281 1281 1282 1282 1283 1283 1283 1283 1283 1283 1284 1284 1285 1285 1285 1285 1287 1287 1288 1288 1288 1288 1295 Objetivos 0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% Symbian Android Windows Objetivos Robo Mal uso Sabotaje SPAM Fraude 0 0.2 0.4 0.6 0.8 1 1.2 Symbian Android Adquisición de Privilegios 0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% 80.00% 90.00% Android Windows Otros % de ventas de aplicaciones 2011 2012 2013 0 200 400 600 800 1000 1200 1400 1600 1800 1117 233 349 465 581 697 813 Diferencia de puntuaciones del alineamiento Legítimas Maliciosas Página 1 Figura 4.5: Diferencia de puntuaciones De manera formal, se aplica la prueba de Wilcoxon sobre las medias de las muestras de referencias y las puntuaciones obtenidas de cada una de las muestras desconocidas. En funci´on del par´ametro py de la diferencia de medias (mean difference) que se obtienen gracias a esta prueba, se determina si una muestra desconocida es leg´ıtima o no. Las muestras maliciosas deben tener una diferencia de medias positiva (ya que las puntuaciones leg´ıtimas de referencia ser´an mayores que las maliciosas) y p≤0.001. Siguiendo este m´etodo se ha conseguido que las 40 muestras maliciosas que se han tomado de cada una de las 4 aplicaciones sean siempre catalogadas de forma correcta, logrando un acierto del 100 % en la detecci´on de muestras maliciosas. En cambio, en las muestras leg´ıtimas se comprueba el valor de p, que debe ser p > 0.001 para que se considere leg´ıtima. Si esto no se cumple se comprueba el valor de su media que puede ser positiva o negativa. Si es negativa (es decir, las puntuaciones de la muestra desconocida son superiores que las de referencia) se puede asumir que es leg´ıtima. Sin embargo, si la diferencia de medias es positiva no se puede asegurar que el comportamiento sea el correcto. De esta forma se obtienen los resultados de la Tabla 4.2. Es importante destacar que aunque exista una tasa de falsos positivos, dado que la detecci´on de malware es completa, 4.4. Resultados 39 una segunda ejecuci´on de la aplicaci´on analizada podr´ıa clarificar los resultados puesto que la posibilidad de que se produzca dos veces seguidas un falso positivo es improbable. Tabla 4.2: Resultados Muestra Muestra Detecci´on Detecci´on Falsos Falsos leg´ıtima malware leg´ıtima malware positivos negativos Precisi´on DroidKungFu Basketball shot 50 50 96 % 100 % 4 % 0 % 98 % RoboticSpaceRock 50 50 100 % 100 % 0 % 0 % 100 % TiltMazes 50 50 90 % 100 % 10 % 0 % 95 % Scrambled Net 50 50 94 % 100 % 6 % 0 % 97 % Solitaire 50 50 94 % 100 % 6 % 0 % 97 % DailyMoney 47 47 98 % 100 % 2 % 0 % 99 % DinerDash 36 36 84 % 100 % 16 % 0 % 92 % Jaro 36 36 92 % 100 % 8 % 0 % 96 % Plankton BestVoiceChanger 50 50 100 % 100 % 0 % 0 % 100 % SuperTouchDown 50 50 96 % 100 % 4 % 0 % 98 % Geinimi Helix 50 50 100 % 100 % 0 % 0 % 100 % Monkey Jump 2 50 50 90 % 100 % 10 % 0 % 95 % Tap and Furious 50 50 92 % 100 % 8 % 0 % 96 % Ginmaster Whites Out 50 50 98 % 100 % 2 % 0 % 99 % Cogos Fruits Maching 50 50 92 % 100 % 8 % 0 % 96 % jSMSHider Mash 49 49 82 % 100 % 18 % 0 % 91 % Vdloader Plumber 50 50 90 % 100 % 10 % 0 % 95 % Gapev Sanity 50 50 96 % 100 % 4 % 0 % 98 % Gamex Z-test 50 50 88 % 100 % 12 % 0 % 94 % 40 Cap ´ ıtulo 4. Detecci´ on de Malware en Android Cap´ıtulo 5 Conclusiones y Trabajo Futuro 5.1. Conclusiones Finalizado el proyecto y despu´es de haber expuesto el contexto social por el que es necesario, los estudios relacionados y la propuesta realizada, es el momento de hacer una evaluaci´on general. Creemos que se han cumplido los objetivos marcados al principio del proyecto. Se ha demostrado que la actividad maliciosa de una aplicaci´on m´ovil deja gran parte de su huella al inicio de su ejecuci´on y que estudiar las llamadas al sistema ´unicamente durante ese instante consigue identificarlo. Esto permite evitar una monitorizaci´on continuada y adem´as desliga el an´alisis de la actividad que pueda realizar el usuario. De esta forma se puede hacer un an´alisis que no requiera una gran cantidad de recursos y que sea r´apido para evitar lo antes posible cualquier perjuicio que el malware pudiera causar. En definitiva, creemos que el trabajo realizado ha merecido la pena y que se ha demostrado la contribuci´on del sistema en la investigaci´on de una identificaci´on temprana de malware. Sin embargo, de forma cr´ıtica reconocemos que el proyecto tiene a´un otros caminos que recorrer para convertirse en una herramienta usable tanto a nivel particular como empresarial. 5.2. Trabajo Futuro Como posibles trabajos futuros pueden se˜nalarse los siguientes: Estrategia de detecci´on basada en el mal uso. En este caso es interesante que la primera etapa de la experimentaci´on utilice como referencia diversas muestras de aplicaciones infectadas con el mismo malware. Esto permite, no s´olo conocer si una 41 42 Cap ´ ıtulo 5. Conclusiones y Trabajo Futuro aplicaci´on es maliciosa o no, sin necesidad de tener una versi´on leg´ıtima de la misma, sino adem´as saber cu´al es el malware del que est´a infectada. Creaci´on de un modelo global. El estudio de una gran cantidad de aplicaciones puede derivar en la creaci´on de un modelo ´unico de comportamiento leg´ıtimo con el que se compararse cada aplicaci´on desconocida. De esta forma se elimina la limitaci´on por la cual cada aplicaci´on solo puede compararse consigo misma en su versi´on leg´ıtima. B´usqueda de patrones. El uso de alineamiento global permite estudiar en su totalidad las cadenas similares resultantes de una ejecuci´on corta. Sin embargo debe contemplarse aplicar a su vez alineamiento local que permita identificar subsecuencias repetidas, relacionadas con un comportamiento malicioso, dentro de la cadena mayor. Estudio de llamadas al sistema. Un estudio exhaustivo de las llamadas al sistema en Linux permite conocer el grado de semejanza de las acciones que llevan a cabo. Con esta informaci´on se puede completar la matriz de similitud necesaria para el alineamiento de secuencias con puntuaciones m´as precisas, que dieran lugar a un an´alisis m´as exacto. Cap´ıtulo 6 Contribuciones Participaci´on In´es Heras En este proyecto se ha intentado repartir la carga de trabajo de forma equitativa. En un principio se empez´o por buscar y analizar la documentaci´on de los proyectos relativos a este asunto (cap´ıtulos 1 y 2), labor que se ha realizado de forma conjunta entre los dos integrantes del equipo. Una vez acabada esta tarea, se procedi´o a buscar diversas herramientas que podr´ıan ser utilizadas en el proyecto (las detalladas en el cap´ıtulo 3). Tras consultar con miembros del GASS, entre los dos llegamos a la conclusi´on de que el alineamiento de secuencias podr´ıa ser una buena opci´on. Entonces proced´ı a buscar m´as informaci´on sobre los tipos de alineamientos, encontrando varias implementaciones de dicho algoritmo que posteriormente mi compa˜nero adapt´o a las necesidades del proyecto. Tambi´en nos dimos cuenta de que el procesamiento de las llamadas era necesario, por lo que realic´e un estudio sobre las llamadas que existen en Android e implement´e un programa que hace corresponder cada llamada con un n´umero, y adem´as elimina las llamadas duplicadas. Adem´as, en el mes de noviembre yo personalmente encontr´e el repositorio Android Malware Genome, administrado por un equipo de la Universidad de Carolina del Norte, y nos pusimos en contacto con ellos para que nos lo facilitaran. Sin embargo, no fue hasta 5 meses despu´es cuando lo tuvimos disponible. Tambi´en ha sido complicada la parte de conocimiento y control de la herramienta 43 50 BIBLIOGRAF´ IA [45] Pedro Garcia-Teodoro, J. Diaz-Verdejo, Gabriel Maci´a-Fern´andez, and Enrique V´azquez. Anomaly-Based Network Intrusion Detection: Techniques, Systems and Challenges. Computers & Security, 28(1):18–28, 2009. [46] Juan M. Estevez-Tapiador, Pedro Garcia-Teodoro, and Jesus E Diaz-Verdejo. Anomaly Detection Methods in Wired Networks: A Survey and Taxonomy. Computer Communications, 27(16):1569–1584, 2004. Parte I Resumen en Ingl´es 51 Ap´endice A Introduction In recent years it has increased the occurrence of different types of smart devices. Thus, between 60 and 80 percent of the population in the countries where there is access to the Internet, made via Smartphones or Tablets [1], which are used an average of two hours a day. In addition, it is estimated that in 2017 there in the world 1.4 mobile devices per capita and sales will exceed those of PCs. In light of these data, it is clear that the interest and the importance of these devices in society is increasingly noticeable and presumably will continue to advance rapidly. Among the characteristics of mobile devices is the presence of sensors such as gyroscopes, microphones, GPS locators, etc.; the possibility to connect to any type Bluetooth, Wi-Fi telephone network; or the ability to acquire and use applications developed by third parties [2]. But despite the obvious advantages, they also have certain problems that can become crucial for safety. This is because these devices store very sensitive and varied information which may compromise the security, privacy and even the economy of the owner or third parties. The sensors that incorporate these technologies can also collect data without the user being really aware of how much information the device being managed. It is for this reason that the creation of malicious software or malware, specific for this area has increased at the same speed to use. Finally, it is important to note that among users there is no awareness of the danger they are exposed to a potential attack. The vast majority even unknown mobile malware exists, and that applications installed on their devices may exhibit malicious behavior . Therefore, it is necessary to raise security models beyond the user action, and controlling devices markets. 53 54 Cap ´ ıtulo A. Introduction A.1. Mobile Malware Malware is any type of software or code hostile, intrusive, or a designed for use the device without the owner’s knowledge. The development and proliferation of mobile malware is closely linked to increased network capabilities and computing resources. So, the first evidence that mobile malware was developed in 2004 to attack Symbian [3] devices. However, it is from 2010 when it begins to grow significantly [4], being mainly dedicated to Android and iOS systems. Only for Android in 2012 it is estimated that there were about 35,000 malware, being objective of 79 % of malware generated during this year compared to 11.5 % in 2010 [5]. To analyze the attacks and their types, should be considered three perspectives: performance and objectives, malware distribution forms and methods of acquiring privileges. A.1.1. Behavior and Objectives of the Attack In most cases the malware has several objectives and also their purpose and behavior can vary by a remote command sent by those who control it. The most common of its objectives is the economic benefit. In this sense several examples can be found, as in the case of fraud or overbilling. This attack is to charge expenses to the account of the victim (which are transferred to the attacker) through calls or SMS sent to premium rate numbers without the user’s consent. Usually, the user associated with such attacks a conflict with the company supplying the service, ignoring its true nature [6]. Another type of attack is the denial of service or sabotage, called DoS attack that tries to consume the device battery operating time limit or deny the user access to certain resources or networks [7]. When running in a distributed way (DDoS), may cause damage not only to one or more users, but also to various organizations [2]. For example, the Internet server of an area can be collapsed if they begin sending packets to a massive network. Finally, the privacy could be compromised through a technique called sniffing [8], which leverages the data collected by sensors and networks which uses the device can obtain images [9], telephone recordings, passwords, emails, bank details or any information the device sends or receives. This is one of the most concern to users or organizations threats, as on mobile devices and sensitive data are stored and classified. In Fig. A.1 the occurrence of each type of target, for each operative system is detailed. A.1. Mobile Malware 55 Hoja1 Theft Misuse Sabotage SPAM Fraudulence Symbian 50.00% 0 50.00% 0 0 BB 66.00% 33.00% 0 0 0 Android 65.00% 30.00% 0 10.00% 20.00% Iphone 23.00% 0.00% 0 0 23.00% Windows 0 60.00% 0 0 0 % ventas de aplicaciones 2011 2012 2013 Android 49.00% 69.00% 78.00% iOs 18.00% 18.00% 15.00% Windows 2.00% 3.00% 4.00% BB 11.00% 4.00% 2.00% Others 20.00% 6.00% 1.00% 1281 1281 1281 1282 1282 1283 1283 1283 1283 1283 1283 1284 1284 1285 1285 1285 1285 1287 1287 1288 1288 1288 1288 1295 Objetivos 0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% Symbian BB Android Iphone Windows Targets Theft Misuse Sabotage SPAM Fraudulence 0.00% 20.00% 40.00% 60.00% 80.00% 100.00% 120.00% Symbian BB Android Iphone Windows Distribution M2D A2D W2D N2D U2D S2D Página 1 Figure A.1: Classification of attacks per operating system A.1.2. Distribution Methods It is important to know the means by which malicious programs are distributed in order to tackle the contagion. There are two major approaches [10]: self-propagation and social engineering . The first type are grouped the following methods: Application to Device, A2D, the malicious code is in an application that infects the Device; SMS to Device, S2D, the device is spread by SMS; USB to Device, U2D; Network to Device, N2D; Device to Device, D2D y Cloud to Device, C2D. In these cases the malware is programmed to contaminate the device when placed in contact with it. On the other hand, social engineering, group methods Market to Device, M2D, the user downloads a malicious program from the market or Web -browser to Device, W2D. As shown in Fig. A.2, social engineering is the main method of distributing malware. Possibly this is due to poor awareness of the danger that show users; They are usually those who download infected apps from the markets. It is also often a combination of both strategies. 56 Cap ´ ıtulo A. Introduction Hoja1 Theft Misuse Sabotage SPAM Fraudulence Symbian 50.00% 0 50.00% 0 0 BB 66.00% 33.00% 0 0 0 Android 65.00% 30.00% 0 10.00% 20.00% Iphone 23.00% 0.00% 0 0 23.00% Windows 0 60.00% 0 0 0 % ventas de aplicaciones 2011 2012 2013 Android 49.00% 69.00% 78.00% iOs 18.00% 18.00% 15.00% Windows 2.00% 3.00% 4.00% BB 11.00% 4.00% 2.00% Others 20.00% 6.00% 1.00% 1281 1281 1281 1282 1282 1283 1283 1283 1283 1283 1283 1284 1284 1285 1285 1285 1285 1287 1287 1288 1288 1288 1288 1295 Objetivos 0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% Symbian BB Android Iphone Windows Targets Theft Misuse Sabotage SPAM Fraudulence 0.00% 20.00% 40.00% 60.00% 80.00% 100.00% 120.00% Symbian BB Android Iphone Windows Distribution M2D A2D W2D N2D U2D S2D Página 1 Figure A.2: Distribution methods per operating system A.1.3. Acquisition of Privileges For the malware to be effective is not enough to spread the device, it must also get a number of privileges to gain access to critical parts of the system and make the necessary actions to implement its work. Usually, these privileges are granted directly by users [10] to install applications on legitimate appearance but hide malicious behavior. Users are unaware of the impact of transferring certain permissions to unknown programs and sometimes not even pay attention to requests for authorization. Therefore, this method is highly effective, as shown in Fig. A.3. Hoja1 Theft Misuse Sabotage SPAM Fraudulence Symbian 50.00% 0 50.00% 0 0 BB 66.00% 33.00% 0 0 0 Android 65.00% 30.00% 0 10.00% 20.00% Iphone 23.00% 0.00% 0 0 23.00% Windows 0 60.00% 0 0 0 % ventas de aplicaciones 2011 2012 2013 Android 49.00% 69.00% 78.00% iOs 18.00% 18.00% 15.00% Windows 2.00% 3.00% 4.00% BB 11.00% 4.00% 2.00% Others 20.00% 6.00% 1.00% 1281 1281 1281 1282 1282 1283 1283 1283 1283 1283 1283 1284 1284 1285 1285 1285 1285 1287 1287 1288 1288 1288 1288 1295 Objetivos 0.00% 20.00% 40.00% 60.00% 80.00% 100.00% 120.00% Symbian Android Distribution 0 0.2 0.4 0.6 0.8 1 1.2 Symbian BB Android Iphone Windows Privilege escalation Users Failures 0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% 80.00% 90.00% Android Windows Others % aplication sales 2011 2012 2013 Página 1 Figure A.3: How privileges are aquired A.2. Current Security Models 57 Another method based on the technology involves exploiting vulnerabilities or configuration errors platform [11]. Rootkits are used to detect how these errors can be exploited. This type of malware infects the operating system, so it can be considerably dangerous and also leave the door open to future infections. A.2. Current Security Models Today, the official application distribution markets have different mechanisms to try to ensure the safety of them. Mainly used verification tests to check the legitimacy of the application code. However, detecting malware is too complex; not known in detail the inner workings of these tests and the presence of a considerable number of malicious applications is insufficient evidence method. In addition, they should take into account the downloads from unofficial markets that do not have any safety filter and are highly dangerous. From the point of view of the platform, a way of trying to ensure security is to restrict communication between applications and the actions they can perform, including access to data and services. Technique to isolate the execution of the application in controlled environments is also proposed, called sandboxing. Fig. A.4 shows that Android is the mobile operating system that dominates, and a tendency to continue to grow [5]. iOS is the second best-selling, though at a distance of Android, and the rest is increasingly less important in sales of devices and applications. Hoja1 Robo Mal uso Sabotaje SPAM Fraude Symbian 50.00% 0 50.00% 0 0 BB 66.00% 33.00% 0 0 0 Android 65.00% 30.00% 0 10.00% 20.00% Iphone 23.00% 0.00% 0 0 23.00% Windows 0 60.00% 0 0 0 % ventas de aplicaciones 2011 2012 2013 Android 49.00% 69.00% 78.00% iOs 18.00% 18.00% 15.00% Windows 2.00% 3.00% 4.00% BB 11.00% 4.00% 2.00% Others 20.00% 6.00% 1.00% 1281 1281 1281 1282 1282 1283 1283 1283 1283 1283 1283 1284 1284 1285 1285 1285 1285 1287 1287 1288 1288 1288 1288 1295 Objetivos 0.00% 20.00% 40.00% 60.00% 80.00% 100.00% 120.00% Symbian BB Android Iphone Windows Distribución M2D A2D W2D N2D U2D S2D 0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% 80.00% 90.00% Android iOs Windows BB Others % aplication sales 2011 2012 2013 Página 1 Figure A.4: Sales of applications per type of operating system 58 Cap ´ ıtulo A. Introduction Then, methods and decisions adopted by the five major operating systems that dominate are analyzed. A.2.1. Symbian The Symbian security model is based on a basic set of permissions to control the device’s resources. Applications run in user space while the operating system at the kernel space. Applications that require access to protected libraries and therefore are more vulnerable, must be signed with a certificate from Symbian [12], while all others can be self-signed, not having access to these dangerous bookstores. In this way applications are already controlled and security of markets becomes unnecessary, being almost nonexistent. To improve the security of Symbian has proposed the use of machine learning algorithms to analyze the behavior of applications [13]. Despite its high reliability, Symbian is the least used operating systems. A.2.2. BlackBerry BlackBerry security is based on a comprehensive scheme of permissions that has proven very safe [14]. Initially, applications have very limited access to resources and, subsequently, can be allowed to escalate their privileges. Manufacturer firm to access libraries, providing basic protection for system processes and memory is required. This is probably the safest of which have been discussed, but has the disadvantage of being also very close, with a very limited market system. A.2.3. Windows Mobile Microsoft [15] based security model validation developers and the reputation and value of each application. In the latest versions, each application runs in its own sandbox, which permits those who have been given authorization, similar to how it relates to the Android system are granted. However, these permissions are requested in the installation and must be granted by users, who tend to disregard the importance of them. It is also very difficult to change at runtime [16]. A.2.4. Android The Android security scheme focuses mainly on the device itself, since users are allowed to download applications from any platform or market distribution. The format permits A.2. Current Security Models 59 results in a manifesto that should be authorized by the user during installation and awarded at runtime. However, due to user tolerance regarding permitting, this technique is ineffective. Android also uses sandboxing technique [17] [18], isolating each application on their own machine Dalvik. This generates a bytecode and gives each a different user ID, with the exception of the applications from the same developer, which share identifier, allowing them to share resources. However, applications can share information between them explicitly using an interface for communication. It is interesting to focus on this particular system because it is the most used, and also suffer more infections. A.2.5. iOS Unlike Android, Apple turns its security to the market because it limits the ability to download to their own [19]. Therefore, applications and developers need a signature for verification by a certificate issued by Apple. However, details of the verification tests are not public, so its effectiveness is difficult to assess. Usually, security at the platform level is weaker than in Android, or virtually nonexistent, because applications run on a single, common to all isolated environment, besides having access to most of the resources of the device. Therefore, in recent models it is trying to extend this system, controlling the traffic of personal data.