Tydzień temu pisaliśmy o narzędziu DuckHunter pozwalającym zabezpieczyć się przed USB Rubber Ducky i podobnymi urządzeniami udającymi klawiaturę. USBGuard to jeszcze ciekawsze podejście, tym razem jednak działające w systemie Linux.
USBGuard jest oficjalnym projektem firmy Red Hat, co z pewnością jest jednym z kluczowych argumentów dla działów bezpieczeństwa w korporacjach. Dostarcza on elastyczny, modułowy framework do zarządzania urządzeniami USB, działający w architekturze klient-serwer.
Zarządzanie urządzeniami i regułami możliwe jest z poziomu:
- statycznego pliku z regułami
- programów klienckich
- API w C++
- komunikacji D-Bus
Poszczególne urządzenia można akceptować lub nie na podstawie:
- skrótu cyfrowego atrybutów urządzenia
- nazwy
- numeru seryjnego (jeśli posiada)
- numeru portu USB (lub kilku podanych portów)
- interfejsu USB wystawianego przez urządzenie (w tym możliwe jest blokowanie urządzeń wystawiających kilka interfejsów, np. USB Rubber Ducky z firmware Twin Duck (klawiatura + storage na karcie MicroSD)
- stanu wcześniej podłączonych urządzeń – np. jeśli jest już podłączona jedna klawiatura USB, kolejne są blokowane
I co ważne, wszystkie te reguły mogą być stosowane łącznie, np.:
allow 1050:0011 name "Yubico Yubikey II" serial "0001234567" via-port "1-2" hash "044b5e168d40ee0245478416caf3d998"
reject via-port "1-2"
Możliwe jest także blokowanie urządzeń USB w momencie zablokowania ekranu.
Czy to wystarczy, aby obronić się przed USB Rubber Ducky?
Tak jak wspominaliśmy opisując projekt DuckHunter, podejście zastosowane w USBGuard mocno podnosi poprzeczkę – napastnik musi bowiem:
- znać wcześniej już nie tylko konkretne modele klawiatur używanych w firmie, ale wręcz konkretny model używany z konkretnym komputerem
- wiedzieć, które porty w tym komputerze mogą pracować z klawiaturą
- być w stanie odłączyć oryginalną klawiaturę (która np. może być podłączona do portu USB z tyłu obudowy komputera, a ta zabezpieczona przed łatwym dostępem)
A i tak całość nie zadziała z droższymi modelami klawiatur, posiadającymi funkcje specjalne (np. podświetlanie zarządzalne z poziomu komputera), dla których USBGuard wyliczy inny skrót cyfrowy atrybutów nawet jeśli napastnik zdoła spreparować odpowiedni VID i PID.
Przy odpowiednio przemyślanej konfiguracji, taki zestaw zabezpieczeń wydaje się jak najbardziej zadowalający.
A koszty?
Jednak coś za coś: aby te wszystkie dodatkowe zabezpieczenia miały szansę zadziałać, najpierw muszą zostać odpowiednio skonfigurowane. A więc najpierw należy:
- dla każdego tak chronionego komputera w firmie zmapować fizyczne lokalizacje portów USB na numery
- zinwentaryzować cały posiadany sprzęt USB: klawiatury, myszki, dyski zewnętrzne, pen drive’y, różnego rodzaju klucze sprzętowe (Yubico, HASP itp.), drukarki, skanery, aparaty fotograficzne itd.
- przypisać konkretny sprzęt do konkretnych komputerów (niekoniecznie jednego – każdy komputer posiada odrębny zestaw reguł)
- na podstawie tak przygotowanej bazy urządzeń, wygenerowanie plików z regułami dla każdego z komputerów
Wszystko to oznacza całkiem spore koszty. Ale trzeba to powiedzieć wprost: w dobie tanich urządzeń typu USB Rubber Ducky nie ma już dłużej mowy o tanim (a już na pewno o darmowym) bezpieczeństwie.