?

Log in

No account? Create an account
Linux USB security - Журнал Восставшей Машины [entries|archive|friends|userinfo]
ArkanoiD

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Linux USB security [Aug. 21st, 2014|02:44 pm]
ArkanoiD
[Tags|, , ]

Как мы знаем, Linux из коробки имеет дурную привычку подключать USB-устройства сразу и без вопросов. Что, разумеется, может быть использовано для rogue HIDs и прочей гадости. Настраивать udev руками всем лень. Кому интересно, есть готовый рецепт:

The BadUSB attack bases on the fact that computers allow and enable HID devices on all usb ports. Faked network adapters are no real danger. My answer tries do describe how to use udev to temporarily disable the addition of new HID devices. I'm no udev expert, but I've tested my approach, and it works for me.

For preparation, create a file /etc/udev/rules.d/10-usbblock.rules with the content:

#ACTION=="add", ATTR{bInterfaceClass}=="03" RUN+="/bin/sh -c 'echo 0 >/sys$DEVPATH/../authorized'"

If you want to block other classes too, then look up the class number, and copy the line, and change the class.

Now you can block all new HID devices using the command

sed -i 's/#//' /etc/udev/rules.d/10-usbblock.rules; udevadm control --reload-rules

and unblock with:

sed -i 's/^/#/' /etc/udev/rules.d/10-usbblock.rules; udevadm control --reload-rules

Before you shut down, always unblock, as the setting is persistent, and your "good" HID devices would be rejected on reboot.

I don't know whether you can edit the temporary rules directory, but if changes there affect the behaviour, you should edit that instead, as then you don't need to unblock before shutdown.

(from https://security.stackexchange.com/questions/64524/how-to-prevent-badusb-attacks-on-linux-desktop/64552#64552 )

Понятно, что block/unblock можно вставить в стартовые скрипты. Хоть бы кто еще нарисовал гуекнопки для всего этого, желательно, с более умными whilelists при загрузке.
linkReply

Comments:
[User Picture]From: Evgeny Kolesnikov
2014-08-22 04:50 am (UTC)
А может быть просто спрашивать при подключении? Ну типа вот ща мы включим: 1) Storage: Transcend 2GJF8, 2) HID Device: SuperEvil Keyboard 3) Network Adapter: Huivei 3G и по результатам опроса чекбоксов — в бан или в полезные. Ну и менеджер листов в настройках.

Но тут надо над udev думать на тему вкорячивания диалога в процессе подключения. Но я уже видел на эту тему что-то.
(Reply) (Parent) (Thread)
[User Picture]From: arkanoid
2014-08-22 05:41 am (UTC)
Да, что-то такое я и имел в виду.

Кстати, MacOS с установленным Parallels Desktop для начала спросит "а что с этим девайсом делать" ;-)
(Reply) (Parent) (Thread)
[User Picture]From: Evgeny Kolesnikov
2014-08-22 06:25 am (UTC)
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=615493
(Reply) (Parent) (Thread)