Przez lata wydawało się, że bezpieczeństwo urządzeń USB jest tematem dobrze zrozumianym. Owszem, pojawiały się ataki wykorzystujące firmware, fałszywe klawiatury czy modyfikowane pendrive’y, ale większość problemów można było rozwiązać aktualizacją oprogramowania lub wymianą sprzętu.

USBLITER8 pokazuje jednak znacznie bardziej niepokojący scenariusz. Badacze bezpieczeństwa opisali technikę wykorzystującą fundamentalne ograniczenia architektury USB, która pozwala przełamać część zabezpieczeń opartych na kontrolerach USB i mechanizmach autoryzacji urządzeń. Co gorsza, problem dotyczy samego sposobu działania standardu USB, przez co nie może zostać całkowicie usunięty za pomocą zwykłej aktualizacji oprogramowania. Całość została opisana na blogu Paradigm Shift, gdzie znajdziemy szczegóły techniczne tego błędu.

Problem tkwi w zaufaniu do urządzenia

Podstawowym założeniem działania USB jest zaufanie do danych przekazywanych przez podłączone urządzenie. Gdy do komputera trafia nowy sprzęt, system operacyjny otrzymuje zestaw informacji identyfikujących. Na ich podstawie podejmowane są decyzje dotyczące sterowników, uprawnień oraz sposobu komunikacji.

Przez lata zakładano, że informacje te są względnie wiarygodne. USBLITER8 pokazuje, iż takie założenie może być błędne.

Specjaliści z PS Team wykazali, że odpowiednio przygotowane urządzenie może manipulować procesem enumeracji USB i przedstawiać się systemowi jako zupełnie inny typ sprzętu. W praktyce oznacza to możliwość obchodzenia części polityk bezpieczeństwa opartych wyłącznie na identyfikatorach urządzeń. Całość testowana była na telefonach Apple z procesorami A12 i A13.

Dlaczego problem jest tak poważny

Wiele organizacji wdraża rozwiązania pozwalające kontrolować dostęp urządzeń USB. Popularne systemy DLP, EDR czy platformy do zarządzania endpointami często wykorzystują identyfikatory VID i PID do tworzenia list urządzeń dozwolonych lub blokowanych. W teorii wygląda to rozsądnie. Jeżeli organizacja zezwala wyłącznie na określone pendrive’y lub urządzenia peryferyjne, ryzyko powinno być ograniczone.

Problem polega na tym, że USBLITER8 pokazuje możliwość manipulowania tymi informacjami w sposób, który może oszukać część takich zabezpieczeń.

Atakujący nie musi już szukać skomplikowanych exploitów w systemie operacyjnym. Wystarczy wykorzystać fakt, że komputer ufa informacjom przekazywanym przez urządzenie podczas inicjalizacji połączenia.

Problem nie dotyczy jednego producenta

Najbardziej niepokojącym elementem całej historii jest fakt, że nie mówimy o błędzie konkretnego sterownika czy pojedynczego producenta sprzętu. Badacze wskazują, iż problem wynika z fundamentalnych decyzji projektowych obecnych w standardzie USB od wielu lat. To oznacza, że podatność nie jest związana z konkretną wersją Windowsa, Linuksa czy macOS. Dotyczy samego modelu komunikacji pomiędzy hostem a urządzeniem. I właśnie dlatego w artykułach branżowych pojawia się określenie „unpatchable”.

Nie oznacza ono oczywiście, że nie da się wdrożyć dodatkowych mechanizmów ochronnych. Nie istnieje jednak pojedyncza poprawka, która całkowicie rozwiąże problem.

Konsekwencje dla organizacji

Dla zespołów bezpieczeństwa oznacza to konieczność ponownego przemyślenia polityk dotyczących urządzeń USB. Przez lata wiele organizacji opierało ochronę na prostym modelu: identyfikujemy urządzenie, sprawdzamy jego identyfikator i podejmujemy decyzję o dostępie. USBLITER8 udowadnia, że takie podejście może być niewystarczające.

W praktyce coraz większego znaczenia nabierają rozwiązania analizujące zachowanie urządzenia po podłączeniu. Zamiast ufać deklarowanej tożsamości sprzętu, należy obserwować, jakie funkcje rzeczywiście próbuje realizować i jakie operacje wykonuje w systemie.

To podobna zmiana filozofii, jaką kilka lat temu obserwowaliśmy w obszarze bezpieczeństwa sieciowego, gdzie klasyczne listy zaufanych adresów IP zostały zastąpione podejściem Zero Trust.

Wykrycie ataku wykorzystującego to znalezisko nie będzie łatwe, ponieważ aktywność odbywa się na bardzo niskim poziomie komunikacji pomiędzy urządzeniem a systemem operacyjnym.

Analitycy powinni zwracać uwagę na sytuacje, w których urządzenie USB zmienia swoją deklarowaną funkcjonalność, nagle prezentuje dodatkowe interfejsy lub zachowuje się inaczej, niż wynikałoby to z jego oficjalnej specyfikacji.

Warto również monitorować pojawianie się nowych urządzeń HID, kart sieciowych czy pamięci masowych bez wyraźnego działania użytkownika. W środowiskach o podwyższonych wymaganiach bezpieczeństwa coraz częściej stosuje się także fizyczną kontrolę portów USB oraz sprzętowe mechanizmy filtrujące komunikację pomiędzy hostem a urządzeniem.

Czy USB staje się nowym wektorem ataku?

Przypadek USBLITER8 zwraca uwagę na szerszy problem współczesnego bezpieczeństwa.

Wiele technologii projektowanych kilkanaście lub kilkadziesiąt lat temu powstawało w czasach, gdy poziom zagrożeń wyglądał zupełnie inaczej. Priorytetem była wygoda użytkownika i kompatybilność, a nie odporność na zaawansowane ataki. Dziś te same decyzje projektowe zaczynają wracać jako potencjalne problemy bezpieczeństwa.

USB pozostaje jednym z najpopularniejszych interfejsów na świecie. Każdego dnia miliardy urządzeń wymieniają dane z komputerami, serwerami, systemami przemysłowymi i urządzeniami IoT. Jeśli podstawowy model zaufania okazuje się podatny na manipulację, skutki mogą być dalekosiężne.

Podsumowanie

USBLITER8 nie jest kolejną podatnością, którą można po prostu załatać podczas najbliższego Patch Tuesday. To przykład problemu wynikającego z samej architektury USB i sposobu, w jaki systemy operacyjne ufają podłączanym urządzeniom.

Dla organizacji oznacza to konieczność odejścia od prostego modelu „zaufanego urządzenia” i większe skupienie się na analizie zachowania sprzętu po jego podłączeniu.

Jeśli historia cyberbezpieczeństwa czegoś nas nauczyła, to właśnie tego, że największe problemy pojawiają się wtedy, gdy bezwarunkowo ufamy temu, co podłącza się do naszego komputera.