Trabajo de Fin de Máster: Detección de Malware en Android Mediante El Algoritmo SVM

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 25

Trabajo de Fin de Máster

Máster Propio en Seguridad en la Información y Comunicaciones (X edición)

Detección de Malware en Android mediante


el algoritmo SVM
Malware 0.97

Luis Muñiz García


28/9/2023
Detección de Malware en Android mediante el algoritmo SVM

Sumario
• Introducción
• Fundamento Teórico
• Taxonomía
• Métodos de detección
• Tipos de análisis
• Tipos de aprendizaje
• Algoritmo SVM
• Implementación
• Bajo Nivel
• Alto Nivel
• Pruebas
• Conclusiones
Introducción

Número total de malware en millones


800

700

600

500

400

300

200

100

0
Año (2010-2020)

2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020

[61]
3
Introducción

4
Introducción

5
Introducción

Objetivo:

Capítulo IV (Algoritmo SVM)


• Replicar experimentos
• Discutir los resultados
obtenidos

(2020)
Fundamento Teórico: Taxonomía. Tipos de análisis (visión clásica)

Estático

De Código

Tipos de Dinámico De memoria


análisis

Híbrido
Fundamento Teórico: Taxonomía. Tipos de análisis

• Rápido
• Extrae características sin ejecutarlo
• Llamadas al sistema
Estático • Flujo de control
• Flujo de datos
• Pocos falsos positivos

• Lento
• Extrae características en ejecución
Dinámico • Sandboxing
• Detecta malware desconocido
• Muchos falsos positivos

Tipos de •
Híbrido Estático + Dinámico
análisis

• Emplea volcado de memoria para analizar


De memoria los procesos que genera el programa en
tiempo real

• Examina el código fuente en busca de:


De Código • patrones de ofuscación
• fallas de seguridad
• vulnerabilidades explotables
Fundamento Teórico: Taxonomía. Tipos de análisis

API de Smalisca • Rápido


• Extrae características sin ejecutarlo
• Llamadas al sistema
Estático • Flujo de control
• Flujo de datos
• Pocos falsos positivos

• Lento
• Extrae características en ejecución
Dinámico • Sandboxing
• Detecta malware desconocido
• Muchos falsos positivos

Tipos de •
Híbrido Estático + Dinámico
análisis

• Emplea volcado de memoria para analizar


De memoria los procesos que genera el programa en
tiempo real

• Examina el código fuente en busca de:


De Código • patrones de ofuscación
• fallas de seguridad
• vulnerabilidades explotables
Fundamento Teórico: Taxonomía. Métodos de detección (SVM)

• Recopilación de comportamiento de un
ejecutable en entorno aislado
• Extracción de características
• Elaboración de un modelo de Comportamiento
aprendizaje

Métodos de
detección

• IoC
• Secuencias de bytes específicas
• Llamadas de API, hashes de archivos • Generación de reglas en base al análisis
• Dominios maliciosos estático o dinámico
• Patrones de ataques de red Firma Heurística • Automático (ML)
• No detecta malware desconocido • Manual (Operador humano)
Fundamento Teórico: Taxonomía. Métodos de detección (SVM)

• Recopilación de comportamiento de un
ejecutable en entorno aislado
• Extracción de características
• Elaboración de un modelo de Comportamiento
aprendizaje

Métodos de
detección

• IoC
• Secuencias de bytes específicas
• Llamadas de API, hashes de archivos • Generación de reglas en base al análisis
• Dominios maliciosos estático o dinámico
• Patrones de ataques de red Firma Heurística • Automático (ML)
• No detecta malware desconocido • Manual (Operador humano)
Fundamento Teórico: Taxonomía. (Dicotomía)

• Estático: llamadas a la API → lectura de permisos

• Dinámico: características en ejecución


(comportamiento)
Permisos en Permisos en • Permisos → Tiempo de ejecución
Android Manifest smali

¿Es estático? ¿Es dinámico?

• Nomenclatura propuesta: Análisis basado en


comportamiento.
• Análisis de código estático + método de detección basado
en comportamiento

12
Fundamento Teórico: Taxonomía. Tipos de aprendizaje

Supervisado
Se proporciona a los modelos
información de salida conocida, para
que el modelo pueda aprender a hacer
predicciones o clasificar nuevos datos
basados en patrones identificados en
el entrenamiento.

Semi-supervisado No supervisado
Combina elementos del aprendizaje Busca patrones o estructuras ocultas
supervisado y no supervisado, en los datos de entrada, como
utilizando datos etiquetados y no agrupamientos o relaciones entre
datos, sin la necesidad de información
etiquetados en el proceso de
entrenamiento.
Aprendizaje previa de salida conocida.

Por refuerzo Por transferencia


Los modelos aprenden a través de la Utiliza el conocimiento y la experiencia
interacción con un entorno, tomando adquiridos en una tarea de aprendizaje
acciones y recibiendo retroalimentación en para mejorar el rendimiento en otra
forma de recompensas o penalizaciones. tarea similar pero diferente.
Fundamento Teórico: Taxonomía. Tipos de aprendizaje

