La técnica “traiga su propio controlador vulnerable” (BYOVD) permite evadir AV o EDR

Los actores de amenazas confían cada vez más en controladores explotables para eludir las medidas de seguridad . Los controladores son componentes del sistema de bajo nivel que brindan acceso a importantes estructuras de seguridad almacenadas en la memoria del kernel. Antes de permitir que funcionen los controladores en modo kernel, Windows utiliza una técnica de seguridad denominada Driver Signature Enforcement. Este mecanismo garantiza que los controladores hayan sido firmados digitalmente por una autoridad de firma de código legítima antes de que Windows permita que los controladores funcionen. Esta firma actúa como una marca de confianza para validar la autenticidad del programa y proteger el sistema del usuario de posibles vulnerabilidades.

Para eludir esta precaución de seguridad, los atacantes deben idear un método para adquirir un controlador malicioso certificado por un certificado confiable o participar en un ataque BYOVD, en el que explotan un controlador de software comercial legal para lograr su objetivo. Ambas opciones son muy difíciles de hacer. Por el contrario, el malware usa un controlador genuino que no está actualizado y puede ser explotado. El nombre habitual para este tipo de ataque es un ataque de tipo “traiga su propio controlador vulnerable” (BYOVD).

En este caso particular, los atacantes hicieron uso de un controlador que no solo fue desarrollado por Microsoft sino también firmado por la empresa. El equipo de Sysinternals ha desarrollado un conjunto de herramientas administrativas, una de las cuales se llama controlador Process Explorer. Este controlador tiene una serie de funciones que permiten a los usuarios interactuar con los procesos que están actualmente activos.

Sophos X-Ops ha llevado a cabo una investigación sobre muchos incidentes en el transcurso de los meses anteriores, todos los cuales incluyeron atacantes que intentaron desactivar clientes EDR mediante el uso de una nueva técnica de evasión defensiva que hemos denominado AuKill. Para desactivar los procesos EDR en la máquina de destino antes de instalar una puerta trasera o un ransomware, el programa AuKill utiliza una versión anterior del controlador que utiliza la versión 16.32 de la aplicación de Microsoft conocida como Process Explorer.

Desde principios de 2023, la herramienta se ha utilizado en al menos tres instancias de ransomware para frustrar la protección del objetivo e instalar ransomware. Estos eventos son los siguientes: en enero y febrero, los atacantes utilizaron el programa después de entregar el ransomware conocido como Medusa Locker; en febrero, un atacante usó AuKill justo antes de lanzar el malware conocido como Lockbit.

Un controlador con el nombre PROCEXP.SYS se coloca en el directorio C:\Windows\System32\drivers cuando se usa AuKill. Este controlador es de la versión de lanzamiento 16.32 de Process Explorer. El controlador oficial de Process Explorer tiene el nombre de archivo PROCEXP152.sys y, a menudo, se encuentra en el mismo directorio que el controlador falso. Ambos controladores pueden instalarse en una computadora al mismo tiempo si esa computadora ejecuta una copia de Process Explorer. Además, el instalador de AuKill colocará una versión ejecutable de sí mismo en el directorio System32 o TEMP, donde funcionará automáticamente como un servicio en segundo plano.

Por ejemplo, los programas de modo de usuario pueden enviar el código de control de E/S IOCTL_CLOSE_HANDLE al controlador, que le indica al controlador que cierre un identificador de proceso protegido, lo que finalmente da como resultado la finalización del proceso.

Para que un atacante explote con éxito este proceso, se requieren derechos de administrador en la máquina de destino. Cuando un atacante logra obtener derechos de administrador, normalmente indica que el atacante ahora tiene control total sobre la computadora.

Para ir más allá de estas medidas de seguridad, los atacantes deben ir un paso más allá e iniciar un controlador mientras está en modo kernel. En este caso, AuKill elude estas medidas de seguridad explotando un controlador válido que utiliza Process Explorer.
En la mayoría de los casos, un cliente EDR se compone de varias partes diferentes que cooperan entre sí. Un ejemplo de un componente es un proceso que se está ejecutando actualmente o un servicio ya instalado, cada uno de los cuales tiene su propio conjunto de capacidades. Por lo tanto, en el caso de que uno se congele o se apague, a menudo se reanuda lo más rápido posible.

AuKill inicia varios hilos para garantizar que los procesos y servicios de EDR no se vuelvan a activar, lo que ayuda a evitar que estos componentes tengan que reiniciarse. Cada subproceso se enfoca en un componente particular y verifica de manera continua si los procesos o servicios a los que se dirige están activos. AuKill lo desactivará o cancelará si alguno de ellos lo es, si alguno de ellos lo es.
La práctica de deshabilitar los clientes de EDR mediante el uso de controladores, ya sean dichos controladores válidos pero mal utilizados con fines maliciosos (BYOVD) o emitidos por un certificado que fue robado o filtrado, sigue siendo común entre los adversarios que desean desactivar los sistemas de protección.

En el transcurso del año anterior, los miembros de la comunidad de seguridad documentaron muchas situaciones en las que los conductores fueron utilizados como armas por motivos nefastos. El hallazgo de tal herramienta da crédito a la teoría de que los adversarios están trabajando continuamente para armar a los conductores.