Tutoriales

Lo que desearía haber sabido antes de aprender sobre análisis de malware e ingeniería inversa

cuando comencé a estudiar Análisis de malware e ingeniería inversa.Creo que la parte más difícil es comprender el código malicioso. De hecho, la parte más difícil es saber por dónde empezar.

Hay demasiadas herramientas, demasiados términos desconocidos y demasiados temas que compiten por atención. El lenguaje ensamblador, las partes internas de Windows, la depuración, el análisis de la memoria y los formatos ejecutables parecen ser importantes al mismo tiempo.

Si pudiera empezar de nuevo, haría el análisis de malware de forma muy diferente. Me centraría menos en aprenderlo todo y más en comprender cómo cada parte del proceso de análisis se conecta entre sí.

No es necesario dominar el montaje primero

Una cosa que desearía haber sabido antes es que no es necesario conocer el lenguaje ensamblador antes de comenzar el análisis de malware. Los conceptos básicos son suficientes para empezar.

Comprender los scratchpads, la memoria, las llamadas a funciones, la pila y las instrucciones comunes x86 o x86-64 le proporcionará una base sólida. Puedes mejorar el resto mientras analizas binarios reales.

Lo mismo se aplica a la programación en C y a las partes internas de Windows. No necesitas conocimientos expertos antes de abrir tu primer ejecutable sospechoso.

De hecho, Malware de ingeniería inversa es una de las mejores maneras de aprender estos temas. Cada comando desconocido o API de Windows le brinda una razón práctica para comprender cómo funciona.

El análisis de malware se parece más a una investigación

El análisis de malware se volvió más fácil cuando dejé de considerarlo programación. Estoy empezando a pensar que esto se parece más a investigar la escena de un crimen digital.

Imagínese recibir un mensaje llamado Payment_Receipt.pdf.exe. No es necesario que lo abra en el depurador inmediatamente, pero primero recopile información básica sobre el archivo.

Calcula su valor hash SHA-256, verifica el tipo de archivo, extrae la cadena legible y verifica las funciones importadas. Estos sencillos pasos ya pueden revelar pistas importantes.

Es posible que encuentre referencias a PowerShell, ubicaciones de inicio de sesión sospechosas, directorios temporales o funciones de red. Ninguno de ellos demuestra individualmente un comportamiento malicioso, pero juntos comienzan a contar una historia.

El análisis estático le ayuda a crear su primera imagen

Análisis de malware estático Significa buscar archivos sospechosos sin ejecutarlo. Para los principiantes, suele ser el lugar más seguro y sencillo para empezar.

Puede encontrar URL, direcciones IP, rutas de archivos, parámetros de línea de comandos, nombres de API de Windows o recursos integrados en archivos binarios.

El análisis estático también puede mostrar si un programa está empaquetado u ofuscado. El empaquetado puede estar involucrado si faltan cadenas legibles y el ejecutable tiene partes inusuales o alta entropía.

Piense en el análisis estático como en la construcción de un mapa. Está identificando áreas interesantes antes de permitir que se ejecute malware.

El análisis dinámico revela el verdadero propósito del malware

El análisis estático puede darte pistas, pero Análisis dinámico de malware Darte comportamiento. Aquí puedes observar lo que sucede cuando se ejecuta el archivo sospechoso.

En un laboratorio de análisis de malware aislado, puede observar el proceso de creación de muestras, modificar archivos, cambiar las opciones de inicio de sesión o probar una conexión de red.

Es posible que vea una cadena de proceso como invoice.exe emisión cmd.exe y luego powershell.exe. Esto por sí solo le da una dirección sólida para una mayor investigación.

Herramientas como Process Monitor, Process Explorer, Wireshark y muchos más recursos son muy útiles aquí. Le ayudan a comprender cómo interactúa el malware con Windows y la red.

La ingeniería inversa es más fácil cuando tienes un problema

Un error que cometí al principio fue abrir un programa en Ghidra y tratar de entenderlo todo. Salen miles de funciones y no sé por dónde empezar.

Un mejor enfoque es comenzar con una pregunta. Por ejemplo, ¿por qué se conecta el malware a la red?

También podría preguntar cómo establece la persistencia, si detecta máquinas virtuales o dónde almacena su configuración de comando y control.

Una vez que tengas preguntas, Ingeniería inversa de malware Concéntrate más. Puede realizar un seguimiento de cadenas, llamadas a funciones, referencias cruzadas y API sospechosas relacionadas con este comportamiento.

Comience con un pequeño kit de herramientas de análisis de malware

No necesitas docenas de herramientas cuando recién estás comenzando. Un pequeño conjunto de herramientas fiables facilita el aprendizaje correcto.

Chitra Útil para desensamblar y descompilar, x64dbg es valioso para depurar archivos binarios de Windows y rastrear la ejecución de programas.

FLOSS ayuda a extraer cadenas ocultas u ofuscadas, mientras que Detect It Easy identifica formatos ejecutables, compiladores, empaquetadores y protectores.

Para el análisis del comportamiento, Process Monitor y Wireshark son buenos puntos de partida. Estas herramientas por sí solas pueden enseñarle mucho sobre el comportamiento del malware.

Cree un laboratorio de análisis de malware seguro

Un entorno seguro es más importante que cualquier herramienta de ingeniería inversa. Nunca ejecute malware activo en computadoras o redes de producción cotidianas.

Utilice máquinas virtuales aisladas con instantáneas y redes restringidas. Esto le permite restaurar el sistema después de cada experimento.

FLARE máquina virtual Comúnmente utilizado para análisis de malware e ingeniería inversa de Windows. remnux Otro entorno útil para la investigación de malware y análisis de redes basados ​​en Linux.

No empieces con malware avanzado

Comenzar con ransomware sofisticado suena emocionante, pero puede dificultar innecesariamente el aprendizaje. El malware moderno puede contener múltiples técnicas antianálisis simultáneamente.

El empaquetado, el cifrado, el hashing de API, la inyección de procesos, la antidepuración y la instrumentación de máquinas virtuales pueden abrumar rápidamente a los principiantes.

Comience simplemente entrenando bits binarios. Aprenda a extraer cadenas, rastrear llamadas API, establecer puntos de interrupción, inspeccionar registros y rastrear funciones básicas.

Una vez que se familiarice con estos conceptos, será mucho más fácil acceder a muestras de malware del mundo real.

La mayor habilidad es saber qué preguntar.

Con el tiempo, el malware deja de parecerse a un código aleatorio. Empiezas a reconocer patrones y a hacer mejores preguntas.

¿Por qué un programa asigna memoria ejecutable? ¿Por qué debería modificar esta clave de registro? ¿Por qué comprobar si VMware está instalado?

Estas son las verdaderas preguntas Análisis de malware e ingeniería inversa. comenzar.

El objetivo no es comprender todas las instrucciones de una muestra de malware. El objetivo es encontrar una pista útil, comprender por qué existe y seguirla hasta que aparezca la siguiente pista.

Esto es lo que desearía haber sabido antes de comenzar mi análisis de malware.

Una vez que se adquiere este hábito, la ingeniería inversa del malware se vuelve menos abrumadora. En lugar de mirar código ilegible, comienza a descubrir las historias ocultas dentro de archivos binarios.

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba