Análisis de malware

Herramientas de ingeniería inversa y análisis de malware

febrero 4, por Dimitar Kostadinov

Las herramientas de ingeniería inversa y análisis de malware desempeñan un papel importante en términos de ciberseguridad. Por ejemplo, los desarrolladores de aplicaciones y los equipos de seguridad pueden implementar estos mecanismos de control en sus prácticas de codificación para la detección de ataques de ingeniería inversa y la protección contra análisis de amenazas, entre otras cosas. Encontrar la herramienta más adecuada no siempre es una tarea sencilla, pero este artículo podría arrojar algo de luz sobre este tema.

En la primera curva está el campeón indiscutible, el IDA, y en la otra, todos sus competidores.

AIF

Esta abreviatura significa Desensamblador Interactivo (IDA). Hay dos versiones de IDA:

  1. Iniciador de la AIF
  2. Profesional IDA

Hex-Rays, la empresa que desarrolla IDA, ofrece también la versión de evaluación de IDA (una versión limitada del desensamblador) y la versión gratuita de IDA v7.0 (gratuita para uso no comercial).

IDA Pro, el producto principal, es una excelente herramienta para el análisis de malware por muchas razones, y una de ellas es su capacidad para extraer grandes cantidades de información, como cadenas, exportaciones, importaciones, flujos de gráficos y más.

IDA Pro es una plataforma que integra múltiples funciones: puede funcionar como desensamblador, depurador y descompilador, todo en uno.

Como desensamblador de software informático, IDA Pro puede utilizar un código ejecutable por máquina determinado para generar código fuente en lenguaje ensamblador. El proceso de desmontaje se puede ampliar mediante «scripts IDC». Pueden usarse como base para scripts escritos por los usuarios, pero principalmente para modificaciones del código generado. Hex-Rays ha equipado su producto con un SDK para que los usuarios puedan desarrollar extensiones a través del lenguaje Python.

Como depurador de ejecutables, IDA Pro es compatible con Windows PE, Mac OS X Mach-O y Linux ELF.

El complemento descompilador suele tener un precio adicional.

IDA Pro puede realizar un análisis automático de código basado en referencias cruzadas entre secciones de código, conocimiento de parámetros de llamadas API y otros datos. Sin embargo, no todo está automatizado: se necesita la intervención humana para calibrar el proceso de desmontaje, que de otro modo sería natural. La funcionalidad interactiva de IDA Pro está diseñada para este propósito. Como regla general, se debe comenzar con una lista desensamblada que se genera automáticamente y luego continuar con la transformación del código en datos (y viceversa). Finalmente, se incluirá información adicional hasta que todo el proceso proporcione resultados claros.

Tenga en cuenta que al cargar cada archivo, IDA Pro crea una base de datos (“idb”).

La interfaz principal tiene numerosas vistas y ventanas. Por ejemplo:

La ventana Función contiene todas las funciones que IDA Pro puede realizar. «Importaciones» es para las bibliotecas importadas.

Cuando realiza la función de desmontaje, IDA Pro puede funcionar tanto en modo de texto como de gráfico. Mientras que el modo de texto muestra todo el programa desensamblado como si hubiera sido asignado a la memoria, el modo de gráfico muestra una sola función a la vez seleccionándola para mostrarla en un bloque de código interconectado.

Los usuarios pueden encontrar otras vistas en Ver → Abrir subvistas.

A pesar de sus grandes capacidades, el alto precio de IDA disuade a muchas personas que buscan una herramienta de análisis de malware/ingeniería inversa.

Alternativas a la AIF

Tolva

Esta herramienta puede funcionar en Linux y macOS. Hopper está diseñado para descompilar y depurar ejecutables Intel Mac, Windows e iOS (ARM) de 32/64 bits.

Hopper viene con un SDK que permite a los usuarios ampliar funciones o escribir sus propios archivos. Además, la mayoría de las funciones se pueden invocar mediante scripts de Python.

x64dbg

Otro depurador de código abierto (x64/x32) para Windows.

Alto

Un desensamblador preferido por los piratas informáticos que puede funcionar en tres modos: Texto, Hexadecimal y Decodificación (desmontaje).

