This is a Spanish translation of Lenny Zeltser's article Mastering 4 Stages of Malware Analysis. It was translated from English by Andres Velazquez. Este artículo fue traducido del inglés por Andrés Velázquez (@cibercrimen).
El análisis de software malicioso o malware involucra una variedad de tareas, algunas más simples que otras. Estas tareas pueden ser agrupadas en etapas basadas en la naturaleza de las técnicas de análisis de software malicioso. Agrupadas como capas, una encima de otra, estas etapas forman una pirámide que va creciendo conforme complejidad. Entre más te acerques a la punta, más grande es el esfuerzo y menos común el set de habilidades.
Análisis Completamente Automatizado
La manera más fácil de evaluar la naturaleza de un archivo sospechoso es escaneándolo utilizando herramientas completamente automatizadas, algunas están disponibles como productos comerciales y otras de forma gratuita. Estas herramientas están diseñadas para evaluar rápidamente qué podría hacer el espécimen si se corriera en el sistema. Típicamente generan reportes con detalles como llaves de registro que usa el programa malicioso, sus valores mutex (o mutantes), actividad de archivos, tráfico de red, etc.
Las herramientas completamente automatizadas normalmente no proveen tanta información como lo podría hacer la intuición de un analista humano al examinar el espécimen en un modo mucho más manual. De cualquier forma, contribuyen en la respuesta ante un incidente al procesar rápidamente una vasta cantidad de malware, permitiéndole al analista (de quien el tiempo es muy valioso) enfocarse en casos que realmente requieren atención humana.
Para un listado de servicios y herramientas gratuitos que pueden realizar análisis automatizado, revisa mis listas de Toolkits para Análisis automatizado de malware y Servicios automatizados para análisis de malware. (en inglés)
Análisis Estático de Propiedades
Un analista interesado en dar un vistazo más de cerca a un archivo sospechoso, puede proceder examinando sus propiedades estáticas. Estos detalles pueden obtenerse relativamente rápido, porque no involucran el tener que correr el programa potencialmente malicioso. Las propiedades estáticas incluyen las cadenas de caracteres en el archivo, detalles de la cabecera, hashes, recursos incrustados, firmas del packer, metadatos como la fecha de creación, etc.
Mirar las propiedades estáticas puede a veces ser suficiente para definir indicadores básicos de compromiso. (en inglés) Este proceso también ayuda a determinar si el analista debería dar un vistazo más de cerca al espécimen usando técnicas más comprensivas y en dónde enfocar los pasos subsecuentes. Analizar propiedades estáticas es útil como parte del esfuerzo triage del accidente.
VirusTotal es un ejemplo de una herramienta en línea excelente, cuya producción incluye propiedades estáticas del archivo. Para dar un vistazo a algunas utilidades gratuitas, puedes correrla localmente en tu laboratorio, mira mi post Analizando Propiedades Estáticas de archivos sospechosos en Windows y Examinando de Ofuscación XOR para análisis de malware. (en inglés)
Análisis Interactivo de Comportamiento
Después de usar herramientas automatizadas y examinar las propiedades estáticas del archivo así como también haber tomado en cuenta el contexto general de la investigación, el analista puede decidir dar un vistazo aún más de cerca al espécimen. Esto frecuentemente conlleva infectar y aislar un sistema de laboratorio con el programa malicioso para observar su comportamiento.
El análisis de comportamiento involucra examinar cómo corre la muestra en el laboratorio para entender sus registros, sistema de archivos, proceso y actividades de red. Entender cómo usa la memoria el programa (por ejemplo, la realización de análisis forense de memoria) puede aportar revelaciones adicionales. Esta etapa de análisis de malware es especialmente útil cuando el investigador interactúa con el programa malicioso, en lugar de solo observar pasivamente el espécimen.
El analista puede observar que el espécimen atenta con conectarse a un huésped en particular, el cual no está accesible en el laboratorio aislado. El investigador podría imitar el sistema en el laboratorio y repetir el experimento para ver qué haría el programa malicioso una vez que pudiera conectarse. Por ejemplo, si el espécimen usa al huésped como servidor de comando y control (C2), el analista puede tener la posibilidad de aprender acerca del espécimen simulando las actividades C2 del atacante. Este acercamiento para moldear el laboratorio y evocar las características de comportamiento adicionales aplica a los archivos, claves de registro y otras dependencias que la muestra pueda tener.
Poder ejercer este tipo de poder sobre el espécimen en un laboratorio propiamente orquestado, es lo que diferencia esta etapa de las tareas de un análisis totalmente automatizado. Interactuar con el malware de forma creativa consume mayor tiempo y es más complicado que emplear herramientas totalmente automatizadas. Por lo general requiere mayores habilidades que el realizar tareas más tempranas en la pirámide.
Para mayor información relacionada con el análisis de comportamiento interactivo revisa mi post Asolación de Red Virtualizada para un laboratorio de análisis de Malware y mi webcast Introducción al análisis de comportamiento de software malicioso y la tercera parte del post de Jake Williams Consejos en el Análisis de Malware e Ingeniería Inversa.
Decodificación Manual de Malware
Practicar Ingeniería Inversa al código que compromete el espécimen, puede agregar valiosas aportaciones a los elementos encontrados después de completar el análisis de comportamiento interactivo. Algunas de las características del espécimen son simplemente imprácticas para ejercer y examinar sin hacer lo propio con el código. Información que solo la reversión manual del código puede proveer incluye:
- Decodificar datos cifrados almacenados o transferidos por el espécimen.
- Determinar la lógica de generación del algoritmo de dominio del programa malicioso
- Entender otras capacidades del ejemplar que no se exhiben por si mismas durante el análisis de comportamiento.
La decodificación manual de malware involucra el uso de un desensamblador y un debugger, en lo que podría usar la ayuda de un decompilador y una variedad de plugins y herramientas especializadas que automatizan algunos aspectos de estas labores. La memoria forense puede ayudar en esta etapa de la pirámide también.
Invertir el código puede tomar mucho tiempo y requiere un conjunto de habilidades que son relativamente raras. Por esta razón, muchas investigaciones de malware no llegan a profundizar hasta el código. Sin embargo, saber cómo llevar a cabo por lo menos algunos pasos de inversión de código, incrementa en gran medida el campo de visión del analista en cuanto a la naturaleza del programa malicioso en un equipo.
Para tener una idea de los aspectos básicos de la ingeniería inversa a nivel de código en el contexto de otras etapas de análisis de malware, sintonizar mi webcast Introducción al Análisis de Malware. Para un mayor acercamiento a la reversión de código manual, lee el libro en línea de Dennis Yurichev Ingeniería inversa para principiantes.
Combinación de las Etapas de Análisis de Malware
El proceso de examinación de software malicioso consta de varias etapas, que podrían ser enumeradas conforme mayor complejidad y representadas como una pirámide. Sin embargo, ver estas etapas como pasos discretos y secuenciales simplifica en demasía los pasos del proceso de análisis de malware. En la mayoría de los casos, se entrelazan diferentes tipos de tareas de análisis con las observaciones generadas en una etapa, relacionando esfuerzos realizados en otra. Tal vez las etapas podrían estar representadas por un ciclo de "lavar, enjuagar, repetir", que sólo podría ser interrumpido cuando el analista se queda sin tiempo.
Si estás interesado en este tema, revisa el curso de análisis de malware que imparto en el SANS Institute.
La pirámide presentada en este post está basada en un diagrama similar elaborado por Alissa Torres (@sibertor). Este artículo fue traducido del inglés por Andrés Velázquez (@cibercrimen). El artículo original se encuentra en zeltser.com.
Lenny Zeltser teaches malware analysis at SANS Institute. He is active on Twitter and writes a security blog.