FabulaTech es la desarrolladora de “USB for Remote Desktop”, un software que permite utilizar el puerto USB de un dispositivo (Cliente) en otra máquina de forma remota (Servidor), siendo una solución de redirección USB a través de la red. FabulaTech posee una impresionante lista de clientes, pertenecientes a una gran variedad de sectores y con un alto nivel de perfil, entre estos están Google, Microsoft, Texas Instruments, BMW, MasterCard, NASA, Intel, entre otros.
Recientemente un grupo de expertos a reportado una vulnerabilidad en “USB for Remote Desktop”, seguida como CVE-2020-9332, donde su explotación exitosa puede permitir a un atacante en un sistema objetivo elevar privilegios al agregar dispositivos falsos.
El servicio que proporciona el software, consiste en redireccionar del lado del cliente uno o más dispositivos USB a través de la red, para aparentar que están conectados de forma local en el computador que hace de servidor. Esto se realiza por medio de la recolección de todos los datos en el lado del cliente, para luego ser enviados a la máquina remota que ejecuta el software como servidor, en dicho lado, se utiliza un controlador bus que crea un objeto virtual que ordena la repetición de toda la comunicación de entrada y salida que provenga del dispositivo con el software cliente.
Los expertos iniciaron su investigación al notar una actividad extraña del Kernel en computadores que utilizaban el software de FabulaTech, encontrando la falla en el controlador Bus, específicamente en una rutina la cual es llamada “IoCreateDevice”, por motivo a que no tiene verificaciones de seguridad para bloquear el acceso a entidades con pocos privilegios. Resaltando que por lo general, los controladores protegen sus objetos de sus dispositivos, agregando un descriptor de seguridad que restringe el acceso a todos los usuarios que no tengan privilegios de sistema y administración.
Pero la rutina “IoCreateDevice”, permite a usuarios sin privilegios agregar y controlar dispositivos de los programas en los que confía el sistema operativo y en este caso en particular, porque el servicio es ejecutado bajo una cuenta LocalSystem en cualquier usuario.
Servicio ejecutándose en LocalSystem
Para demostrar la vulnerabilidad, los investigadores crearon una prueba de concepto, en ella, mantuvieron el enfoque del funcionamiento del controlador como un repetidor entre el sistema operativo y un servicio de modo usuario que obtiene los datos redirigidos de un dispositivo real. Durante el análisis del reporte de divulgación de datos, notaron que el controlador por medio de la rutina “IoCreateDevice”, estaba exponiendo los códigos de control que son utilizados para crear un dispositivo, logrando obtener un bloque de petición USB (URB - USB Request Block) desde el sistema operativo, lo que les permitió responder la URB.
Dispositivo USB remoto agregado
Cabe destacar que por medio de esta vulnerabilidad puede ser simulado cualquier dispositivo USB, permitiendo realizar ataques al agregar un mouse que tome control del puntero o incluso una tarjeta de red para interceptar el tráfico.
Fuente:
COMENTARIOS