Parte: 6 — Análisis de malware · Fuente: Practical Malware Analysis (Sikorski & Honig) ⏱️ Duración estimada: 90 min · Nivel: Fundamentos
Extraer el máximo de información de una muestra sin ejecutarla: hashes, strings, imports, entropía, recursos y firmas. El análisis estático básico es el primer filtro del triaje: en minutos permite decidir si la muestra es interesante, con qué familia se relaciona y qué capacidades sugiere su código.
Al finalizar, el alumno podrá:
| # | Tema | Por qué importa |
|---|---|---|
| 1 | Hashes y fuzzy hashing (ssdeep) | Identidad de la muestra y similitud |
| 2 | imphash | Agrupa muestras por su tabla de imports |
| 3 | Strings ASCII/Unicode | Dominios, rutas, comandos, mensajes |
| 4 | Tabla de imports (APIs) | Revela capacidades (red, cripto, inyección) |
| 5 | Entropía y detección de packers | Alta entropía sugiere empaquetado/cifrado |
| 6 | Recursos incrustados | Payloads o configuraciones ocultas |
| 7 | Firmas y VirusTotal | Consenso e inteligencia previa |
floss (extrae strings ofuscados).capa (Mandiant) para capacidades.⚠️ Nota ética y de seguridad: aunque el análisis estático no ejecuta la muestra, trabájala igualmente dentro de la VM aislada. Un doble clic accidental o una vista previa del explorador pueden detonarla. Mantén la extensión visible y nunca la ejecutes fuera del lab.
Trabaja sobre una muestra de referencia en tu VM aislada (por ejemplo la que uses en toda la parte):
sha256sum muestra.bin, ssdeep muestra.bin. Guarda ambos en tu ficha.floss muestra.bin > strings.txt. Busca URLs, rutas (C:\Users\...), claves de registro, comandos y mensajes.CreateRemoteThread, WinExec, InternetOpen, CryptEncrypt), timestamp de compilación, y imphash..text o una sección extra supera ~7.0 (indicio de packing).capa muestra.bin para obtener capacidades mapeadas a ATT&CK (p. ej. "encrypt data", "create process").strings.txt y extrae 5 IOCs candidatos..rsrc es sospechosa.capa y traduce 3 reglas disparadas a lenguaje llano.Produce una ficha de triaje estático de una muestra con: hashes (incl. imphash y ssdeep), 8 strings relevantes clasificados, 6 imports con su implicación, veredicto de packing con entropía, y familia sugerida por VT. Criterio de aceptación: cada afirmación de capacidad está respaldada por un import o string concreto citado en la ficha, y el veredicto de packing incluye el valor de entropía observado.
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
| "No hay strings útiles" | Muestra empaquetada; los strings aparecen tras desempacar |
| Confiar en el timestamp de PE | Es falsificable; no lo uses como prueba fuerte |
| Pocos imports visibles | Imports resueltos dinámicamente; revisa GetProcAddress/LoadLibrary |
| Entropía alta = siempre malware | Muchos instaladores legítimos también se comprimen; correlaciona |
| Subir la muestra a VT sin permiso | Puede filtrar información sensible; consulta por hash primero |
❓ ¿El análisis estático basta? Para triaje sí, pero packing y resolución dinámica de APIs limitan lo que ves. Se complementa con análisis dinámico y desensamblado.
❓ ¿Por qué usar imphash? Porque agrupa muestras compiladas de forma similar aunque cambien strings o payload, útil para pivotar en inteligencia.
❓ ¿Debo subir la muestra a VirtualTotal? Consulta primero por hash. Subir el binario lo hace público para otros y puede alertar al atacante.
capa. https://github.com/mandiant/capaClase 142 — Laboratorio seguro de análisis de malware