Brochure de Análisis de Malware

Análisis de Malware con Ollydbg y IDA PRO

Análisis de malware es el arte de identificar la estructura de software malicioso para entender cómo funciona, cómo identificarlo y cómo derrotar o eliminarlo. Este curso está orientado a poder enseñarte a identificar los malware, las acciones que este realiza y como eliminarlos.

Tipos de análisis de malware:

  1. Análisis estático:
    • Examina el código del malware sin ejecutarlo.

    • Herramientas: desensambladores, descompiladores, escáneres antivirus.

    • Puede incluir la revisión de firmas, cadenas de texto incrustadas, y la estructura del archivo.

    • Ventaja: Seguro (no se ejecuta el malware).

    • Limitación: Puede ser difícil si el malware está ofuscado o cifrado.

  2. Análisis dinámico:
    • Consiste en ejecutar el malware en un entorno controlado (sandbox o máquina virtual) para observar su comportamiento en tiempo real.

    • Se monitorean cambios en el sistema, tráfico de red, procesos, archivos modificados, etc.

    • Ventaja: Revela comportamientos reales del malware.

    • Limitación: Requiere medidas de contención para evitar infecciones reales.

  3. Análisis híbrido:
    • Combina elementos del análisis estático y dinámico.

    • Es más completo y efectivo para entender malware complejo.

¿Para qué se utiliza?

  • Identificar indicadores de compromiso (IoCs).

  • Mejorar las defensas de seguridad.

  • Desarrollar firmas para antivirus y sistemas de detección.

  • Investigar ciberataques.

  • Comprender vulnerabilidades explotadas.

¿Qué es OllyDbg?

OllyDbg es un depurador (debugger) de código ensamblador para sistemas Windows, muy utilizado para el análisis de programas ejecutables (archivos .exe) a nivel binario. Se destaca por su capacidad para trabajar sin necesidad de tener acceso al código fuente del programa, lo que lo hace ideal para tareas como:

  • Ingeniería inversa (reverse engineering)

  • Análisis de malware

  • Depuración de aplicaciones protegidas o empaquetadas

  • Estudio de cómo funciona internamente un programa

Características principales de OllyDbg

  • Análisis estático y dinámico: Puede inspeccionar el código sin ejecutarlo (estático) o seguir su ejecución paso a paso (dinámico).

  • Interfaz gráfica amigable: Aunque trabaja a bajo nivel, es bastante accesible para usuarios con conocimientos de ensamblador.

  • Reconocimiento automático de funciones y cadenas de texto en binarios.

  • Breakpoints (puntos de interrupción) y watchpoints para monitorear ejecución y valores en memoria.

  • Desensamblado inteligente, mostrando instrucciones ensamblador desde binarios.

  • Soporte para plugins, que permiten extender sus funcionalidades.

Usos comunes

  • Ingeniería inversa de software comercial o cerrado.

  • Cracking (uso ilegal), aunque también se usa con fines educativos o legales (por ejemplo, auditar la seguridad de software propio).

  • Analizar malware para comprender su comportamiento sin ejecutarlo completamente.

Compatibilidad

OllyDbg fue diseñado originalmente para sistemas de 32 bits (x86), por lo que tiene limitaciones al trabajar con aplicaciones de 64 bits (x64). Sin embargo, existen versiones modificadas y otras herramientas más modernas (como x64dbg) que amplían su funcionalidad para sistemas de 64 bits.

¿Qué es IDA PRO?

IDA Pro (Interactive Disassembler Professional) es una herramienta avanzada de ingeniería inversa utilizada para analizar y comprender el código binario de programas ejecutables. Es especialmente valorada en áreas como la seguridad informática, la investigación de malware, la auditoría de software y la ingeniería de software.

IDA Pro es un desensamblador interactivo que permite analizar el código de programas compilados sin necesidad del código fuente original. Ofrece una interfaz gráfica que facilita la navegación y comprensión del código desensamblado. Además, permite la depuración local y remota de aplicaciones en diversos sistemas operativos como Windows, Linux y macOS.

Características destacadas de IDA PRO

  • Análisis automático y manual: Realiza un análisis automático del código y permite la intervención manual para mejorar la precisión del desensamblado.
  • Soporte para múltiples plataformas y arquitecturas: Es compatible con una amplia variedad de sistemas operativos y arquitecturas de procesadores, incluyendo x86, ARM, MIPS, PowerPC, entre otros.
  • Decompilador Hex-Rays: Ofrece un complemento de decompilación que convierte el código de máquina en un pseudocódigo similar a C, facilitando la comprensión del funcionamiento del programa.
  • Extensibilidad: Permite la creación de scripts y plugins para automatizar tareas y ampliar sus funcionalidades.

Alternativas gratuitas

Para quienes buscan una opción sin costo, existe IDA Free, una versión limitada de IDA Pro que ofrece funcionalidades básicas para análisis de código binario. Es una excelente opción para principiantes o para realizar análisis sencillos.

Contenido del Curso

Modulo 01: Análisis Estático Básico (Dependency Walker,String,PE View,PEID)

▪ Escaneo de Antivirus: Un primer paso util
▪ Hashing: Sacando un Fingerprint del Malware
▪ Encontrando Strings
▪ Malware Empaquetado y Ofuscado
▪ Detectando Packers con PEiD
▪ Formato de Archivo PE(Portable Executable)
▪ Enlazando Librerías y Funciones
▪ Linking: Static, Runtime,y Dynamic
▪ Analizando Enlaces a funciones dinámicas con Dependency Walker
▪ Funciones Importadas
▪ Funciones Exportadas
▪ Análisis estático en la Practica
▪ PotentialKeylogger.exe: Un Unpacked Executable
▪ PackedProgram.exe: Un callejón sin Salida
▪ La Cabecera y Secciones de archivos PE
▪ Examinando Archivos PE con PEview
▪ Revisando la Sección de Recursos con Resource Hacker
▪ Usando otras herramientas de archivos PE
Modulo 02: Análisis de Malware en Máquinas Virtuales

▪ La estructura de una Virtual Machine
▪ Creando tu Maquina de Análisis de Malware
▪ Configurando VMware
▪ Usando tu máquina de Análisis de Malware
▪ Conectando un Malware a Internet
▪ Conectando y desconectando Dispositivos Periféricos (USB,
CDROM, …)
▪ Tomando Snapshots
▪ Transfiriendo archivos desde una Máquina virtual
▪ El riesgo de usar una Máquina Virtual VMware para análisis de
malware
Modulo 03: Análisis Dinámico Básico (Process Monitor, RegShot, FakeNet)

▪ Sandboxes: Un enfoque rápido y oscuro
▪ Usando un Sandbox para análisis de malware
▪ Corriendo un Malware
▪ Monitoreando con Process Monitor
▪ Analizando con Procmon
▪ Filtrado en Procmon
▪ Viendo los procesos con Process Explorer
▪ Display en Process Explorer
▪ Usando la opción: Verify
▪ Comparando Strings
▪ Usando Dependency Walker
▪ Analizando documentos maliciosos
▪ Comparando Registros de Windows con Regshot
▪ Falseando una Network
▪ Usando ApateDNS
▪ Monitoreando con Netcat
▪ Packet Sniffing con Wireshark
▪ Usando INetSim
▪ Realizando análisis dinámico en la práctica
Modulo 04: Análisis Estático Avanzado (x86 Disassembly, API Win, IDA PRO)

▪ Sandboxes: Un enfoque rápido y oscuro
▪ Usando un Sandbox para análisis de malware
▪ Corriendo un Malware
▪ Monitoreando con Process Monitor
▪ Analizando con Procmon
▪ Filtrado en Procmon
▪ Viendo los procesos con Process Explorer
▪ Display en Process Explorer
▪ Usando la opción: Verify
▪ Comparando Strings
▪ Usando Dependency Walker
▪ Analizando documentos maliciosos
▪ Comparando Registros de Windows con Regshot
▪ Falseando una Network
▪ Usando ApateDNS
▪ Monitoreando con Netcat
▪ Packet Sniffing con Wireshark
▪ Usando INetSim
▪ Realizando análisis dinámico en la práctica
▪ Operandos
▪ Registros
▪ Instrucciones simples
▪ El Stack
▪ Condicionales
▪ Metodo Main en C
▪ Architectura Intel x86

Modulo 05: IDA PRO

▪ Cargando un ejecutable
▪ La interface de IDA Pro
▪ Modos de Ventanas Disassembly
▪ Ventanas útiles para el análisis
▪ Retornando a la vista por default
▪ Navegando en IDA Pro
▪ Buscando
▪ Usando Cross-References
▪ Code Cross-References
▪ Data Cross-References
▪ Analizando Funciones
▪ Usando Opciones Graficas
▪ Mejorando el desmontaje
▪ Renombrando Locations
▪ Comentarios
▪ Formateando Operandos
▪ Usando Constantes nombradas
▪ Redefiniendo Code y Data
▪ Extendiendo IDA con Plug-ins
▪ Usando IDC Scripts
▪ Usando IDAPython
▪ Usando Plug-ins Comerciales

Modulo 06: Análisis Malicioso en Programas Windows

▪ API de Windows
▪ Tipos y Notaciones Hungarian
▪ Handles
▪ Funciones de Archivos del Sistema
▪ Archivos especiales
▪ Registros de Windows
▪ Registry Root Keys
▪ Regedit
▪ Programas que corren automaticamente
▪ Tipicas funciones de Registro
▪ Analizando el Registro en la Practica
▪ API Networking
▪ Socket compatibles con Berkeley
▪ El Servidor y Lado del Cliente en Networking
▪ La API WinINet
▪ Despues de Correr un malware
▪ DLLs
▪ Processes
▪ Threads
▪ Coordinación entre procesos con Mutexes
▪ Services
▪ Kernel vs. User Mode

Modulo 07: Análisis Dinámico Avanzado – Debugging

▪ Source-Level vs. Assembly-Level Debuggers
▪ Kernel vs. User-Mode Debugging
▪ Usando un Debugger
▪ Single-Stepping
▪ Stepping-Over vs. Stepping-Into
▪ Pausando la ejecución con Breakpoints
▪ Excepciones
▪ Excepciones comunes
▪ Modificando la Ejecución con un Debugger
▪ Modificando un Programa Ejecutable en la Practica

Modulo 08: OLLYDBG

▪ Cargando Malware
▪ Abriendo un Ejecutable
▪ Atachando un Procesoen Memoria
▪ La Interfaces de OllyDbg
▪ Memory Map
▪ Rebasing
▪ Viendo Threads y Stacks
▪ Ejecutando el Codigo
▪ Breakpoints
▪ Breakpoints Software
▪ Breakpoints Conditional
▪ Breakpoints Hardware
▪ Breakpoints Memory
▪ Cargando DLLs
▪ Traceando
▪ Call Stack
▪ Run Trace
▪ Tracing Poison Ivy
▪ Manejando Excepciones
▪ Patching
▪ Analizando Shellcode
▪ Plug-ins
▪ OllyDump
▪ Ocultando Debugger
▪ Bookmarks

Planes de Curso