En los últimos meses, fuimos testigos de la introducción de las tecnologías basadas en algoritmos de aprendizaje automático que facilitaron muchas, sobre todo cuando se trata de la generación de contenidos.
Dentro de estas tecnologías está ChatGPT, un modelo de lenguaje desarrollado por OpenAI que utiliza algoritmos de inteligencia artificial para generar respuestas coherentes y contextualmente relevantes en conversaciones de texto y que en esta ocasión decidí utilizarlo para agilizar las actividades de análisis de malware.
Como ejemplo de análisis vamos a utilizar una campaña maliciosa que hace un tiempo estuvo propagándose por diferentes países de Latinoamérica. Se trata de un correo electrónico que contiene un archivo PDF adjunto, el cual redirige a un archivo comprimido en formato 7z alojado en un servicio legítimo para realizar campañas de marketing.
Analizando código en PowerShell
El contenido de este archivo comprimido corresponde a un acceso directo, pero que contiene lo que parece ser código adicional que se ejecuta si el usuario de forma inadvertida abre este archivo:
En primera instancia no parece un código muy complejo, contiene una serie de variables, lo que parecería estar relacionado con una URL, entre otra serie de informaciones dispersas que después de unos minutos de análisis se logra descifrar sin mayores complicaciones.
Así que llegó el momento de emplear ChatGPT para que nos ayude a entender el código. Algo clave al momento de utilizar herramientas como esta, es definir un dominio de análisis, en este caso, le pedimos que nos dé la respuesta tomando el rol de un analista de malware:
Con la información anterior tenemos rápidamente un vistazo de qué es lo que hace el script y, por lo tanto, va a ser más fácil analizarlo.
Por ejemplo, se puede encontrar rápidamente la porción de código asociada con la URL desde la cual se descarga el siguiente artefacto malicioso:
Obtener rutinas de código para facilitar el análisis dinámico
El nuevo artefacto malicioso corresponde a un archivo HTA, un tipo especial de archivo que combina código HTML y scripting para crear aplicaciones que se ejecutan en el contexto del navegador web. Estos archivos se ejecutan en una ventana separada, similar a una aplicación de escritorio, y pueden usar scripting en lenguajes como JavaScript o VBScript para interactuar con el sistema operativo, acceder a bases de datos locales y realizar tareas más avanzadas que no serían posibles en una página web convencional debido a restricciones de seguridad del navegador.
Son estas características las que aprovechan los atacantes para utilizarlos en campañas de malware debido a su capacidad para ejecutar scripts y acceder a recursos del sistema con un nivel más alto de permisos en comparación con las páginas web convencionales.
Este nuevo artefacto malicioso contiene más de 2000 líneas de código, pero la mayoría son funciones de relleno. Así que luego de separar las funciones que realmente ejecutan alguna acción en la máquina, le podemos pedir a ChatGPT que analice el código y nos ayude a descifrar el arreglo que contiene el script:
Y si no sabes qué hacer con el código anterior, puedes preguntar a ChatGPT como ver el valor final de la función. Es importante recordar que esta herramienta no ejecuta código, por lo que esa parte sí la debemos implementar en nuestro entorno de análisis virtualizado:
Descifrar largas cadenas de strings
Si se siguen los pasos tal como lo indica la salida de ChatGPT, se obtiene un nuevo artefacto malicioso que dentro de la información contiene una cadena de caracteres con el formato de un string codificado en Base64; así que el siguiente paso será analizar el string para entender de que se trata.
Cómo ya mencionamos, ChatGPT no puede ejecutar código, por lo que nos da una rutina en Python para decodificar el string y obtener los caracteres hexadecimales que nos ayuden a formar el binario, que en esta campaña corresponde a la porción de código que inyecta otros procesos maliciosos en el dispositivo de la víctima.
Una gran herramienta para agilizar los análisis
Los tips anteriores son una muestra de como una herramienta como ChatGPT puede simplificar el proceso de análisis de malware. Aunque es cierto que esta herramienta no reemplaza por completo a los profesionales especializados en el campo, definitivamente juega un papel crucial al hacer que el complejo mundo de las campañas de malware sea mucho más comprensible.
El uso de este tipo de herramientas simplifica la labor, ya que en lugar de perderse en miles de líneas de código complejo y ofuscado, ChatGPT ayuda a obtener detalles del comportamiento del malware como si estuvieras teniendo una charla amigable. Pero, como siempre, la inteligencia humana sigue siendo insustituible. Las personas en el rol de analistas de malware aportan el juicio, la intuición y el conocimiento contextual que ninguna máquina puede brindar.
Si se te ocurren más formas ingeniosas de aprovechar esta herramienta, nos encantaría que las compartieras en la sección de comentarios. La ciberseguridad es un juego en constante evolución, y cada truco cuenta. ¡Cuéntanos tus ideas y experiencias!