Cubrimos la depuración como un método para descubrir la evasión utilizada por los malwares para evadir la detección. Esto fue parte de Análisis dinámico de malware TryHackMe serie.

Obtenga notas de informática forense

Analizar malware es como un juego del gato y el ratón. Los analistas de malware siguen ideando nuevas técnicas para analizar el malware, mientras que los autores de malware idean nuevas técnicas para evadir la detección. Esta tarea revisará algunas técnicas que obstaculizan nuestros esfuerzos para analizar malware mediante análisis estático o dinámico básico.

Métodos de evasión de malware de Análisis estático:

  • Cambiando el hash: Anteriormente aprendimos que cada archivo tiene un hash único. Los autores de malware aprovechan esta funcionalidad modificando ligeramente su malware. De esta manera, el hash del malware cambia, evitando el mecanismo de detección basado en hash. Los hashes pueden cambiar incluso si se cambia un bit del malware (a menos que estemos hablando de hashes por partes activados por contexto o hashes difusos), por lo que simplemente agregar un NOP La instrucción u otro cambio similar puede anular las técnicas de detección basadas en hash.
  • Derrotando AV firmas: Las firmas antivirus y otras detecciones basadas en firmas a menudo dependen de patrones estáticos que se encuentran dentro del malware. Los autores de malware cambian esos patrones para intentar evadir las firmas. Esta técnica suele ir acompañada de una ofuscación general del código malicioso.
  • Ofuscación de cadenas: Algunos autores de malware ofuscan las cadenas del malware decodificandolas en tiempo de ejecución. Cuando buscamos cadenas en el malware, es posible que no encontremos nada útil. Sin embargo, cuando el malware se ejecuta, decodifica esas cadenas durante la ejecución. Los autores de malware pueden ocultar cadenas importantes, como URL, C2 dominios, etc., para evitar quemar la infraestructura en función de una búsqueda de una sola cadena.
  • Carga en tiempo de ejecución de archivos DLL: Dado que podemos identificar importaciones de malware mientras analizamos EDUCACIÓN FÍSICA encabezados, los autores de malware suelen utilizar LoadLibrary o LoadLibraryEx de las bibliotecas de Windows para cargar una DLL en tiempo de ejecución. Al analizar este malware de forma estática, es posible que no veamos todas las funciones a las que está vinculado al analizar sus encabezados.
  • Embalaje y ofuscación: El empaquetado es muy popular entre los autores de malware. Empacar malware es como empacar un regalo. Cuando miramos un regalo empaquetado, no podemos decir qué hay dentro a menos que desempaquemos el envoltorio y saquemos el regalo. De manera similar, los empaquetadores empaquetan el malware en un contenedor escribiendo código que decodifica el malware en tiempo de ejecución. Entonces, al realizar un análisis estático, es posible que no podamos ver qué hay dentro del empaquetador. Sin embargo, cuando ejecutamos el malware, descomprime el código, carga el código malicioso real en la memoria y luego lo ejecuta.

Métodos básicos de evasión de malware Análisis dinámico:

  • Identificación de máquinas virtuales: Aunque algunas de estas técnicas pueden resultar contraproducentes hoy en día, ya que gran parte de la infraestructura empresarial está alojada en máquina virtuals, uno de los favoritos de los autores de malware ha sido identificar si el malware se está ejecutando dentro de una VM. Para ello, el malware suele buscar claves de registro o controladores de dispositivos asociados con software de virtualización popular como VMWare y Virtualbox. De manera similar, recursos mínimos, como una sola CPU y RAM limitada, pueden indicar que el malware se está ejecutando dentro de una VM. En este escenario, el malware tomará una ruta de ejecución diferente que no sea maliciosa para engañar al analista.
  • Ataques de tiempo: El malware a menudo intentará desactivar los sistemas de análisis automatizados. Por ejemplo, cuando se ejecuta malware, intentará dormir durante un día utilizando la biblioteca de suspensión de Windows. Después de unos minutos, el sistema de análisis automatizado se cerrará y no encontrará rastros de actividad maliciosa. Los sistemas de análisis de malware más nuevos pueden identificar estos ataques e intentar mitigarlos acortando el tiempo de inactividad del malware. Sin embargo, el malware puede identificar esas mitigaciones realizando comprobaciones de tiempo específicas para ver si se está manipulando el tiempo. Esto se puede hacer anotando el tiempo de ejecución y comparándolo con el tiempo actual después de la ejecución de la llamada de suspensión.
  • Rastros de actividad del usuario: El malware intenta identificar si hay rastros de actividad del usuario en la máquina. Si no se encuentran rastros o se encuentran muy pocos, el malware decidirá que se está ejecutando dentro de un sistema controlado y tomará una ruta de ejecución diferente y benigna. Los rastros de la actividad del usuario pueden incluir falta de movimiento del mouse o del teclado, falta de historial del navegador, falta de archivos abiertos recientemente, poco tiempo de actividad del sistema, etc.
  • Identificación de herramientas de análisis: El malware puede preguntarle a Windows SO para obtener una lista de procesos en ejecución utilizando Process32First, Process32Next o funciones similares. Si se identifican herramientas de monitoreo populares entre la lista de procesos en ejecución, el malware puede tomar una ruta de ejecución benigna. Por ejemplo, si se está ejecutando ProcMon o ProcExp, el malware puede identificarlo y cambiar a actividades benignas. Otra forma de identificar herramientas de análisis es mirando los nombres de las diferentes ventanas abiertas en un sistema. Si el malware encuentra Ollydbg o ProcMon en Windows abierto, puede cambiar a una ruta de ejecución diferente.

Respuestas de la habitación

En ocasiones, el malware comprueba el tiempo anterior y posterior a la ejecución de determinadas instrucciones para saber si están siendo analizadas. ¿Qué tipo de técnica de análisis se pasa por alto con este ataque?

¿Cuál es una técnica popular utilizada por los autores de malware para ocultar el código de malware del análisis estático y desencapsularlo en tiempo de ejecución?

¿Podemos recuperar el código precompilado de un binario compilado para fines de depuración? Escriba Y para Sí o N para No

¿Qué tipo de depurador se utiliza para depurar archivos binarios compilados?

¿Qué depurador funciona en el nivel más bajo entre los depuradores discutidos?

¿En qué pestaña se muestra la vista de desmontaje en x32dbg?

Si un proceso abre un archivo o un proceso, ¿dónde podemos ver información sobre ese archivo o proceso abierto?

La VM adjunta tiene un crackme en el directorio Escritorio > crackme-arebel. En ese crackme, hay una devolución de llamada TLS con un salto condicional. ¿Se da este salto condicional? Escriba Y para Sí o N para No

¿Cuál es el valor de la Bandera Cero en el salto condicional mencionado anteriormente?

Cual API ¿La llamada en el ejemplo mencionado se utiliza para enumerar procesos en ejecución?

Desde que ventanas DLL ¿Se está llamando a la API SuspendThread?

¿Cómo se llama cuando el código ensamblador de un binario se modifica permanentemente para obtener la ruta de ejecución deseada?

Tutorial en vídeo

Acerca del Autor

Creo notas de ciberseguridad, notas de marketing digital y cursos online. También brindo consultoría de marketing digital que incluye, entre otros, SEO, Google y meta anuncios y administración de CRM.

Ver Artículos