Análisis de BadUSB. La nueva amenaza que utiliza dispositivos USB (pero no es el apocalipsis)

usb-623x432

En los días previos a la celebración de BlackHat, no pocos medios se hicieron eco con titulares alarmistas, de una nueva amenaza que tenia a los dispositivos USB como principales víctimas / vector de ataque. En estos días previos a la charla que ayer ofrecieron los investigadores Karsten Nohl y Jakob Lell hemos leído casi de todo, como que la vulnerabilidad afectaba a todos los dispositivos USB habidos y por haber o que suponía un apocalipsis informático similar al “efecto 2000”.

Por suerte, estos investigadores han explicado con detalle en su presentación como funciona esta vulnerabilidad y, si bien es algo que en teoría supone un riesgo relativamente elevado, no se puede extrapolar a todos lo que tenga un conector USB, al menos no hasta que se hagan muchas más pruebas.

Anatomía de un dispositivo USB

Esta vulnerabilidad utiliza un chip de control que tienen todos los dispositivos USB y que, a su vez contiene un firmware que indica, entre otros datos, de que tipo de dispositivo se trata. Cuando conectamos un USB a nuestro ordenador se realiza un proceso de inicialización que contiene varios pasos. En estos pasos, el dispositivo USB se identifica con su clase (una o varias) y se cargan los drivers necesarios para su correcto funcionamiento.

Es importante destacar el concepto de “clase” con la que se identifica un dispositivo. Puede haber dispositivos que contengan varias clases como, por ejemplo, una webcam, que sería de la clase cámara y micrófono. También hay que tener en cuenta que un dispositivo USB puede registrarse y “desregistrarse” tantas veces como quiera en un sistema, e incluso cambiar de clase.

Badusb1b

Cambiando la funcionalidad

¿Donde está el problema descubierto por estos investigadores? Según ellos, analizando un firmware filtrado de uno de los mayores fabricantes de chips de control para dispositivos USB y aplicándole ingeniería inversa y heurística consiguieron modificar el firmware para añadirle funcionalidades adicionales. Se centraron en pendrives USB pero la misma metodología sería aplicable, en teoría, a otros dispositivos como discos duros externos, teclados, webcams, etc…

Entre las funcionalidades adicionales que se podrían incorporar encontramos, como no, la de cargar un exploit en el ordenador de la víctima, comprometiendo su seguridad e infectándola. Esto se podría producir en cualquier sistema operativo, si bien con ciertas restricciones en algunos. Por ejemplo, en un sistema GNU/Linux estándar, el malware cargado contaría con permisos limitados y necesitaría hacer una escalada de privilegios a “root”para conseguir propagar esta amenaza a todos los dispositivos USB que estén conectados y sean vulnerables. Algo más difícil pero no inalcanzable.

Modificando el tráfico de red

Otra de las características maliciosas que han destacado los investigadores es la posibilidad de hacer que se realice un ataque desde un pendrive modificado que sea capaz de alterar el tráfico de red sin que el usuario se decuenta. Mediante una ingeniosa demo, han demostrado que un pendrive modificado podría hacerse pasar por un adaptador de red ethernet en el sistema objetivo que responda a peticiones DHCP realizadas desde el sistema pero sin asignar una puerta de enlace.

Esto se traduce en que si estamos conectados a una red WiFi e introducimos un pendrive modificado en nuestro sistema, seguiremos navegando sin problema, pero las peticiones DNS que realicemos a la hora de acceder a una web, por ejemplo, serán gestionadas por el servidor cargado desde el pendrive, lo que permite ataques de redirección de tráfico que nos pueden llevar a webs maliciosas que aparentan ser perfectamente legítimas.

BadUSB5b

Dispositivos móviles como vectores de ataque

Los teléfonos móviles también han tenido su protagonismo como dispositivos que cuentan con un puerto USB para la transferencia de datos. Los investigadores han destacado Android como plataforma para realizar operaciones maliciosas como espiar todo el tráfico de red que realizamos desde nuestro ordenador.

Los smartphones con Android cuentan con un emulador de ethernet sobre USB que permitiría realizar un ataque para redirigir todo el tráfico a través del puerto USB y capturárlo de forma efectiva. Se podrían hacer también ataques efectivos contra el doble factor de autenticación usando la emulación del teclado y conectado el móvil Android al ordenador.

Amenazas contra el sector de arranque

Un pendrive modificado sería capaz de identificar el sistema operativo en el que ha sido introducido y reconocer el tipo de BIOS. A partir de ahí sería teóricamente posible ocultar el contenido malicioso de las soluciones de seguridad tradicionales, mostrando solo la sección de almacenamiento de datos.

Si iniciamos el sistema con el pendrive modificado y la BIOS de la máquina accede a leer su contenido, una partición secreta con una distribución modificada de GNU/Linux se manifestaría, ejecutando un rootkit que infectaría la máquina y, seguidamente, arrancaría desde el pendrive.

Más ataques posibles y soluciones planteadas

La variedad de ataques que se podrían realizar explotando esta vulnerabilidad es larga e incluyen, ademas de los que ya hemos comentado, la posibilidad de ocultar datos en discos duro externos o pendrives, reescribir datos al vuelo e incorporando malware o actualizar la BIOS de nuestro ordenador sin nuestro conocimiento.

Como han indicado los investigadores, todo lo expuesto son conjeturas basándose en un único modelo de pendrive USB que contiene un chip de control del fabricante más utilizado. Esto no significa que las técnicas que acabamos de exponer funcionen en todos los que dispongan de conexión USB, aunque podríamos estar hablando de un número elevado.

Para mitigar posibles ataques de este tipo, los investigadores proponen aplicar una serie de medidas como hacer una lista blanca de dispositivos permitidos, bloquear aquellas clases de USB más críticas o bloquear los USB completamente, analizar el firmware de los periféricos USB en busca de malware o utilizar una firma con código en las actualizaciones de firmware para evitar que sean modificados maliciosamente.

No obstante, estas medidas son difíciles de implementar por lo que lo mas recomendable y sencillo ahora mismo, y a pesar de que no se conoce ningún ataque de este tipo más que el presentado en el día de ayer, pasa por desactivar las actualizaciones de firmware en aquellos dispositivos que lo soporten. De esta forma se pierden posibles funcionalidades adicionales pero se evita que se sobreescriba con un firmware malicioso.

Conclusión

Después de haber visto la presentación y hablar personalmente con los investigadores nos queda la sensación de que este vector de ataque es realmente elaborado pero no está al alcance de cualquiera. Ni todos los dispositivos USB son vulnerables ni se tiene fácil acceso al firmware de los fabricantes de estos dispositivos para poder analizarlo y explotarlo en beneficio propio. Por eso debemos tomar esta investigación con cautela y como lo que realmente es, una prueba de concepto muy bien preparada que debe servir como alerta a los fabricantes para evitar posibles incidentes en el futuro.

Josep Albors

Cómo convertir a tu mascota en una ciber arma