Portál AbcLinuxu, 23. prosince 2025 19:24
To je sice pravda, ale i přesto je to pro něj ztížení a pokud útočník o opatření nebude vědět, tak to může mít nějakou výhodu. Útočník se v tom případě musí k hardweru dostat, přečíst si jeho id a zadat jej do svého hw. V případě usb disků mohu jen polemizovat nad tím, že se k němu nedostane a nepřečte si seriové číslo. V případě klávesnice a připojených zařízení to lze řešit tím, že jakmile se jednou odpojí, vyškrtne se ze seznamu a nepůjde znovu připojit dokud to nespravím přes ssh, navíc dvě stejná zařízení by byla také zakázaná. Až tak moc paranoidní ovšem nejsem a počítám že většinu útočníku to odradí.
Ale nápad je to dobrý.
udevu, takže pro detekci není třeba jeho restart. Skládá se ze tří částí, první je pravdilo 90-blockusbhid.rules:
#Check USB HID devices
ACTION=="add", ATTR{bInterfaceClass}=="03" RUN+="/usr/local/sbin/checkhid"
Druhý je samotný skript checkhid, co kontroluje zařízení podle whitelistu:
#!/bin/sh
logger -t CheckHID "Checking '$PRODUCT' ..."
while read line;
do
if [ "$PRODUCT" = "$line" ]
then
logger -t CheckHID "Device OK"
exit
fi
done < /usr/local/etc/enabled_devices.cfg
logger -t CheckHID "Disabling device"
echo 0 > /sys$DEVPATH/../authorized
Skript čte řádku po řádce soubor s povolenými zařízenímy a pokud najde shodu, skončí, v opačném případě zařízení zakáže.
A třetí část je konfigurační soubor enabled_devices.cfg, což je whitelist povolených HID zařízení. Formát souboru je jednoduchý, na každé řádce je to, co skript vypíše do logu mezi apostrofy, třeba USB klávesnice má na řádku 4f2/116/300 a moje UPS 463/ffff/1.
PS: Pokud máte pouze USB klávesnici, během testování si raději zapoznámkujte poslední řádek
....
Dnes vyšel článek na konkurenčním serveru a zmiňují se tam o skriptu v pythonu, tedy konkrétně USBkill, jen pro informaci.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.