Una de las técnicas más avanzadas que utilizan los cibercriminales para evadir las defensas y comprometer los sistemas se conoce como process hollowing o “hollowing de procesos“, veamos a continuación una visión detallada sobre esta técnica, su funcionamiento y cómo puede ser detectada y mitigada.

Qué es el Process Hollowing

Se trata de una técnica de inyección de código en la que un atacante crea un proceso legítimo en un estado suspendido, reemplaza su memoria con código malicioso y luego reanuda el proceso para ejecutar el código maligno bajo la apariencia de un proceso legítimo.

Desde ESET hemos observado que el process hollowing es una técnica utilizada en numerosas campañas de malware como Bandidos o Guinea Pig. También herramientas maliciosas como Smoke Loader y TrickBot  son conocidas por emplear esta técnica para ejecutar su código bajo procesos legítimos, facilitando así la evasión de detección por parte de soluciones antivirus y sistemas de detección de intrusiones​ (MITRE ATT&CK -​ Elastic)​.

Capacidad de evasión de medidas de seguridad

Esta técnica permite al malware evadir las medidas de seguridad que dependen de la identificación de procesos basados en la legitimidad de sus archivos ejecutables, para ello se basa en las siguientes características:

  • Ocultación: El malware se ejecuta dentro de un proceso legítimo, lo que dificulta su detección por parte de los antivirus y otras herramientas de seguridad.
  • Privilegios: El malware hereda los privilegios del proceso original, lo que le permite acceder a recursos y realizar acciones que normalmente no podría.
  • Persistencia: El malware puede manipular el proceso original para garantizar su propia supervivencia, incluso si se reinicia el sistema.

¿Cómo Funciona?

Los cibercriminales implementan el process hollowing mediante una serie de pasos meticulosos para inyectar código malicioso en un proceso legítimo y así evadir las defensas del sistema. A continuación, un detalle de cómo los cibercriminales implementan el process hollowing paso a paso:

  1. Creación del Proceso en Estado Suspendido: El atacante inicia un proceso legítimo (por ejemplo, svchost.exe) en un estado suspendido utilizando la función API de Windows CreateProcess con la bandera CREATE_SUSPENDED.
  2. Desmapeo/Vaciado de la Memoria del Proceso: Utilizando funciones como ZwUnmapViewOfSection o NtUnmapViewOfSection, el atacante desmapea la memoria del proceso, liberando el espacio donde el ejecutable legítimo reside.
  3. Inyección del Código Malicioso: El atacante asigna nueva memoria dentro del proceso suspendido con VirtualAllocEx y escribe el código malicioso en este espacio usando WriteProcessMemory.
  4. Modificación del Contexto del Hilo: Con la función SetThreadContext, el atacante modifica el punto de entrada del proceso para que apunte al código malicioso recién inyectado.
  5. Reanudación del Proceso: Finalmente, el proceso suspendido se reanuda con ResumeThread, y el código malicioso comienza a ejecutarse bajo la apariencia del proceso legítimo.

Señales de uso de process hollowing

El process hollowing puede ser una técnica difícil de detectar, pero hay algunas señales generales que podrían indicar su uso:

  • Alto uso de CPU/memoria: El process hollowing puede implicar una utilización intensiva de CPU y memoria, especialmente durante la fase de inyección de código.
  • Actividad inusual del proceso: Los procesos comprometidos por process hollowing pueden exhibir un comportamiento inusual, como la apertura de archivos o puertos de red inesperados.
  • Desigualdades en el tamaño del proceso: Los procesos comprometidos por process hollowing pueden tener un tamaño de memoria significativamente menor de lo esperado.

También existen otros enfoques más específicos que los profesionales de ciberseguridad pueden adoptar:

  • Monitoreo de Llamadas API: Vigilar las llamadas a API, como CreateRemoteThread, VirtualAllocEx, y WriteProcessMemory, puede ayudar a identificar comportamientos sospechosos asociados con la inyección de código.
  • Análisis del Contexto: Examinar los contextos de los hilos de procesos en busca de anomalías, como cambios inesperados en los puntos de entrada, puede ser indicativo de process hollowing.
  • Uso de Software de Seguridad Avanzado: Soluciones de seguridad que emplean análisis de comportamiento y monitoreo de integridad de memoria pueden detectar y bloquear técnicas de hollowing de procesos.

Herramientas para detectar process hollowing

Existen varias herramientas que pueden ayudar a detectar de manera manual un process hollowing, como:

  • Process Explorer: Process Explorer es una herramienta gratuita de Microsoft que permite ver los detalles de los procesos en ejecución, incluida su memoria y actividad de red.
  • Sysinternals PsExec: PsExec es otra herramienta gratuita de Microsoft que permite ejecutar procesos en el contexto de otro usuario. Se puede utilizar para inyectar herramientas de análisis de memoria en procesos sospechosos.
  • Falconsgaze: Falcongaze es una herramienta comercial de análisis de malware que incluye la capacidad de detectar process hollowing.

Recomendaciones adicionales

Como pudimos observar el process hollowing es una técnica de evasión avanzada que puede ser utilizada por malware para ocultar su presencia y obtener privilegios elevados y al margen de las herramientas disponibles que hemos mencionado para detectar su presencia es importante destacar algunas recomendaciones a nivel general para detectarla y mitigarla.

  • Mantener los sistemas y el software actualizados con los últimos parches de seguridad.
  • Utilizar una solución de seguridad de buena reputación como ESET Endpoint Security (EPP) y EDR ESET Inspect.
  • Implementar controles de acceso basados ​​en roles para limitar los privilegios de los usuarios.
  • Realizar auditorías de seguridad regulares para identificar y corregir vulnerabilidades.

Conclusión

El process hollowing representa una amenaza significativa en el panorama de ciberseguridad actual, pero comprendiendo cómo funciona esta técnica y sabiendo de su impacto se pueden adoptar medidas proactivas para su detección y mitigación. Es importante estar a las alturas para proteger eficazmente los sistemas y redes informáticas; mantenerse informado sobre las últimas tácticas y técnicas de los atacantes, es crucial, ya que estas suelen tener variaciones en el tiempo.