análisis de rendimiento y niveles de protección de...
TRANSCRIPT
![Page 1: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/1.jpg)
Analisis de rendimiento y niveles de proteccion deprotectores de software
Proyecto Fin de Carrera de Ingenierıa en Informatica
Marıa Asuncion Bazus Castan
Director: Ricardo J. RodrıguezPonente: Jose Merseguer
17 Marzo de 2014
Escuela de Ingenierıa y ArquitecturaUniversidad de Zaragoza
![Page 2: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/2.jpg)
Contenidos
1 Introduccion y Trabajo Relacionado
2 Conocimientos previos
3 Taxonomıa de las protecciones de software
4 Seleccion de protectores
5 Evaluacion Cualitativa
6 Evaluacion Cuantitativa
7 Conclusiones y trabajo futuro
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 2 / 36
![Page 3: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/3.jpg)
Introduccion y Trabajo Relacionado
Contenidos
1 Introduccion y Trabajo Relacionado
2 Conocimientos previos
3 Taxonomıa de las protecciones de software
4 Seleccion de protectores
5 Evaluacion Cualitativa
6 Evaluacion Cuantitativa
7 Conclusiones y trabajo futuro
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 3 / 36
![Page 4: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/4.jpg)
Introduccion y Trabajo Relacionado
Introduccion (I): Ingenierıa Inversa
¿Que es?
Analisis de un programa a partir de su codigo binario
Analisis Estatico ⇓ No se ejecuta el codigo. ⇑ Se exploran todos loscaminos
Analisis Dinamico ⇑ Se ejecuta el codigo. ⇓ Solo se explora uno delos posibles caminos
Usos de la Ingenierıa Inversa
X Analizar o encontrar errores en un programa (busqueda de bugs)
X Conseguir interoperabilidad con otro sistema (sistemas legados)
X Detectar un programa potencialmente malicioso (anti-virus)
X Detectar vulnerabilidades para crear software malicioso
X Conseguir copia ilegal de un programa
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 4 / 36
![Page 5: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/5.jpg)
Introduccion y Trabajo Relacionado
Introduccion (I): Ingenierıa Inversa
¿Que es?
Analisis de un programa a partir de su codigo binario
Analisis Estatico ⇓ No se ejecuta el codigo. ⇑ Se exploran todos loscaminos
Analisis Dinamico ⇑ Se ejecuta el codigo. ⇓ Solo se explora uno delos posibles caminos
Usos de la Ingenierıa Inversa
X Analizar o encontrar errores en un programa (busqueda de bugs)
X Conseguir interoperabilidad con otro sistema (sistemas legados)
X Detectar un programa potencialmente malicioso (anti-virus)
X Detectar vulnerabilidades para crear software malicioso
X Conseguir copia ilegal de un programa
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 4 / 36
![Page 6: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/6.jpg)
Introduccion y Trabajo Relacionado
Introduccion (II): Herramientas de Ingenierıa Inversa
Analisis Estatico
DesensambladoresCodigo maquina ⇒ codigo ensamblador. (IDAPro)
DecompiladoresCodigo de bajo nivel ⇒ codigo de alto nivel
Analisis Dinamico
Depuradores (Debuggers)
Tracear la ejecucion. Incluir desensamblador. Puntos de ruptura.Visualizar registros, memoria y pila de ejecucion (OllyDbg, WinDbg,IDAPro)
Otros
Dumpers (permiten volcar la imgen en memoria de un proceso).Editor PE. Reconstructor de la tabla de importaciones
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 5 / 36
![Page 7: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/7.jpg)
Introduccion y Trabajo Relacionado
Introduccion (III): Anti-Ingenierıa Inversa
¿Que es?
Tecnicas para evitar el analisis estatico y dinamico de un programa
⇑ Dificultan los ataques de ingenierıa inversa
⇓ Impacto en el rendimiento de un programa (tiempo de ejecucion,memoria consumida)
Usos de la Anti-Ingenierıa Inversa
X Proteger un programa antes de ser distribuido
X Evitar que un software malicioso sea detectado por un anti-virus
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 6 / 36
![Page 8: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/8.jpg)
Introduccion y Trabajo Relacionado
Introduccion (IV): Herramientas Anti-Ingenierıa Inversa
Protectores de Software: ¿Que son?
Herramientas de proteccion de ejecutables (Software Packers)
En un origen su objetivo era solamente comprimir el codigo(compresores)
Evolucionaron para incluir diferentes tecnicas de proteccionanti-ingenierıa inversa (protectores)
Utilizados principalmente en el entorno Windows
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 7 / 36
![Page 9: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/9.jpg)
Introduccion y Trabajo Relacionado
Introduccion (V): Herramientas Anti-Ingenierıa Inversa
Protectores de Software: ¿Como funcionan?
Ejecutable Empacado = Ejecutable Original + Rutina desempacado
Ejecutable Original Ejecutable Empacado
(Rutina empacado)
Protector
Rutina desempacado
Ejecutable Original
+
Protectores de Software: Desproteccion
Encontrar fin rutina desempacado ⇒ Volcado de memoria a disco
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 8 / 36
![Page 10: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/10.jpg)
Introduccion y Trabajo Relacionado
Introduccion (V): Herramientas Anti-Ingenierıa Inversa
Protectores de Software: ¿Como funcionan?
Ejecutable Empacado = Ejecutable Original + Rutina desempacado
Ejecutable Original Ejecutable Empacado
(Rutina empacado)
Protector
Rutina desempacado
Ejecutable Original
+
Protectores de Software: Desproteccion
Encontrar fin rutina desempacado ⇒ Volcado de memoria a disco
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 8 / 36
![Page 11: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/11.jpg)
Introduccion y Trabajo Relacionado
Introduccion (VI): Objetivo del PFC
Evaluacion cualitativa y cuantitativa de protectores de softwareHitos intermedios:
Taxonomıa de las tecnicas de proteccion
Seleccion de protectores para el estudio
Creacion de un benchmark
Evaluacion cualitativa: analisis protecciones
Evaluacion cuantitativa: fiabilidad y rendimiento
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 9 / 36
![Page 12: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/12.jpg)
Introduccion y Trabajo Relacionado
Trabajo relacionado
@ analisis comparativo de protectores de software actuales
Metodos de desempacado automatico para analizar malware:[RHD+06], [KPY07], [MCJ07],[GFC08], [JCL+10]
En [RG14] metodo de analisis de malware basado en DBI
Trabajo mas cercano: [KLC+10] rendimiento protectores parasistemas embebidos en Linux
Contribucion
Categorizacion protecciones de software
Comparativa protectores de software actuales
Evaluacion cualitativa: analisis de proteccionesEvaluacion cuantitativa: fiabilidad y rendimiento (Tiempo deejecucion, Consumo Memoria)
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 10 / 36
![Page 13: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/13.jpg)
Introduccion y Trabajo Relacionado
Trabajo relacionado
@ analisis comparativo de protectores de software actuales
Metodos de desempacado automatico para analizar malware:[RHD+06], [KPY07], [MCJ07],[GFC08], [JCL+10]
En [RG14] metodo de analisis de malware basado en DBI
Trabajo mas cercano: [KLC+10] rendimiento protectores parasistemas embebidos en Linux
Contribucion
Categorizacion protecciones de software
Comparativa protectores de software actuales
Evaluacion cualitativa: analisis de proteccionesEvaluacion cuantitativa: fiabilidad y rendimiento (Tiempo deejecucion, Consumo Memoria)
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 10 / 36
![Page 14: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/14.jpg)
Conocimientos previos
Contenidos
1 Introduccion y Trabajo Relacionado
2 Conocimientos previos
3 Taxonomıa de las protecciones de software
4 Seleccion de protectores
5 Evaluacion Cualitativa
6 Evaluacion Cuantitativa
7 Conclusiones y trabajo futuro
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 11 / 36
![Page 15: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/15.jpg)
Conocimientos previos
Conocimientos previos (I): Formato PE
¿Que es?
Formato estandard de Windows (.exe, .dll, .sys,...)
Cabecera (caracterısticas) + Secciones (datos y codigo)
Cabecera DOS MZ
Cabecera PE
Tabla de secciones
Secciones
Sección 1
Sección n
…
Cabecera DOS:
e lfnew offset Cabecera PE
Cabecera PE:
ImageBaseAddressOfEntryPointDataDirectory[1]
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 12 / 36
![Page 16: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/16.jpg)
Conocimientos previos
Conocimientos previos (II): Proceso de carga
Cabecera9DOS9MZ
Cabecera9PE
Tabla9de9secciones
Secciones
Sección91
Sección9 n
…
Cabecera9DOS9MZ
Cabecera9PE
Tabla9de9secciones
Secciones
Sección91
Sección9 n
…
Cabecera9DOS9MZ
Cabecera9PE
Tabla9de9secciones
Secciones
Sección91
Sección9 n
…
RUTINA9DESEMPACADO
RUTINA9DESEMPACADO
AOABA8B9A4A3E857016B00CF19A50B…….
57016B00CF19A50BAOABA8B9A4A3A0
En9Disco
En9Memoria
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 13 / 36
![Page 17: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/17.jpg)
Taxonomıa de las protecciones de software
Contenidos
1 Introduccion y Trabajo Relacionado
2 Conocimientos previos
3 Taxonomıa de las protecciones de software
4 Seleccion de protectores
5 Evaluacion Cualitativa
6 Evaluacion Cuantitativa
7 Conclusiones y trabajo futuro
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 14 / 36
![Page 18: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/18.jpg)
Taxonomıa de las protecciones de software
Anti-Analisis Estatico
Proteccion Copia
Objetivo: impedir la copia de un programa
Tecnicas: Gestion de Licencias, Clave registro, Hardware
Compresion y Cifrado
Objetivo: impedir el analisis estatico del codigo
Tecnicas: comprimir o cifrar el codigo original, comprimir recursos
Anti Desensamblado
Objetivo: dificultar el proceso de desensamblado del codigo original
Tecnicas: insertar codigo basura (junk code) o codigo que nunca seejecuta (dummy code), permutacion del codigo
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 15 / 36
![Page 19: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/19.jpg)
Taxonomıa de las protecciones de software
Anti Analisis Dinamico (I) - Anti Debugging
Anti-Debugging
Objetivo: impedir que un programa pueda ser debuggeado
Tecnicas:
Basadas en APIs: utilizan funciones del SOProcesos e Hilos: utilizan informacion del proceso o hilo de ejecucionHardware y Registros: utilizan los registros de procesadorTiempo y Latencia: tiempo entre instruccionesBasadas en Excepciones: basadas en el funcionamiento del manejode excepciones
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 16 / 36
![Page 20: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/20.jpg)
Taxonomıa de las protecciones de software
Anti Analisis Dinamico (II) - Anti Dumping
Anti Dumping
Objetivo: impedir que volcado de memoria funcione correctamente
Tecnicas:
Ofuscacion Tabla de ImportacionesNanomites: sustituir los saltos por INT3Robo de BytesPaginas GuardaVirtualizacion: reescribir el codigo para que sea ejecutado por lamaquina virtual embebida. El codigo original no esta disponible enmemoria en ningun momento
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 17 / 36
![Page 21: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/21.jpg)
Taxonomıa de las protecciones de software
Anti Analisis Dinamico (III): Anti-VM y Anti-Patching
Anti-VM
Objetivo: Impedir ejecucion en maquinas virtuales
Tecnicas: tecnicas de deteccion de maquinas virtuales especıficas (p.ej VMWare, VirtualBox)
Anti Patching
Objetivo: impedir modificacion del codigo
Tecnicas: Comprobar la integridad mediante CRC o codigo hash
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 18 / 36
![Page 22: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/22.jpg)
Seleccion de protectores
Contenidos
1 Introduccion y Trabajo Relacionado
2 Conocimientos previos
3 Taxonomıa de las protecciones de software
4 Seleccion de protectores
5 Evaluacion Cualitativa
6 Evaluacion Cuantitativa
7 Conclusiones y trabajo futuro
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 19 / 36
![Page 23: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/23.jpg)
Seleccion de protectores
Seleccion de Protectores para el estudio
Version Ultima Release Licencia TipoACProtect 2.1.0 09/2008 149$ Compresor&ProtectorArmadillo 9.62 06/2013 aprox. 299$ Compresor&ProtectorASPack 2.32 08/2012 34e- 208e Compresor&ProtectorASProtect 1.69 09/2013 117e- 347e Compresor&ProtectorEnigma 3.7 06/2013 149$- 299$ Protector&Virtualizador
EXE Stealth4.19 06/2011 296,31e Compresor&Protector
ExeCryptor 2.3.9 03/2006 135$- 749$ Compresor&Protector
ExPressor1.8 01/2010 14$- 360$ Compresor&Protector
FSG 2.0 05/2004 Gratuita CompresorMEW 11 11/2004 Gratuita Compresor
Obsidium1.5 10/2013 139e- 289e Protector&Virtualizador
PECompact 3.02.2 02/2010 89,95$499$ Compresor&ProtectorPELock 1.06 01/2012 89$- 289$ Compresor&ProtectorPESpin 1.33 05/2011 Gratuita Compresor&ProtectorPetite 2.3 02/2005 170e Compresor&Protector
Smart Packer1.9 06/2013 59e- 399e Compresor& Bundler
TeLock 0.98 08/2001 Gratuita Compresor&ProtectorThemida 2.2 10/2013 199e- 399e Protector&VirtualizadorUPX 3.91 02/2013 Gratuita CompresorVMProtect 2.13 05/2013 99$- 399$ Protector&VirtualizadorYodasProtector 1.03.3 08/2006 Gratuita Compresor&Protector
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 20 / 36
![Page 24: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/24.jpg)
Evaluacion Cualitativa
Contenidos
1 Introduccion y Trabajo Relacionado
2 Conocimientos previos
3 Taxonomıa de las protecciones de software
4 Seleccion de protectores
5 Evaluacion Cualitativa
6 Evaluacion Cuantitativa
7 Conclusiones y trabajo futuro
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 21 / 36
![Page 25: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/25.jpg)
Evaluacion Cualitativa
Evaluacion Cualitativa (I): Anti-Analisis Estatico
Protector Compresion Cifrado Anti-DesensambladoACProtect X XArmadillo X X XASPack X XASProtect X X XEnigma X X XEXE Stealth XExeCryptor X XExPressor XFSG XMEW X XObsidium X X XPECompact XPELock XPESpin X X XPetite XSmartPacker X XTeLock XThemida X X XUPX XVMProtect X XYodas Protector X X
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 22 / 36
![Page 26: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/26.jpg)
Evaluacion Cualitativa
Evaluacion Cualitativa (II): Anti-Analisis Dinamico
Protector Anti-Debugging Anti-Dumping Anti-VM Anti-PatchingACProtect X X − −Armadillo X X − XASPack X − − −ASProtect X X − XEnigma X X(Alto) X XEXE Stealth X X X XExeCryptor X(Alto) X(Alto) X XExPressor X X X XFSG − − − −MEW − − − −Obsidium X(Alto) X(Alto) X XPECompact X X − XPELock X X − −PESpin X X − −Petite X X − −SmartPacker − − − −TeLock X X − −Themida X(Alto) X(Alto) X XUPX − − − −VMProtect X X(Alto) X XYodas Protector X X − −
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 23 / 36
![Page 27: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/27.jpg)
Evaluacion Cuantitativa
Contenidos
1 Introduccion y Trabajo Relacionado
2 Conocimientos previos
3 Taxonomıa de las protecciones de software
4 Seleccion de protectores
5 Evaluacion Cualitativa
6 Evaluacion Cuantitativa
7 Conclusiones y trabajo futuro
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 24 / 36
![Page 28: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/28.jpg)
Evaluacion Cuantitativa
Evaluacion Cuantitativa (I): Creacion de benchmarkAplicaciones seleccionadas
Nombre Version Lenguaje Tipo Tipo deCalculo
Origen
GNU go 3.8 C IA - Juegos Entero SPEC CINT 2006hmmer 3.0 C Genetica Entero SPEC CINT 2006h264ref 18.5 C Compresion video Entero SPEC CINT 2006mcf 1.3 C Combinatoria Entero SPEC CINT 2006namd 2.8 C++ Biologıa, simulacion de
moleculasReal SPEC CFP 2006
povray 3.7 C++ Renderizacion Real SPEC CFP 2006calculix 2.6 Fotran90
& CMecanica Estructural Real SPEC CFP 2006
palabos 1.4. C++ Dinamica de fluidos Real Propioaescrypt 3.0.9 C Criptografıa, cifrado E/S Propiobzip2 1.0.5 C Compresion E/S SPEC CINT 2006ffmpeg 0.10 C Conversion de formatos
video/audioE/S Phoronix Test
Suitemd5 1.2 Delphi 7 Criptografıa, Hash E/S Propio
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 25 / 36
![Page 29: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/29.jpg)
Evaluacion Cuantitativa
Evaluacion Cuantitativa (II): Creacion de benchmarkAlgoritmo del benchmark
1: aplicacion = [bzip2, gnugoo, hmmer , h264ref ,mcf , namd , povray ...]2: protector = [ACProtect,ASPack ,Armadillo,Enigma,EXEStealth, ...]3: for repeticion = 1 to 45 do4: for aplicacion do5: ejecutar aplicacion {Ejecutable original}6: medicion proceso GetProcessTimes();GetProcessMemoryInfo()7: end for8: for protector do9: for aplicacion do
10: ejecutar aplicacion.protector {Ejecutable protegido}11: medicion proceso GetProcessTimes();GetProcessMemoryInfo()12: end for13: end for14: end for
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 26 / 36
![Page 30: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/30.jpg)
Evaluacion Cuantitativa
Evaluacion Cuantitativa (III): Fiabilidad
Calculo entero Calculo real Gran demanda E/S TotalACProtect 25% 50% 75% 50%Armadillo 50% 100% 75% 75%ASPack 100% 100% 75% 91%ASProtect 100% 100% 75% 91%Enigma 75% 75% 100% 83%EXE Stealth 100% 75% 100% 91%ExeCryptor 25% 50% 0% 25%ExPressor 100% 100% 100% 100%FSG 0% 50% 100% 50%MEW 100% 50% 100% 50%Obsidium 100% 100% 100% 100%PECompact 25% 100% 100% 75%PELock 25% 100% 75% 66%PESpin 0% 50% 75% 41%Petite 50% 25% 50% 41%Smart Packer 50% 75% 100% 75%TeLock 25% 50% 50% 41%Themida 25% 100% 100% 75%UPX 100% 100% 100% 100%VMProtect 100% 100% 100% 100%YodasProtector 25% 25% 50% 33%
61% 76% 83%Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 27 / 36
![Page 31: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/31.jpg)
Evaluacion Cuantitativa
Evaluacion Cuantitativa (IV): Fiabilidad
Consideraciones
Obsidium, EXEStealth: ejecutables protegidos proporcionados porel mismo fabricante
FSG, MEW, PESPin, Petite, TELock, YodasProtector: Error”Runtime error: R6002 floating point support not loaded” ⇒Programas compilados con MSVC++5 o superior
ACProtect, Armadillo, PELock, PESpin: ejecutable correcto sintodas las protecciones
VMProtect, Themida, EXECryptor, Armadillo y PELock: se hatrabajado con la version demo
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 28 / 36
![Page 32: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/32.jpg)
Evaluacion Cuantitativa
Evaluacion Cuantitativa (V): RendimientoResultados Overhead CPU
0% UPX,FSG, MEW (solo compresores). EXECryptor, VMProtect(version demo). ACProtect, YodasProtector
6-8% ASProtect, EXPressor, Obsidium, PELock
0
1
2
3
4
5
6
7
8
ACPr
otec
tAS
Pack
ASPr
otec
tEn
igm
aEx
eCry
ptor
EXPr
esso
r
FSG
MEW
Obs
idiu
mPE
Com
pact
PELo
ckPE
Spin
Petit
eTE
Lock
UPX
VMPr
otec
tYo
das
Ove
rhea
d_cp
u (%
)
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 29 / 36
![Page 33: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/33.jpg)
Evaluacion Cuantitativa
Evaluacion Cuantitativa (VI): RendimientoResultados Overhead Mem
< 6% ASPack, FSG, MEW, PECompact, PESpin, Petite, TELock16% Enigma (virtualizacion)20% Yodas (no Overhead CPU)
0
2
4
6
8
10
12
14
16
18
20
ACPr
otec
tAS
Pack
ASPr
otec
tEn
igm
aEx
eCry
ptor
EXPr
esso
r
FSG
MEW
Obs
idiu
mPE
Com
pact
PELo
ckPE
Spin
Petit
eTE
Lock
UPX
VMPr
otec
tYo
das
Ove
rhea
d_m
em (
%)
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 30 / 36
![Page 34: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/34.jpg)
Conclusiones y trabajo futuro
Contenidos
1 Introduccion y Trabajo Relacionado
2 Conocimientos previos
3 Taxonomıa de las protecciones de software
4 Seleccion de protectores
5 Evaluacion Cualitativa
6 Evaluacion Cuantitativa
7 Conclusiones y trabajo futuro
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 31 / 36
![Page 35: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/35.jpg)
Conclusiones y trabajo futuro
Conclusiones y trabajo futuro (I): Conclusiones
X Se han analizado 252 ejecutables ⇒ 21 herramientas x 12 aplicaciones
Protecciones
Fiabilidad
Rendimiento
Analisis Protectores de Software: Conclusiones
X Protectores de software dificultan ataques de ingenierıa inversa (nolos evitan). Desventajas:
⇓ Efectividad disminuye con el paso del tiempo → tecnicas dedesproteccion conocidas y difundidas por la red
⇓ Fiabilidad: algunas herramientas no funcionan bien condeterminados ejecutables
⇓ Rendimiento del programa protegido → ↑ consumo de memoria y, enalgunos casos, ↑ tiempo de ejecucion
X Programas legıtimos pueden ser detectados por anti-virus (falsospositivos)
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 32 / 36
![Page 36: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/36.jpg)
Conclusiones y trabajo futuro
Conclusiones y trabajo futuro (I): Conclusiones
X Se han analizado 252 ejecutables ⇒ 21 herramientas x 12 aplicaciones
Protecciones
Fiabilidad
Rendimiento
Analisis Protectores de Software: Conclusiones
X Protectores de software dificultan ataques de ingenierıa inversa (nolos evitan). Desventajas:
⇓ Efectividad disminuye con el paso del tiempo → tecnicas dedesproteccion conocidas y difundidas por la red
⇓ Fiabilidad: algunas herramientas no funcionan bien condeterminados ejecutables
⇓ Rendimiento del programa protegido → ↑ consumo de memoria y, enalgunos casos, ↑ tiempo de ejecucion
X Programas legıtimos pueden ser detectados por anti-virus (falsospositivos)
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 32 / 36
![Page 37: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/37.jpg)
Conclusiones y trabajo futuro
Conclusiones y trabajo futuro (I): Conclusiones
X Se han analizado 252 ejecutables ⇒ 21 herramientas x 12 aplicaciones
Protecciones
Fiabilidad
Rendimiento
Analisis Protectores de Software: Conclusiones
X Protectores de software dificultan ataques de ingenierıa inversa (nolos evitan). Desventajas:
⇓ Efectividad disminuye con el paso del tiempo → tecnicas dedesproteccion conocidas y difundidas por la red
⇓ Fiabilidad: algunas herramientas no funcionan bien condeterminados ejecutables
⇓ Rendimiento del programa protegido → ↑ consumo de memoria y, enalgunos casos, ↑ tiempo de ejecucion
X Programas legıtimos pueden ser detectados por anti-virus (falsospositivos)
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 32 / 36
![Page 38: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/38.jpg)
Conclusiones y trabajo futuro
Conclusiones y trabajo futuro (I): Conclusiones
X Se han analizado 252 ejecutables ⇒ 21 herramientas x 12 aplicaciones
Protecciones
Fiabilidad
Rendimiento
Analisis Protectores de Software: Conclusiones
X Protectores de software dificultan ataques de ingenierıa inversa (nolos evitan). Desventajas:
⇓ Efectividad disminuye con el paso del tiempo → tecnicas dedesproteccion conocidas y difundidas por la red
⇓ Fiabilidad: algunas herramientas no funcionan bien condeterminados ejecutables
⇓ Rendimiento del programa protegido → ↑ consumo de memoria y, enalgunos casos, ↑ tiempo de ejecucion
X Programas legıtimos pueden ser detectados por anti-virus (falsospositivos)
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 32 / 36
![Page 39: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/39.jpg)
Conclusiones y trabajo futuro
Conclusiones y trabajo futuro (I): Conclusiones
X Se han analizado 252 ejecutables ⇒ 21 herramientas x 12 aplicaciones
Protecciones
Fiabilidad
Rendimiento
Analisis Protectores de Software: Conclusiones
X Protectores de software dificultan ataques de ingenierıa inversa (nolos evitan). Desventajas:
⇓ Efectividad disminuye con el paso del tiempo → tecnicas dedesproteccion conocidas y difundidas por la red
⇓ Fiabilidad: algunas herramientas no funcionan bien condeterminados ejecutables
⇓ Rendimiento del programa protegido → ↑ consumo de memoria y, enalgunos casos, ↑ tiempo de ejecucion
X Programas legıtimos pueden ser detectados por anti-virus (falsospositivos)
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 32 / 36
![Page 40: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/40.jpg)
Conclusiones y trabajo futuro
Conclusiones y trabajo futuro (I): Conclusiones
X Se han analizado 252 ejecutables ⇒ 21 herramientas x 12 aplicaciones
Protecciones
Fiabilidad
Rendimiento
Analisis Protectores de Software: Conclusiones
X Protectores de software dificultan ataques de ingenierıa inversa (nolos evitan). Desventajas:
⇓ Efectividad disminuye con el paso del tiempo → tecnicas dedesproteccion conocidas y difundidas por la red
⇓ Fiabilidad: algunas herramientas no funcionan bien condeterminados ejecutables
⇓ Rendimiento del programa protegido → ↑ consumo de memoria y, enalgunos casos, ↑ tiempo de ejecucion
X Programas legıtimos pueden ser detectados por anti-virus (falsospositivos)
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 32 / 36
![Page 41: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/41.jpg)
Conclusiones y trabajo futuro
Conclusiones y trabajo futuro (II): Lıneas futuras
Lıneas futuras
Ampliacion herramientas protectoras de software
Ampliacion aplicaciones para benchmark
Utilizacion de versiones completas de las herramientas protectoras(Armadillo, EXECryptor, Themida, PELock, VMProtect)
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 33 / 36
![Page 42: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/42.jpg)
Conclusiones y trabajo futuro
Tiempo dedicado: Desglose Horas
ReunionesEstudio de Formato PEEstudio de las técnicas de protecciónde software
Selección y análisis de las herramientasde protección (calidad, fiabilidad y rendimiento)Creación de benchmarkDocumentación
Tareas HorasReuniones 10
Estudio de Formato PE 32Estudio de las tecnicas de proteccion de software 45
Analisis de las herramientas de proteccion (calidad, fiabilidad y rendimiento) 98Creacion del benchmark 117
Documentacion memoria 159
Total 461
: Horas dedicadas.Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 34 / 36
![Page 43: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/43.jpg)
Conclusiones y trabajo futuro
Referencias
[RHD+06] Paul Royal, Mitch Halpin, David Dagon, Robert Edmonds & Wenke Lee.PolyUnpack: Automating the Hidden-Code Extraction of Unpack-Executing Malware.Georgia Institute of Technology, 2006.
[KPY07] Min Gyung Kang, Pongsin Poosankam & Heng Yin. Renovo: A Hidden CodeExtractor for Packed Executables. Carnegie Mellon University, 2007.
[MCJ07] Lorenzo Martignoni, Mihai Christodorescu & Somesh Jha. OmniUnpack: Fast,Generic, and Safe Unpacking of Malware. In Proceedings of the 23rd Annual ComputerSecurity Applications Conference (ACSAC’07). IEEE Computer Society, 2007.
[GFC08] Fanglu Guo, Peter Ferrie & Tzi-Cker Chiueh. A Study of the Packer Problemand Its Solutions. Procs. 11th Int. Symp. on RAID, 2008.
[JCL+10] Guhyeon Jeong, Euijin Choo, Joosuk Lee, Munkhbayar Bat-Erdene & HeejoLee. Generic Unpacking using Entropy Analysis. IEEE: 5th International Conference onMalicious and Unwanted Software, 2010.
[RG14] Ricardo J. Rodrıguez & Inaki Rodrıguez Gaston. Hardering SandboxEnvironments with Dynamic Binary Instrumentation Techniques. Submitted IEEE TIFS2014.
[KLC+10] Min-Jae Kim, Jin-Young Lee, Hye-Young Chang, SeongJe Cho, Minkyu Park,Yongsu Park & Philip A. Wilsey. Design and Performance Evaluation of Binary CodePacking for Protecting Embedded Software against Reverse Engineering. IEEE Int.Symp. on Object/Component/Service-Oriented Real-Time Distributed Computing, 2010.
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 35 / 36
![Page 44: Análisis de rendimiento y niveles de protección de ...webdiis.unizar.es/~ricardo/files/PFCs-TFGs/Analisis-Rendimiento... · Visualizar registros, memoria y pila de ejecuci on (OllyDbg,](https://reader033.vdocuments.site/reader033/viewer/2022042708/5a790db67f8b9a217b8c70c9/html5/thumbnails/44.jpg)
Conclusiones y trabajo futuro
Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 36 / 36