Używamy go już wszędzie. Nie tylko do zestawu głośnomówiącego w samochodzie, strumieniowania muzyki na przenośny głośnik, sterowania oświetleniem w domu, ale także do podpięcia do internetu, do sprytnej wagi mierzącej udział tłuszczu w masie ciała, czy do pulsometru. Zużywa tak mało energii, że zostawiamy go włączonego "zawsze". Przecież i tak połączy się sam, kiedy tylko będzie mógł i to nie zawracając nam niepotrzebnie głowy. Teraz postanowił się zemścić. Jak każdy Wiking.

Oczywiście mowa o Bluetoothie biorącym swą nazwę i logo od sławnego nordyckiego króla Haralda Sinozębego. Może za bardzo zaczęły dokuczać mu zęby, których stan "zasłużył" na uwiecznienie w przydomku Wikinga? Bluetooth logo

Dość powiedzieć, że badacze firmy Armis ogłosili odkrycie całej serii podatności w implementacji Bluetooth na różnorodnych, powszechnie używanych platformach: od Windows, Linuxa i macOS po Androida i iOS. Całość nazwali BlueBorne i wyliczyli, że podatnych na atak jest... ponad 5 miliardów urządzeń na całym świecie! Bo to nie tylko nasze komputery i smartfony, ale także wszystkie urządzenia IoT czy też samochody - wszędzie tam, gdzie działa jeden z wymienionych systemów operacyjnych, a BT jest podstawowym interfejsem komunikacyjnym.

Czemu to takie straszne?

Co prawda nie są jeszcze obserwowane żadne globalne kampanie wykorzystujące BlueBorne, ale możliwość przejęcia kontroli nad praktycznie dowolnym urządzeniem i to niezależnie od systemu operacyjnego jest bardzo kusząca. Dodajmy do tego łatwość rozprzestrzeniania zarazy, bo do przekazania złośliwego kodu wystarczy fizyczna bliskość, urządzenia nie muszą być w jednej sieci. Dodatkowo, znakomita większość urządzeń bazujących na Androidzie nigdy nie otrzyma patchy poprawiających te błędy. Czy ich posiadacze zdecydują się na trwałe wyłączenie BT? Skąd będą wiedzieć, że nie doszło już do zakażenia? W końcu włamywaczom może zależeć na pozostawaniu w ukryciu...

BlueBorne wykorzystuje zaszłości w BT: stare i zapomniane metody uwierzytelniania urządzeń oraz autoryzacji dostępu. Braki w weryfikacji poprawności parametrów uwierzytelniania mogą z kolei prowadzić do przepełniania buforów i kontrolowanych wywrotek komponentów. To z kolei pozwala atakującym na wymuszenie wykonania arbitralnie wybranego kodu na docelowym urządzeniu.

Android

W Androidzie cały proces może przejść w sposób kompletnie niezauważony, bo te stare sposoby działania BT pomijają kompletnie interakcję z użytkownikiem. Same procesy obsługujące BT - Zygote (demon używany do odpalania aplikacji) pracują z bardzo wysokimi uprawnieniami do com.android.bluetooth, a w przypadku awarii same się restartują. Istne eldorado dla włamywaczy.

Stos BT pracuje w Androidzie w warstwie Hardware Abstraction Layer (HAL) przetwarzając bezpośrednio żądania połączeń. Jest podłączony do HAL z następującymi uprawnieniami:

u:r:bluetooth:s0 bluetooth 1419 335 1165648 36788 SySepoll b618a444 S com.android.bluetooth

Dodatkowo, może emulować urządzenia wejścia-wyjścia HID (Human Interface Devices): klawiaturę, myszkę, co z kolei pozwala na przejęcie kontroli nad urządzeniem, wydawanie komend na poziomie jądra, czy też wyciąganie danych na zewnątrz. Wszystko przez otwarty interfejs BT. No chyba, że urządzenie jest zablokowane - wtedy nie będzie możliwości prostego wyciągnięcia kodu odblokowującego. Również jeśli HAL będzie pracowała w trybie chronionym, użytkownik jest bezpieczniejszy, bo włamywacz nie będzie w stanie zmodyfikować konfiguracji systemu.

Apple

W przeciwieństwie do świata Androida, w momencie publikacji informacji o BlueBorne właściciele sprzętów Apple byli już odpowiednio uzbrojeni. Jeśli mają system iOS 10 lub późniejszy, to ze względu na wprowadzenie przez Apple własnych mechanizmów stosu Bluetooth oraz metod uwierzytelniania i autoryzacji, usunięte zostało ryzyko penetracji przez podatności odnalezione przez Aramis. Te same struktury, ze względu na współdzielenie jądra Darwin, trafiły do macOS. Oznacza to, że starsze komputery z systemem starszym niż Sierra na pokładzie mogą być podatne na atak.

W świecie Apple podatności BlueBorne skupiają się na LEAP (Low Energy Audio Protocol) używanym do podłączania np. słuchawek AirPods. Nie dotyczą natomiast warstwy PAN, czyli modułów sieciowych, które pozwoliłby na głębsze zaatakowanie systemu i kradzież danych. Komunikacja pomiędzy urządzeniami iOS jest zarządzana przez BlueTool, czyli proces pośredniczący pomiędzy sprzętem a stosem BT. Skuteczny atak wymagałby przejęcia uprawnień BlueTool, a do tego potrzebne są kolejne podatności, aby móc pokonać proces Address Space Layout Randomization (ASLR) zabezpieczający przed buffer-overflow. A nawet wtedy mocne ograniczenie uprawnień BlueTool do poziomu użytkownika daje dobrą ochronę całego systemu.

Microsoft

Microsoft także wypuścił patche chroniące przed BlueBorne. Stało się to w ramach wrześniowego Patch Tuesday. Dodatkowo, okazało się, że wykonanie kodu poprzez interfejs BT jest w Windows 10 niemożliwe i wymagałoby innego mechanizmu penetracyjnego.

Linux I IOT

Z kolei użytkownicy Linuxa nadal czekają na poprawki dla głównych podatności:

  • CVE-2017-1000250 - dziura w Session Description Protocol (SDP) umożliwiająca wyciek danych jest poprawiona od 13 września, ale czeka na propagację w różnych dystrybucjach. Debian sid, RedHat 5 i 7 są już załatane.

  • CVE-2017-1000251 - możliwość przezpełnienia bufora w Logical Link Control and Adaptation Layer Protocol (L2CAP) ma poprawki od 9 września. RedHat 5, 6 I 7 już są załatane. Systemy z włączoną w jądrze ochroną stosu (CONFIGCCSTACKPROTECTOR lub CONFIGCCSTACKPROTECTOR_STRONG), były podatne na atak w którym użytkownik doprowadza do kontrolowanej wywrotki systemu poprzez próbę nawiązania połączenia Bluetooth.

Jeśli wyobrazimy sobie jak wiele urządzeń IoT opartych o Linux i wyposażonywch w BT mamy na świecie, to wyłączenie BT wydaje się jedyną rozsądną opcją.