La herramienta gratuita USBFuzz encuentra 26 USB vulnerabilidades en Linux, Windows, macOS y FreeBSD

Cada día se descubren montones de nuevas fallas de seguridad en múltiples implementaciones tecnológicas, aunque en ocasiones estos hallazgos se encuentran por decenas de una sola vez. Empleando una nueva herramienta diseñada específicamente para realizar pruebas de seguridad en controladores USB, un grupo de especialistas en ciberseguridad descubrió 26 nuevas fallas de seguridad presentes en diversos sistemas operativos.

Los investigadores Hui Peng y Mathias Payer describieron su hallazgo en un documento publicado recientemente: “La herramienta, llamada USBFuzz, descubrió 26 fallas nuevas, incluyendo 16 errores de memoria considerados graves para algunos subsistemas de Linux (núcleo USB, sonido USB y red), una falla en FreeBSD, tres en macOS, cuatro en sistemas Windows y una falla en el controlador de host USB de Linux”.   

Mientras 11 de las vulnerabilidades encontradas ya han sido corregidas, el resto de los errores aún debe ser atendido por los desarrolladores.

USBFuzz es un marco de pruebas de seguridad modular que puede ser conectado a un controlador USB en diferentes núcleos de un sistema operativo. Los investigadores planean hacer de USBFuzz una herramienta de código abierto disponible en GitHub a corto plazo.

La implementación de esta clase de pruebas (conocidas como fuzzing) requieren de la entrada de datos no válidos, no solicitados y aleatorios en el software analizado (en este caso, los controladores USB), lo que permite analizar su comportamiento y detectar posibles colapsos, filtraciones de memoria, entre otros escenarios explotables con fines maliciosos.

“Este es un proceso desafiante debido a la dificultad de proporcionar información aleatoria a los dispositivos. Los dispositivos de hardware programables dedicados son caros y poco precisos, además de que automatizar una prueba de fuzzing es altamente complejo”, mencionan los investigadores.

La intención de los investigadores era que el dispositivo de fuzing fuera rentable, independiente del hardware y capaz de funcionar en diferentes sistemas operativos y plataformas: “En esencia, USBFuzz utiliza un dispositivo USB emulado por software para proporcionar datos de dispositivos aleatorios a los controladores (cuando realizan operaciones IO). Como el dispositivo USB emulado funciona a nivel de dispositivo, portarlo a otras plataformas es sencillo”.

USBFuzz funciona en Linux, FreeBSD, macOS y Windows, y se puede usar para realizar fuzzing tonto, fuzzing enfocado y fuzzing guiado por cobertura (donde se admite la recopilación de cobertura).

Por el momento no se conocen soluciones alternativas para mitigar el riesgo de explotación de estas fallas, por lo que los administradores de implementaciones afectadas deberán permanecer al tanto del lanzamiento de las actualizaciones requeridas.