Machine Learning Classifiers for Android Malware Analysis Ing. Christian Camilo Urcuqui López Ph.D Andrés Navarro Cadavid.

1 Machine Learning Classifiers for Android Malware Analys...
Author: Francisca Ramírez Sandoval
0 downloads 0 Views

1 Machine Learning Classifiers for Android Malware Analysis Ing. Christian Camilo Urcuqui López Ph.D Andrés Navarro Cadavid

2 Agenda Android – ¿Qué es? – Seguridad Malware – Definición – Actualidad para Android Técnicas para el análisis de amenazas – Análisis estático – Análisis dinámico – Machine Learning Aplicación de inteligencia artificial – ¿Por qué? Machine Learning – Análisis de Malware – Estado del arte Trabajo – Metodología – Experimento – Resultados Conclusiones y trabajo a futuro

3 Android Sistema operativo para dispositivos móviles Cuenta con más de mil millones de usuarios activos [1] Código abierto basado en el kernel de Linux Arquitectura de cinco componentes [2]

4 Android Las aplicaciones se encuentran compiladas en un archivo Android Application Package (APK). – Código fuente (archivos.dex) – Recursos – AndroidManifest.xml

5 Android Mecanismos de seguridad – Entorno sandbox a nivel del kernel para prevenir el acceso al file-system – API de permisos a nivel de la aplicación [3] – Herramientas de seguridad a nivel del desarrollo de aplicaciones – Plataforma de distribución digital Google Play

6 Android AndroidManifest.xml – Provee información de las características y la configuración de seguridad de cada aplicación [4]. API de permisos Activities Services Content Providers Broadcast Receivers

7 Malware Software malicioso, son desarrollos que tienen como propósito perjudicar a los usuarios que lo utilizan. VirusTrojan horse SpywareWorms Root-kitKeylogger Ransomware

8 Malware Alterar el buen funcionamiento del dispositivo. Obtener información sensible de los usuarios. Primer troyano para Android en 2010 [5].

9 Malware FIGURA I. THE NUMBER OF ATTACKS BLOCKED BY KASPERSKY LAB SOLUTIONS, 2015 [6]

10 Técnicas para el análisis de amenazas Proyecto SafeCandy [7] Análisis estático Análisis dinámico Inteligencia artificial aplicada

11 Técnicas para el análisis de amenazas Análisis estático Es una técnica que evalúa los comportamientos maliciosos en el código fuente, datos o archivos binarios sin ejecutar directamente la aplicación [8]. Su complejidad ha aumentado debido a la experiencia que han adquirido los cibercriminales en el desarrollo de aplicaciones y se ha demostrado que es posible evitarlo a partir de técnicas de ofuscación [9].

12 Análisis dinámico Son métodos que estudian el comportamiento del malware en ejecución mediante simulación de gestos; en esta técnica se analizan los procesos en ejecución, la interfaz de usuario, conexiones de red, apertura de sockets, entre otros [10]. Por otra parte, ya existen técnicas que permiten evadir el proceso realizado por el análisis dinámico, en donde el malware tiene la capacidad de detectar ambientes sandbox y detener su comportamiento malicioso [11]. Técnicas para el análisis de amenazas

13 Inteligencia artificial – Machine Learning Busca que un sistema tenga la capacidad de aprender en entornos variables sin ser programado de forma explícita. Aprendizaje supervisado Aprendizaje no supervisado Aprendizaje por esfuerzo Técnicas para el análisis de amenazas

14 Aplicación de inteligencia artificial El software convencional de seguridad requiere de un esfuerzo humano para identificar las vulnerabilidades a través de un proceso que permita encontrar sus características, luego se procede al desarrollo de la solución sobre la herramienta. Esta es una labor que puede ser más eficiente si se aplicaran algoritmos de Machine Learning [12].

15 Machine Learning - Malware Tanto el análisis estático como el dinámico sirven para obtener los datos que serán luego procesados por los algoritmos de Machine Learning Los dataset deben estar equilibrados Tecnologías para ML: WEKA, Scikit-learn y LIBSVM

16 El tamaño de los dataset es variable Gran parte de los estudios hacen uso del dataset de malware del proyecto MalGenome [13] y un crawler [14] para la descarga de las aplicaciones benignas Machine Learning - Malware

17 Framework de análisis estático 1.Se recolectaron un total de 558 APKs – 279 aplicaciones de bajos privilegios de un dataset open source [15] – 279 aplicaciones malignas del MalGenome 2.Se utilizó la herramienta ApkTool 2.0.3 para obtener los archivos AndroidManifest.xml de cada APK Metodología

18 3.A través del desarrollo de un analizador de permisos se evaluaron los 558 AndroidManifest.xml contra una lista de 330 permisos. Como resultado, el analizador crea un dataset binario de 558 filas por 331 columnas

19 Metodología

20 4.Del dataset binario se crearon dos particiones – 71 % para el entrenamiento – 29 % para las pruebas 5.Se entrenaron y verificaron los siguientes algoritmos de Machine Learning: – Naive Bayes, Bagging, KNeighbors, Support Vector Machines (SVM), Stochastic Gradient Descent (SGD) y Decisión Tree

21 Medidas de evaluación Verdadero Positivo Falso Positivo Falso Negativo Verdadero Negativo TABLA I. MATRIZ DE CONFUSIÓN

22 Experimento Tecnologías utilizadas – Durante el trabajo se utilizó como lenguaje de desarrollo Python y las herramientas de machine learning de Scikit-Learn 0.17.

23 Experimento Algoritmo Metricas de desempeño PrecisionRecallf1 - scoreAccuracy 010101 NaiveBayes0,90,760,790,880,840,820,83 Bagging0,940,88 0,930,910,9 Kneighbors0,940,95 0,94 SVM0,930,88 0,920,9 SGD0,910,94 0,910,920,930,92 DecisionTree0,930,94 0,93 TABLA II. RESULTADO EN EL DESEMPEÑO INDIVIDUAL DE LOS 6 CLASIFICADORES

24 Experimento FIGURA II. CURVA ROC

25 Experimento Aplicaciones Sanas >= 10Malware >= 100 ACCESS_COARSE_LOCATIONWRITE_SMS ACCESS_FINE_LOCATIONWRITE_EXTERNAL_STORAGE ACCESS_NETWORK_STATERECEIVE_BOOT_COMPLETED ACCESS_WIFI_STATEREAD_SMS BLUETOOTHREAD_PHONE_STATE CAMERAINTERNET CHANGE_WIFI_STATEACCESS_WIFI_STATE GET_ACCOUNTSACCESS_NETWORK_STATE INTERNET READ_CONTACTS READ_EXTERNAL_STORAGE READ_PHONE_STATE RECEIVE_BOOT_COMPLETED VIBRATE WAKE_LOCK WRITE_EXTERNAL_STORAGE TABLA II. PERMISOS ACCEDIDOS POR LAS APLICACIONES

26 Conclusiones y trabajo futuro La evaluación de nuestro dataset presenta como mejor algoritmo de clasificación Kneighbors Evaluar los clasificadores entrenados contra otro conjunto de aplicaciones Emplear otras técnicas de inteligencia artificial Implementar un método que permita al algoritmo aprender de las malas clasificaciones

27 Conclusiones y trabajo futuro Explorar otras características de Android para el entrenamiento Como parte de los diferenciales, los resultados presentados se obtienen a partir de aplicaciones utilizadas en otros artículos

28 Referencias [1] Pichai, S. Google I/O 2014 - Keynote [video. 6:43m], https://www.google.com/events/io. June 2014. [2] Elenkov, N. Android Security Internals: An In-depth Guide to Android's Security Architecture. No Starch Press. October 2014. [3] Drake, J. J., Lanier, Z., Mulliner, C., Fora, P. O., Ridley, S. A., & Wicherski, G. Android Hacker's Handbook. John Wiley & Sons, Indianapolis. March 2014. [4] Peiravian, N., & Zhu, X. Machine learning for android malware detection using permission and api calls. In Tools with Artificial Intelligence (ICTAI), 2013 IEEE 25th International Conference on (pp. 300-305). IEEE. November 2013. [5] Plaza, E. Kaspersky detecta el primer troyano para Android - Wayerless. http://www.wayerless.com/2010/08/kaspersky-detecta-el-primer-troyano- para-android. Agust 2010. [6] Unuchek, R., & Chebyshev, V. Mobile malware evolution 2015. https://securelist.com/analysis/kaspersky-security-bulletin/73839/mobile- malware-evolution-2015/. Feb 2016.

29 Referencias [7] Londoño, S., Urcuqui, C. C., Amaya, M. F., Gómez, J., & Cadavid, A. N. (2015). SafeCandy: System for security, analysis and validation in Android.Sistemas y Telemática, 13(35), 89-102. [8] Batyuk, L., Herpich, M., Camtepe, S. A., Raddatz, K., Schmidt, A., & Albayrak, S. Using static analysis for automatic assessment and mitigation of unwanted and malicious activities within Android applications. Malicious and Unwanted Software (MALWARE), 2011 6th International Conference on. IEEE, Piscataway. 2011. [9] Sharif, M. I., Lanzi, A., Giffin, J. T., & Lee, W. Impeding Malware Analysis Using Conditional Code Obfuscation. In NDSS. February 2008. [10] Drake, J. J., Lanier, Z., Mulliner, C., Fora, P. O., Ridley, S. A., & Wicherski, G. Android Hacker's Handbook. John Wiley & Sons, Indianapolis. 2014.

30 Referencias [11] Petsas, T., Voyatzis, G., Athanasopoulos, E., Polychronakis, M., & Ioannidis, S. Rage against the virtual machine: hindering dynamic analysis of android malware. In Proceedings of the Seventh European Workshop on System Security (p. 5). ACM. April 2014. [12] Chan, P. K., & Lippmann, R. P. Machine learning for computer security. The Journal of Machine Learning Research, 7, 2669-2672. December 2006. [13] Yajin Zhou, Xuxian Jiang, "Dissecting Android Malware: Characterization and Evolution," Proceedings of the 33rd IEEE Symposium on Security and Privacy (Oakland 2012), San Francisco, CA, May 2012. [14] Narudin, F. A., Feizollah, A., Anuar, N. B., & Gani, A. Evaluation of machine learning classifiers for mobile malware detection. Soft Computing, 1-15. 2014. [15] Krutz, D. E., Mirakhorli, M., Malachowsky, S. A., Ruiz, A., Peterson, J., Filipski, A., & Smith, J. (2015, May). A dataset of open-source Android applications. In Mining Software Repositories (MSR), 2015 IEEE/ACM 12th Working Conference on (pp. 522-525). IEEE.

31 ¡Muchas gracias! Contacto: Christian Camilo Urcuqui López [email protected]