Ibai Castells ha desarrollado esta
cronología detallada de las técnicas de evasión de EDR, desde la inyección de procesos hasta la evasión basada en IA. Esta es una
lectura esencial para equipos rojos y profesionales de la seguridad ofensiva.
La relación entre las soluciones de Detección y Respuesta de Endpoints (EDR) y
las técnicas de evasión representa uno de los campos de batalla más dinámicos
de la ciberseguridad. Representan la ciberseguridad en su conjunto, ya que se
alinean con la analogía del gato y el ratón que solemos usar para describir el
sector.
A medida que los sistemas EDR evolucionaron de la simple detección basada en
firmas a sofisticados motores de análisis de comportamiento, los equipos rojos
y los actores de amenazas han desarrollado continuamente métodos innovadores
para evadir la detección. Esta cronología relata los principales avances en
las técnicas de evasión de EDR, documentando la evolución técnica que ha dado
forma a la seguridad ofensiva moderna.
Mucho ha cambiado, muchas ideas se han convertido en armas, y esta publicación
pretende resumirlas y convertirse en una referencia para los especialistas en
seguridad ofensiva.
Los primeros años (2010-2015)
La primera generación de soluciones EDR dependía en gran medida de la
detección basada en firmas y la heurística básica del comportamiento. Durante
este período, las evasiones eran relativamente sencillas, y a menudo
implicaban técnicas de ofuscación simples o métodos de vaciado de procesos que
permitían evadir la detección.
2012-2013: Vaciado de procesos e inyección de DLL
El panorama inicial de las evasiones de EDR estaba dominado por las técnicas
tradicionales de inyección de procesos. Los investigadores de seguridad
comenzaron a explorar sistemáticamente métodos como:
- Inyección clásica de DLL mediante CreateRemoteThread.
- Técnicas de vaciado de procesos (RunPE).
-
Carga manual de DLL para evitar los ganchos de la tabla de direcciones de
importación (IAT).
Estas técnicas funcionaban porque las primeras soluciones EDR supervisaban
principalmente las API de Windows de alto nivel sin una visibilidad profunda a
nivel de kernel.
2014: Carga Reflexiva de DLL
La técnica de
Carga Reflexiva de DLL de Stephen Fewer
se convirtió en un pilar fundamental para la evasión de EDR. Al cargar
manualmente las DLL sin usar el cargador de Windows, los atacantes podían
eludir numerosos mecanismos de enganche que supervisaban los procedimientos
estándar de carga de DLL. Esta investigación sigue siendo relevante hoy en día
y es ampliamente utilizada por muchos frameworks C2 conocidos. Sin embargo,
recientemente se ha producido una transición hacia el código independiente de
la posición (PIC) para evadir la detección de comportamiento en la carga
reflexiva de DLL.
Comienzan las guerras de enganche (2015-2017)
A medida que las soluciones EDR maduraron, comenzaron a implementar mecanismos
de enganche más sofisticados para supervisar las llamadas a la API. Este
período marcó el inicio de lo que podríamos llamar las
«hooking wars» entre los proveedores de EDR y los desarrolladores de
sistemas de enganche.
2015-2016: Concienciación sobre los enganches de API
Los investigadores de seguridad comenzaron a analizar sistemáticamente cómo
las soluciones EDR implementaban sus capacidades de monitorización:
-
Enganches de API en el espacio de usuario: Las soluciones EDR comenzaron a
enganchar API críticas de Windows como NtCreateFile,
NtCreateProcess y NtAllocateVirtualMemory. -
Enganches en línea: Muchos productos EDR utilizaban técnicas de enganche en
línea, parcheando los primeros bytes de las funciones de la API para
redirigir la ejecución a su código de monitorización. -
Enganches IAT: La modificación de la tabla de direcciones de importación se
convirtió en una técnica común en EDR.
2016: El auge de las técnicas de desenganche
La comunidad de seguridad comenzó a desarrollar enfoques sistemáticos para
detectar y eliminar los enganches de EDR:
-
Detección de enganches: Comparación de las funciones de la API en memoria
con sus versiones basadas en disco. -
Desenganche de API: Restauración de los bytes originales de la API desde
copias limpias cargadas desde el disco. -
Mapeo manual: Carga de copias limpias de las DLL del sistema para acceder a
las API desenganchadas.
La revolución de las llamadas al sistema directas (2017-2019)
2017: Introducción de las llamadas al sistema directas
La introducción de las técnicas de llamadas al sistema directas marcó un
cambio de paradigma en la metodología de omisión de EDR. En lugar de llamar a
las API de Windows de alto nivel que las soluciones EDR supervisaban, los
atacantes comenzaron a aprovechar directamente las llamadas al sistema
subyacentes.
Avance clave: SysWhispers por @Jackson_T
El proyecto
SysWhispers, lanzado en 2019, democratizó el uso de las llamadas al sistema directas al
proporcionar:
- Generación automatizada de stubs de llamadas al sistema
- Compatibilidad con múltiples versiones de Windows
- Fácil integración con herramientas ofensivas
Esta técnica omitió por completo los ganchos de la API en el espacio de
usuario al pasar directamente al modo kernel, lo que dificultó
enormemente la monitorización de las soluciones EDR sin componentes a nivel de
kernel.
2018-2019: Evolución de las llamadas al sistema
-
Hell’s Gate: Am0nsec y Smelly__vx desarrollaron técnicas para resolver dinámicamente
los números de llamadas al sistema en tiempo de ejecución. -
Halos Gate: Reenz0h amplió la «Puerta del Infierno» para gestionar las llamadas al
sistema enganchadas mediante la búsqueda de números de llamadas al sistema
limpios en funciones cercanas. -
Tartarus Gate: Paul Laîné mejoró las técnicas anteriores con mayor fiabilidad y
capacidad de evasión.
La era de las llamadas al sistema indirectas (2019-2021)
2019-2020: Llamadas al sistema indirectas y conocimiento de la pila de
llamadas
A medida que las soluciones EDR comenzaron a monitorizar las llamadas al
sistema directas, los investigadores desarrollaron técnicas de llamadas al
sistema indirectas que mantenían pilas de llamadas más naturales.
Avance en las llamadas al sistema indirectas: En lugar de ejecutar llamadas al
sistema directamente desde el código controlado por el atacante, las llamadas
al sistema indirectas utilizan rutas de código legítimas existentes:
-
Llamadas al sistema basadas en ROP: Uso de la programación orientada al
retorno para ejecutar llamadas al sistema desde módulos legítimos. -
Llamadas al sistema basadas en JOP: Variantes de la programación orientada
al salto para la ejecución de llamadas al sistema. -
Stomping de módulos: Sobrescritura de secciones de código de módulos
legítimos con stubs de llamadas al sistema.
2020: Técnicas de suplantación de pila de llamadas.
Los investigadores reconocieron que las soluciones EDR comenzaban a analizar
las pilas de llamadas para detectar actividad sospechosa:
-
Suplantación de dirección de retorno: Modificación de las direcciones de
retorno para que parezcan legítimas. -
Pivotaje de pila: Cambio del puntero de pila para usar pilas de llamadas
legítimas. -
Manipulación de puntero de marco: Modificación de punteros de marco para
crear seguimientos de pila de llamadas convincentes.
Herramientas clave e investigación:
-
SysWhispers2: Ampliación del SysWhispers original con llamadas al sistema indirectas.
Capacidades. -
Ekko: Técnica de ofuscación del sueño de C5pider mediante llamadas al sistema
indirectas. - ThreadStackSpoofer: Implementación de Mgeeky de suplantación de pila de llamadas.
Técnicas Avanzadas de Evasión (2020-2022)
2020-2021: Protección y Ofuscación de Memoria
Técnicas de Suspensión:
-
Ofuscación de Suspensión Ekko: Cifrado de memoria de baliza durante los
periodos de suspensión. - Zilean: Ofuscación de suspensión avanzada con múltiples capas de cifrado.
- Gargoyle: Uso de temporizadores y APC para ejecución sigilosa.
Evasión de Memoria:
- Sobrecarga de Módulos: Carga de código malicioso sobre módulos legítimos
- Carga de DLL Fantasma: Carga de DLL sin registrarlas en PEB.
-
Técnicas de Sección Transaccionada: Uso de transacciones NTFS para la
asignación sigilosa de memoria.
2021: Evasiones Basadas en Hardware
Evasión de Puntos de Interrupción de Hardware:
-
Detección de Puntos de Interrupción de Hardware: Identificación y borrado de
puntos de interrupción de hardware establecidos por EDR. -
Manipulación de Registros de Depuración: Modificación directa de registros
de depuración para evadir la monitorización.
Abuso de Contadores de Rendimiento:
-
Detección basada en PMU: Uso de Unidades de Monitoreo de Rendimiento para
detectar EDR Presencia. -
Evasiones basadas en tiempo: Aprovechamiento de las diferencias de tiempo en
APIs enganchadas y desenganchadas.
La era moderna: VEH y técnicas avanzadas (2022-presente)
2022: Técnicas de manejo de excepciones vectorizadas (VEH)
Llamadas al sistema basadas en VEH: Los investigadores comenzaron a
usar manejadores de excepciones vectorizadas para implementar mecanismos de
llamadas al sistema sigilosos:
-
Flujo de control basado en excepciones: Uso de excepciones controladas para
redirigir la ejecución. -
Secuestro de VEH: Secuestro de cadenas VEH existentes para una ejecución
sigilosa. -
Abuso de excepciones de hardware: Uso de excepciones de hardware como la
depuración de un solo paso.
Innovación clave:
FreshyCalls. La técnica FreshyCalls de ElephantSe4l utilizó trampolines de llamadas al
sistema y VEH para crear implementaciones de llamadas al sistema altamente
evasivas.
2022-2023: Técnicas de devolución de llamada del kernel
Omisión de PsSetCreateProcessNotifyRoutine :
-
Eliminación de devolución de llamada: Eliminación de las devoluciones de
llamada de creación de procesos registradas en EDR. -
Aplicación de parches a las devoluciones de llamada: Modificación de las
funciones de devolución de llamada para evitar la monitorización. -
Técnicas DKOM: Manipulación directa de objetos del kernel para evadir
la detección.
Omisión de ETW (Seguimiento de eventos para Windows):
-
Aplicación de parches al proveedor de ETW: Desactivación de los proveedores
de ETW utilizados por las soluciones de EDR. - Secuestro de sesiones de ETW: Control de las sesiones de ETW.
- Manipulación de trazas: Modificación de las trazas de ETW en tiempo real.
2023: Manipulación Avanzada de Memoria
Evasiones de Interceptación de CRT:
-
Reemplazo de Funciones de CRT: Reemplazo de funciones de tiempo de ejecución
de C para evadir la monitorización. -
CRT Estático vs. Dinámico: Explotación de las diferencias en los métodos de
vinculación de CRT.
Inyección Avanzada de Procesos:
-
Doppelgänging de Procesos: Uso de transacciones NTFS para la creación
sigilosa de procesos. -
Herpaderping de Procesos: Sobrescritura de imágenes de procesos tras la
carga. -
Escritura Fantasma: Escritura en la memoria del proceso mediante mapeos de
archivos.
2024: Evasiones de IA y Aprendizaje Automático
Estado Actual y Técnicas Emergentes (2024-Presente).
Mimetismo de Comportamiento
La aparición de la inteligencia artificial en ciberseguridad representa un
cambio significativo en la metodología de evasión de EDR desde las llamadas al
sistema directas. A diferencia de la ofuscación estática tradicional, las
técnicas de evasión basadas en IA podrían crear malware que logre la
autenticidad del comportamiento, generando patrones de ejecución que parecen
realmente inofensivos tanto para los sistemas automatizados como para los
analistas humanos.
La clonación de comportamiento basada en aprendizaje automático podría
permitir a los atacantes estudiar y replicar sistemáticamente patrones
legítimos de aplicaciones, creando una imitación altamente específica que
puede engañar a los sistemas EDR entrenados con perfiles de aplicación
específicos. Más preocupantes son los sistemas de evasión adaptativos que
aprenden de los intentos fallidos de detección y evolucionan continuamente sus
estrategias en tiempo real. Esto crea un bucle de retroalimentación donde cada
intento de detección potencialmente enseña al sistema de evasión cómo evitar
futuras detecciones.
La
investigación de TrustedSec sobre análisis del comportamiento del
usuario
de 2022 demuestra que este es un área de interés ahora que la tecnología se
encuentra en un punto en el que los sistemas podrían aprovechar este concepto.
Cronología de herramientas y frameworks históricas
2015-2017: Herramientas básicas
- PowerShell Empire: Framework C2 inicial con capacidades de evasión de EDR.
- Cobalt Strike: Plataforma C2 comercial que impulsó la innovación.
- Metasploit: Framework de código abierto con módulos de evasión en evolución.
2018-2020: Herramientas de la era de las llamadas al sistema
- SysWhispers: Herramienta de generación directa de llamadas al sistema.
- Hell’s Gate: Resolución dinámica de llamadas al sistema.
-
Halos Gate: Resolución mejorada de llamadas al sistema con evasión de
ganchos.
2021-2023: Herramientas de evasión avanzadas
- SysWhispers2: Implementación indirecta de llamadas al sistema.
- Ekko: Ofuscación de suspensión con llamadas al sistema.
- ThreadStackSpoofer: Implementación de suplantación de pila de llamadas.
- FreshyCalls: Implementación de llamadas al sistema basadas en VEH.
2024-Presente: Herramientas y frameworks modernos
- SysWhispers3: Última evolución con evasión mejorada.
- Nighthawk: C2 avanzado con múltiples técnicas de evasión.
- Brute Ratel: Marco de trabajo C2 moderno con evasión de EDR integrada.
-
C2 de código abierto:
Adaptix
y
Havoc
impulsan la innovación en marcos de trabajo C2 comerciales.
Técnicas Clave
Llamadas al Sistema Directas
Las llamadas al sistema directas evitan los ganchos de la API en el espacio de
usuario llamando directamente a los servicios del kernel. Esta técnica
implica:
- Resolver los números de llamadas al sistema para las API de destino
- Configurar los registros del procesador según la convención de llamada
-
Ejecutar la instrucción de llamada al sistema para pasar al modo
kernel
Llamadas al Sistema Indirectas
Las llamadas al sistema indirectas mantienen las pilas de llamadas naturales
al ejecutarlas desde ubicaciones de código legítimas:
- Encontrar gadgets en módulos legítimos que terminan en «syscall»; ret
- Configuración de la pila para regresar a estos gadgets
- Acceso directo a los gadgets en lugar de ejecutar llamadas al sistema
Suplantación de pila de llamadas
La suplantación de pila de llamadas crea seguimientos convincentes de la pila
de llamadas mediante:
- Análisis de patrones legítimos de la pila de llamadas
-
Manipulación de direcciones de retorno para que coincidan con los patrones
esperados - Uso de cadenas ROP/JOP para mantener la consistencia de la pila
Técnicas VEH
Las técnicas de manejo de excepciones vectorizadas utilizan el mecanismo de
manejo de excepciones de Windows:
- Registro de manejadores de excepciones personalizados
- Activación de excepciones controladas para redirigir la ejecución
-
Uso de excepciones de hardware como la depuración de un solo paso para
sigilo
La carrera armamentista: Respuesta EDR y contraevolución
Adaptaciones EDR
Monitorización a nivel de kernel: Las soluciones EDR modernas
han respondido a las omisiones en el espacio de usuario implementando la
monitorización a nivel de kernel mediante:
-
Devoluciones de llamada de kernel: Notificaciones de carga de
procesos, subprocesos e imágenes. -
Controladores de filtro: Monitorización del sistema de archivos y del
registro. - Integración con ETW: Seguimiento completo de eventos.
Comportamiento Análisis:
-
Modelos de aprendizaje automático: Detección de patrones de comportamiento
anómalos. -
Análisis de la pila de llamadas: Identificación de flujos de ejecución
sospechosos. -
Reconocimiento de patrones de memoria: Detección de firmas de ataques
conocidas en memoria.
Integración de hardware:
-
Soporte Intel CET: Aprovechamiento de la tecnología de control de flujo de
control. -
Puntos de interrupción de hardware: Uso de registros de depuración para la
monitorización. -
Contadores de rendimiento: Detección de evasión mediante análisis de
tiempos.
Medidas de contraataque
La comunidad de seguridad ofensiva ha respondido a las mejoras de EDR con:
-
Evasiones a nivel de kernel: Manipulación directa de las estructuras
del kernel. -
Bypasses basados en hardware: Explotación de las características del
procesador para evasión. - Ataques a la cadena de suministro: Uso de binarios firmados legítimos.
- Vivir de la tierra: Abuso de herramientas legítimas del sistema.
Retos y consideraciones
Implicaciones éticas: El avance de las técnicas de evasión de EDR
plantea importantes preguntas sobre:
- Prácticas de divulgación responsable.
-
El equilibrio entre las capacidades del equipo rojo y las herramientas
reales de los actores de amenazas. - El potencial de abuso por parte de actores maliciosos.
Equilibrio entre detección y evasión: La continua competencia entre
técnicas de detección y evasión continúa impulsando las capacidades ofensivas
y defensivas, mejorando en última instancia la postura general de
ciberseguridad mediante pruebas adversarias.
Conclusión
La historia de las evasiones de EDR representa un caso de estudio fascinante
en la investigación de ciberseguridad adversaria. Desde la simple desconexión
de API hasta sofisticadas evasiones basadas en hardware, cada avance ha
impulsado tanto a atacantes como a defensores a desarrollar técnicas más
avanzadas. Comprender esta evolución es crucial para los profesionales de
seguridad de ambos bandos, ya que proporciona información sobre los desafíos
fundamentales de la seguridad de endpoints y las soluciones creativas que
surgen de la presión adversaria.
La cronología muestra patrones claros: a medida que las soluciones de EDR
implementan nuevos mecanismos de detección, la comunidad de seguridad ofensiva
responde con técnicas innovadoras de evasión. Este ciclo de mejora beneficia a
todo el ecosistema de ciberseguridad al identificar debilidades e impulsar la
innovación en tecnologías defensivas.
De cara al futuro, la integración de inteligencia artificial, funciones de
seguridad de hardware y tecnologías nativas de la nube probablemente definirá
la siguiente fase de esta continua carrera armamentística. Las organizaciones
deben mantenerse informadas sobre estos avances para mantener posturas de
seguridad eficaces en un panorama de amenazas cada vez más sofisticado.
Referencias
Fuente:
Covertswarm
