Portál AbcLinuxu, 1. května 2025 20:43
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í.
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/../authorizedSkript č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.