USB czy nieautoryzowany przesył informacji?

keyW ostatnich latach wiele osób zademonstrowało jak wykorzystać można odpowiednio przygotowany kabel USB do ataku na komputer – nawet specjalnie zabezpieczone komputery, wykorzystywane przez Amerykańską NSA nie są odporne na tego rodzaju ataki. Prezentowane metody skupiały się głównie na implementacji w kablu USB np. nadajnika radiowego. Wadą tych rozwiązań jest jednakże to, że potrzebna jest fizyczna ingerencja w kabel USB i podmienienie lub wpięcie tak przerobionego kabla do komputera. Opisywana metoda jest lepsza, ponieważ nie wymaga żadnych modyfikacja kabla USB i pracować może z dowolnym kablem wpiętym do komputera.

USBee to oprogramowanie stworzone przez Mordechaja Guri, Matana Monitza i Yuval Elovici – naukowców z Ben-Gurion University of the Negev w Izraelu. Ten prosty program dedykowany jest do komunikacji radiowej z wykorzystaniem zwykłego portu USB z wpiętym doń kablem. W opublikowanym niedawno dokumencie badacze zademonstrowali w jaki sposób nadają oni sygnały RF z pomocą portu USB oraz to, jak można wykorzystać tą transmisję do przesyłania informacji z komputera. Transmisja odbierana może być z wykorzystaniem komercyjnie dostępnego oprogramowania i demodulowana poprzez np. GNU Radio. Jak wynika z wstępnej ewaluacji systemu USBee pozwala na osiąganie prędkości od 20 do 80 bajtów na sekundę.

Wstęp

USBJednym z podstawowych ataków, mających za zadanie wykradzenie danych są ataki sieciowe. W większości przypadków systemy takie jak firewalle, IDS czy IPS są w stanie zapewnić dostateczną ochronę wrażliwych danych, ale w sytuacjach gdy chodzi o na prawdę bardzo istotne informacje firmy i instytucje sięgają po najwyższy poziom ochrony komputera i po prostu odpinają go od jakiejkolwiek sieci. W systemach takich nie ma żadnego fizycznego kontaktu pomiędzy komputerem czy siecią lokalną a Internetem. Czy taki system jest w pełni bezpieczny?

W ciągu ostatnich lat demonstrowano wiele sposobów w jakie różnego rodzaju złośliwe oprogramowanie może atakować systemy odłączone od Internetu. Ataki te skupiały się na analizie promieniowania elektromagnetycznego, akustycznego, termicznego czy nawet optycznego, które to pozwalało na wydobycie danych z komputera. Przykładem takich ataków może być wykorzystanie układu nazwanego Cottonmouth. O jego istnieniu dowiedzieliśmy się w 2014 roku, dzięki Edwardowi Snowdenowi.

Cottonmouth to specjalnie skonstruowany kabel USB, który oprócz swojej zasadniczej funkcji pełni także rolę keyloggera i nadajnika RF, umożliwiającego wyciek danych. Aktualnie istnieje wiele rodzajów podobnych systemów, komunikujących się także poprzez Wi-Fi itp. Najtańsze z nich dostępne są już za 20 dolarów. Wykorzystanie tego rodzaju urządzeń ma jednakże poważną wadę – wymagają one fizycznej ingerencji w urządzenie, aby zamontować nadajnik RF we wtyczce USB lub podmienić kabel USB. Badacze z Izraela, których układ opisany jest poniżej, rozwiązali ten problem – ich system wykorzystuje zwykły kabel USB. USBee wykorzystuje promieniowanie elektromagnetyczne, jakie generuje transmitujący kabel USB.

kasperskyPrzykładowy scenariusz ataku zilustrowany jest na zdjęciu obok. W tym układzie podsłuchiwany komputer został zarażony odpowiednio spreparowanym malware, które wykorzystuje podpięty do komputera dysk USB, a raczej jego kabel, do transmisji RF na bliskim zasięgu. Takie malware, zainstalowane na komputerze, może wykradać hasła czy klucze szyfrujące dane i wysyłać je poprzez połączenie radiowe do atakującego.

Transmisja

