mejora en el proceso de desempacado usando t ecnicas dbi
play

Mejora en el Proceso de Desempacado usando T ecnicas DBI Ricardo - PowerPoint PPT Presentation

Mejora en el Proceso de Desempacado usando T ecnicas DBI Ricardo J. Rodr guez rjrodriguez@unizar.es tw: @RicardoJRdez http://www.ricardojrodriguez.es 3 de Marzo de 2012 RootedCON 2012 Madrid, Spain 2 / 1 $ whoami Miembro de CLS


  1. Mejora en el Proceso de Desempacado usando T´ ecnicas DBI Ricardo J. Rodr´ ıguez rjrodriguez@unizar.es tw: @RicardoJRdez – http://www.ricardojrodriguez.es 3 de Marzo de 2012 RootedCON 2012 Madrid, Spain

  2. 2 / 1

  3. $ whoami Miembro de CLS desde sus inicios (2000) Investigador (PhD candidate) en Universidad de Zaragoza L´ ıneas de investigaci´ on Rendimiento de sistemas software complejos Ingenier´ ıa de Software segura Sistemas de Tolerancia a Fallos (dise˜ no y modelado) 3 / 1

  4. $ whoami Miembro de CLS desde sus inicios (2000) Investigador (PhD candidate) en Universidad de Zaragoza L´ ıneas de investigaci´ on Rendimiento de sistemas software complejos Ingenier´ ıa de Software segura Sistemas de Tolerancia a Fallos (dise˜ no y modelado) An´ alisis malware 3 / 1

  5. Motivaci´ on (I) ¿Qu´ e puedo hacer para proteger mi ejecutable de los malos? (1) No distribuirlo 4 / 1

  6. Motivaci´ on (I) ¿Qu´ e puedo hacer para proteger mi ejecutable de los malos? (1) No distribuirlo Where is my fuckin’ money, ha? 4 / 1

  7. Motivaci´ on (I) ¿Qu´ e puedo hacer para proteger mi ejecutable de los malos? (1) No distribuirlo Where is my fuckin’ money, ha? GPL’d it: spread the love 4 / 1

  8. Motivaci´ on (I) ¿Qu´ e puedo hacer para proteger mi ejecutable de los malos? (1) No distribuirlo Where is my fuckin’ money, ha? GPL’d it: spread the love Nos quedaremos sin trabajo :’( 4 / 1

  9. Motivaci´ on (I) ¿Qu´ e puedo hacer para proteger mi ejecutable de los malos? (1) No distribuirlo Where is my fuckin’ money, ha? GPL’d it: spread the love Nos quedaremos sin trabajo :’( Rezar a [rellenar seg´ un creencias] 4 / 1

  10. Motivaci´ on (II) ¿Qu´ e puedo hacer para proteger mi ejecutable de los malos? (2) Protecci´ on de ejecutables contra reversing C´ odigo anti-reversing Anti-debugging Anti-tracing Detecci´ on de modificaciones (e.g., CRC) Uso de protectores software (a.k.a. packers ) Comprimen un ejecutable ocultando: C´ odigo original Entry Point (EP): primera instrucci´ on del ejecutable √ ↑ Protecci´ on vs. × ↑ tiempo ejecuci´ on/ ↑ consumo memoria Archivo autoextra´ ıble: Ejecutable (c´ odigo) real + rutina de descompresi´ on 5 / 1

  11. Motivaci´ on (II): conocimientos previos Conocimientos de las estructuras PE (1) Encabezados: tama˜ no constante EXEs, DLLs, OBJs Cabecera MZ (DOS): c´ odigo a ejecutar si no es compatible con MS-DOS 6 / 1

  12. Motivaci´ on (II): conocimientos previos Conocimientos de las estructuras PE (1) Encabezados: tama˜ no constante EXEs, DLLs, OBJs Cabecera MZ (DOS): c´ odigo a ejecutar si no es compatible con MS-DOS Mark Zbikowski Tama˜ no 0x40, ´ ultimos 4 @cabecera PE Cabecera PE (Portable Executable) 04h: tipo de m´ aquina compilado 06h: n´ umero de secciones 14h: tama˜ no de la cabecera opcional 16h: caracter´ ısticas del fichero 18h: comienzo cabecera opcional 01Ch: tama˜ no del c´ odigo 028h: Entry Point 034h: direcci´ on base del fichero 6 / 1

  13. Motivaci´ on (II): conocimientos previos Conocimientos de las estructuras PE (2) Recuerda: secciones alineadas en memoria durante ejecuci´ on Tablas de secciones: @PE header+tama˜ no de PE header+tama˜ no de cabecera opcional 00h: nombre de la secci´ on 08h: tama˜ no virtual 0ch: direcci´ on virtual 024h: flags (lectura, escritura, ejecuci´ on. . . ) Secciones: division del c´ odigo .text , .idata , .bss , .data , .reloc Nombre de la secci´ on irrelevante para el funcionamiento 7 / 1

  14. Motivaci´ on (II): conocimientos previos Conocimientos de las estructuras PE (2) Recuerda: secciones alineadas en memoria durante ejecuci´ on Tablas de secciones: @PE header+tama˜ no de PE header+tama˜ no de cabecera opcional 00h: nombre de la secci´ on 08h: tama˜ no virtual 0ch: direcci´ on virtual 024h: flags (lectura, escritura, ejecuci´ on. . . ) Secciones: division del c´ odigo .text , .idata , .bss , .data , .reloc Nombre de la secci´ on irrelevante para el funcionamiento 7 / 1

  15. Motivaci´ on (II): conocimientos previos Conocimientos de las estructuras PE (3) Referencias Wikepedia ( http://en.wikipedia.org/wiki/Portable_Executable ) Peering Inside the PE: A Tour of the Win32 Portable Executable File Format ( http://msdn.microsoft.com/en-us/library/ms809762.aspx ) Microsoft PE and COFF Specification ( http://msdn.microsoft.com/en-us/windows/hardware/gg463119 The .NET File Format ( http://ntcore.com/files/dotnetformat.htm ) 8 / 1

  16. Motivaci´ on (II) ¿C´ omo funciona un protector software? Empacando. . . Protector + packer routine EP OEP Packed Executable adds unpacker Executable routine to executable 9 / 1

  17. Motivaci´ on (II) ¿C´ omo funciona un protector software? Empacando. . . Protector + packer routine EP OEP Packed Executable adds unpacker Executable routine to executable Desempacando. . . Proce ss memory EP OEP Packed unpacker routine Executable Executable 9 / 1

  18. Motivaci´ on (III) ¿C´ omo se revierte un ejecutable protegido? Pasos para conseguir un desempacado 1 Identificar protector → metodolog´ ıa 10 / 1

  19. Motivaci´ on (III) ¿C´ omo se revierte un ejecutable protegido? Pasos para conseguir un desempacado 1 Identificar protector → metodolog´ ıa 2 Encontrar el Original Entry Point (OEP) 10 / 1

  20. Motivaci´ on (III) ¿C´ omo se revierte un ejecutable protegido? Pasos para conseguir un desempacado 1 Identificar protector → metodolog´ ıa 2 Encontrar el Original Entry Point (OEP) ¿d´ onde acaba el c´ odigo de desempacado? 10 / 1

  21. Motivaci´ on (III) ¿C´ omo se revierte un ejecutable protegido? Pasos para conseguir un desempacado 1 Identificar protector → metodolog´ ıa 2 Encontrar el Original Entry Point (OEP) ¿d´ onde acaba el c´ odigo de desempacado? 3 Volcar (de memoria del proceso) el ejecutable a disco 10 / 1

  22. Motivaci´ on (III) ¿C´ omo se revierte un ejecutable protegido? Pasos para conseguir un desempacado 1 Identificar protector → metodolog´ ıa 2 Encontrar el Original Entry Point (OEP) ¿d´ onde acaba el c´ odigo de desempacado? 3 Volcar (de memoria del proceso) el ejecutable a disco 4 Reconstruir ejecutable volcado 10 / 1

  23. Motivaci´ on (III) ¿C´ omo se revierte un ejecutable protegido? Pasos para conseguir un desempacado 1 Identificar protector → metodolog´ ıa 2 Encontrar el Original Entry Point (OEP) ¿d´ onde acaba el c´ odigo de desempacado? 3 Volcar (de memoria del proceso) el ejecutable a disco 4 Reconstruir ejecutable volcado Cabecera del ejecutable 10 / 1

  24. Motivaci´ on (III) ¿C´ omo se revierte un ejecutable protegido? Pasos para conseguir un desempacado 1 Identificar protector → metodolog´ ıa 2 Encontrar el Original Entry Point (OEP) ¿d´ onde acaba el c´ odigo de desempacado? 3 Volcar (de memoria del proceso) el ejecutable a disco 4 Reconstruir ejecutable volcado Cabecera del ejecutable Tabla IAT (Import Address Table) [APIs] 10 / 1

  25. Motivaci´ on (III) ¿C´ omo se revierte un ejecutable protegido? Pasos para conseguir un desempacado 1 Identificar protector → metodolog´ ıa 2 Encontrar el Original Entry Point (OEP) ¿d´ onde acaba el c´ odigo de desempacado? 3 Volcar (de memoria del proceso) el ejecutable a disco 4 Reconstruir ejecutable volcado Cabecera del ejecutable Tabla IAT (Import Address Table) [APIs] 10 / 1

  26. Motivaci´ on (III) ¿C´ omo se revierte un ejecutable protegido? Pasos para conseguir un desempacado 1 Identificar protector → metodolog´ ıa 2 Encontrar el Original Entry Point (OEP) ¿d´ onde acaba el c´ odigo de desempacado? 3 Volcar (de memoria del proceso) el ejecutable a disco 4 Reconstruir ejecutable volcado Cabecera del ejecutable Tabla IAT (Import Address Table) [APIs] Dificultad en encontrar OEP Ofuscaci´ on de c´ odigo del ejecutable protegido C´ odigo basura ( junk code ) T´ ecnicas de ocultaci´ on de OEP ( Stolen Bytes , Asprotect) 10 / 1

  27. Motivaci´ on (IV) Objetivo: encontrar el OEP de una forma r´ apida Objetivo Mejorar el proceso de desprotecci´ on de empacados Encontrar OEP r´ apidamente 11 / 1

  28. Motivaci´ on (IV) Objetivo: encontrar el OEP de una forma r´ apida Objetivo Mejorar el proceso de desprotecci´ on de empacados Encontrar OEP r´ apidamente Entre el 79% y 92% de malware distribuido protegido Centrarse en el c´ odigo del malware Usando DBI (Dynamic Binary Instrumentation) 11 / 1

  29. Trabajo Relacionado (I) Qui´ en y qu´ e: desempacado autom´ atico Debugging Universal PE Unpacker Plugin para el IDA Pro ≥ 4 . 9 PolyUnpack Comparaci´ on de trazas ejecutable est´ atico y en ejecuci´ on Single-step 12 / 1

  30. Trabajo Relacionado (II) Qui´ en y qu´ e: desempacado autom´ atico Emulaci´ on o virtualizaci´ on (hardware) Renovo (Kang et al.) Basado en QEMU Traductor din´ amico del binario Azure Basado en KVM ( Kernel-based Virtual Machine ) Intel Virtualization Technology (IVT) Pandora’s Bosch Basado en Bosch (emulador PC open source). Int´ erprete Tesis doctoral Lutz B¨ ohne Secure and advanced unpacking using computer emulation (S´ ebastien Josse), Journal in Computer Virology, Springer, 2007. 13 / 1

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend