Análisis Forense

Ingeniería inversa

Proceso de desensamblar, descompilar y analizar software para comprender su funcionamiento interno sin acceso al código fuente original. En ciberseguridad forense, la ingeniería inversa es esencial para analizar malware, identificar vulnerabilidades explotadas, determinar la funcionalidad de herramientas de ataque y obtener evidencia técnica para procedimientos judiciales.

12 min de lectura

Ingeniería inversa

Fidelis detectó 6,7 millones de amenazas de malware de alta severidad entre enero y octubre de 2025, junto con 16.000 intentos de explotación de vulnerabilidades críticas. Detrás de cada una de estas amenazas hay un binario que debe ser analizado para comprender su comportamiento, determinar su impacto y generar defensas. La ingeniería inversa es la disciplina que permite desmontar estos binarios pieza a pieza, y los profesionales especializados perciben salarios de entre 70.000 y 210.000 dólares anuales (CyberSeek, 2025), reflejando la escasez crítica de talento. El curso de referencia, SANS FOR610 (Reverse-Engineering Malware), es uno de los más demandados en formación forense a nivel mundial.

Definición técnica

La ingeniería inversa (reverse engineering) en el contexto de ciberseguridad es el proceso de analizar software compilado (binarios ejecutables) para reconstruir su lógica, funcionalidad y comportamiento sin acceso al código fuente original. Se aplica tanto a software legítimo como a malware, y constituye una de las competencias técnicas más avanzadas del análisis forense digital.

Niveles de análisis:

NivelTécnicaHerramientaInformación obtenida
Nivel 1: TriajeAnálisis estático básicostrings, file, PEiDTipo de archivo, cadenas de texto, empaquetadores
Nivel 2: Estático avanzadoDesensambladoIDA Pro, GhidraFlujo de ejecución, llamadas a API, lógica del programa
Nivel 3: DinámicoEjecución controladax64dbg, OllyDbgComportamiento real, descifrado en runtime, C2
Nivel 4: AvanzadoDesempaquetado + deofuscaciónCustom scriptsPayload real oculto bajo capas de protección

Análisis estático vs dinámico:

┌────────────────────────┬────────────────────────┐
│   Análisis Estático    │   Análisis Dinámico    │
├────────────────────────┼────────────────────────┤
│ Sin ejecutar el código │ Ejecutando el código   │
│ Desensamblado          │ Debugging en tiempo real│
│ Seguro (sin riesgo)    │ Requiere sandbox       │
│ Ve todo el código      │ Solo ve código ejecutado│
│ Lento, minucioso       │ Más rápido, práctico   │
│ Bloqueado por ofusc.   │ Descifra en runtime    │
│ IDA, Ghidra, Cutter    │ x64dbg, WinDbg, strace │
└────────────────────────┴────────────────────────┘
Ghidra: la alternativa open-source a IDA Pro

Ghidra es una herramienta de ingeniería inversa desarrollada por la NSA y publicada como open-source en 2019. Ofrece capacidades de desensamblado y descompilación comparables a IDA Pro (cuya licencia cuesta entre 1.500 y 6.000 dólares), incluyendo soporte para múltiples arquitecturas (x86, ARM, MIPS) y un potente descompilador que genera pseudocódigo C legible.


Herramientas esenciales de ingeniería inversa

Herramientas de análisis estático:

HerramientaTipoUso forenseCoste
GhidraDesensamblador + descompiladorAnálisis completo de binarios, gratuitoGratis (NSA)
IDA ProDesensamblador profesionalEstándar de la industria, soporte comercial1.500-6.000 EUR
Binary NinjaDesensamblador modernoInterfaz intuitiva, API de scripting300-1.500 EUR
CutterGUI para radare2Alternativa open-source a IDAGratis
PE StudioAnálisis PETriaje rápido de ejecutables WindowsGratis (básico)
DIE (Detect It Easy)Detector de empaquetadoresIdentificar protecciones del binarioGratis

Herramientas de análisis dinámico:

HerramientaTipoUso forensePlataforma
x64dbgDebuggerDebugging de malware WindowsWindows
WinDbgDebugger kernelAnálisis de rootkits, driversWindows
GDBDebuggerDebugging en LinuxLinux
FridaInstrumentación dinámicaHooking de funciones en runtimeMultiplataforma
ProcmonMonitor de actividadRegistro de operaciones del sistemaWindows
API MonitorMonitor de APIInterceptar llamadas a API de WindowsWindows