Warstwa aplikacji protokołu USB zapewnia definicję punktów początkowego i końcowego transmisji, co zapewnia nadawanie danych tylko w jednym kierunku. Możliwe jest nadawanie danych OUT czyli z komputera do np. dysku USB lub IN, czyli w przeciwnym kierunku. Badacze zauważyli, że transmisja samych zer z komputera do urządzenia USB generuje zauważalne zakłócenia elektromagnetyczne w zakresie częstotliwości od 240 MHz do 480 MHz. Te częstotliwości nie dziwią, zważywszy na częstotliwość zegara transmisji USB 2.0. Zakłócenia podczas wysyłania zer wynikają z faktu, że bit '0′ w interfejsie USB symbolizowany jest jako szybka zmiana kierunku płynięcia prądu w liniach D+ oraz D-. Zatem możliwa jest generacja pakietów zer w taki sposób, aby wykorzystać emisję z kabla USB do komunikacji.

Generacja sygnału

Algorytm generacji sygnału pozwala na stworzenie specjalnej sekwencji zer i jedynek, która pozwala na emisję zakłóceń przy zadanej częstotliwości w zakresie od 240 do 480 MHz. Częstotliwość wybierana jest z krokiem 100 kHz. Funkcja wypełnia bufor zapisu opisaną sekwencją i wysyła ją poprzez interfejs USB. Częstotliwość w funkcji zadawana jest krotnością 100 kHz; w funkcji jest następnie dzielona przez 4800 kHz (480 MHz / 100) a następnie na jej podstawie generowana jest sekwencja zer i jedynek. Dla częstotliwości wejściowej równej 200 potrzebna będzie sekwencja 24 bitów – 12 jedynek i następniei 12 zer. Do sekwencji tej dodawane są następnie inne potrzebne elementy, a całość jest zapisana w pliku. Teraz wystarczy tylko zapisać taki plik na dysku USB, a informacja zostanie wyemitowana w świat.

Modulacja danych

Autorzy konstrukcji wykorzystali modulację ze zmianą częstotliwości: B-FSK. Zasadniczo jej działanie polega na przełączaniu się pomiędzy dwoma dyskretnymi częstotliwościami, odpowiadającymi zeru i jedynce transmisji. Dzięki temu łatwo dało się wykorzystać opisany powyżej algorytm do nadawania.

Transmisja danych

Sama transmisja odbywa się wtedy, gdy dane z bufora zapisu są fizycznie wysyłane w postaci strumienia do urządzenia USB. Aby to zrealizować autorzy po prostu wykorzystali plik tymczasowy na dysku przenośnym, podpiętym do USB, do którego ich program zapisywał sekwencję stworzoną w/g opisanego powyżej algorytmu. Taki rodzaj transmisji nie wymaga żadnych dodatkowych uprawnień (admina czy roota), wystarczy uprawnienia do stworzenia pliku na dysku USB.

Odbiór

Odbiór sygnałów zrealizowany został z pomocą kosztującego 30 dolarów modułu RTL-SDR, czyli prostego radia definiowanego programowo, podłączonego do komputera poprzez USB. Nad odbiorem i demodulacją sygnału czuwało GNU Radio – prosty, otwarty zestaw narzędzi dedykowany do tego rodzaju zadań.

Demodulacja sygnału B-FSK realizowana jest z pomocą szybkiej transformaty Fouriera (FFT). Odebrany sygnał cięty był na fragmenty, na których następnie realizowano FFT. Wielkość kawałków (FFTsize), na jakie pocięto odebrany sygnał, wyznaczona została za pomocą następującego wzoru:

3$\frac {SR \times TOB}{4} = FFTsize

Gdzie SR to częstotliwość próbkowania, a TOB to czas, jaki potrzebny jest na wysłanie pojedynczego bitu danych. Dalsza analiza sygnału pozwala na ocenę czy odczytany fragment sygnału to zero, jedynka czy też może nie ma w nim żadnego sygnału. Poniższy obrazek pokazuje przykładowy analizowany fragment, w którym wysłano wartość 73 (01110011b). Na jednej z osi widzimy czas w sekundach, na drugiej częstotliwość. Widać przeskakiwanie emisji pomiędzy częstotliwościami reprezentującymi 1 (wyższa) i 0 (niższa). Algorytm nadawania i demodulacji umożliwił wysyłanie danych z prędkością 80 bitów na sekundę.

Źródło: http://cyber.bgu.ac.il/t/USBee.pd  www.kaspersky.pl

Dodaj komentarz