Con la aparición de los códigos maliciosos para dispositivos móviles se desarrollaron técnicas para el análisis de malware en Android, muchas partiendo del análisis de las instrucciones en el código. El problema es que rápidamente se hacen poco útiles, dada la aparición de técnicas de ofuscación. Por lo tanto, la aplicación de técnicas aprendizaje automático se convierte en una opción interesante para ayudar a identificar estas aplicaciones maliciosas.

Ya desde 2012 venimos hablando de que el malware se ha enfocado en los móviles, y en el informe de Tendencias para 2014 lo marcábamos como una proyección que sigue creciendo. Incluso en un estudio reciente realizado por Juniper Networks, se informó el número de aplicaciones móviles maliciosas observadas en la naturaleza (in the wild), que ha crecido exponencialmente a una tasa del 614% entre marzo de 2012 y marzo de 2013. Este crecimiento del malware requiere un desarrollo en las técnicas para su identificación.

El análisis de malware en Android es un tema de estudio bastante interesante, que se ha basado en analizar características tales como los permisos solicitados por las aplicaciones o el uso de funciones específicas de la API. Si bien estos enfoques han dado buenos resultados, el avance hecho por los cibercriminales en evadir estos mecanismos de análisis, tales como ofuscación o cambios directamente sobre la API, hace que se deban buscar otras alternativas.

Las nuevas propuestas que han venido tomando relevancia se basan en las aplicaciones de algoritmos de aprendizaje sobre modelos basados en la estructura del código. Puntualmente, sobre grafos construidos a partir de las llamadas función de las aplicaciones de Android. Uno de los algoritmos que ha tenido mejores resultados son las máquinas de soporte vectorial, ya que permiten realizar el análisis sobre problemas que tienen como dominio un espacio con múltiples dimensiones.

Uno de los enfoques más interesantes para el análisis de malware en Android tiene su base en dos aspectos: el primero es que el comportamiento malicioso de una aplicación por lo general se centra en pocas funciones dentro de su código. Además, es común que los códigos maliciosos que tienen comportamientos similares reutilicen muchas de las instrucciones de otras amenazas. A partir de estas observaciones y teniendo en cuenta los grafos generados por las llamadas a función que realizan estas amenazas se pueden analizar e identificar nuevas amenazas.

Todo este enfoque para identificar aplicaciones maliciosas en Android se encuentra desarrollado en un artículo publicado por la Universidad de Göttingen. Lo más interesante es que el método presentado puede adaptarse a otras plataformas con cambios menores, teniendo en cuenta que los algoritmos utilizados se pueden adaptar a las características particulares de cada sistema, incluso a los de escritorio.

Este tipo de propuestas nos hacen pensar que pueden existir otros enfoques para identificar malware que aún no se han explorado.