Análisis de malware
Comparación de herramientas de análisis de malware automatizadas en la nube
febrero por Dejan Lukan
Servicios de análisis de malware en la nube
En esta sección, proporcionamos una lista de herramientas de análisis de malware en línea automatizadas en la nube que ya no están disponibles debido a que el sitio web está fuera de línea o el servicio fue interrumpido por los creadores del entorno de análisis.
- Aerie: https://aerie.cs.berkeley.edu
- CWSandbox: http: //cwsandbox.org
- AmenazaTrack: http://www.treattrack.com
- Malbox: http://malbox.xjtu.edu.cn
- Amenaza visual: http://www.visualthreat.com
- XecScan: http://scan.xecure-lab.com
- Norman Sandbox: https://www.norman.com/analysis
A pesar de que bastantes herramientas de análisis no están disponibles, todavía hay muchas que reciben soporte y desarrollo activamente. A continuación se presentan las herramientas de análisis de malware online que todavía están presentes en Internet. Cada una de las herramientas tiene una letra escrita entre corchetes, la cual se utiliza posteriormente para presentar cada una de las herramientas en una tabla con el fin de preservar el espacio y brindar resultados más claros. Cada una de las herramientas también tiene una dirección URL donde está disponible el servicio en caso de que desee enviar diferentes archivos para su análisis.
¡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
- [A] Anubis: http://anubis.iseclab.org
- [C] Comodo: http://camas.comodo.com
- [D] Analizador de documentos: http://www.document-analyzer.net
- [E] Eureka: http://eureka.cyber-ta.org
- [J] Joe Sandbox: http://www.joesecurity.org
- [M] Malwr: https://malwr.com/submission
- [MS] Zona de pruebas móvil: http://mobilesandbox.org
- [TE] Experto en amenazas: http://www.threatexpert.com/submit.aspx
- [TT] Seguimiento de amenazas: http://www.threattracksecurity.com/resources/sandbox-malware-analysis.aspx
- [V] Vicheck: https://www.vicheck.ca
- [X] Xandora: http://www.xandora.net/xangui
Tenga en cuenta que existen otras plataformas de análisis de malware en la nube, pero no las tomamos en consideración en este artículo. Por lo tanto, algunos de ellos no se presentan ni describen a continuación.
Formatos de archivos y tipos de documentos admitidos
Dado que el malware se puede ocultar en casi cualquier formato de archivo o tipo de documento, las herramientas de análisis de malware deben ser compatibles con dichos formatos o tipos de documentos para poder detectar la amenaza que contienen. Por ejemplo: si un atacante ha ocultado una carga útil maliciosa dentro de un documento PDF, la herramienta de análisis de malware debe ser compatible con PDF para poder manipular documentos PDF. Si no hay soporte para PDF, no será posible la disección del documento PDF y, en consecuencia, la herramienta no podrá encontrar carga útil maliciosa. Si miramos el documento PDF a través de los ojos de una herramienta de análisis de malware, el documento PDF es solo un conjunto de bytes aleatorios.
Los atacantes utilizan principalmente los formatos de archivos, tipos de documentos y otros elementos que se presentan a continuación para incluir cargas útiles maliciosas. La mayoría de los elementos presentados no necesitan mayor introducción, ya que se utilizan en nuestra vida diaria, pero aún así brindaremos una breve explicación de cada uno de ellos.
- exe: archivos ejecutables de Windows PE que normalmente se utilizan para programas ejecutables de Windows.
- elf: archivos ejecutables ELF de Linux que normalmente se utilizan para programas ejecutables de Linux.
- mach-o: archivos ejecutables MAC OS X Mach-O que normalmente se utilizan para programas ejecutables de Mac.
- apk: archivos ejecutables APK de Android
- URL: URL
- pdf: documentos PDF
- doc/docx: documentos DOC/DOCX
- ppt/pptx: documentos PPT/PPTX
- xsl/xsls: documentos XSL/XSLS
- htm/html: páginas web HTM/HTML
- jar: archivos ejecutables JAR Java
- rtf: documentos RTF
- dll: bibliotecas DLL
- db: archivos de base de datos DB
- png/jpg: imágenes PNG/JPG
- zip/rar: ZIP/RAR archivado
- cpl: subprogramas del panel de control
- es decir: analizar el proceso de Internet Explorer al abrir una URL
- ps1: secuencias de comandos de Powershell
- Python: secuencias de comandos de Python
- vbs: archivos VBScript
La siguiente tabla presenta los formatos de archivos admitidos y los tipos de documentos de cada servicio de análisis de malware automatizado en la nube. Las filas representan formatos de archivos o tipos de documentos, mientras que las columnas se utilizan para cada una de las herramientas automatizadas de análisis de malware presentadas por una o dos letras (como se presentó anteriormente). El ✔ se utiliza para indicar que cierto formato de archivo o tipo de documento es compatible con un servicio automatizado de análisis de malware, mientras que una celda vacía indica lo contrario. El * se utiliza para marcar que la compatibilidad con el tipo de documento se está implementando, pero aún no está disponible, al momento de escribir este artículo.
Tabla 1: tipos de documentos admitidos por diferentes herramientas de análisis de malware
Tipo de documento A C D E J M MS TE TT V Xexe
✔
✔
✔
✔
✔
✔
✔
duende
*
macho
✔
apk
✔
✔
✔
URL
✔
✔
✔
✔
✔
✔
documento/docx
✔
✔
✔
✔
ppt/pptx
✔
✔
✔
xsl/xsls
✔
✔
✔
✔
rtf
✔
html/html
✔
✔
frasco
✔
✔
dll
✔
✔
base de datos
✔
png/jpg
✔
zip/rar
✔
✔
cpl
✔
es decir
✔
ps1
✔
pitón
✔
vbs
✔
Pasé bastante tiempo armando la tabla anterior, que resumió los formatos de archivo admitidos, tipos de documentos y otros tipos de elementos que se pueden analizar de forma automatizada. De la tabla podemos determinar rápidamente que no existe un servicio que pueda usarse para analizar cualquier tipo de archivo, ya que el código malicioso se incluye en archivos y documentos de una manera profundamente diferente. Al agregar un código malicioso en un archivo ejecutable, podemos hacerlo incluyendo instrucciones de ensamblaje malicioso en su sección de archivo .text, y esa es solo una de las formas de hacerlo. Por otro lado, cuando incluimos un código malicioso en un documento .docx, generalmente lo incluimos en forma de macro maliciosa, que Microsoft Word ejecutará al abrir el documento.
A continuación, presentamos diferentes categorías para clasificar los formatos de archivos, tipos de documentos y otros elementos presentados en la tabla anterior. En cada una de las categorías, también analizaremos brevemente cómo se ejecuta el código malicioso y qué se necesita para el análisis de malware automatizado en la nube de dicho código.
- Archivos ejecutables [exe, elf, mach-o, apk, dll]: un archivo ejecutable malicioso se distribuye por Internet y los usuarios lo descargan en forma de programas de software y juegos descifrados. Los usuarios descargan un programa creyendo que es algo que quieren, y lo es, pero generalmente se agrega un código adicional al archivo que contiene una carga útil maliciosa que se ejecuta en la computadora del usuario y, por lo tanto, la infecta.
- Documentos [pdf, doc/docx, ppt/pptx, xsl/xsls, rtf]: a diario se descubren vulnerabilidades en diferentes programas de software. Por lo tanto, si un atacante encuentra una vulnerabilidad en Acrobat Reader (admite formato de archivo pdf), Microsoft Word/OpenOffice (admite doc/docx, ppt/pptx, xsl/xslx, rtf), puede formar un documento que el programa ganó. No podrá procesar el archivo, sino que se bloqueará. Dependiendo del tipo de vulnerabilidad, un atacante posiblemente pueda ejecutar una carga útil maliciosa incluida en el documento.
- Navegador web [url, htm/html, jar, es decir]: los navegadores web también contienen vulnerabilidades como PDF Reader y Office Suite. Por lo tanto, un atacante puede crear un sitio web malicioso que el navegador web no podrá manejar, lo que provocará que el navegador web falle, durante el cual un atacante puede ejecutar código arbitrario.
- Archivos comprimidos [zip/rar]: los archivos comprimidos se pueden utilizar para distribuir archivos maliciosos por Internet. Si un archivo malicioso se coloca dentro de un archivo protegido con contraseña, las soluciones de análisis habituales no podrán echar un vistazo al interior del archivo y determinar si contiene archivos maliciosos.
- Imágenes [png/jpg]: un atacante puede ocultar una carga útil maliciosa dentro de una imagen, que puede ser procesada por una aplicación web vulnerable que se ejecuta en un servidor web configurado incorrectamente. Por lo tanto, una solución de análisis debería poder analizar varios formatos de archivos de imágenes para determinar si contienen algo fuera de lo común, como una carga útil maliciosa.
- Código (python, vbs, ps1): un atacante también puede distribuir código malicioso escrito en un lenguaje de programación/scripting apropiado, que luego es procesado por alguna aplicación en la máquina de la víctima. Un ejemplo de esto es la macro de PowerShell (ps1) incluida en un documento de Word, que se ejecuta a petición del usuario cuando permite la ejecución de macros al abrir un documento .docx malicioso en Microsoft Word.
Técnicas para detectar entornos automatizados
Existen varias técnicas para detectar entornos automatizados de análisis de malware, que se incorporan en muestras de malware. Cuando los archivos binarios de malware utilizan diferentes comprobaciones para determinar si se están ejecutando en un entorno controlado, normalmente no ejecutan acciones maliciosas al detectar el entorno.
La siguiente imagen presenta una descripción general del malware y las técnicas que puede utilizar para detectar si se está ejecutando en un entorno automatizado. Para aclarar la imagen, describiremos el proceso en detalle.
Una vez que el malware ha infectado el sistema, puede ejecutarse en modo usuario o kernel, según las técnicas de explotación. Por lo general, el malware se ejecuta en modo de usuario, pero existen múltiples técnicas para que el malware obtenga privilegios adicionales para ejecutarse en modo kernel. A pesar de que el malware se ejecuta en modo usuario o kernel, existen múltiples técnicas que el malware puede utilizar para detectar si se está ejecutando en un entorno de análisis de malware automatizado. En el nivel más alto, las técnicas se dividen en las siguientes categorías:
- Detectar un depurador: los depuradores se utilizan principalmente cuando un analista de malware inspecciona manualmente una muestra de malware para comprender lo que hace. Los depuradores no se utilizan con frecuencia en el análisis automatizado de malware, pero aún se pueden incorporar diferentes técnicas en la muestra de malware para dificultar la depuración de la muestra de malware.
- Trucos antidesmontaje: esta categoría no está directamente relacionada con entornos automatizados de análisis de malware, pero cuando un analista revisa manualmente la muestra de malware en un depurador, el malware puede utilizar diferentes técnicas para confundir a los motores de desensamblado y producir código desensamblado incorrecto. Esto solo es útil cuando un analista de malware analiza la muestra de malware manualmente, pero no tiene mucho impacto en entornos de análisis de malware automatizados.
- Detectar un entorno Sandbox: un entorno sandbox es un entorno separado del sistema operativo principal donde se pueden ejecutar muestras de malware sin causar ningún daño al resto del sistema. El objetivo principal del entorno sandbox es emular diferentes partes del sistema, o el sistema completo para separar el sistema invitado del sistema anfitrión. Dependiendo de la capa de virtualización, existen diferentes tipos de sandboxes, que se presentan a continuación.
Cada herramienta automatizada de análisis de malware utiliza diferentes sistemas de backend para ejecutar el malware en un entorno controlado. El malware se puede ejecutar en máquinas físicas o en máquinas virtuales. Tenga en cuenta que las viejas máquinas físicas no utilizadas que se encuentran en casa serían un candidato perfecto para establecer un laboratorio de análisis de malware, lo que haría considerablemente más difícil para los binarios de malware determinar si se están ejecutando en un entorno controlado. Al construir nuestro propio laboratorio de análisis de malware, tenemos que conectar varias máquinas para formar una red, lo que se puede hacer simplemente mediante un conmutador virtual o físico, según el tipo de máquinas utilizadas.
Cada servicio de análisis de malware automatizado en la nube utiliza algún tipo de entorno de virtualización para ejecutar sus muestras de malware, como Qemu/KVM, VirtualBox, VMWare, etc. Según la tecnología de virtualización que se utilice, una muestra de malware puede utilizar diferentes técnicas para detectar que está siendo analizada. y rescindir inmediatamente. Por lo tanto, la muestra de malware no se marcará como maliciosa, ya que finalizó de forma preventiva sin ejecutar el código malicioso.
En esta sección hemos visto que diferentes servicios de análisis de malware en la nube utilizan diferentes tecnologías de virtualización para ejecutar muestras de malware enviadas. Hasta donde yo sé, solo Joe Sandbox tiene la opción de ejecutar muestras de malware en máquinas físicas reales, lo que evita que se utilicen ciertas técnicas en muestras de malware para detectar si se están ejecutando en un entorno de análisis de malware automatizado. Aún así, existen muchas otras técnicas que un malware puede utilizar para detectar si está siendo analizado.
Se trata de un juego del gato y el ratón, en el que a diario se inventan y utilizan nuevas técnicas de detección mediante muestras de malware. Por otro lado, existen numerosas técnicas antidetección que se utilizan para evitar que el malware determine que se está ejecutando en un entorno automatizado de análisis de malware. Cuando aparece una nueva técnica de detección, normalmente se crea una nueva técnica antidetección para inutilizar la técnica de detección.
Conclusión
En este artículo presentamos las diferencias entre múltiples servicios de análisis de malware en la nube que se pueden utilizar para analizar diferentes formatos de archivos y tipos de documentos. Cada servicio admite sólo una fracción de todos los formatos de archivos y tipos de documentos en los que se puede inyectar código malicioso. Por tanto, dependiendo del archivo que tengamos que analizar, podremos utilizar los servicios que admitan su correspondiente formato de archivo o tipo de documento.
¡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
In order to analyze a document, we have to choose the appropriate service in order to do so. Since there are many techniques an attacker can use to determine whether the malicious payload is being executed in an automated malware analysis environment, some malicious samples won’t be analyzed correctly, resulting in false positives. Therefore, such services should only be used together with a reverse engineer or malware analyst in order to manually determine whether the file is malicious or not. Since there are many malicious samples distributed around the Internet on a daily basis, every sample cannot be manually inspected, which is why cloud automated malware analysis services are a great way to speed up the analysis.