análisis de rendimiento y niveles de protección de...

44
Analisis de rendimiento y niveles de protecci on de protectores de software Proyecto Fin de Carrera de Ingenier a en Informatica Mar a Asunci on Baz us Cast an Director: Ricardo J. Rodr guez Ponente: Jos e Merseguer 17 Marzo de 2014 Escuela de Ingenier a y Arquitectura Universidad de Zaragoza

Upload: vuongkhanh

Post on 06-Feb-2018

224 views

Category:

Documents


2 download

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

Conclusiones y trabajo futuro

Marıa A. Bazus Castan Analisis comparativo de protectores de software EINA 36 / 36