Уязвимост в Bluetooth стеков на Linux, macOS, Android и iOS, допускающая подмяна нажатий на клавиши

Марк Ньюлин (Marc Newlin), който преди седем години откри уязвимостта MouseJack, разкри информация за подобна уязвимост (CVE-2023-45866), засягаща Bluetooth стековете на Android, Linux, macOS и iOS, и позволяваща подмяна на нажатия на клавиши чрез симулация на активност на входно устройство, свързано чрез Bluetooth. Има достъп до клавиатурния вход, атакуващият може да извърши действия като стартиране на команди в системата, инсталиране на приложения и пренасочване на съобщения.

Уязвимостта е причинена от това, че хостовите HID (Human Interface Device) драйвери за Bluetooth устройства имат режим, позволяващ на отдалечени периферни устройства да създават и установяват криптирани връзки без аутентикация. Сред другото, свързаните по този начин устройства могат да предават съобщения от клавиатурата и HID стекът ще ги обработи, позволявайки организирането на атака за отдалечена подмяна на HID съобщения, извършвана без участие на потребителя. Атаката може да бъде осъществена, когато злонамереният субект е на разстояние до 100 метра от жертвата.

Механизмът за сдвижване на устройства без аутентикация е определен в спецификацията Bluetooth и в зависимост от настройките на Bluetooth стека позволява свързването на устройство без потребителско потвърждение. В Linux при използване на Bluetooth стека BlueZ за скрито свързване, Bluetooth адаптерът трябва да бъде в режим на откритие и свързване. В Android е достатъчно просто активирането на поддръжка на Bluetooth. В iOS и macOS, за извършване на атаката, Bluetooth трябва да бъде включен, а безжичната клавиатура трябва да бъде свързана.

Възможността за подмяна на входа е демонстрирана в Ubuntu 18.04, 20.04, 22.04 и 23.10 с Bluetooth стек, базиран на пакета Bluez. ChromeOS не е уязвим, тъй като настройките на Bluetooth стека в него не позволяват свързване без аутентикация. В Android уязвимостта засяга устройства с версии на платформата от 4.2.2 до 14. В macOS уязвимостта е демонстрирана на MacBook Pro 2022 с CPU Apple M2 и macOS 13.3.3 и MacBook Air 2017 с CPU Intel и macOS 12.6.7. В iOS уязвимостта е демонстрирана на iPhone SE с iOS 16.6. Активирането на режима Lockdown не защитава от атаката на macOS и iOS.

В Linux уязвимостта е отстранена в кодовата база Bluez чрез задаване на настройката „ClassicBondedOnly“ на „true“, което включва безопасен режим, допускащ установяване на свързаност само след сдвоение. Преди това стойността беше „false“, което, жертвайки сигурността, решаваше проблеми със съвместимостта с някои входни устройства.

В Bluetooth стека Fluoride, използван в последните версии на Android, уязвимостта беше отстранена чрез задължително прилагане на автентикация за всичките шифровани свързаности. Поправките за Android са създадени само за клоновете 11-14. За устройствата Pixel уязвимостта беше отстранена в декемврийското обновление на фърмуера. За версиите на Android от 4.2.2 до 10 уязвимостта остава неизправена.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster