Checking Android applications behaviour against Google Play descriptions at scale

En este trabajo fin de master presento una nueva version de la tecnica conocida como CHABADA. El objetivo de la tecnica es la busqueda de correlaciones entre implementation de aplicaciones de Android y lo que anuncian sobre ellas en la tienda de aplicaciones. Esta nueva version se centra en mejorar la escalabilidad de la anterior implementation con el objetivo de ser capaz de ejecutar la tecnica con un dataset proveniente de la base de datos Tacyt. Tacyt es una plataforma de aplicaciones de Android obtenidas por ElevenPaths, una subsidiaria de Telefonica. Dentro de la conferencia JNIC investigadores de Espana pueden acceder a la base de datos y realizar experimentos sobre ella. A partir de la plataforma genere un dataset de 700000+ aplicaciones para analizar. La tecnica usa una combinacion de procesamiento de lenguaje natural, clustering y analisis estatico para crear clusters de aplicaciones relacionadas entre si. Dentro de los clusters la tecnica extrae el comportamiento comun para las aplicaciones del mismo y puede detectar malware dentro del cluster. Un aplicacion se considera maliciosa si presenta comportamiento que no es comun dentro del cluster. Por ejemplo, dentro de un cluster de aplicaciones de fotografia el comportamiento habitual seria el de acceder a la camara del telefono y al sistema de ficheros. Si una aplicacion accediera a la API de SMS tendria un comportamiento fuera de lo comun dentro del cluster y por tanto se clasificaria como una anomalia. Junto con las mejoras a la escalabilidad tambien he obtenido informacion directamente de la tienda Google Play Store para construir una verdad cercana al mundo real y usar esa verdad para evaluar los algoritmos de aprendizaje que se usan en la tecnica. ---ABSTRACT---In this master thesis I present a new version of an existing technique known as CHABADA. The goal of the technique is to search for a correlation between Android applications implementation and what is advertised in the store description of the Application. This new version is focused in improving the scalability of the old implementation in order to be able to run the technique with a dataset coming from the Tacyt database. Tacyt is a platform of scraped Android applications obtained by ElevenPaths, a Telefonica company, that is accessible to researchers in the context of the JNIC conference. From this platform I generated a dataset of 700000+ applications to be analyzed. The technique uses a combination of natural language processing, clustering and static analysis for creating clusters of related applications by the topics found in their descriptions. From this clusters the technique extracts the common behavior of the applications and can detect malware in a dataset of applications. A malicious application is classified as such if they show a behavior that is not common for the cluster of applications. For example, in a cluster of photography applications the usual behavior would be to access the camera and file system APIs. If an application accessed the SMS API it would be different from what is common in that cluster and therefore tagged as an anomaly. Along with the scalability improvements, I also obtained information directly from the Google Play Store for building a ground truth similar to the real world that can be used to evaluate the machine learning algorithms used in the technique.