Análisis de malware
Técnicas simples de ofuscación de malware
23 de julio de por Nitesh Malviya
¿Qué es el malware?
Malware significa software malicioso y software, en un lenguaje sencillo, significa algún programa escrito en cualquier lenguaje de programación. Entonces, si un programa malicioso se escribe intencionalmente para causar daño a cualquier computadora o servidor o para obtener acceso no autorizado a cualquier sistema, se llama malware.
Malware es un término genérico que se utiliza para definir una variedad de programas maliciosos y puede adoptar diversas formas. Estos términos incluyen virus, troyanos, gusanos, adware, spyware, ransomware, etc.
¡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
¿Qué es la ofuscación?
La ofuscación es la técnica más utilizada para ocultar el código original escrito por el programador, lo que hace que el código ejecutable sea difícil de leer y de entender mientras se mantiene la funcionalidad del código escrito. Casi todos los programas maliciosos utilizan la ofuscación de una forma u otra.
¿Por qué ofuscación?
Por lo general, cada computadora o servidor tiene algún software instalado para detectar y evitar que se ejecuten programas maliciosos en la máquina local. Este software puede estar presente en varias formas, como antivirus, Windows Defender, bloqueadores de publicidad, etc., que detectan este malware y lo detienen en el perímetro.
Los analistas de malware también pueden analizar el malware e identificar información importante como cadenas y la URL con la que se comunica el malware e implementar las medidas necesarias para evitar que se ejecute. Por tanto, la mayor parte del malware está ofuscado de forma predeterminada.
Técnicas de ofuscación de malware
Los creadores de malware utilizan muchas técnicas de ofuscación. Algunos de ellos son básicos, mientras que otros son avanzados.
Echemos un vistazo a algunas de las técnicas básicas de malware que se utilizan ampliamente.
O exclusivo (XOR)
XOR es la técnica más utilizada para ofuscar cualquier malware. Además, es muy sencillo de implementar y puede ocultar fácilmente la carga maliciosa para que no sea detectada.
XOR es una operación binaria. Se denota como ^. La tabla booleana para la operación XOR tiene este aspecto:
A B A^B0 0 00 1 11 0 11 1 0
Los siguientes son los pasos que se siguen para ofuscar y desofuscar el código utilizando la técnica XOR:
Ofuscación
1) El atacante elige aleatoriamente un valor de byte. Este valor actúa como clave.
2) Los valores clave posibles oscilan entre 0 y 255 (valor decimal).
3) Los atacantes codifican y ofuscan el código original iterando cada byte de datos y aplicando XOR en todos y cada uno de los bytes con la clave seleccionada en el paso 1.
Desofuscación
4) Para eliminar la ofuscación, debemos utilizar la misma clave que se utiliza para la ofuscación.
5) El atacante repite el paso 3 e itera a través de cada byte de datos, aplicando XOR en todos y cada uno de los bytes con la clave seleccionada en el paso 1 para desofuscar los datos ofuscados originales.
Codificación base64
Base64 es otra técnica sencilla de ofuscación de malware. Sólo hay 64 caracteres en la codificación base64, de ahí el nombre. Ellos son:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
El carácter “=” se utiliza para rellenar.
En la codificación base64, la función de codificación toma tres caracteres y los encadena para obtener una cadena de 24 bits. Esta cadena se divide en cuatro fragmentos, cada uno de seis bits, que luego se traduce a uno de los caracteres base64. Base64 es trivial de decodificar si se puede reconocer.
ROT13
ROT13 es otra técnica de ofuscación de malware. Significa Girar 13.
Es simplemente un cifrado de sustitución de letras que reemplaza una letra por la decimotercera letra siguiente. Ejemplo “A” se reemplaza por “N”, “B” por “O”, “H” por “U” y así sucesivamente, continuando la secuencia. Por lo tanto, sólo se codifica el alfabeto, mientras que los números, caracteres y símbolos no se ven afectados por él.
Para despejar la ofuscación, aplicar ROT13 dos veces al código ofuscado revela el código original.
Inserción de código muerto
En este, se agregan códigos ineficaces e inútiles al código fuente original del programa. Esto da como resultado un programa disfrazado del original.
El código muerto hace que los flujos de control del programa sean más complejos y difíciles de entender, mientras que el comportamiento del programa original no cambia. Los códigos muertos generalmente se insertan en expresiones y declaraciones y no en bucles para evitar problemas de rendimiento.
Cambios de instrucción
En la técnica de cambio de instrucciones, los creadores de malware alteran los códigos de instrucciones en el código original, lo que da como resultado un cambio en la apariencia del código, mientras que el comportamiento del código sigue siendo el mismo. Por lo tanto, esto dificulta que los ingenieros inversos reviertan el código siguiendo las instrucciones e intentando comprender la lógica implementada en el código.
empacadores
Los empaquetadores suelen implicar comprimir el código fuente original, reduciendo así el tamaño original del código. A diferencia de los archivos zip estándar, los ejecutables empaquetados se descomprimen automáticamente cuando se ejecutan.
Cripteros
Los criptográficos suelen ofuscar el código fuente original y ocultar el código fuente original mediante un algoritmo criptográfico para que el código fuente original no pueda revertirse mediante ingeniería inversa. Esta técnica también ayuda a eludir y evadir los antivirus y las defensas de red instaladas en la red. La mayoría de los cifrados se decodifican y no son difíciles de revertir.
Conclusión
Mientras exista malware, también existirán diversas técnicas de ofuscación de malware. Los atacantes idearán nuevas técnicas para evadir la detección de los motores de malware, pero es responsabilidad de la organización tomar medidas proactivas para detectar y prevenir diversos ataques basados en malware familiarizándose con las últimas técnicas que utilizan los atacantes.
¡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
Fuentes
- Análisis de malware, parte 1: comprensión de las técnicas de ofuscación de código , VadeSecure
- Una cuestión de seguridad: ¿Qué es la ofuscación y cómo funciona? , ZD Net
- Explicado: Packer, Crypter y Protector , Malwarebytes
- Diferencia entre Packer, Crypter y Protector , siendo malicioso
- Ofuscación: el mejor amigo del malware , Malwarebytes