BadUSB: zbliża się globalna epidemia

Urządzenia USB mogą szpiegować i zawierać wirusy

Fotografia dziewczyny jadącej metrem w masce lekarskiej

Dwa miesiące temu na konferencji Black Hat ujawniono nowy rodzaj ataku wymierzonego w wymienne nośniki danych, który ochrzczono nazwą BadUSB. Pozwala on infekować niemal każde urządzenie magazynujące USB niewykrywalnym wirusem. Teraz kody przykładowego „szkodnika” ujrzały światło dzienne.

Autorem demonstracyjnego, szkodliwego kodu jest Karsten Nohl, który zauważa, że nie istnieje łatwy sposób ochrony przed infekcją. Nad niebezpiecznym wirusem współpracowało z nim jeszcze kilku badaczy, którzy postanowili złamać tabu i udostępnić szczegóły techniczne ataku, nie czekając na wprowadzenie odpowiednich mechanizmów ochronnych przez producentów sprzętu i oprogramowania. W świecie IT security takie zachowanie określa się mianem nieodpowiedzialnego ujawniania (ang. irresponsible disclosure). Teraz miliony urządzeń i systemów na całym świecie mogą stać się potencjalnymi celami ataków!

Na jednej z konferencji poświęconych bezpieczeństwu specjaliści zajmujący się omawianą tematyką, Adam CaudillBrandon Wilson, pokaszali, że udało im się z użyciem inżynierii odwrotnej (ang. reverse engineering) zbadać sposób, w jaki zaprezentowane przez Nohla szkodliwe oprogramowanie przenikało do urządzeń. Opublikowali także kod źródłowy w serwisie Github.

Zdaniem upubliczniającego kod należało to zrobić, ponieważ ludzie zasługują na szczegółowe informacje o usterkach, aby mogli się przed nimi bronić. Tego typu słabości USB były znane w kręgach specjalistów już od dawna, istnieje więc ryzyko, że są aktywnie wykorzystywane przez służby specjalne bądź firmy trudniące się wywiadem gospodarczym. Uwolnienie kodów źródłowych narzędzi demonstrujących atak jest ukłonem specjalisty w stronę szerokiej publiczności, która wcześniej nie zdawała sobie sprawy, że może być inwigilowana.

Problem

Przyczyną problemu są słabości architektoniczne standardu USB, a w szczególności oprogramowania układowego mikrokontrolerów. Badacze zajmowali się jednym z najpopularniejszych, sprzedawanym przez tajwańską spółkę Phison, który znaleźć można w wielu urządzeniach. Okazuje się, że układy można tak zaprogramować, aby zamiast lub poza swą właściwą funkcją, prowadziły ataki wymierzone w system, do którego zostały podłączone.

Czym różni się to od konwencjonalnego wirusa? Umiejscowieniem „szkodnika”. Wirusy komputerowe rezydują zwykle w sektorach rozruchowych dysków, dołączają kod do obrazów programów czy zapisują się w skryptach rozruchowych systemu lub innych plikach odpowiadających za automatyczne uruchamianie. W przypadku BadUSB niszczycielski kod znajduje się w oprogramowaniu układowym urządzenia, do którego system komputerowy nie ma łatwego dostępu, szczególnie, że to ono może zdecydować w jaki sposób kontrolowane przezeń urządzenie będzie widziane przez komputer.

USB to w zasadzie nowoczesny interfejs transmisji szeregowej, ale urządzenia USB to osobne mikrokomputery. Problemem jest poziom zaufania udzielanego tym ostatnim przez systemy operacyjne.

Zagrożenie

O możliwe następstwa opublikowanej luki zapytaliśmy chcącego zachować anonimowość specjalistę ds. bezpieczeństwa (i sentymentalnego użytkownika mikrokomputera ZX-Spectrum), którego na potrzeby wypowiedzi określać będziemy pseudonimem Likier. Przez wiele lat zajmował się badaniem podatności na zagrożenia w oprogramowaniu i ma na swoim koncie kilka poważnych odkryć usterek w popularnych usługach sieciowych oraz systemach operacyjnych.

Likier zauważył, że z powodu braku należytej kontroli na linii system komputerowy – urządzenie USB, występuje nadmierne zaufanie względem tego ostatniego, co prowadzić może do:

  • ukrywania szkodliwego kodu w układach USB,
  • emulowania dowolnych urządzeń przez zarażone układy,
  • podsłuchiwania danych wymienianych w obrębie tej samej szyny (tego samego HUB-a USB),
  • prób ataków wymierzonych w sterowniki lub w oprogramowanie układowe innych urządzeń.

Podany przez Likiera przykład wykorzystania zarażonego firmware’u to sytuacja, gdy podłączany do USB dysk przenośny może „przedstawić się” systemowi jako klawiatura, która będzie zamiast użytkownika wprowadzała tekst, np. po otrzymaniu odpowiedniego sygnału od wirusa działającego na komputerze lub samodzielnie. Podsłuchiwanie informacji wysyłanych do systemu przez rzeczywistą klawiaturę również nie jest problemem dla odpowiednio zaprogramowanego układu.

Zainfekowany dysk przenośny czy odtwarzacz MP3 może również przełamywać zabezpieczenia systemu, wykorzystując usterki w sterownikach czy oprogramowaniu, do których będzie wysyłał zniekształcone dane.

Łatwo też wyobrazić sobie scenariusz, w którym podłączając urządzenie USB sprawiamy, że pojawia się ono jako dysk twardy, na którego partycji zaczynają „znikąd” pojawiać się pliki, identyfikator napędu jest taki sam, jak jeden z często używanych, zaufanych nośników.

Innym przykładem może być modyfikowanie zawartości plików przechowywanych na dysku USB w czasie ich odczytywania, polegające na wstrzykiwaniu w ich zawartość szkodliwego kodu, jednak nie od razu, lecz przy którymś z kolei odczycie, aby oszukać skanery antywirusowe.

Ochrona

Obecne standardy bardzo utrudniają ochronę przed atakami zademonstrowanymi przez BadUSB, ponieważ warunkiem koniecznym byłyby głębokie zmiany architektoniczne, np. wprowadzenie cyfrowych podpisów firmware’u i/lub zmniejszenie zaufania, jakim system obdarza konkretne obiekty używające interfejsu USB. Można też pomyśleć o wprowadzeniu szyfrowania, aby uniknąć podsłuchiwania na tej samej szynie, lecz wiązałoby się to z podniesieniem kosztów produkcji układów.

Jedyną pewną ochroną jest więc niepodłączanie niezaufanych urządzeń do komputera, a w przypadku sieci korporacyjnych blokada portów USB komputerów użytkowanych przez pracowników.

Interfejs USB należy po prostu traktować jak sieć, do której dostęp mają niezaufane stacje.

Jesteś w sekcji

comments powered by Disqus