Wdrożenia Bluetooth Low Energy jako kopalnia ciekawych podatności

dodał 3 sierpnia 2016 o 21:52 w kategorii Błędy, Mobilne  z tagami:
Wdrożenia Bluetooth Low Energy jako kopalnia ciekawych podatności

Kontrolowanie wyświetlacza terminala płatniczego, oszukiwanie mądrych zamków i urządzeń antykradzieżowych lub tokenów autoryzacyjnych – to tylko część podatności odkrytych przez Polaków w coraz popularniejszej technologii BLE.

Bluetooth Low Energy to technologia bardzo popularna w Internecie Rzeczy. Mądre zegarki, mądre urządzenia domowe, mądre etykiety cenowe, terminale płatnicze kontrolowane smartfonem – wszędzie dzisiaj możemy spotkać przykłady wdrożeń. Niestety okazuje się, że choć technologia oferuje przyzwoite mechanizmy bezpieczeństwa, to jej wdrożenia często ich nie obejmują, powodując liczne podatności na różne rodzaje ataków. Ich szczegóły przedstawia właśnie na konferencji Black Hat US Sławek Jasek z firmy Securing.

Szyfrowanie, parowanie, po co to komu

Wyobraźcie sobie, że do Waszego sklepu wchodzi klient. Kupuje towar, płaci kartą. Nowoczesny terminal płatniczy współpracuje z Waszym smartfonem. W momencie płatności na terminalu pojawia się napis „Transakcja zaakceptowana” podczas kiedy aplikacja na smartfonie pokazuje odrzucenie transakcji. Któremu komunikatowi zaufacie? Jeśli temu z terminala to Wy macie problem a Wasz klient urządzenie modyfikujące komunikację między smartfonem a terminalem.

Przykład ataku na terminal

Przykład ataku na terminal

Bluetooth Low Energy umożliwia parowanie urządzeń oraz szyfrowanie warstwy transmisyjnej. Niestety w wielu wdrożeniach ich autorzy uznali, że lepiej zapewnić poufność i integralność danych własnoręcznie np. na poziomie aplikacji. Doświadczenia Sławka pokazały, że na 10 testowanych urządzeń aż 8 nie wdrożyło szyfrowania kanału komunikacji. Nie był to najlepszy wybór. Najlepiej pokazuje to narzędzie GATTacker (wkrótce dostępne pod adresem GATTack.io) opracowane przez naszego rodaka. Jest to proxy BLE, umożliwiające ataki MiTM. Można je uruchomić na Raspberry Pi a następnie za jego pomocą między innymi:

  • przeprowadzić atak odmowy usługi na inteligentny dom, zamek czy terminal płatniczy,
  • podszyć się pod prawdziwe źródło sygnału (np. wyłączając alarm przeciwwłamaniowy),
  • przechwycić treść komunikacji (a zatem np. dane uwierzytelniające),
  • przejąć kontrolę nad urządzeniem po drugiej stronie połączenia.

Scenariusz ataku MiTM

W jaki sposób przeprowadzany jest atak MiTM? Zdecydowanie ułatwia go fakt, że najczęściej na warstwie połączenia nie wprowadzono mechanizmów uwierzytelnienia ani szyfrowania.

Urządzenia BLE mogą pracować w dwóch trybach:

  • rozgłoszeniowym, gdzie jedno urządzenie wysyła od czasu do czasu krótkie, 31-bajtowe pakiety zawierające proste informacje podczas gdy drugie urządzenie nasłuchuje takich komunikatów,
  • połączeniowym, gdzie urządzenia nawiązują już komunikację pomiędzy sobą.

Urządzenia BLE mogą funkcjonować naraz tylko w jednym z tych trybów, co także ułatwia atak. Pakiety wysyłane przez urządzenie rozgłaszające są widoczne dla wszystkich. W pakietach tych mogą być zawarte proste informacje takie jak np. „status zamka zamknięty”. Urządzenia zasilane z baterii optymalizują częstotliwość wysyłania tych pakietów w celu jak największej oszczędności energii.

Aby połączyć się z urządzeniem Bluetooth Smart aplikacja mobilna w pierwszej kolejności nasłuchuje określonych pakietów rozgłoszeniowych. W momencie gdy na podstawie analizy treści pakietu rozpozna że został on wysłany od poszukiwanego urządzenia, zatrzymuje dalsze skanowanie i nawiązuje połączenie z tym urządzeniem.