Flujo de trabajo de ingeniería inversa forense

  1. Triaje y clasificación inicial

    Antes de invertir horas en análisis profundo, determinar el tipo de archivo, su hash SHA-256 (para verificar si ya está catalogado en VirusTotal/MalwareBazaar), cadenas de texto visibles, importaciones de API sospechosas, y si está empaquetado u ofuscado.

    # Comandos básicos de triaje
    file sample.exe
    sha256sum sample.exe
    strings -a sample.exe | grep -i "http\|password\|key\|decrypt"
  2. Análisis estático con desensamblador

    Cargar el binario en Ghidra o IDA Pro. Analizar el punto de entrada (entry point), el flujo de ejecución principal, las llamadas a funciones de red (connect, send, recv), las operaciones de cifrado, y las cadenas descifradas en memoria.

  3. Análisis dinámico en sandbox

    Ejecutar el binario en un entorno aislado (sandbox) mientras se monitorizan: conexiones de red, archivos creados/modificados, claves de registro modificadas, procesos creados, y comportamiento de persistencia. Herramientas: sandbox dedicada con x64dbg, Procmon, y Wireshark en paralelo.

  4. Extracción de indicadores de compromiso (IOCs)

    Documentar todos los IOCs encontrados: direcciones IP y dominios C2, URLs de descarga de payloads, nombres de archivos y rutas, claves de registro, mutexes, y hashes de componentes adicionales.

  5. Documentación y informe

    Elaborar informe forense que incluya: clasificación del malware, funcionalidades identificadas, vector de infección, mecanismo de persistencia, capacidades de exfiltración, IOCs completos, y el impacto estimado en el sistema afectado.

Entorno aislado obligatorio

NUNCA ejecutar malware fuera de un entorno de análisis aislado (sandbox). Utilizar máquinas virtuales dedicadas, sin acceso a la red corporativa, con snapshots para restauración inmediata. El malware puede detectar entornos de análisis y comportarse de forma diferente.


Caso práctico: análisis de malware en incidente de espionaje industrial

Nota: El siguiente caso es un ejemplo compuesto y anonimizado basado en tipologías reales de peritaje informático. No representa un caso específico real.

Contexto: Una empresa farmacéutica de Madrid descubrió que datos de I+D valorados en millones de euros estaban siendo filtrados a un competidor. El análisis de red detectó comunicaciones cifradas sospechosas desde un servidor de desarrollo. Se contrató peritaje forense para analizar el malware encontrado.

Análisis de ingeniería inversa:

  1. Extracción: Se localizó un ejecutable sospechoso (svcupdate.exe, 340 KB) en la carpeta C:\Windows\Temp\ del servidor afectado. Hash SHA-256 documentado y verificado en VirusTotal: 0 detecciones
  2. Triaje estático: El binario estaba empaquetado con UPX modificado. Tras desempaquetarlo, se identificaron cadenas cifradas con XOR, importaciones de funciones de red (WinHTTP) y criptografía (CryptEncrypt)
  3. Análisis en Ghidra: El descompilador reveló tres funcionalidades principales:
    • Keylogger: Captura de pulsaciones de teclado usando SetWindowsHookEx
    • Screen capture: Capturas de pantalla cada 30 segundos con BitBlt
    • Exfiltración: Envío cifrado (AES-256) a un servidor C2 mediante HTTPS POST a un dominio que simulaba ser un servicio de actualizaciones de Microsoft
  4. Análisis dinámico: En sandbox, se confirmó que el malware enviaba capturas de pantalla y registros de teclado cada 5 minutos. La clave AES estaba hardcoded en el binario
  5. Atribución: Las técnicas (XOR + UPX modificado + dominio typosquatting Microsoft) coincidían con un grupo de espionaje industrial documentado por MITRE ATT&CK (técnicas T1056.001, T1113, T1071.001)

Resultado: El informe pericial documentó la funcionalidad completa del malware, el timeline de exfiltración (45 días de actividad), el volumen de datos comprometidos, y proporcionó IOCs para identificar otros sistemas infectados. La empresa presentó denuncia por delitos de espionaje industrial (Art. 278-280 CP) y competencia desleal.


Ingeniería inversa como actividad legal:

  • Directiva 2009/24/CE (Protección jurídica de programas de ordenador): Art. 6 permite la descompilación (ingeniería inversa) sin autorización del titular cuando sea necesaria para lograr interoperabilidad, siempre que se cumplan condiciones estrictas
  • TRLPI (Real Decreto Legislativo 1/1996): Art. 100 transpone la directiva europea. La ingeniería inversa con fines de investigación forense o seguridad informática se ampara en las excepciones legales
  • Ley de Secretos Empresariales 1/2019: Art. 3.1.b permite la ingeniería inversa de productos obtenidos legítimamente para comprender su funcionamiento

Código Penal (delitos investigados mediante RE):

  • Art. 197 bis CP: Acceso no autorizado a sistemas informáticos mediante malware analizado por ingeniería inversa
  • Art. 264 CP: Daños informáticos causados por malware cuya funcionalidad se determina mediante ingeniería inversa
  • Art. 270 CP: Delitos contra la propiedad intelectual si el malware incluye componentes de software robado
  • Art. 278-280 CP: Espionaje industrial cuando el malware está diseñado para exfiltrar secretos comerciales

Pericial forense:

  • Los resultados de ingeniería inversa son admisibles como prueba pericial en tribunales españoles cuando el perito documenta la metodología, las herramientas utilizadas, y la cadena de custodia del binario analizado
  • El perito debe poder explicar sus hallazgos de forma comprensible para el tribunal, traduciendo conceptos técnicos a lenguaje accesible

Conceptos relacionados


Preguntas frecuentes

Si, con restricciones. La Directiva 2009/24/CE y el Art. 100 del TRLPI permiten la descompilación para lograr interoperabilidad. La Ley 1/2019 de Secretos Empresariales permite la ingeniería inversa de productos obtenidos legítimamente. En el contexto forense, la ingeniería inversa de malware para una investigación judicial o de seguridad está amparada por la ley, siempre que se documente la metodología y el propósito.

¿Necesito herramientas comerciales caras para hacer ingeniería inversa?

No. Ghidra (NSA, gratuito) ofrece capacidades de desensamblado y descompilación comparables a IDA Pro. Cutter (frontend de radare2, gratuito) proporciona interfaz gráfica. x64dbg (gratuito) es un debugger potente para análisis dinámico. El ecosistema open-source permite realizar análisis forense profesional sin inversión en licencias, aunque IDA Pro sigue siendo el estándar de referencia comercial.

¿Cuánto tiempo lleva analizar un malware por ingeniería inversa?

Depende enormemente de la complejidad. Un triaje básico (hash, strings, comportamiento en sandbox) puede completarse en 1-4 horas. Un análisis estático profundo de un malware de complejidad media requiere 1-3 días. Un análisis completo de malware avanzado con múltiples capas de ofuscación, técnicas anti-análisis y código polimórfico puede requerir 1-3 semanas. El coste pericial se ajusta proporcionalmente.

¿Un perito informático necesita saber ingeniería inversa?

No todos los peritos necesitan dominar la ingeniería inversa, pero es una competencia cada vez más demandada. Los peritos especializados en respuesta a incidentes, análisis de malware y ciberdelitos complejos deben tener al menos capacidades de triaje (Nivel 1-2). Para análisis avanzado, puede ser necesario contar con un analista de malware especializado que complemente el equipo forense.


Técnicas anti-análisis y cómo superarlas

El malware moderno implementa múltiples técnicas para dificultar la ingeniería inversa:

Técnicas de anti-análisis más comunes:

TécnicaDescripciónContramedida
Empaquetado (packing)El código está comprimido/cifrado en runtimeDesempaquetadores automáticos (UPX -d), breakpoints en OEP
Ofuscación de códigoCódigo basura, flujo de control alteradoAnálisis de patrones, scripts de limpieza
Anti-debuggingDetección de debuggers (IsDebuggerPresent, NtQueryInformationProcess)Plugins anti-anti-debug (ScyllaHide, TitanHide)
Anti-VMDetección de máquinas virtuales (CPUID, registry, MAC)VMs hardened, baremetal analysis
Anti-sandboxDetección de entornos de análisis automatizadosSandboxes personalizadas con actividad real
Time bombsEjecución solo después de cierta fecha o tiempo de esperaManipulación del reloj del sistema
String encryptionCadenas de texto cifradas en el binarioBreakpoints en funciones de descifrado, instrumentación
PolimorfismoEl código muta con cada ejecuciónAnálisis de la rutina de mutación

Ejemplo de detección de debugger y contramedida:

Código del malware (x86):
─────────────────────────
call IsDebuggerPresent
test eax, eax
jnz  exit_malware     ; Si hay debugger, salir

Contramedida en x64dbg:
───────────────────────
1. Poner breakpoint en IsDebuggerPresent
2. Cuando se active, cambiar EAX a 0 (falsear resultado)
3. Continuar ejecución normal del malware

