Уязвимост в 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 с процесор Apple M2 и macOS 13.3.3, както и на MacBook Air 2017 с процесор 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 уязвимостта остава неотстранена.

Източник: linux.org.ru

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