USBGuard – jak zabezpieczyć porty USB w Linuksie?

payload.pl 4 lat temu

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:

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żeli 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 choćby jeżeli 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 wszystkich 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.

Idź do oryginalnego materiału