Top Banner
el mayor evento de In-seguridad Informática de Ecuador Un evento gratuito, netamente técnico y con ponencias ecuatorianas
42

Las entrañas del malware

Jul 16, 2015

Download

Documents

RicardoGomez94
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Las entrañas del malware

el mayor evento de In-seguridadInformática de EcuadorUn evento gratuito,netamente técnico y conponencias ecuatorianas

Page 2: Las entrañas del malware

Aquí va el nombre del expositorCargo

Aquí va el nombre del expositorCargo

Ricardo Gómez PeraltaInvestigador independiente

Page 3: Las entrañas del malware

Las entrañas del malwareTrucos anti análisis usados en malware bajo plataformas MS Windows.

Ric

ard

o G

óm

ez

Page 4: Las entrañas del malware

¿Qué es malware?

Malware es un programa que contiene código

malicioso.

Un malware es un virus, un worm, una botnet ...

Page 5: Las entrañas del malware

Evolución del malware

2001 Virus Anna Kournikova

“Here you are ;-),” “here you have ;o)” and hereyou go ;-)”

Cuerpo del mensaje: "Hi, check this!”

Annakournikova.jpg.vbs

Page 6: Las entrañas del malware

Evolución del malware

2004 Mydoom, Netsky, Sasser, Bagger.

2005 Redes de bots para obtener dinero.

TROYANOS BANCARIOS.

Page 7: Las entrañas del malware

Evolución del malware

Malware bajo pedido.

Espionaje industrial y ciber-guerra.

TDL4 (2008) (indestructible).

Stuxnet (junio 2010).

Flame (mayo 2012).

Medre (junio 2012).

Page 8: Las entrañas del malware

Análisis de malware

Análisis de código (estático).

Análisis de comportamiento (dinámico).

Objetivo de ambos: Explicar cómo funciona el

malware.

Page 9: Las entrañas del malware

Análisis de malware

Análisis de código (estático).

Obtener información del malware mirando el archivo

(sin ejecución).

Page 10: Las entrañas del malware

Análisis de malware

Análisis de comportamiento (dinámico).

Obtener información del malware mediante la

ejecución del mismo.

Page 11: Las entrañas del malware

¿Qué dificulta el análisis?

Anti-desensamblado

Anti-depuración

Anti-VM

Packers

Page 12: Las entrañas del malware

Anti-desensamblado

Código insertado manualmente con la finalidad de

provocar un listado incorrecto en las herramientas de

desensamblado.

Page 13: Las entrañas del malware

Anti-desensamblado

Page 14: Las entrañas del malware

Anti desemsambladoOfuscación

¿Qué es código ofuscado?Alterar la estructura del código original manteniendosu funcionalidad original.

Objetivos:Retrasar el análisis de ingeniería inversa.Burlar o confundir los motores antivirus y que nodetecten el código malicioso.

¿Fácil o difícil?

Page 15: Las entrañas del malware

Anti desemsambladoOfuscación

Inserción de código basura

Page 16: Las entrañas del malware

Anti desemsambladoOfuscación

Sustitución de instrucciones

Page 17: Las entrañas del malware

Cambiar el flujo de ejecución

Anti desemsambladoOfuscación

Page 18: Las entrañas del malware

Código oculto mediante manejo adecuado de los opcodes

Anti desemsambladoOfuscación

Page 19: Las entrañas del malware
Page 20: Las entrañas del malware

Demo time

Page 21: Las entrañas del malware

Anti-depuraciónAnti-debugging

Page 22: Las entrañas del malware

Anti-debugging

Muy popular entre creadores de malware usada parareconocer cuando la muestra está bajo el control deun depurador.

Page 23: Las entrañas del malware

APIsIsDebbugerPresentCheckRemoteDebuggerPresentNtQueryInformationProcessOutputDebugString

Chequeo manual de estructurasChequeo del PEBChequeo del ProcessHeapChequeo de NtGlobalFlag

Anti-debugging

Page 24: Las entrañas del malware

