Vulnerabilność w stosach Bluetooth dla systemów Linux, macOS, Android i iOS, umożliwiająca podstawienie naciśnięć klawiszy

Marc Newlin, który siedem lat temu zidentyfikował lukę MouseJack, ujawnił informacje o podobnej podatności (CVE-2023-45866), dotyczącej stosów Bluetooth w Androidzie, Linuksie, macOS i iOS, która umożliwia podmianę naciśnięć klawiszy za pomocą symulacji aktywności urządzenia wejściowego połączonego przez Bluetooth. Mając dostęp do wejścia z klawiatury, atakujący może wykonać takie działania, jak uruchamianie poleceń w systemie, instalowanie aplikacji i przekierowywanie wiadomości.

Luka wynika z tego, że hostowe sterowniki HID (Human Interface Device) dla urządzeń Bluetooth mają tryb, który pozwala zdalnemu urządzeniu peryferyjnemu na tworzenie i ustanawianie szyfrowanych połączeń bez uwierzytelnienia. Między innymi, urządzenia podłączone w ten sposób mogą przesyłać wiadomości z klawiatury, a stos HID je obsłuży, co umożliwia przeprowadzenie ataku na zdalną podmianę wiadomości HID bez udziału użytkownika. Atak może być przeprowadzony, gdy przestępca znajduje się w odległości do 100 metrów od ofiary.

Mechanizm parowania urządzeń bez uwierzytelnienia jest określony w specyfikacji Bluetooth i w zależności od ustawień stosu Bluetooth umożliwia podłączenie urządzenia bez potwierdzenia od użytkownika. W systemie Linux, korzystając ze stosu Bluetooth BlueZ, adapter Bluetooth musi być w trybie wykrywania i łączenia. W Androidzie wystarczy włączyć obsługę Bluetooth. W iOS i macOS, aby przeprowadzić atak, Bluetooth musi być włączony, a bezprzewodowa klawiatura musi być podłączona.

Możliwość podmiany wejścia została zademonstrowana w systemie Ubuntu 18.04, 20.04, 22.04 i 23.10 z stosami Bluetooth opartymi na pakiecie Bluez. ChromeOS nie jest podatny na tę lukę, ponieważ ustawienia stosu Bluetooth w nim nie zezwalają na połączenia bez uwierzytelnienia. W Androidzie luka dotyczy urządzeń z wersjami platformy od 4.2.2 do 14. W macOS luka została zademonstrowana w MacBook Pro 2022 z procesorem Apple M2 i macOS 13.3.3 oraz MacBook Air 2017 z procesorem Intel i macOS 12.6.7. W iOS luka została zademonstrowana w iPhone SE z iOS 16.6. Włączenie trybu Lockdown nie chroni przed atakiem w macOS i iOS.

W systemie Linux luka została usunięta w bazie kodowej Bluez poprzez ustawienie opcji „ClassicBondedOnly” na wartość „true”, co włącza tryb bezpieczny, pozwalający na nawiązywanie połączeń tylko po sparowaniu. Wcześniej ustawienie wynosiło „false”, co, poprzez obniżenie bezpieczeństwa, rozwiązywało problemy z kompatybilnością z niektórymi urządzeniami wejściowymi.

W stosie Bluetooth Fluoride, używanym w najnowszych wersjach Androida, problem został rozwiązany poprzez obowiązkowe stosowanie uwierzytelniania dla wszystkich szyfrowanych połączeń. Poprawki dla Androida zostały utworzone tylko dla gałęzi 11-14. Dla urządzeń Pixel problem został rozwiązany w grudniowej aktualizacji oprogramowania. W przypadku wydań Androida od 4.2.2 do 10 problem pozostaje nieusunięty.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster