Análisis de Strings en Software Malicioso con DNS Spy

Clase 16 de 18Curso de Introducción al Análisis de Malware

Resumen

¿Por qué buscar los strings en un programa?

Después de realizar análisis estáticos y dinámicos, es esencial investigar los strings de nuestro programa para obtener pistas sobre su funcionamiento. Un "string" es cualquier secuencia de caracteres en el código, y al examinar estos podemos descubrir datos únicos o adicionales sobre el software. Esto puede incluir desde mensajes de error hasta direcciones IP o rutas de archivos que podrían ser clandestinas o relacionadas con actividades maliciosas.

¿Cómo encontrar y analizar strings utilizando DNS Spy?

  1. Acceder al programa: Inicia DNS Spy y abre tu archivo compilado.
  2. Buscar los strings: Navega a la sección donde se listan todas las cadenas y variables del programa.
  3. Análisis de la información: Observa detalles como la carga de drivers, uso de librerías DLL y variables con codificación sospechosa como Base64.

Al analizar strings como estos puedes determinar componentes del sistema, cargadores de malware, o infraestructura de comando y control.

// Ejemplo de un string codificado
string encodedString = "U29mdHdhcmUgRW5naW5lZXJpbmc="

¿Cómo interpretar las direcciones IP y otras referencias?

Examinando strings como direcciones IP almacenadas en el programa, podemos buscar dicha IP en bases de datos de seguridad como VirusTotal. Aquí se pueden obtener detalles sobre si se ha reconocido como maliciosa.

  1. Verificación en VirusTotal: Busca la IP para verificar su reputación.
  2. Información de seguridad: Determina si está etiquetada por seguridad, antispywares o sistemas IDS.
  3. Relaciones y conexiones maliciosas: Revisa si existen archivos maliciosos asociados a la IP.

Este procedimiento puede corroborar vínculos con organizaciones o grupos específicos como APT41, indicando actividad de amenazas sofisticadas.

¿Cómo usar herramientas especializadas como Cyber Chef?

Si encuentras strings cifrados en Base64, puedes utilizar herramientas como Cyber Chef para decodificarlos:

  1. Decodificación en Cyber Chef: Transforma el string de Base64 a texto común usando las recetas incluidas en la herramienta.
// Ejemplo de uso de Cyber Chef para decodificación
Input: "U29mdHdhcmUgRW5naW5lZXJpbmc="
Output: "Software Engineering"

Algunas veces, esto puede no revelar información concluyente, pero es un paso crucial para piece together información de interés.

¿Qué otros insights se pueden obtener mediante la investigación de strings?

  • Identificar rutas en el programa: Observa dónde se utilizan en la estructura del programa para saber más sobre su función.
  • Detección de intentos de crear objetos o bypass de seguridad: Investiga la creación de objetos "computer" o esfuerzos por evadir firewalls.
  • Comparte tus hallazgos: Publica en foros o comunidades para compartir y evaluar tus observaciones.

Este enfoque múltiple no solo desentraña el comportamiento del software, sino que también abre una nueva visión de cómo combinar técnicas de análisis para afrontar amenazas digitales.