Spójrzmy na przykład w którym atakujący chce podsłuchiwać ruch między terminalem płatniczym a smartfonem. Wystarczy, by urządzenie przeprowadzające atak MiTM swoje pakiety rozgłoszeniowe, sklonowane z oryginalnego sygnału terminala, wysyłało dużo częściej – by to właśnie fałszywe pakiety zostały najpierw zauważone przez smartfona. Gdy smartfon nawiąże już sesję z urządzeniem MiTM, przestaje reagować na pakiety rozgłoszeniowe terminala. Wtedy urządzenie MiTM może zacząć udawać smartfona i połączyć się z terminalem, uzyskując pozycję umożliwiającą podsłuch i modykację przesyłanych treści. Oczywiście ze względu na specyfikę transmisji aby przeprowadzić taki atak trzeba znajdować się w bezpośredniej bliskości atakowanych urządzeń (skuteczny zasięg transmisji wynosi kilka metrów).

Niektóre urządzenia nie weryfikują nawet adresu MAC drugiej strony połączenia – można wtedy podszywać się bez konieczności klonowania adresu. Jeśli jednak taka weryfikacja następuje, również nie stanowi to problemu, bo sklonowanie adresu jest trywialne. Pewnym zabezpieczeniem połączenia jest proces parowania urządzeń, jednak najczęściej stosowana metoda (“Just Works”) jest bardzo uproszczona (przez co mniej bezpieczna). Relacja zaufania pomiędzy urządzeniami jest zapisywana na poziomie systemu operacyjnego, aplikacja mobilna nie ma do niej bezpośredniego dostępu. Niemożliwe staje się więc np. przeniesienie parowania na inny telefon czyli chociażby wysłanie uprawnień do inteligentnego zamka w formie wiadomości wewnątrz aplikacji do innego urządzenia. Na domiar złego z powodu ograniczeń sprzętowych miniaturowych urządzeń niektóre z nich potrafią zapamiętać tylko 8 kluczy parujących naraz. W związku z tym producenci sprzętu często wprowadzają własne mechanizmy bezpieczeństwa na wyższych warstwach komunikacji, niestety czasem z opłakanym skutkiem.

Przykładowe ataki

Oprócz opisywanego powyżej fałszowania wiadomości na terminalu (możliwemu dzięki temu, ze choć dane karty są przesyłane w zaszyfrowanej formie, to już pakiety z poleceniami obsługi wyświetlacza szyfrowane nie są) możliwe są także inne ciekawe ataki:

  • oszukiwanie systemu antykradzieżowego opartego na odczycie sygnałów rozgłaszanych przez urządzenie – sygnałów, które można bardzo prosto sklonować i uniemożliwić wystąpienie alarmu w telefonie mimo kradzieży bagażu

  • blokowanie zamknięcia zamka w drzwiach poprzez wysyłanie komunikatu „zamek jest już zamknięty” (sklonowanego z wcześniejszego podsłuchu, nawet jeśli był zaszyfrowany) ogłupia aplikację, która uznaje, że do zamknięcia doszło

  • otwieranie drzwi podczas gdy klucz znajduje się ciągle w kieszeni właściciela w dowolnej odległości od drzwi poprzez klonowanie sygnałów klucza i przesyłanie przez internet do urządzenia znajdującego się koło drzwi
  • uzyskanie np. listy wszystkich kluczy uprawnionych do otwierania danego zamka poprzez wstrzyknięcie odpowiedniego polecenia do prawidłowo uwierzytelnionej sesji między smartfonem a zamkiem (sesja nawiązywana jest bezpiecznie, ale po jej nawiązaniu można odtworzyć jej klucz i wykorzystać do wstrzyknięcia swojej komunikacji)
  • nabicie karty lojalnościowej z założenia ładowanej podczas wizyty w restauracji poprzez przyłożenie telefonu do odpowiedniego nadajnika (sygnał łatwo sklonować i nabijać odwiedziny w domowym zaciszu)
  • oraz inne ataki opisane przez autora w dokumentacji dostępnej na stronie GATTack.io

Oczywiście opisywane podatności nie oznaczają końca znanego nam świata ani konieczności natychmiastowego wyrzucenia wszystkich podatnych na nie urządzeń. Jest to jednak klasyczny przykład niskiego poziomu dojrzałości nowych technologii a narzędzie GATTacker opracowane i opublikowane przez Sławka bez wątpienia przyniesie jeszcze niejedno odkrycie w tej dziedzinie – oby z pożytkiem dla ogólnego poziomu bezpieczeństwa IoT.