Pojawienie się na rynku tanich narzędzi typu USB Rubber Rucky, czy jeszcze tańszych klonów, wywróciło w 2010 roku zasady ochrony portów USB w komputerach korporacyjnych. Oczywiście tego typu rozwiązania istniały i wcześniej, były jednak rozwiązaniami klasy wojskowej, zaś od 2010 może je kupić każdy chętny za niecałe $50.
USB Rubber Ducky, jak i jego klony, działają na podobnej zasadzie: po podłączeniu do portu USB deklarują, iż są urządzeniem USB klasy HID (Human Interface Device) typu 1 – czyli po prostu klawiaturą – a następnie emitują wcześniej zaprogramowane sekwencje znaków, będące najczęściej różnymi złośliwymi poleceniami, ściągającymi z Internetu i uruchamiającymi jakiś złośliwy program.
Komputer zaś im wierzy i przyjmuje te polecenia, bo… nie ma jak zweryfikować, czy urządzenie deklarujące, iż jest klawiaturę, rzeczywiście ma jakieś klawisze – a jeżeli nawet, to czy wysyłane przez nie zdarzenia wciśnięć klawiszy pokrywają się z rzeczywistymi wciśnięciami.
Czy można się obronić przed… klawiaturą?
Pierwszym podejściem, jakiego próbowano, było blokowanie konkretnego identyfikatora urządzenia USB – co mogło się udać w przypadku, gdy napastnik nie wgrał własnego numeru VID i PID, albo korzysta z jednego z tańszych zamienników, które nie oferują możliwości zmiany VID i PID. przez cały czas jednak wymagało to poświęcenia sporej ilości czasu w śledzenie identyfikatorów pojawiającego się na rynku sprzętu tego typu, oraz nie zabezpieczało w żaden sposób przed napastnikiem, który posiada oryginalne USB Rubber Ducky i przeczytał całą instrukcję do niego.
Można również zastosować nieco bardziej zaawansowany wariant powyższego podejścia, w postaci whitelisty – tzn. dopuszczać tylko zdefiniowane typy urządzeń, np. tylko konkretne 3 modele klawiatur używane przez całą firmę, oraz blokować lub wyłączać komputer w momencie wykrycia próby podłączenia niewłaściwego urządzenia. Obie te techniki podnoszą minimalnie poprzeczkę, ponieważ napastnik musi wcześniej dowiedzieć się, jakie to modele i poznać ich VID/PID, a następnie odpowiednio zaprogramować urządzenie USB Rubber Ducky – co jest trudne do wykonania ad hoc, bez odpowiednio przygotowanego sprzętu. Są to jednak wszystko metody obrony przed napastnikiem nieprzygotowanym albo niewystarczająco zmotywowanym.
DuckHunter
Projekt DuckHunter opiera się na całkiem innym rozwiązaniu i w swojej budowie przypomina keylogger (jest zresztą rozwinięciem keyloggera – wcześniejszego projektu tego samego autora):
- rejestruje się w Windows jako program odbierający i filtrujący wszystkie wciśnięcia klawiszy (ze wszystkich klawiatur)
- odbiera wszystkie wciśnięcia i liczy ich szybkość
- jeśli uzna, iż szybkość pisania jest zbyt duża jak na aktywność człowieka, blokuje wszystkie klawiatury (zależnie od ustawień: na chwilę lub do momentu podania odpowiedniego hasła), albo „gubi” co 5-7 wpisywany znak, przez co do wpisywanego przez napastnika polecenia wkradną się błędy uniemożliwiające jego uruchomienie
Efekty uboczne
Metoda ta, jakkolwiek skuteczna, ma kilka istotnych efektów ubocznych:
- spowalnia komputer, a w pewnych sytuacjach powoduje wręcz jego niestabilność (głównie w sytuacjach wymagających częstego wciskania wielu klawiszy jednocześnie, czyli głównie w grach)
- dane wrażliwe (np. hasła, dane osobowe, numery kart kredytowych itd.) lądują w logu, co może być niezgodne z różnymi regulacjami, w tym co najmniej RODO, HIPAA i PCI DSS
- brak współpracy z innymi programami do monitorowania aktywności klawiatury (np. z systemem DLP)
- fałszywe alarmy w przypadku gdy jakiś przycisk na klawiaturze zostanie wciśnięty na stałe (np. kot usiadł na laptopie i przypadkowo coś wciska)
A zatem o ile samo podejście wydaje się być jak najbardziej adekwatne, o tyle ta konkretna implementacja bardziej stanowi tzw. Proof of Concept, niż coś nadającego się do użytku na szerszą skalę, zwłaszcza w warunkach korporacyjnych. Niewykluczone jednak, iż podobna technika zostanie zaimplementowana w bardziej kompleksowym oprogramowaniu typu DLP, jako jedna z wielu technik kompleksowej ochrony firmowego komputera, a przede wszystkim danych.