Los nuevos hallazgos muestran que los actores malintencionados podrían aprovechar una técnica furtiva de evasión de detección de malware y eludir las soluciones de seguridad de punto final manipulando Windows Container Isolation Framework.
Los hallazgos fueron presentados por el investigador de seguridad de Deep Instinct, Daniel Avinoam, en la conferencia de seguridad DEF CON celebrada a principios de este mes.
La arquitectura de contenedores de Microsoft (y, por extensión, Windows Sandbox) utiliza lo que se llama una imagen generada dinámicamente para separar el sistema de archivos de cada contenedor al host y, al mismo tiempo, evitar la duplicación de archivos del sistema.
No es más que una “imagen del sistema operativo que tiene copias limpias de archivos que pueden cambiar, pero enlaces a archivos que no pueden cambiar que están en la imagen de Windows que ya existe en el host”, reduciendo así el tamaño total de un sistema operativo completo.
“El resultado son imágenes que contienen ‘archivos fantasmas’, que no almacenan datos reales, sino que apuntan a un volumen diferente en el sistema. Fue en este punto que se me ocurrió la idea: ¿qué pasa si podemos usar este mecanismo de redirección para ofuscar las operaciones de nuestro sistema de archivos y confundir los productos de seguridad?” dijo Avinoam.
Aquí es donde entra en juego el controlador de minifiltro Windows Container Isolation FS (wcifs.sys). El objetivo principal del controlador es cuidar la separación del sistema de archivos entre los contenedores de Windows y su host.
El controlador maneja la redirección de archivos fantasma analizando sus puntos de reanálisis adjuntos y las etiquetas de reanálisis asociadas que identifican de forma única al propietario, es decir, el implementador del controlador de filtro del sistema de archivos que realiza un procesamiento adicional definido por filtro en un archivo durante las operaciones de E/S.
Dos de estas estructuras de datos de etiquetas de reanálisis utilizadas por el filtro de aislamiento de contenedores de Windows, según Microsoft, son IO_REPARSE_TAG_WCI_1 y IO_REPARSE_TAG_WCI_LINK_1.
La idea, en pocas palabras, es tener el proceso actual ejecutándose dentro de un contenedor fabricado y aprovechar el controlador de minifiltro para manejar las solicitudes de E/S de modo que pueda crear, leer, escribir y eliminar archivos en el sistema de archivos sin alertar al software de seguridad.
Vale la pena señalar en esta etapa que un minifiltro se conecta a la pila del sistema de archivos indirectamente, registrándose con el administrador de filtros para las operaciones de E/S que elige filtrar. A cada minifiltro se le asigna un valor de altitud “entero” asignado por Microsoft en función de los requisitos de filtro y el grupo de orden de carga.
El controlador .sys wcifs ocupa un rango de altitud más bajo de 180000-189999 (específicamente 189900), mientras que los filtros antivirus, incluidos los de terceros, funcionan en un rango de altitud de 320000-329999. Como resultado, se pueden realizar varias operaciones de archivo sin que se activen sus devoluciones de llamada.
“Debido a que podemos anular archivos usando la etiqueta de IO_REPARSE_TAG_WCI_1 reparse sin la detección de controladores antivirus, su algoritmo de detección no recibirá la imagen completa y, por lo tanto, no se activará”, explicó Avinoam.
Dicho esto, llevar a cabo el ataque requiere permisos administrativos para comunicarse con el controlador wcifs.sys y no se puede usar para anular archivos en el sistema host.
La revelación se produce cuando la compañía de ciberseguridad demostró una técnica sigilosa llamada NoFilter que abusa de la Plataforma de Filtrado de Windows (WFP) para elevar los privilegios de un usuario a los de SYSTEM y potencialmente ejecutar código malicioso.
Los ataques permiten el uso de WFP para duplicar tokens de acceso para otro proceso, activar una conexión IPSec y aprovechar el servicio Print Spooler para insertar un token SYSTEM en la tabla, y hacer posible obtener el token de otro usuario conectado al sistema comprometido para el movimiento lateral.