La evolución de las evasiones de EDR ~ Segu-Info

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


Ver fuente

Related Post