# Análisis de malware

El análisis de malware es el estudio o proceso para determinar la funcionalidad, el origen y el impacto potencial de una muestra determinada de malware, como un virus, un gusano, un troyano, un rootkit o una puerta trasera. El malware o software malicioso es cualquier software de ordenador destinado a dañar el sistema operativo del host o a robar datos confidenciales de usuarios, organizaciones o empresas. El malware puede incluir software que recopile información del usuario sin permiso.

## Casos de uso

Existen tres casos de uso típicos que hacen necesario el análisis de malware:
* Gestión de incidentes de seguridad informática: Si una organización descubre o sospecha que algún malware puede haber entrado en sus sistemas, es posible que un equipo de respuesta desee realizar un análisis de malware de cualquier muestra potencial que se descubra durante el proceso de investigación para determinar si se trata de malware y, en caso afirmativo, qué impacto podría tener en los sistemas dentro del entorno de la organización objetivo.
* Investigación de malware: Los investigadores de malware académicos o industriales pueden realizar análisis de malware simplemente para comprender cómo se comporta el malware y las últimas técnicas utilizadas en su construcción.
* Indicador de extraccion de compromiso : Los proveedores de productos y soluciones de software pueden realizar análisis de malware masivo para determinar nuevos indicadores potenciales de compromiso; esta información puede alimentar el producto o solución de seguridad para ayudar a las organizaciones a defenderse mejor contra los ataques de malware.

## Tipos

El método por el que se realiza el análisis de malware suele ser de dos tipos:
* Análisis estático de malware: El análisis estático o de código se realiza normalmente diseccionando los diferentes recursos del archivo binario sin ejecutarlo y estudiando cada componente. El archivo binario también se puede desensamblar (o hacer ingeniería inversa) usando un desensamblador como IDA. El código de la máquina a veces puede traducirse en código ensamblador que puede ser leído y comprendido por los humanos: el analista de malware puede entonces dar sentido a las instrucciones de ensamblado y tener una imagen de lo que se supone que el programa debe realizar. Algunos programas maliciosos modernos se crean utilizando técnicas evasivas para derrotar este tipo de análisis, por ejemplo, incrustando errores de código sintáctico que confundirán a los desensambladores pero que seguirán funcionando durante la ejecución real.
* Análisis dinámico de malware: El análisis dinámico o de comportamiento se realiza observando el comportamiento del malware mientras se está ejecutando en un sistema host. Esta forma de análisis se realiza a menudo en un sandbox environment para evitar que el malware infecte realmente a los sistemas de producción; muchas de estas cajas de arena son sistemas virtuales que pueden ser devueltos fácilmente a un estado limpio una vez finalizado el análisis. El malware también puede depurarse mientras se ejecuta utilizando un depurador como GDB o WinDbg para observar el comportamiento y los efectos en el sistema host del malware paso a paso mientras se procesan sus instrucciones. El malware moderno puede mostrar una amplia variedad de técnicas evasivas diseñadas para derrotar el análisis dinámico, incluyendo pruebas para entornos virtuales o depuradores activos, retrasar la ejecución de cargas útiles maliciosas o requerir algún tipo de entrada de usuario interactiva.

## Etapas

El examen de software malicioso implica varias etapas, que incluyen, entre otras, las siguientes:
* Inversión manual de código
* Análisis de Comportamiento Interactivo
* Análisis de propiedades estáticas
* Análisis totalmente automatizado

## Software
### Herramientas de análisis binario

* pestudio - https://www.winitor.com
* peid
* exeinfope - https://web.archive.org/web/20181113223656/http://www.exeinfo.pe.hu/
* PEView
* Recurso hacker : utilidad gratuita de extracción de recursos y compilador de recursos para Windows de Angus Johnson
* HxD : hex Editor para Windows por Maël Hörz

### Desensambladores

* IDA Pro: Disassembler por Hex-Rayos
* Radare2 : Disassembler por panqueque
* BinaryNinja : Disassembler Por Vector 35

### Depuradores

* GNU Depurador: Depurador por GNU
* WinDbg: Depurador por Microsoft
* OllyDbg: Depurador por OllyDbg
* x64Dbg: Depurador por x64Dbg

### Sandboxes

* Análisis híbrido: Servicio gratuito de análisis de malware desarrollado por Payload Seguridad. Con este servicio puede enviar archivos para un análisis estático y dinámico en profundidad.
* ANY.: Servicio de búsqueda interactiva de malware con interacción en tiempo real y monitorización de procesos. Disponible para uso gratuito desde 2018.
* CWSandbox:solución inicial de malware sandbox c. 2006-2011 de Sunbelt Software, se convirtió en GFISandbox.
* GFISandbox: Sandbox Solución c 2011-2013 de GFI Software, se convirtió en ThreatAnalyzer.
* Cuckoo Sandbox: Sandbox Solución c. 2012?, código abierto en GitHub, diseñado para la detección y perfilación automática de malware.
* Joe Sandbox: Sandbox solución c. 2010 de Joe Seguridad. Primera solución que introduce el análisis híbrido. Permite el análisis en cualquier dispositivo, incluyendo ordenadores portátiles, PCs y teléfonos. Soporta análisis en Windows, Android, MAC OS X e iOS.
* ThreatAnalyzer: Sandbox Solución c. 2013@–presente de ThreatTrack Seguridad, diseñado para la detección automática de malware y la creación de perfiles detallados.
* VMRay: Sandbox Solución c. 2015 de VMRay. Creado por el autor original de CWSandbox. En lugar de engancharse, el equipo de destino no se modifica y la supervisión y el control se realizan en la capa de hipervisor.
Nota: Algunos Sandboxes alojados, como Malwr, utilizan uno de los productos anteriores bajo el capó (Malwr utiliza Cuckoo).