Estou pesquisando na internet e, como é difícil saber se um dispositivo é vulnerável, é melhor estar preparado do outro lado do soquete USB e descobri que, na verdade, existem algumas soluções:
Para o Windows :
Existe um programa gratuito chamado GDTA USB Keyboard Guard que basicamente lhe pede para conceder acesso quando um novo dispositivo é encontrado:
G DATA has responded by developing USB KEYBOARD GUARD, an add-on that protects you from the most likely form of USB attack - USB devices pretending to be keyboards. If a new keyboard is detected by the system, access is initially denied and a pop-up is displayed. You can then check in your own time whether this really is a keyboard, and either grant or deny access permanently.
Existem também é uma solução para o Linux :
I completely agree that, as shipped, most computer systems will be susceptible to this attack, and assume that all of their attacks will work as advertised. What I don't agree with at all is their conclusion, which boils down that no effective defenses exist.
[...]
... you can easily turn off this automatic binding, at least on Linux, with one single command:
[root@optiplex ~]# echo 0 >/sys/bus/usb/drivers_autoprobe
Now, whenever you connect a USB device to your computer, it will not automatically connect...
... to manually bind this device, you first have to choose the appropriate USB configuration...
# echo 1 >/sys/bus/usb/devices/5-1/bConfigurationValue ...
( Todos os pontos [...] representam parágrafos editados. Confira o artigo completo para mais detalhes )
Outras soluções para Linux podem ser encontradas aqui:
Como evitar ataques BadUSB na área de trabalho do Linux
Se você quiser saber mais sobre o BadUSB, há um artigo cheio de recursos e links: