1. Evading Deep Learning Malware
Detectors
Javier Yuste Moure
javier.yuste@protonmail.com
UC3M
Eduardo García Pardo
eduardo.pardo@urjc.es
URJC
Rooted CON 2020, Madrid, 5-7 Marzo
Evading Deep Learning
malware detectors
2. Rooted CON 2020, Madrid, 5-7 Marzo 2/66
• Javier Yuste Moure
⁃ Ingeniero de Software (UPM)
⁃ Estudiante de Máster en Ciberseguridad (UC3M)
⁃ Analista de seguridad en Línea Directa
• Interesado en análisis, anti-análisis y
detección de malware
Whoami
@JavierYusteM
3. Resumen
Los métodos tradicionales de detección de malware se han
mostrado insuficientes para lidiar con el creciente número de
muestras. Las técnicas de Aprendizaje Automático (ML, del
inglés Machine Learning) han sido ampliamente adoptadas
para solucionar este problema. En los últimos años, se han
propuesto técnicas de ML que trabajan sobre los bytes en
crudo para clasificar binarios. Sin embargo, estos métodos
son vulnerables a distintos ataques. En este trabajo, se
propone un mecanismo general, de caja negra, de creación de
muestras de malware evasivas (AE, del inglés Adversarial
Examples) para evaluar la robustez de métodos de detección
basados en ML que operan sobre bytes en crudo. El
mecanismo presentado ha sido evaluado contra una red
conocida del Estado del Arte, MalConv, para la que alcanza
hasta un 98.23% de evasión.
Rooted CON 2020, Madrid, 5-7 Marzo 3/66
5. Índice
1. Introducción
2. Objetivos y limitaciones
3. Propuesta algorítmica
4. Resultados experimentales
5. Conclusiones y trabajo futuro
Rooted CON 2020, Madrid, 5-7 Marzo 5/66
6. Índice
1. Introducción
⁃ Redes Neuronales Artificiales
⁃ Ejemplos Adversarios
2. Objetivos y limitaciones
3. Propuesta algorítmica
4. Resultados experimentales
5. Conclusiones y trabajo futuro
Rooted CON 2020, Madrid, 5-7 Marzo 6/66
7. Introducción
• Software malicioso (malware)
• Crecimiento del número de muestras (y variantes)
• Incremento de la complejidad
• Alto retorno de la inversión (ROI)1
Rooted CON 2020, Madrid, 5-7 Marzo 7/66
1 K. Huang, M. Siegel, S. Madnick, Systematically understanding the cyber attack business: A survey, ACM Computing Surveys 51 (4). doi:10.1145/3199674
Malware as a Service
8. Introducción
Métodos tradicionales de detección
Rooted CON 2020, Madrid, 5-7 Marzo 8/66
Firmas
Red
Heurísticas
Muestra
Equipo
Estático
Dinámico/
comportamiento
9. Aprendizaje automático
Aprendizaje automático (ML, del inglés Machine
Learning)
⁃ Basado en estadística
⁃ Aprende “por su cuenta”
⁃ Detecta malware nunca visto
Rooted CON 2020, Madrid, 5-7 Marzo 9/66
Magia
10. Redes Neuronales Artificiales
Rooted CON 2020, Madrid, 5-7 Marzo 10/66
AI ML
ANN
DL
AI: Artificial
Intelligence
ML: Machine
Learning
ANN: Artificial
Neural Network
DL: Deep
Learning
13. Redes Neuronales Artificiales
• Entradas
⁃ Imports
⁃ API calls
⁃ Imagen
⁃ Bytes en crudo
⁃ Etc.
• Salida
⁃ Frecuentemente, seguridad con que la entrada se
considera perteneciente a la clase “malware”
⁃ Etc.
Rooted CON 2020, Madrid, 5-7 Marzo 13/66
14. RNA: MalConv
Rooted CON 2020, Madrid, 5-7 Marzo 14/66
PE
Legítimo Malicioso
1
1 Adapted from E. Raff, J. Barker, J. Sylvester, R. Brandon, B. Catanzaro, C. Nicholas, Malware Detection by Eating a Whole EXE, in: Workshops at the Thirty-Second AAAI Conference on Artificial Intelligence, 2017.
arXiv:1710.09435. URL http://arxiv.org/abs/1710.09435.
15. Aprendizaje automático
Aprendizaje automático (ML)
⁃ No es la solución final
⁃ Puede ser evadido (de ahí este trabajo)
⁃ Otro método (útil)
⁃ Defensa en profundidad
Rooted CON 2020, Madrid, 5-7 Marzo 15/66
MLHeurísticasFirmas
16. Adversarial Examples (AE)
“Adversarial examples are inputs to machine learning models
that an attacker has intentionally designed to cause the model
to make a mistake; they’re like optical illusions for machines.”
- OpenAI1
Rooted CON 2020, Madrid, 5-7 Marzo 16/66
1 https://openai.com/blog/adversarial-example-research/, Accessed on 02/02/2020
17. AE: aproximaciones1,2
• Caja blanca
⁃ Un atacante tiene acceso al modelo y a sus parámetros
• Caja negra
⁃ Sin acceso al modelo, pero puede probarlo y obtener
puntuaciones en respuesta
⁃ Solo puede probar el modelo y recibir etiquetas en
respuesta (i.e., malware o no)
Rooted CON 2020, Madrid, 5-7 Marzo 17/66
1 H. S. Anderson, A. Kharkar, B. Filar, P. Roth, Evading machine learning malware detection, Black Hat.
2 Únicamente teniendo en cuenta el conocimiento del modelo que tiene el atacante. Para una taxonomía más completa, véase Yuan, X., He, P., Zhu, Q., & Li, X. (2019). Adversarial Examples: Attacks and Defenses for
Deep Learning. IEEE Transactions on Neural Networks and Learning Systems, 30(9), 2805–2824. https://doi.org/10.1109/TNNLS.2018.2886017.
19. AE: limitaciones
• Formato PE
⁃ Cabeceras
⁃ Tiempo de compilación
⁃ Imports
⁃ Exports
⁃ Secciones
⁃ Subsistema
⁃ Secciones
⁃ Código
⁃ Datos
Rooted CON 2020, Madrid, 5-7 Marzo 19/66
Cabeceras
Secciones
Cabeceras
.text
.data
.rdata
20. Desensamblado
Rooted CON 2020, Madrid, 5-7 Marzo 20/66
1 Liang Xu, Fangqi Sun, and Zhendong Su. Constructing precise control flow graphs from binaries. 2009
1
21. • Retos en el desensamblado
⁃ Datos entre el código
⁃ Tamaño de instrucciones variable
⁃ Código auto-modificable o solapado
⁃ Control de flujo condicional
⁃ Llamadas a funciones indirectas
⁃ Código independiente de la posición (PIC)
⁃ Ensamblador escrito a mano
• No hay abstracciones de alto nivel
• El desensamblado es indecidible
AE: limitaciones
Rooted CON 2020, Madrid, 5-7 Marzo 21/66
1 Andriesse, D., Chen, X., van der Veen, V., Slowinska, A., & Bos, H. (2016). An in-depth analysis of disassembly on full-scale X86/x64 binaries. Proceedings of the 25th USENIX Security Symposium, 583–600.
2 https://www.usenix.org/legacy/publications/library/proceedings/usenix03/tech/full_papers/prasad/prasad_html/node5.html
22. AE: Estado del Arte
Rooted CON 2020, Madrid, 5-7 Marzo 22/66
• Añade datos al final
• Similar a añadir secciones
Cabeceras
Secciones
Perturbaciones
B. Kolosnjaji et al.1 :
.text
Cabeceras
.data
.rdata
.text
Cabeceras
.data
.rdata
• Perturbaciones limitadas a una
región (la menos importante)
1 Kolosnjaji, B., Demontis, A., Biggio, B., Maiorca, D., Giacinto, G., Eckert, C., & Roli, F. (2018). Adversarial Malware Binaries: Evading Deep Learning for Malware Detection in Executables.
23. AE: Estado del Arte
Rooted CON 2020, Madrid, 5-7 Marzo 23/66
• Code caves2,
alineamientos de
secciones
Cabeceras
Secciones
Perturbaciones
F. Kreuk et al.1 :
.text
Cabeceras
.data
.rdata
• Espacio muy limitado
• No reconocible
1 F. Kreuk, A. Barak, S. Aviv-Reuven, M. Baruch, B. Pinkas, J. Keshet, Deceiving End-to-End Deep Learning Malware Detectors using Adversarial Examples (February). arXiv:1802.04528. URL http://arxiv.org/abs/1802.04528
2 P. Szor, The Art of Computer Virus Research and Defense, Addison-Wesley Professional, 2005.
.text
Cabeceras
.data
.rdata
24. AE: Estado del Arte
Rooted CON 2020, Madrid, 5-7 Marzo 24/66
• Instrucciones
semánticamente
equivalentes
Cabeceras
Secciones
Perturbaciones
1 Sharif, M., Lucas, K., Bauer, L., Reiter, M. K., & Shintre, S. (2019). Optimization-Guided Binary Diversification to Mislead Neural Networks for Malware Detection. Retrieved from http://arxiv.org/abs/1912.09064
M. Sharif et al.1 :
.text
Cabeceras
.data
.rdata
Cabeceras
.data
.rdata
• Espacio muy limitado
• Asume desempaquetado
• Difícil de detectar
25. Índice
1. Introducción
2. Objetivos y restricciones
3. Propuesta algorítmica
4. Resultados experimentales
5. Conclusiones y trabajo futuro
Rooted CON 2020, Madrid, 5-7 Marzo 25/66
26. Objetivo
Mejorar la eficacia de los detectores
de malware basados en RNA
Rooted CON 2020, Madrid, 5-7 Marzo 26/66
27. Objetivos y restricciones
• Objetivos
⁃ Evaluar la robustez ante AE de detectores basados en RNA
del Estado del Arte
⁃ Proponer un método de generación de AE para
⁃ Evaluación de la robustez
⁃ Reentrenamiento con muestras evasivas
• Restricciones
⁃ Caja negra, independiente del modelo a evaluar (con acceso a
las puntuaciones)
⁃ Binarios (Windows PE) sin acceso al código fuente
⁃ AE funcionales, con el mismo comportamiento que la muestra
original
Rooted CON 2020, Madrid, 5-7 Marzo 27/66
28. Objetivos y restricciones*
• Entrada
⁃ Dado 𝒛 ∈ σ con una puntuación 𝑦 ∈ ℝ tal que 𝒚 > 𝜺,
donde
⁃ σ es el conjunto de todas las posibles muestras de malware
⁃ 𝜀 es el límite de detección (i.e., 𝑦 > 𝜀 se considera
malware)
• Objetivo
⁃ Encontrar 𝒛′ ∈ σ con puntuación 𝑦′ ∈ ℝ tal que 𝒚′ < 𝜺
• Restricciones
⁃ 𝒛′ ∈ 𝐌, donde M es el conjunto de todas las muestras de
malware que se comportan como 𝑧.
⁃ Sin acceso al modelo 𝝓 que devuelve puntuaciones (𝑦
= 𝜙 𝑧 )
Rooted CON 2020, Madrid, 5-7 Marzo 28/66
(*Semi-formal)
29. Índice
1. Introducción
2. Objetivos y limitaciones
3. Propuesta algorítmica
⁃ Perturbaciones
⁃ Optimización
4. Resultados experimentales
5. Conclusiones y trabajo futuro
Rooted CON 2020, Madrid, 5-7 Marzo 29/66
30. Perturbaciones
• El formato es muy sensible y propenso a la corrupción
ante cambios
• Si los binarios se ejecutan en memoria, podemos
modificarlos sin afectar a su estructura en memoria?
Rooted CON 2020, Madrid, 5-7 Marzo 30/66
31. Perturbaciones
Proceso de
carga
Rooted CON 2020, Madrid, 5-7 Marzo 31/66
.text
0x1000 0x401000
0x402000
0x403000
.rdata
.data
0x2000
0x3000
0x4000 0x404000
.text
.rdata
.data
Disco Memoria
33. Perturbaciones
Rooted CON 2020, Madrid, 5-7 Marzo 33/66
0x0400
0x401000
0x40f000
0x418000
QCYiaatN
.rsrc
0x1600
0x9C00
0xAC00
0x419000
cKrwgWRk
QCYiaatN
.rsrc
Disco Memoria
QCYiaatN
.rsrc
0x0400
0x8A00
0x9400
34. Loader, mi amigo
Rooted CON 2020, Madrid, 5-7 Marzo 34/66
• Code caves en
esteroides?1
• Espacio ilimitado
• Aumenta el tamaño
• Diferentes secciones
• Detectable (no es un problema
realmente)
Cabeceras
Secciones
Perturbaciones
.text
Cabeceras
.data
.rdata
.text
Cabeceras
.data
.rdata
1 K. Kaspersky, Hacker Debugging Uncovered (Uncovered Series), A-List Publishing, 2005.
35. Optimización
• Somos capaces de introducir perturbaciones, ahora
necesitamos optimizarlas
• Limitaciones
⁃ No se conoce el número óptimo de bytes (ni cuáles se
deben introducir)
⁃ Las perturbaciones ideales difieren para cada binario
⁃ La perturbación ideal difiere para cada bloque dentro del
mismo fichero
Rooted CON 2020, Madrid, 5-7 Marzo 35/66
36. Algoritmos Genéticos (GA)
• Introducidos por John Holland
• Basados en la teoría de la evolución
• Un subcampo de los algoritmos metaheurísticos
Rooted CON 2020, Madrid, 5-7 Marzo 36/66
Optimización
Evolutivos
Metaheurística
GA
37. GA: esquema
Rooted CON 2020, Madrid, 5-7 Marzo 37/66
Inicio
Población
inicial (Pop)
Función
objetivo
Cruce
Cond.
parada
Final
Mutación
Añadir a
siguiente
generación
P2
tiene N
ind.
Pop = P2
Selección
N
S
N
S
38. GA: conceptos
• Exploración vs explotación
• Convergencia o estabilización
• La velocidad de convergencia es proporcional a la
presión
• Mayor presión cuanta mayor probabilidad de
seleccionar al individuo más fuerte para la
reproducción
• Óptimos locales
Rooted CON 2020, Madrid, 5-7 Marzo 38/66
39. GA concepts
Exploración vs explotación
Rooted CON 2020, Madrid, 5-7 Marzo 39/66
y=1
y=0
𝜀 𝑧′
. 𝑧′
∈ M
Predicción
40. GA concepts
Exploración vs explotación
Rooted CON 2020, Madrid, 5-7 Marzo 40/66
y=1
y=0
𝜀 𝑧′
. 𝑧′
∈ M
Predicción
46. Modelado de la solución
• Cada byte es representado por un gen
• Una colección de genes es un cromosoma
(~10-20000 bytes)
• Una colección de cromosomas forma una población
Rooted CON 2020, Madrid, 5-7 Marzo 46/66
55 8B EC 83 C4 F0 B8 D4 47 …
47. Cruce
• Los bloques óptimos difieren por cada posición
• Cruce por bloques (multi-crosspoint, ZX)
Rooted CON 2020, Madrid, 5-7 Marzo 47/66
1E C2 45 2D 55 7B EB 40
55 C2 45 40 1E 7B EB 2D
1E C2 45 2D 55 7B EB 40
2D
48. Cruce
Rooted CON 2020, Madrid, 5-7 Marzo 48/66
1 Reeves, C. R. (1993, June). Using Genetic Algorithms with Small Populations. In ICGA (Vol. 590, p. 92).
• Soluciones grandes
• Poblaciones pequeñas (50 soluciones)
• No podemos alcanzar todos los puntos del espacio de
soluciones mediante cruces1
⁃ Si el bloque de mayor tamaño tiene 10 bytes,
necesitamos más de 1024 soluciones
⁃ 10 bytes → 25610 =
1.208.925.819.614.629.174.706.176 = 1024 soluciones
⁃ 1000 bytes → 6*10240
49. Mutaciones
• Alta mutación para reducir la convergencia
• Reduce la presión y aumenta la exploración
Rooted CON 2020, Madrid, 5-7 Marzo 49/66
1E C2 45 2D 55 7B EB 401E C2 45 2D 55 7B EB 40
1E C2 45 40 1E 7B EB 2D
50. Función objetivo
Rooted CON 2020, Madrid, 5-7 Marzo 50/66
1. Escribir perturbaciones en el fichero
2. Obtener puntuación del modelo objetivo
El objetivo es minimizar esa puntuación
(i.e., cuanto menor es la puntuación, mejor es la
solución)
Minimizar 𝜙 𝑧 = 𝑦
51. Índice
1. Introducción
2. Objetivos y limitaciones
3. Propuesta algorítmica
4. Resultados experimentales
5. Conclusiones y trabajo futuro
Rooted CON 2020, Madrid, 5-7 Marzo 51/66
53. 100% de detección
• 2260 de 2260 muestras son detectadas
• Predicciones
⁃ Media → 0.98
⁃ Std Dev → 0.07
⁃ Mediana → 0.99
Dataset
Rooted CON 2020, Madrid, 5-7 Marzo 53/66
• Número de detecciones en Virus Total
⁃ Total (≥4) → 2245
⁃ Media → 55.64
⁃ Std Dev → 16.4
⁃ Mediana → 61
• Tamaño
⁃ Media → 638.77 KB
54. Resultados: evasión
Rooted CON 2020, Madrid, 5-7 Marzo 54/66
Antes
Después
100% de detección
• 2260 de 2260 muestras son detectadas
• Predicciones
⁃ Media → 0.98
⁃ Std Dev → 0.07
⁃ Mediana → 0.99
1,67% de detección
• 40 de 2260 muestras son detectadas
• Predicciones
⁃ Media → 0.39
⁃ Std Dev → 0.17
⁃ Mediana → 0.47
58. Resultados: tamaño*
•Tiempo
⁃ Total → 385.31 horas → 16 días
⁃ Media → 624.83 s → 10.41 min
⁃ Std Dev → 1608.87 s → 26.81 min
⁃ Mediana → 236.73 s → 3.95 min
Rooted CON 2020, Madrid, 5-7 Marzo 58/66
* Intel i5, 8a generación, 16 GB RAM, SSD
61. Índice
1. Introducción
2. Objetivos y limitaciones
3. Propuesta algorítmica
4. Resultados experimentales
5. Conclusiones y trabajo futuro
Rooted CON 2020, Madrid, 5-7 Marzo 61/66
62. Resumen
• Mecanismo de generación de AE
⁃ Permite evaluar detectores de malware basados en RNA
sobre bytes en crudo
⁃ Hasta un 98,23% de evasión sobre MalConv
⁃ Resultados funcionales
⁃ Incremento de tamaño despreciable
⁃ Tiempo de generación reducido
⁃ Permite utilizar las muestras evasivas para reentrenar la
red
⁃ Difícilmente detectable si el atacante tiene acceso al
código fuente y al proceso de compilación
Rooted CON 2020, Madrid, 5-7 Marzo 62/66
63. Conclusiones
• Los modelos de DL no son la solución final
• Son útiles, siempre y cuando se tengan en
consideración sus debilidades
• Pueden ser evadidos
• Se deberían exigir métricas de robustez (tal y como
se proveen ratios de detección y falsos positivos)
• Existen métodos para evaluar la robustez de estos
modelos
Rooted CON 2020, Madrid, 5-7 Marzo 63/66
64. Trabajo futuro
• Mezclar diferentes aproximaciones (i.e., sustitución
de instrucciones + manipulación de las cabeceras +
code caves)
• Apilar diferentes modelos
• Evaluar la eficacia del reentrenamiento con AE
• Publicar un artículo del trabajo
Rooted CON 2020, Madrid, 5-7 Marzo 64/66
65. Evading Deep Learning Malware
Detectors
Javier Yuste Moure
javier.yuste@protonmail.com
@JavierYusteM
UC3M
Eduardo García Pardo
eduardo.pardo@urjc.es
URJC
Rooted CON 2020, Madrid, 5-7 Marzo
Evading Deep Learning
malware detectors