Hablamos sobre BadUSB por primera vez en agosto pasado. Su ataquese concentra sobre el firmware de un pendrive USB, lo que teóricamente podría convertirlo en un método para instalar y distribuir malware en un sistema. Su responsable principal había anunciado que no liberaría el código, pero otros dos investigadores decidieron que es hora de exponer a BadUSB al público.
Junto a mi teclado tengo dos pendrives, uno Kingston y otro SanDisk. Ambos son de cuatro gigabytes, nada extraordinario en estos días, pero suficiente para compartir archivos y crear el ocasional “live USB”. En este último punto debo usar al pendrive Kingston (un poco más antiguo), ya que la gente de SanDisk decidió ofrecer compatibilidad con Windows To Go en sus pendrives, provocando que sean detectados como unidades fijas, un modo que causa varios errores al instalar versiones previas de Windows. Como era de esperarse, SanDisk no ve a esto como un problema, y decidió no entregar actualizaciones de firmware que permitan modificar este comportamiento. Lo que quiero decir es que la política oficial de las compañías es retener el control sobre el firmware para sus dispositivos de almacenamiento USB, a menos que sean modelos de muy alta gama, los cuales pueden verse beneficiados con updates posteriores. Ahora, esa política podría quedar en el olvido por una simple cuestión: Seguridad.
En agosto pasado, Karsten Nohl y Jakob Lell presentaron a BadUSB. Que un pendrive pueda ser modificado para que el sistema operativo lo detecte como un teclado, y comience a introducir comandos que descarguen código malicioso ya es preocupante por sí solo, pero lo más grave es que BadUSB no puede ser corregido con un parche. Al atacar la misma arquitectura bajo la que son diseñados los pendrives USB, la única forma de eliminar a BadUSB de un pendrive comprometido es reescribiendo su firmware, pero eso no evita que algo o alguien repita el proceso. Los efectos de BadUSB son tan delicados, que Nohl había decidido no compartir el código con el público. Sin embargo, en la última conferencia Derbycon, los investigadores Adam Caudill y Brandon Wilson aplicaron un poco de ingeniería inversa sobre un firmware, y lograron reproducir varios de los efectos de BadUSB. La diferencia, es que compartieron el código en GitHub.
Sí, BadUSB está suelto. La intención de Caudill y Wilson no es otra más que forzar la mano de los fabricantes para que desarrollen una solución de fondo, y no dejen a millones de pendrives completamente vulnerables. Por otro lado, criticaron la decisión de sus colegas de no lanzar el código original, argumentando que debieron liberar su material para que la gente se defienda. Ahora, Caudill y Wilson también se están guardando uno de los trucos más peligrosos, y es el de convertir a un pendrive en una vía de inyección de malware que se copia automáticamente al ordenador, y luego infecta a otros pendrives conectados posteriormente. Esto es análogo a las viejas infecciones con diskettes, aunque aquí se ataca al firmware de los dispositivos, y no su sector de inicio o el contenido que guardan. ¿Qué podemos hacer? Básicamente, usar pendrives de confianza, y evitar cualquier pendrive que sea obsequiado en conferencias y encuentros similares.