Análisis de malware

Ofuscación, codificación y cifrado de malware

14 de enero de por Tiffany Lewis

El malware es complejo y está destinado a confundir. Muchos usuarios de computadoras piensan que malware es simplemente otra palabra para “virus”, cuando en realidad un virus es un tipo de malware. Y además de los virus, el malware incluye todo tipo de códigos maliciosos y no deseados, incluidos spyware, adware, troyanos y gusanos. Se sabe que el malware cierra redes eléctricas, roba identidades y retiene secretos gubernamentales para pedir rescate.

Siempre se requiere una rápida detección y extracción de malware, pero el malware no lo pondrá fácil. El malware es travieso y resbaladizo y utiliza trucos como ofuscación, codificación y cifrado para evadir la detección.

¡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

Ofuscación de malware

Comprender la ofuscación es más fácil que pronunciarla. La ofuscación del malware hace que los datos sean ilegibles. Casi todos los programas maliciosos lo utilizan.

Los datos incomprensibles suelen contener palabras importantes, llamadas «cadenas». Algunas cadenas contienen identificadores como el nombre del programador del malware o la URL de la que se extrae el código destructivo. La mayoría del malware tiene cadenas ofuscadas que ocultan las instrucciones que le dicen a la máquina infectada qué hacer y cuándo hacerlo.

La ofuscación oculta tan bien los datos del malware que los analizadores de código estático simplemente pasan de largo. Sólo cuando se ejecuta el malware se revela el verdadero código.

Técnicas simples de ofuscación de malware

Se utilizan comúnmente técnicas simples de ofuscación de malware como OR exclusivo (XOR), Base64, ROT13 y codepacking. Estas técnicas son fáciles de implementar e incluso más fáciles de pasar por alto. La ofuscación puede ser tan simple como texto interpuesto o relleno adicional dentro de una cadena. Incluso los ojos entrenados a menudo pasan por alto el código ofuscado.

El malware imita casos de uso cotidianos hasta que se ejecuta. Tras la ejecución, el código malicioso se revela y se propaga rápidamente por el sistema.

Técnicas avanzadas de ofuscación de malware

La ofuscación de malware de siguiente nivel es activa y evasiva. Las técnicas avanzadas de malware, como la conciencia ambiental, las herramientas automatizadas confusas, la evasión basada en el tiempo y la confusión de datos internos, permiten que el malware aceche dentro de los entornos operativos y pase desapercibido para el software antivirus de buena reputación.

Algunos programas maliciosos se alimentan de los usuarios que hacen clic como cebo para descargar archivos de malware o abrir páginas web maliciosas, mientras que otros interceptan el tráfico e inyectan malware, logrando un impacto amplio y rápido.

Uso de cifrados simples y esquemas de codificación para ofuscar malware

El nombre del juego es evasión. Rompecabezas de malware con cifrados y esquemas de codificación simples. Hacer que el malware sea difícil de detectar y decodificar retrasa el análisis y la solución, ya que el código malicioso trabaja continuamente entre bastidores.

Codificación de malware

Base64 se utiliza a menudo para codificar malware. Suena como un lenguaje militar encubierto, pero en realidad es un esquema común de codificación de binario a texto. Fue creado para codificar y decodificar en el servicio del estándar de Internet Extensiones de correo de Internet multipropósito (MIME) que formatea los correos electrónicos para su transmisión.

El propósito esencial de Base64 es estandarizar el código. Los programadores maliciosos se aprovechan de esto inyectando cadenas de caracteres falsas que imitan el estándar Base64. El código parece estándar y funciona normalmente hasta que se decodifica.

Decodificando malware

También se necesita una estrategia ofensiva para combatir la codificación, el cifrado y la ofuscación del malware. El software utilizado para decodificar malware tiene como objetivo revelar el malware de forma lógica y directa antes de su ejecución.

Después de la ejecución, el malware se propaga y el código se vuelve ilegible. Primero se aíslan las cadenas de texto problemáticas y luego se utilizan técnicas de búsqueda y reemplazo para eliminar el código malicioso. Una vez eliminado, podrá ver una imagen más clara del código limpio.

Cifrado de malware

En el sentido tradicional, el cifrado de malware es el proceso de codificar información para que sólo las partes autorizadas puedan acceder a los datos en un formato legible.

Cuando el cifrado de malware se utiliza con fines maliciosos, se denomina ransomware. El ransomware mantiene los archivos como rehenes mediante cifrado. Cuando se recibe el pago del rescate, los archivos se descifran y el usuario recupera el acceso. Los creadores de malware actuales suelen solicitar el pago en forma de criptomoneda o tarjeta de crédito.

El malware suele infectar los sistemas cuando esquemas de phishing u otras tácticas de correo electrónico, haciéndose pasar por correo electrónico legítimo, convencen a un usuario para que haga clic en un enlace o descargue un archivo.

Ingeniería inversa y algoritmos criptográficos comunes

Los ingenieros inversos, trabajando hacia atrás desde la infección, utilizan herramientas de desensamblaje para revelar las modificaciones de archivos que ocurren cuando ataca el malware. Los programadores maliciosos suelen utilizar el cifrado para evitar el desensamblaje y, por lo tanto, evitar la ingeniería inversa.

Es útil que los ingenieros inversos comprendan los algoritmos criptográficos comunes que se utilizan para crear código cifrado simétricamente. Si el cifrado del malware se creó utilizando un algoritmo criptográfico común, el código se puede descifrar y se puede continuar con la ingeniería inversa. Sin embargo, si la criptografía es asimétrica, el algoritmo no ofrecerá la clave para el descifrado.

Conclusión

El malware es astuto y tiene propósitos diversos, pero el código malicioso debe funcionar dentro de estructuras de codificación establecidas. Salirse del formato de las cadenas estándar deja al malware abierto al descubrimiento. Los programadores maliciosos evitan esto mediante el uso de ofuscación, codificación y cifrado para imitar y mezclar con el código circundante o haciendo que el código sea tan ilegible que no pueda descifrarse.

A veces, evadir el descubrimiento sólo requiere una simple ofuscación, como el empaquetado de códigos o la codificación con Base64. El crecimiento del conocimiento y la experiencia de los analistas de malware y el aumento de la sofisticación de sus herramientas requieren que el malware se adapte. El malware debe emplear técnicas avanzadas de ofuscación, criptografía y cifrados complejos para evitar la detección.

Fuentes

Análisis de malware, parte 1: comprensión de las técnicas de ofuscación de código , Vade Secure

Técnicas de ofuscación de malware: cuatro ejemplos sencillos , andreafortuna.org

Las cuatro técnicas evasivas más comunes utilizadas por el malware , Tripwire

Decodificación de malware complejo: paso a paso , Blog Sucuri

Cifrado 101: manual básico para analistas de malware , Malwarebytes Labs