Identificación del comportamiento del depuradorComprobaciónes de integridad (checksum)Chequeos de tiempo de ejecución.

Interferir con la funcionalidad del debuggerExplotar vulnerabilidades del depurador

Anti-debugging

Page 25: Las entrañas del malware

Algunos conceptos

PEB Estructura de datos que contiene una gran

cantidad de información sobre el proceso.

HEAP Forma de manejo de memoria de la cual

puede hacer uso una aplicación cuando necesita

reservar y liberar memoria dinámicamente.

HANDLE Manejador.

Page 26: Las entrañas del malware

IsDebuggerPresent

El más básico (y obvio).

El booleano PEB.BeingDebugged se activa si hay un depurador presente.

FS[0x30] apunta al PEB.

La API kernel32 !IsDebuggerPresent() revisa esteflag

Anti-debuggingAPIs

Page 27: Las entrañas del malware

CheckRemoteDebuggerPresent

Identica a IsDebuggerPresent.

Busca en un proceso remoto NO máquina remota.

Anti-debuggingAPIs

Page 28: Las entrañas del malware

NtQueryInformationProcess

API nativa.

Devuelve información de un determinado proceso.

Parámetros:HANDLE ProcessHandle, PROCESSINFOCLASS ProcessInformationClass,PVOID ProcessInformation,ULONG ProcessInformationLength,PULONG ReturnLength

Anti-debuggingAPIs

1

2

3

Page 29: Las entrañas del malware

Depurado No depurado

0xFFFFFFFF (-1) 0x0 (0)

1

2

3

1

2

3

Anti-debuggingAPIs

Page 30: Las entrañas del malware

OutputDebugString

Envía una cadena al depurador para que la muestre.

Depurado No depurado

OutputDebugString

no hace nada.

El depurador de

sistema llama

internamente la

función DbgPrint

para mostrar la

string.

Anti-debuggingAPIs

Page 31: Las entrañas del malware

Anti-debuggingAPIs

Page 32: Las entrañas del malware

Byte IsBeingDebugged en el PEB (FS:[30]+2).

Chequeo del ProcessHeap (localizado en 0x18 en la estructura PEB). Bytes Flag y ForceFlag.

Anti-debuggingChequeo manual de estructuras

Campo

NT, 2000,

XP

(32 bits)

Vista y

W7

(32 bits)

XP

(64 bits)

Vista y W7

(64 bits)

Flag 0x0C 0x40 0x14 0x70

ForceFlag 0x10 0x44 0x18 0x74

Page 33: Las entrañas del malware

Un programa ejecutado en un depurador se comporta ligeramente diferente.

Se crean heaps de memoria diferentes.

PEB en el offset 0x68 (no documentada. Si es igual 0x70, está siendo depurado.

Anti-debuggingChequeo de NtGlobalFlag

Page 34: Las entrañas del malware

Comprobaciónes de integridad (checksum)Calcular la integridad de una sección de su código.

Chequeos de tiempo de ejecución RTDSC QueryPerformanceCounter y GetTickCount

Anti-debuggingComportamiento del depurador

Page 35: Las entrañas del malware

Anti-debuggingComportamiento del depurador

Page 36: Las entrañas del malware

Demo time

Page 37: Las entrañas del malware

Explotar vulnerabilidadesdel depurador

Aprovechando la cabecera PE: IMAGE_OPTIONAL_HEADER

Page 38: Las entrañas del malware

Explotar vulnerabilidadesdel depurador

Page 39: Las entrañas del malware

SizeOfRawData de las cabeceras de las secciones modificado.

Explotar vulnerabilidadesdel depurador

Page 40: Las entrañas del malware

Explotar vulnerabilidadesdel depurador

Page 41: Las entrañas del malware

Conclusión:

Saber las técnicas es útil para el analista.

Existen plugins, pero para realizar tools se necesita

saber como operan.

El conocimiento permite adaptarse a nuevos

métodos.

Page 42: Las entrañas del malware

@RicardoGomez94

¿Preguntas?

Gracias