Supervisado
Se proporciona a los modelos
información de salida conocida, para
que el modelo pueda aprender a hacer
predicciones o clasificar nuevos datos
basados en patrones identificados en
el entrenamiento.

Semi-supervisado No supervisado
Combina elementos del aprendizaje Busca patrones o estructuras ocultas
supervisado y no supervisado, en los datos de entrada, como
utilizando datos etiquetados y no agrupamientos o relaciones entre
datos, sin la necesidad de información
etiquetados en el proceso de
entrenamiento.
Aprendizaje previa de salida conocida.

Por refuerzo Por transferencia


Los modelos aprenden a través de la Utiliza el conocimiento y la experiencia
interacción con un entorno, tomando adquiridos en una tarea de aprendizaje
acciones y recibiendo para mejorar el rendimiento en otra
retroalimentación en forma de tarea similar pero diferente.
recompensas o penalizaciones.
Fundamento Teórico: Taxonomía. Tipos de aprendizaje (SVM)

Aprendizaje supervisado
Fundamento Teórico: Algoritmo SVM

SVM (Support Vector Machines)


Problema de Programación Entera → Las variables de decisión tomarán el valor 1 o -1.
Objetivo: Minimizar la distancia entre los vectores de soporte de ambas clase hallando el hiperplano.

T
𝑚𝑖𝑛 ሺa a = a21 +··· + a2𝑛 )
𝑠. 𝑎:
𝑦𝑖 𝑎𝑇 𝑢𝑖 + 𝑏 − 1 ≥ 0, 𝑝𝑎𝑟𝑎 𝑖 = 1, … , 𝑚.

𝑚 𝑚 𝑚 Dual
1
𝐿 = ෍ αi − ෍ ෍ 𝑦𝑖 𝑦𝑗 αi αj 𝑢𝑖 𝑢𝑗𝑇 .
2
𝑖=1 𝑖=1 𝑗=1

Vladimir Vapnik

αi: Multiplicador de Lagrange


Hiperplano: Plano que separa los subespacios que contiene a ambas clases L: Función costo dual.
𝑦i: Etiqueta de clasificación para las muestras
Vector de soporte: subconjunto de las muestras que delimitan el hiperplano ai: Vector ortogonal
b: Offset
Margen: distancia máxima entre el hiperplano y los puntos de datos más cercanos de cada clase
Fundamento Teórico: Algoritmo SVM

Extrapolando la idea principal…

Para las pruebas:


Métodos
startService getDeviceId createFro getClassLoader getClass
mPdu
getMethod getDisplayOriginatingA getInputStr getOutputStrea killProcess
ddress eam m
getLineNum getSimSerialNumber getSubscri getLastKnownLoc isProviderEn
ber berId ation abled
Implementación: bajo nivel
Implementación: alto nivel
Pruebas (bajo nivel)

1. Se lanza la aplicación de la calculadora


2. Conexión Reverse TCP entrante por el puerto de escucha especificado.
3. En algún momento, el usuario bloquea la pantalla.
4. En cuanto se bloquea la pantalla, el atacante inserta el pin de la puerta
trasera (17621762). CVE-2017-18192
5. Se lanza un shell de tipo meterpreter.
6. El atacante tiene vía libre para acceder a la configuración y al
almacenamiento interno del dispositivo móvil. NoSoyMalware.apk




Almacenamiento
interno Configuración

Clasificador Bajo Nivel

40 % de certeza
según los IoCs
Pruebas (alto nivel)

Resultados propios

Precisión:
97,68 %

Resultados del Libro

Precisión:
92.7 %
Pruebas (rendimiento I)

Precisión obtenida (%)


99

98,5

98

97,5

97

96,5

96

95,5
RF KNN DT SVM LDA

22
Pruebas (rendimiento II)

Precisión obtenida (%)


99

98,5

98

97,5

97

96,5

96

95,5
RF KNN DT SVM LDA
Comparativa de rendimiento [79]
23
CONCLUSIONES Y LÍNEAS DE AVANCE

• Los modelos implementados en el estudio son válidos y eficaces para la detección de malware.

• Se ha obtenido un mayor porcentaje de precisión (97.68 % frente a 92.7 %).

• Los resultados obtenidos son coherentes con el modelo propuesto por los autores.

• El análisis basado en comportamiento con SVM es un método eficaz para detectar malware,
pero tiene algunos inconvenientes, como ser lento y costoso en el aprendizaje, y susceptible a
ataques de evasion.

• Un análisis híbrido puede superar las limitaciones de los análisis monométodos.

• Se propone añadir análisis híbrido mediante herramientas como MobSF, Frida, Burp o Pidcat.
Detección de Malware en Android mediante el algoritmo SVM

¡Gracias por vuestra atención!

También podría gustarte