Historycznie rzecz biorąc, większość pracowników korzysta z bezprzewodowych klawiatur i myszy firmy Logitech. Wpisując po raz kolejny nasze hasła, my, specjaliści z zespołu Raccoon Security, zadaliśmy sobie pytanie: jak trudno jest ominąć mechanizmy bezpieczeństwa klawiatur bezprzewodowych? Badanie ujawniło wady architektoniczne i błędy oprogramowania, które umożliwiają dostęp do danych wejściowych. Poniżej cięcia znajduje się to, co otrzymaliśmy.
Dlaczego Logitech?
Naszym zdaniem urządzenia wejściowe Logitech należą do najwyższej jakości i najwygodniejszych. Większość urządzeń, które posiadamy opiera się na rozwiązaniu Logitecha
Odbiornik klucza sprzętowego z obsługą Logitech Unifying
Klawiatura może stać się źródłem informacji dla atakujących. Logitech biorąc pod uwagę możliwe zagrożenie zadbał o bezpieczeństwo - zastosował algorytm szyfrowania AES128 w kanale radiowym klawiatury bezprzewodowej. Pierwszą myślą, jaką atakujący może mieć w tej sytuacji, jest przechwycenie kluczowych informacji przesyłanych kanałem radiowym w trakcie procedury wiązania. W końcu, jeśli masz klucz, możesz przechwycić sygnały radiowe klawiatury i je odszyfrować. Jednak użytkownik rzadko (lub nawet nigdy) nie musi ujednolicać klawiatury, a haker dysponujący radiem skanującym będzie musiał długo czekać. Ponadto nie wszystko jest takie proste w przypadku samego procesu przechwytywania. W najnowszym badaniu przeprowadzonym w czerwcu 2019 r. ekspert ds. bezpieczeństwa Markus Mengs opublikował w Internecie
Porozmawiamy o naszym badaniu bezpieczeństwa klucza sprzętowego Logitech opartego na układzie SoC NRF24 firmy Nordic Semiconductor. Zacznijmy może od samego kanału radiowego.
Jak dane „przelatują” w kanale radiowym
Do analizy czasowo-częstotliwościowej sygnału radiowego wykorzystaliśmy odbiornik SDR oparty na urządzeniu Blade-RF w trybie analizatora widma (o tym też można przeczytać
Urządzenie SDR Blade-RF
Rozważaliśmy także możliwość rejestracji kwadratur sygnału radiowego na częstotliwości pośredniej, które można następnie analizować za pomocą technik cyfrowego przetwarzania sygnału.
Państwowa Komisja ds. Częstotliwości Radiowych w Federacji Rosyjskiej
Widmo pasma 2,4 GHz
Środowisko zakłóceń w tym zakresie jest dość złożone. Mimo to Logitech był w stanie zapewnić niezawodny i stabilny odbiór dzięki zastosowaniu protokołu Enhanced ShockBurst w transiwerze NRF24 w połączeniu z algorytmami adaptacji częstotliwości.
Kanały w paśmie są umieszczane w pozycjach będących liczbami całkowitymi MHz, zgodnie z definicją w
Sygnał radiowy klawiatury w reprezentacji czasu
Odbiornik wykorzystuje zasadę korelacji odbioru, zatem przesyłany pakiet zawiera preambułę i część adresową. Nie stosuje się kodowania odpornego na zakłócenia, treść danych jest szyfrowana algorytmem AES128.
Ogólnie interfejs radiowy klawiatury bezprzewodowej Logitech można scharakteryzować jako całkowicie asynchroniczny ze statystycznym multipleksowaniem i adaptacją częstotliwości. Oznacza to, że nadajnik klawiatury przełącza kanał w celu przesłania każdego nowego pakietu. Odbiornik nie zna z góry ani czasu transmisji, ani kanału częstotliwości, znana jest jedynie ich lista. Odbiornik i nadajnik spotykają się w kanale dzięki skoordynowanym algorytmom obejścia częstotliwości i nasłuchu, a także mechanizmom potwierdzania Enhanced ShockBurst. Nie sprawdzaliśmy, czy lista kanałów jest statyczna. Prawdopodobnie jego zmiana wynika z algorytmu adaptacji częstotliwości. Coś bliskiego metodzie przeskakiwania częstotliwości (pseudolosowe strojenie częstotliwości roboczej) można dostrzec w wykorzystaniu zasobu częstotliwościowego zakresu.
Zatem w warunkach niepewności czasowo-częstotliwościowej, aby zapewnić gwarantowany odbiór wszystkich sygnałów klawiatury, atakujący będzie musiał stale monitorować całą siatkę częstotliwości składającą się z 84 pozycji, co wymaga znacznej ilości czasu. Tutaj staje się jasne, dlaczego luka w zabezpieczeniach umożliwiająca wyodrębnienie klucza USB (CVE-2019-13054)
Spojrzenie na problem od środka
Do naszego badania wybraliśmy jedną z naszych istniejących klawiatur Logitech K330 i klucz sprzętowy Logitech Unifying.
Logitech K330
Zajrzyjmy do wnętrza klawiatury. Ciekawym elementem na płytce do zbadania jest układ SoC NRF24 firmy Nordic Semiconductor.
SoC NRF24 na płycie klawiatury bezprzewodowej Logitech K330
Oprogramowanie sprzętowe znajduje się w pamięci wewnętrznej, mechanizmy odczytu i debugowania są wyłączone. Niestety oprogramowanie sprzętowe nie zostało opublikowane w otwartych źródłach. Dlatego postanowiliśmy podejść do problemu od drugiej strony - przestudiować wewnętrzną zawartość odbiornika klucza sprzętowego Logitech.
„Wewnętrzny świat” odbiornika klucza sprzętowego jest dość interesujący. Dongle można łatwo zdemontować, przenosi na pokładzie znajomą wersję NRF24 z wbudowanym kontrolerem USB i można go przeprogramować zarówno od strony USB, jak i bezpośrednio z programatora.
Klucz sprzętowy Logitech bez obudowy
Ponieważ istnieje standardowy mechanizm aktualizacji oprogramowania sprzętowego za pomocą
Co zostało zrobione: oprogramowanie sprzętowe RQR_012_005_00028.bin zostało wyodrębnione z treści aplikacji narzędzia aktualizacji oprogramowania sprzętowego. Aby sprawdzić jego integralność, kontroler kluczowy został podłączony kablem
Kabel do podłączenia klucza sprzętowego Logitech do programatora ChipProg 48
Aby kontrolować integralność oprogramowania, zostało ono pomyślnie umieszczone w pamięci kontrolera i działało poprawnie, klawiaturę i mysz podłączono do klucza sprzętowego poprzez Logitech Unifying. Możliwe jest wgranie zmodyfikowanego oprogramowania sprzętowego przy użyciu standardowego mechanizmu aktualizacji, ponieważ nie ma mechanizmów ochrony kryptograficznej oprogramowania sprzętowego. Do celów badawczych wykorzystaliśmy fizyczne połączenie z programistą, ponieważ debugowanie w ten sposób jest znacznie szybsze.
Badanie oprogramowania sprzętowego i atak na dane wejściowe użytkownika
Układ NRF24 został zaprojektowany w oparciu o rdzeń obliczeniowy Intel 8051 w tradycyjnej architekturze Harvardu. Dla rdzenia transceiver pełni rolę urządzenia peryferyjnego i jest umieszczany w przestrzeni adresowej jako zbiór rejestrów. Dokumentację chipa i przykłady kodu źródłowego można znaleźć w Internecie, więc demontaż oprogramowania nie jest trudny. Podczas inżynierii wstecznej zlokalizowaliśmy funkcje odbierania danych o naciśnięciach klawiszy z kanału radiowego i konwertowania ich do formatu HID w celu przesłania do hosta poprzez interfejs USB. Kod wtrysku został umieszczony w wolnych adresach pamięci, w których znajdowały się narzędzia do przechwytywania kontroli, zapisywania i przywracania pierwotnego kontekstu wykonania, a także kod funkcjonalny.
Pakiet naciśnięcia lub puszczenia klawisza odebrany przez klucz sprzętowy z kanału radiowego jest odszyfrowywany, konwertowany na standardowy raport HID i wysyłany do interfejsu USB tak, jak ze zwykłej klawiatury. W ramach badania najbardziej interesującą nas częścią raportu HID jest część raportu HID zawierająca bajt flag modyfikatorów oraz tablicę 6 bajtów z kodami naciśnięć klawiszy (dla porównania informacja o HID
Struktura raportu HID:
// Keyboard HID report structure.
// See https://flylib.com/books/en/4.168.1.83/1/ (last access 2018 december)
// "Reports and Report Descriptors", "Programming the Microsoft Windows Driver Model"
typedef struct{
uint8_t Modifiers;
uint8_t Reserved;
uint8_t KeyCode[6];
}HidKbdReport_t;
Bezpośrednio przed przesłaniem struktury HID do hosta wstrzyknięty kod przejmuje kontrolę, kopiuje 8 bajtów natywnych danych HID do pamięci i wysyła je do kanału radiowego w postaci zwykłego tekstu. W kodzie wygląda to tak:
//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~>
// Profiling have shown time execution ~1.88 mSec this block of code
SaveRfState(); // save transceiver state
RfInitForTransmition(TransmitRfAddress); // configure for special trnsmition
hal_nrf_write_tx_payload_noack(pDataToSend,sizeof(HidKbdReport_t)); // Write payload to radio TX FIFO
CE_PULSE(); // Toggle radio CE signal to start transmission
RestoreRfState(); // restore original transceiver state
//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~<
Kanał boczny jest zorganizowany z częstotliwością, którą ustalamy z pewnymi charakterystykami szybkości manipulacji i struktury pakietu.
Działanie transceivera w chipie
Demodulowany sygnał Burst Burst w kanale bocznym
Po przesłaniu pakietu do kanału bocznego, wstrzyknięty kod przywraca stan transceivera. Teraz znów jest gotowy do normalnej pracy w kontekście oryginalnego oprogramowania.
W dziedzinie częstotliwości i czasu-częstotliwości kanał boczny wygląda następująco:
Reprezentacja widmowa i czasowo-częstotliwościowa kanału bocznego
Aby przetestować działanie układu NRF24 ze zmodyfikowanym oprogramowaniem, zmontowaliśmy stanowisko, które zawierało klucz sprzętowy Logitech ze zmodyfikowanym oprogramowaniem, klawiaturę bezprzewodową oraz odbiornik zmontowany w oparciu o chiński moduł z chipem NRF24.
Obwód przechwytywania sygnału radiowego klawiatury bezprzewodowej Logitech
Moduł oparty na NRF24
Na ławce, przy normalnie działającej klawiaturze, po podłączeniu jej do klucza sprzętowego Logitecha, zaobserwowaliśmy transmisję wyraźnych danych o naciśnięciach klawiszy w bocznym kanale radiowym oraz normalną transmisję zaszyfrowanych danych w głównym interfejsie radiowym. W ten sposób byliśmy w stanie zapewnić bezpośrednie przechwytywanie danych wprowadzanych z klawiatury użytkownika:
Wynik przechwytywania danych wprowadzanych z klawiatury
Wstrzyknięty kod wprowadza niewielkie opóźnienia w działaniu oprogramowania sprzętowego klucza sprzętowego. Są one jednak zbyt małe, aby użytkownik mógł je zauważyć.
Jak możesz sobie wyobrazić, do tego wektora ataku można wykorzystać dowolną klawiaturę Logitech kompatybilną z technologią Unifying. Ponieważ celem ataku jest odbiornik Unifying dołączony do większości klawiatur Logitech, jest on niezależny od konkretnego modelu klawiatury.
wniosek
Wyniki badania sugerują możliwość wykorzystania rozważanego scenariusza przez atakujących: jeśli haker wymieni ofiarę na odbiornik klucza sprzętowego do klawiatury bezprzewodowej Logitech, wówczas będzie mógł poznać hasła do kont ofiary wraz ze wszystkimi wynikającymi z tego konsekwencjami. konsekwencje. Nie zapominaj, że możliwe jest również wstrzykiwanie naciśnięć klawiszy, co oznacza, że wykonanie dowolnego kodu na komputerze ofiary nie jest trudne.
Co się stanie, jeśli nagle osoba atakująca będzie mogła zdalnie zmodyfikować oprogramowanie sprzętowe dowolnego klucza sprzętowego Logitech przez USB? Następnie, korzystając z blisko rozmieszczonych kluczy sprzętowych, można utworzyć sieć wzmacniaków i zwiększyć odległość wycieku. Choć „zamożny finansowo” napastnik będzie w stanie „podsłuchiwać” polecenia z klawiatury i naciskać klawisze nawet z sąsiedniego budynku, to nowoczesny sprzęt radiowy z systemami wysoce selektywnymi, czułe odbiorniki radiowe o krótkich czasach strojenia częstotliwości i anteny silnie kierunkowe pozwolą mu „słuchać” poleceń wprowadzanych z klawiatury i naciskać klawisze nawet z sąsiedniego budynku.
Profesjonalny sprzęt radiowy
Ponieważ kanał bezprzewodowej transmisji danych klawiatury Logitech jest dość dobrze chroniony, znaleziony wektor ataku wymaga fizycznego dostępu do odbiornika, co znacznie ogranicza atakującego. Jedyną opcją ochrony w tym przypadku byłoby zastosowanie mechanizmów ochrony kryptograficznej oprogramowania odbiornika, na przykład sprawdzenie sygnatury wgranego oprogramowania po stronie odbiornika. Ale niestety NRF24 tego nie obsługuje i nie da się wdrożyć ochrony w obecnej architekturze urządzenia. Uważajcie więc na swoje klucze sprzętowe, gdyż opisana opcja ataku wymaga fizycznego dostępu do nich.
Raccoon Security to specjalny zespół ekspertów z Centrum Badawczo-Rozwojowego Vulcan w zakresie praktycznego bezpieczeństwa informacji, kryptografii, projektowania obwodów, inżynierii wstecznej i tworzenia oprogramowania niskiego poziomu.
Źródło: www.habr.com