I have some USBHub ( Ethernet + HDMI + USB + VGA). When it doesn't have anything connected it exposes to Linux operating system device: 'hiddev0, hidraw1' in opposite to HID mouse: which is visible as 'input,hidraw0' Here are some log snippets from virtual machine but on barebone hardware it's handled exactly same way.
[ 3.098957] hid-generic 0003:0E0F:0003.0001: input,hidraw0: USB HID v1.10 Mouse [VMware VMware Virtual USB Mouse] on usb-0000:0b:00.0-1/input0
[ 332.312763] hid-generic 0003:14B0:0106.0002: hiddev0,hidraw1: USB HID v1.11 Device [StarTech.com Ltd. Billboard Device] on usb-0000:0b:00.0-2/input1
Bearing in mind BadUSB threat I'm wondering if:
- The device is visible as hiddev0 while original mouse as input, from the other side it says input in 'usb-0000:0b:00.0-2/input1'. Would it be able to sent keystrokes to my operating system interface ?
- I'm aware there are hid-quirks in linux kernel ( https://github.com/torvalds/linux/blob/master/drivers/hid/hid-quirks.c ) but how to find what exact role the operating system assumed for this specific device ? what's about Windows and Mac?
- I've read that Billboard device are sometimes used to exchange metadata about other USB devices to avoid installing drivers, does it mean that some userspace program communicates with it or operating system always handles it as above ?