Entornos de análisis recomendados:

  • FlareVM (Mandiant): Distribución Windows con todas las herramientas de RE preinstaladas
  • REMnux (SANS): Distribución Linux para análisis de malware
  • VirtualBox/VMware con snapshots: Para análisis dinámico seguro
  • Cualquier bare-metal aislado: Para malware con anti-VM avanzado
Regla de oro: snapshot antes de ejecutar

Siempre tomar un snapshot de la máquina virtual ANTES de ejecutar el malware. Esto permite restaurar el estado limpio inmediatamente y repetir el análisis tantas veces como sea necesario sin riesgo de contaminación.


Formación y certificaciones en ingeniería inversa

Para peritos y profesionales que deseen especializarse:

Certificaciones reconocidas:

  • GREM (GIAC Reverse Engineering Malware): Certificación de SANS, considerada el estándar de la industria. Asociada al curso FOR610
  • CREA (Certified Reverse Engineering Analyst): Certificación especializada en ingeniería inversa ofensiva y defensiva
  • eCRE (eLearnSecurity Certified Reverse Engineer): Certificación práctica con examen basado en laboratorios reales
  • OSCP (Offensive Security Certified Professional): Aunque centrada en pentesting, incluye componentes significativos de RE

Recursos de formación gratuitos:

  • Malware Unicorn RE101/RE102: Cursos introductorios y avanzados de RE con ejercicios prácticos
  • CrackMes.one: Plataforma con ejercicios de ingeniería inversa clasificados por dificultad
  • Azeria Labs: Tutoriales de RE para arquitectura ARM
  • OpenSecurityTraining2: Cursos universitarios de RE y análisis de malware publicados gratuitamente

Ingeniería inversa en el contexto judicial español

Admisibilidad como prueba pericial:

La ingeniería inversa de malware es una prueba pericial de alto valor técnico en los tribunales españoles. El perito debe ser capaz de:

  • Explicar el proceso: Traducir conceptos como “desensamblado”, “inyección de código” o “comunicación C2” a un lenguaje accesible para el juez. El uso de diagramas, capturas de pantalla del desensamblador y tablas comparativas facilita enormemente la comprensión
  • Demostrar la cadena de custodia del binario: Documentar cómo se obtuvo el malware (extracción forense del sistema afectado), su hash SHA-256, y que el análisis se realizó sobre una copia
  • Justificar las herramientas: Explicar que Ghidra es una herramienta oficial del gobierno de EE.UU. (NSA), de código abierto y auditada por la comunidad, lo que refuerza la confianza en los resultados
  • Correlacionar hallazgos con el delito: Conectar las funcionalidades descubiertas (keylogging, exfiltración, cifrado) con los hechos investigados y los tipos penales aplicables

Desafíos en la ratificación:

La principal dificultad al ratificar un informe de ingeniería inversa en sala es la complejidad técnica inherente. El perito debe preparar una presentación visual clara, con analogías comprensibles (por ejemplo, comparar la ingeniería inversa con “desmontar un mecanismo para entender cómo funciona”) y estar preparado para preguntas tanto del fiscal como de la defensa sobre la fiabilidad del método.


Referencias y fuentes

  1. Fidelis Security - “6.7 million high-severity malware threats detected January-October 2025”. fidelissecurity.com

  2. NSA - “Ghidra: A Software Reverse Engineering Framework”, open-source. ghidra-sre.org

  3. SANS Institute - “FOR610: Reverse-Engineering Malware: Malware Analysis Tools and Techniques”. sans.org/cyber-security-courses/reverse-engineering-malware

  4. CyberSeek - “Malware analyst career pathway and salary data 2025”. cyberseek.org

  5. MITRE ATT&CK - Framework de técnicas adversarias para clasificación de hallazgos de RE. attack.mitre.org

  6. Directiva 2009/24/CE del Parlamento Europeo sobre protección jurídica de programas de ordenador, Art. 6. eur-lex.europa.eu

  7. Ley 1/2019 de Secretos Empresariales, Art. 3.1.b sobre ingeniería inversa legítima. boe.es

  8. TRLPI - Real Decreto Legislativo 1/1996, Art. 100 sobre descompilación. boe.es

  9. Hex-Rays - “IDA Pro: The Interactive Disassembler”, herramienta comercial de referencia. hex-rays.com

  10. VirusTotal - Servicio de análisis de malware y IOCs de Google/Mandiant. virustotal.com

¿Necesitas un peritaje forense?

Si necesitas ayuda profesional con análisis forense digital, estoy aquí para ayudarte.

Solicitar Consulta Gratuita
Jonathan Izquierdo

Jonathan Izquierdo · Perito Forense

+15 años experiencia · AWS Certified

WhatsApp