AOD

Con sus impresionantes capacidades para admitir más de 60 arquitecturas y formatos de archivo que existen en los sistemas operativos y plataformas móviles más populares, definitivamente vale la pena mencionar este desensamblador gratuito de ingeniería inversa basado en web.

ninja binario

Si buscas una solución más sencilla, Binary Ninja podría ser su nombre. Esta herramienta de ingeniería inversa puede funcionar en Windows, macOS y Linux. Binary Ninja se distingue de sus competidores del mercado por una interfaz sencilla que permite a los usuarios realizar un análisis multiproceso basado en un IL personalizado que puede ajustarse fácilmente a diferentes compiladores, arquitecturas y plataformas.

Sin embargo, por alguna razón, esta herramienta no es muy popular en la comunidad de ingeniería inversa.

Ghidra

Ghidra es una plataforma de ingeniería inversa de código abierto patrocinada (pero gratuita) por la NSA que puede realizar desmontaje, ensamblaje, descompilación, gráficos y secuencias de comandos en macOS, Windows y Linux. Es capaz de procesar conjuntos de instrucciones y ejecutables que se ejecutan en modo automatizado o interactivo.

Ghidra se puede personalizar escribiendo complementos/scripts que utilicen Python o Java. Según Wesley McGrew , director de operaciones cibernéticas de Horne Cyber, Ghidra «tiene un conjunto completo de funciones y la mejor interfaz de usuario del mercado».

Tenga en cuenta que Ghidra tiene algunos errores que pueden permitir a los piratas informáticos ejecutar código en sistemas vulnerables.

radare2

Radare2 es una plataforma de código abierto que puede realizar desmontaje, depuración, análisis y manipulación de archivos binarios. El desensamblador y los depuradores son locales y remotos.

Este marco de ingeniería inversa funciona en Windows (desde XP), iOS, Linux, BSD, OSX, Android, Solaris y Haiku.

Radare2 proporciona a los usuarios una forma sencilla de abrir múltiples fuentes de entrada/salida (como discos, conexiones de red, controladores de kernel, procesos en depuración, etc.) debido a su avanzada interfaz de línea de comandos que permite a los usuarios analizar datos, compararlos, parchear binarios y programas, desmontar, buscar, reemplazar y visualizar. Se puede programar en Python, JavaScript, Go y más.

Este proyecto comenzó como una herramienta forense, por lo que puede realizar análisis forenses de archivos y tallado de datos.

Sin embargo, McGrew le dijo a TechBeacon que “[radare2 es] más difícil de usar en comparación con Ghidra. Esto se debe a que es principalmente un programa basado en línea de comandos”.

Además, en comparación con IDA Pro y x64dbg, radare2 no analiza automáticamente el binario para revelar funciones, código y datos (ya que no ejecuta ningún análisis al inicio).

Como IDA, radare2 tiene una línea de comando pero también puede ejecutar una interfaz gráfica llamada Cutter, que también es una interfaz web. Esta función puede visualizar estructuras de un par de tipos de archivos.

Radare2 soporta numerosas arquitecturas:

En total, este software reconoce 15 formatos de archivo (por ejemplo, binario sin formato y WinRAR) y 33 conjuntos de instrucciones (Intel x86 y ARM).

Por último, pero no menos importante, a diferencia de IDA Pro, radare2 es gratuito.

Conclusión

«Una licencia IDA Pro cuesta miles y miles de dólares, pero vale la pena. Es un software fantástico», afirmó McGrew.

Sin embargo, varias herramientas desafían la posición de liderazgo de IDA Pro. Esto se debe principalmente a que pueden ser diez veces más baratos que el producto Hex-Rays.

Entonces, para aquellos de ustedes que sienten que el precio de IDA Pro es demasiado alto, no se desanimen: existen alternativas que son bastante buenas.

¡Conviértete en un ingeniero inverso certificado!

Obtenga capacitación práctica en vivo sobre análisis de malware desde cualquier lugar y conviértase en un analista certificado de ingeniería inversa. Comienza a aprender

Fuentes

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *