Bluetooth zagrożenia w teorii i praktyce Przemysław Jaroszewski CERT Polska/NASK 1. Wstęp Bluetooth (IEEE 802.15.1) to jeden z najpopularniejszych obecnie standardów komunikacji bezprzewodowej. Historycznie pierwsza specyfikacja protokołu datowana jest na rok 1994 a jej autorem był Jaap Haartsen pracujący dla Ericsson Radio Systems. Dalszym rozwojem specyfikacji zajęła się grupa Bluetooth SIG (Special Interest Group) założona 20 maja 1998 przez firmy Ericsson, IBM, Intel, Nokia oraz Toshiba, do których w kolejnym roku dołączyły Microsoft, Motorola i Agere Systems. Obecnie do Bluetooth SIG zalicza się także 26 innych firm biorących udział w rozwoju technologii oraz ponad 500 firm i osób, które wykorzystując standard Bluetooth w swoich produktach mają prawo posługiwać się charakterystycznym logo oraz mają pełny wgląd do dokumentacji [1,2]. Bluetooth działa w ogólnodostępnym paśmie radiowym 2,45GHz, wykorzystując frequency hopping z częstością do 1600 razy na sekundę. Maksymalna prędkość transferu wynosi od 723.1 kbit/s (wersja 1.0) do 2.1 Mbit/s (wersja 2.0), natomiast teoretyczny zasięg zależy od klasy mocy urządzenia i wynosi od 1 do 100 metrów (patrz tabelka poniżej). Jako technologia radiowa, Bluetooth nie wymaga oczywiście aby pomiędzy urządzeniami zachowana była widoczność. Tabela 1: Teoretyczny zasięg urządzeń Bluetooth w zależności od klasy mocy Klasa mocy Maksymalna moc Teoretyczny zasięg Class 1 100 mw (20 dbm) ok.100 metrów Class 2 2,5 mw (4 dbm) ok. 10 metrów Class 3 1 mw (0 dbm) ok. 1 metra W praktyce okazuje się, że z użyciem odpowiednio przygotowanego sprzętu, w szczególności specjalnie dobranych anten kierunkowych, można nawiązać połączenie Bluetooth nawet z odległości przekraczającej 1500 metrów [3]. Bluetooth jest wykorzystywany masowo w coraz większej liczbie zastosowań. Wśród urządzeń komunikujących się za jego pośrednictwem należy wymienić przede wszystkim: komputery, telefony komórkowe, PDA, słuchawki i zestawy głośnomówiące, zestawy do nawigacji GPS a także klawiatury, myszy, drukarki a nawet aparaty cyfrowe. Do najważniejszych zastosowań należy przesyłanie plików, terminów kalendarza, kontaktów itp. z
wykorzystaniem protokołu OBEX, transmisja głosu (słuchawki bezprzewodowe, zestawy głośnomówiące) a także wykorzystywanie telefonu jako modemu do łączności z siecią Internet. 2. Podstawowe pojęcia Każde urządzenie komunikujące się w standardzie Bluetooth posiada 48- bitowy adres MAC. Pierwsze 3 oktety adresu przyznawane są przez IEEE konkretnemu producentowi urządzeń, natomiast pozostałe 3 oktety mają jednoznacznie określać konkretny egzemplarz urządzenia. Cały adres powinien więc być unikalny w skali globalnej. Aby wykonać połączenie Bluetooth, musimy znać adres MAC urządzenia, z którym chcemy się skomunikować. Jeśli nie poznaliśmy go wcześniej, możemy wyszukać dostępne w okolicy urządzenia. Wynikiem takiego wyszukiwania jest najczęściej lista znalezionych urządzeń, zawierające ich nazwy oraz rodzaje (np. słuchawka, komputer, telefon). Nazwa Bluetooth to zapisany w urządzeniu dowolny, swobodnie modyfikowalny ciąg znaków, np.: Nokia 6310i, Moj Komputer itp. Co istotne, w większości interfejsów użytkownika (w szczególności w telefonach komórkowych), nie mamy w żaden sposób dostępu do informacji o adresie MAC urządzenia. Prezentacja taka jest niewątpliwie bardziej przyjazna dla użytkownika, jednak łatwo wyobrazić sobie sytuację, gdy mamy do czynienia z kilkoma różnymi urządzeniami o tej samej nazwie bez możliwości rozróżnienia ich. Stwarza to możliwość prostego podszycia się pod inne urządzenie na przykład pod publiczny hotspot Bluetooth, oferujący pobranie dzwonków czy gier. Aby urządzenie zostało wykryte w czasie wyszukiwania, musi zostać ustawione w tryb publiczny (ang. discoverable mode). Drugim trybem jest tryb ukryty (ang. invisible mode), w którym urządzenie pracuje normalnie, lecz nie zezwala na wyszukanie siebie. Należy podkreślić, że poza nierozgłaszaniem informacji o sobie, tryb ukryty nie wpływa w żaden inny sposób na pracę urządzenia. Nie ma więc żadnych przesłanek aby korzystać z trybu publicznego poza sytuacjami gdy jest to niezbędne. Znając adres urządzenia, możemy uzyskać informacje o tym, jakie obsługuje profile. Profil Bluetooth to w uproszczeniu opis zastosowań urządzenia, np. faks, słuchawka, transfer plików. Dostęp do poszczególnych usług oferowanych przez urządzenie może być otwarty (bez uwierzytelnienia i autoryzacji), wymagać jedynie uwierzytelnienia bądź też wymagać zarówno uwierzytelnienia jak i autoryzacji. Ograniczenia te zależą od konfiguracji urządzenia i często są narzucone przez producenta. Przykładem usług dostępnych zazwyczaj jako otwarte może być przesłanie wiadomości lub kontaktu na telefon komórkowy. Usługi takie jak modem czy transfer plików będą zwykle wymagać co najmniej uwierzytelnienia. Urządzenia Bluetooth, które wcześniej nie komunikowały się ze sobą zapoznają się w trakcie procedury zwanej parowaniem (ang. pairing). Z perspektywy użytkownika polega ona na wpisaniu na obu urządzeniach tego samego hasła lub kodu PIN. Jeżeli jedno z urządzeń nie ma możliwości
wprowadzenia PINu (np. słuchawka, drukarka), jest on ustalony fabrycznie (podany w instrukcji obsługi) i musi zostać wprowadzony jedynie na drugim urządzeniu. W trakcie parowania urządzenia tworzą klucz związany z wzajemnym połączeniem (link key), który zostaje zapisany w pamięci obu urządzeń i pozwala na ich uwierzytelnienie wobec siebie w przyszłości. Jeśli konfiguracja usług tego wymaga, transmisja między urządzeniami może być szyfrowana za pomocą nowego klucza, generowanego na podstawie link key. Szczegółowy opis zarządzania kluczami oraz procesu szyfrowania w Bluetooth można znaleźć w [4]. 3. Wykrywanie urządzeń Najprostszą metodą na wykrycie urządzenia jest wyszukanie go o ile ustawione jest w tryb publiczny. Niestety, w niektórych sytuacjach konieczne jest skorzystanie z tego trybu, ponieważ często nie ma innej metody na wprowadzenie informacji o urządzeniu, z którym chcemy się połączyć niż wyszukanie go. Należy pamiętać o tym, by w miarę możliwości parowanie urządzeń przeprowadzać w odosobnionym miejscu (istnieją po temu także inne powody, o czym niżej), a następnie przestawić urządzenie z powrotem w tryb ukryty. Teoretycznie, przestawienie urządzenia w tryb ukryty powinno uchronić je przed nieautoryzowanymi próbami połączeń. W praktyce, ktoś kto poznał wcześniej lub odgadł adres MAC urządzenia, może się z nim komunikować bez względu na to, czy jest ono ukryte czy nie. Odgadnięcie adresu może się wydawać niemożliwe, biorąc pod uwagę liczbę możliwości (2 48 >2,81*10 14 ). Nawet wiedząc, jakiego urządzenia szukamy, a co za tym idzie znając pierwsze 3 oktety pozostaje nam 2 24 =16 777 216 kombinacji. Biorąc pod uwagę fakt, że próba wykrycia urządzenia zajmuje przeciętnie 6 sekund, sprawdzenie wszystkich zajęłoby ponad 3 lata. Okazuje się jednak, że w wielu modelach zawartość ostatnich trzech oktetów nie jest rozdzielana losowo, co znacząco zawęża krąg poszukiwań. Dzięki wykorzystaniu kilku czy kilkunastu urządzeń równolegle skanowanie udaje się przeprowadzać w praktyce w sensownym czasie (godziny). Przy okazji należy przypomnieć, że urządzenia mogą być wykrywane z odległości dużo większych niż przewidywane przez specyfikację 100 metrów. Niektóre urządzenia domyślnie znajdują się w trybie publicznym. Należy tu zwrócić uwagę szczególnie na zestawy głośnomówiące czy słuchawki bezprzewodowe. Niemal wszystkie urządzenia tego typu mają standardowy PIN wpisany na stałe, identyczny dla wszystkich egzemplarzy a zatem ogólnie znany. Zwykle jest to kombinacja 0000 lub 1234. W związku z tym, podłączenie się do nich jest wyjątkowo proste. Wśród potencjalnych następstw nieautoryzowanego podłączenia do takiego urządzenia należy wymienić możliwość wykorzystania go jako podsłuch. Aby zabezpieczyć się przed takim zagrożeniem, należy pamiętać o tym aby wyłączać słuchawkę lub zestaw jeżeli z nich nie korzystamy. Co istotne, urządzenia słuchawkowe mogą być zazwyczaj połączone tylko z jednym urządzeniem (telefonem) w
tym samym czasie. Dlatego w trakcie normalnego korzystania z nich nie będą one akceptowały innych połączeń ani odpowiadały na wyszukiwanie. Należy tu także wspomnieć o możliwości wykrycia urządzenia poprzez podsłuchiwanie transmisji. Jest to technicznie trudne ze względu na dużą częstotliwość frequency hopping. Urządzenia, które mogą sniffować ruch Bluetooth są co prawda dostępne jednak ich cena jest jak na razie wysoka. 4. Słabości uwierzytelnienia Klucz link key generowany jest w trakcie parowania urządzeń na podstawie: adresów MAC obu urządzeń, numeru PIN oraz losowej wartości inicjującej, która przesyłana jest na początku transmisji otwartym tekstem. Dwa niezależne badania [5,6] wykazały, że podsłuchując informacje przesyłane w trakcie parowania, atakujący jest w stanie łatwo złamać PIN o długości 5 cyfr w ciągu ułamków sekundy, a 7 cyfr w ciągu nieco ponad minuty. Aby wymusić ponowne parowanie urządzeń, atakujący może wysłać odpowiednio spreparowany komunikat. Choć, jak wcześniej wspomniałem, podsłuchiwanie transmisji Bluetooth jest kosztowne, zaleca się jednak przeprowadzać proces parowania w miejscu odosobnionym. Pewnym zabezpieczeniem jest też wybór dłuższego PINu (jeśli mamy na nią wpływ). Zalecana długość to min. 9 cyfr. Należy jednak wziąć pod uwagę, że czas potrzebny do złamania nawet najdłuższego przewidzianego przez protokół PINu (128 bitów) jest relatywnie krótki i będzie malał wraz ze wzrostem mocy obliczeniowej urządzeń. Autorzy [5] proponują silniejsze kryptograficznie rozwiązania możliwe do zastosowania w trakcie parowania. Obecnie trwają prace nad wprowadzeniem takich zmian w protokole. Nowa procedura Simple Pairing ma jednocześnie ułatwić sam proces parowania z punktu widzenia użytkownika [7]. 5. Słabości implementacji Najpoważniejsze do tej pory błędy związane z protokołem Bluetooth wynikają z implementacji standardu przez producentów. Jednym z ataków opartych o taki błąd jest bluejacking [8,9] technika polegająca na wysyłaniu odpowiednio spreparowanych wizytówek vcard, nierzadko zawierających uwagę natury osobistej do właściciela telefonu korzystającego z Bluetooth. Biorąc pod uwagę, że w wielu modelach telefonów przesłanie wizytówki nie wymaga żadnej autoryzacji, treść automatycznie ukaże się na telefonie ofiary z pytaniem czy ma zostać dodana do listy kontaktów. Bluejacking może być łączony z lukami w samej platformie telefonu, w szczególności w przypadku tzw. smartphone ów. W przypadku wykrycia luki umożliwiającej przepełnienie pamięci, korzystając z tej techniki możliwe byłoby uruchomienie złośliwego kodu. W niektórych urządzeniach otwarta jest także usługa wysłania pliku (umieszczenia pliku na urządzeniu). W połączeniu z błędami typu directory traversal możliwe jest zapisanie pliku w dowolnej lokalizacji w systemie plików urządzenia na przykład w folderze Autostart systemu operacyjnego palmtopa.
Inna odmiana bluejackingu polega na umieszczeniu wiadomości w nazwie urządzenia Bluetooth, a następnie zainicjowaniu parowania z atakowanym telefonem, w trakcie którego nazwa zostanie wyświetlona na ekranie. Odpowiednia treść wiadomości np. Wcisnij 5555 i OK. może poprzez inżynierię społeczną nakłonić użytkownika, który nie rozumie całego procesu do zgody na sparowanie urządzeń, dając atakującemu dostęp do usług wymagających uwierzytelnienia. Innym atakiem opartym na błędzie wynikającym z implementacji jest bluesnarfing [10] metoda pozwalająca na pobranie z urządzenia danych takich jak książka adresowa, wpisy kalendarza, numer IMEI, archiwum wiadomości czy pliki multimedialne. Bluesnarfing wykorzystuje luki w aplikacjach producentów, zezwalające na nawiązywanie połączeń do istotnych serwisów bez świadomości a tym bardziej zgody właściciela telefonu. Bodaj najpoważniejszym dotąd błędem dotyczącym Bluetooth był tzw. blue bug [11] błąd podobny w naturze do wykorzystywanego w bluesnarfingu, lecz o poważniejszych konsekwencjach. W niektórych modelach telefonów Nokia oraz Sony Ericsson istniała nieudokumentowana możliwość połączenia szeregowego, dającego pełen dostęp do zestawu komend AT telefonu, co umożliwiało choćby wykonywanie połączeń lub przekierowanie wszystkich połączeń przychodzących na wybrany numer. Podobny błąd, nazwany Helo Moto dotyczył telefonów Motoroli [12]. Mniejsze błędy implementacyjne często doprowadzają do zablokowania lub zresetowania urządzenia przez wysłanie odpowiednio zmanipulowanego komunikatu [13]. Po wykryciu opisywanych błędów wszyscy producenci wypuścili nowe wersje firmware u dla swoich urządzeń. Błędy nie występują także w nowych modelach telefonów. 6. Złośliwe oprogramowanie, robaki Jako mechanizm umożliwiający przesyłanie plików, Bluetooth jest także jednym z możliwych nośników złośliwego oprogramowania. Należy jednak podkreślić, że ten rodzaj zagrożenia nie jest związany z bezpieczeństwem samego protokołu. Bluetooth może być wybrany przez autorów robaków jako metoda propagacji względnie anonimowa (w przeciwieństwie do np. rozesłania kopii robaka MMSem), uniwersalna (Bluetooth implementowany jest na wielu różnych platformach systemowych) oraz zdecydowanie wygodniejsza niż podczerwień. Jednym z nielicznych przykładów robaka rozprzestrzeniającego się poprzez Bluetooth jest Cabir [14]. Program ten działa na systemach Symbian (a więc przede wszystkim na smartphone ach), rozsyłając kopię pliku instalacyjnego.sis do znalezionych w otoczeniu aparatów (oczywiście muszą one być w trybie publicznym). Warto zauważyć, że nawet jeśli aparat pozwala na przesłanie pliku bez uwierzytelnienia, nie ma przypadku automatycznej instalacji otrzymanego programu. Aby więc zarazić się Cabirem, użytkownik musiałby potwierdzić kilkukrotnie chęć otrzymania pliku, otwarcia go i zainstalowania aplikacji.
7. Podsumowanie Bluetooth jest już protokołem dość dojrzałym. Aspekty bezpieczeństwa były w nim uwzględniane już na bardzo wczesnym etapie rozwoju. Praktycznie wszystkie wpadki związane z bezpieczeństwem korzystania z Bluetooth zawinione były bądź to przez producentów bądź użytkowników. Najważniejsze wnioski i zalecenia dotyczące posługiwania się technologią Bluetooth to: posługiwanie się trybem ukrytym w trakcie korzystania z Bluetooth znacząco utrudnia wykrycie urządzenia tryb publiczny należy włączać jedynie w odosobnionych miejscach aby utrudnić wykrycie urządzenia parowanie urządzeń należy przeprowadzać w odosobnionych miejscach aby utrudnić wykrycie urządzenia w trybie publicznym oraz uniemożliwić podsłuchanie transmisji i złamanie numeru PIN tam, gdzie to możliwe, należy stosować długi numer PIN (min. 9 znaków) aby utrudnić jego złamanie urządzenia, które nie mają możliwości przestawienia w tryb ukryty (słuchawki, zestawy głośnomówiące) należy wyłączać gdy nie są używane należy aktualizować oprogramowanie odpowiadające za implementację Bluetooth (sterowniki lub system w komputerze, firmware w telefonie itp.) aby uniknąć narażenia się na wynik błędów producenta LITERATURA [1] The official Bleutooth Wireless Info Site; http://www.bluetooth.com/ [2] The official Bluetooth Membership Site; http://www.bluetooth.org/ [3] CHEUNG Humphrey : How To: Building a BlueSniper Rifle; http://www.tomsnetworking.com/2005/03/08/how_to_bluesniper_pt1/ [4] VAINIO Juha T.: Bluetooth Security; 25.05.2000; http://www.niksula.hut.fi/~jiitv/bluesec.html [5] WONG Ford-Long, STAJANO Frank, CLULOW Jolyon (University of Cambridge); Repairing the Bluetooth pairing protocol; http://www.cl.cam.ac.uk/research/dtg/~fw242/publications/2005-wongstaclubluetooth.pdf [6] SHAKED Yaniv, WOOL Avishai (School of Electrical Engineering Systems); Cracking the Bluetooth PIN; http://www.eng.tau.ac.il/~yash/shaked-woolmobisys05/index.html
[7] Bluetooth SIG; Simple Pairing Whitepaper; 03-08-2006; http://bluetooth.com/nr/rdonlyres/0a0b3f36-d15f-4470-85a6- F2CCFA26F70F/0/SimplePairing_WP_V10r00.pdf [8] Wikipedia Bluejacking; http://en.wikipedia.org/wiki/bluejacking [9] bluejackq ; http://www.bluejackq.com/ [10] LAURIE Adam, LAURIE Ben; Serious flaws in bluetooth can lead to disclosure of personal data; http://www.bluestumbler.org [11] Trifinite.org; BlueBug; http://trifinite.org/trifinite_stuff_bluebug.html [12] Trifinite.org; HeloMoto; http://trifinite.org/trifinite_stuff_helomoto.html [13] Trifinite.org; BlueSmack; http://trifinite.org/trifinite_stuff_bluesmack.html [14] F-Secure Virus Descriptions; Cabir; http://www.f-secure.com/vdescs/cabir.shtml