En los días previos a la celebración de BlackHat USA 2014, no pocos medios se hicieron eco con titulares alarmistas de BadUSB, una nueva amenaza que tenia a los dispositivos USB como principales víctimas y vectores de ataque. Antes de la charla que 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 cómo funciona esta vulnerabilidad y, si bien es algo que en teoría supone un riesgo relativamente elevado, no se puede extrapolar a todo 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 qué 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 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.

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 pero la misma metodología sería aplicable, en teoría, a otros dispositivos como discos duros externos, teclados o webcams.

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 dé cuenta. Mostraron cómo 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 Wi-Fi e introducimos un USB 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 sitios maliciosos que aparentan ser legítimos.

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 capturarlo 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 conectando 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 sólo la sección de almacenamiento de datos.

Si iniciamos el sistema con el USB 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 duros externos o pendrives, reescribir datos al vuelo e incorporar malware o actualizar la BIOS del ordenador sin nuestro conocimiento.

Como han indicado los investigadores, todo lo expuesto son conjeturas basándose en un único modelo de 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 (whitelist) 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 más 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 esta demo, 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 a BadUSB ni se tiene fácil acceso al firmware de los fabricantes 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.

Este post nos llega de la mano de Ontinet, Distribuidor de ESET en España.