Атака Mousejack: у беспроводных мышей и клавиатур найдена критическая уязвимость
Специалисты по безопасности из компании Bastille Networks опубликовали результаты исследования беспроводных мышей и клавиатур, общающихся с компьютером посредством USB-донгла. Они утверждают, что атакующий может перехватывать управление компьютером и отправлять произвольные команды, находясь при этом на расстоянии до 100 м от компьютера. Беспроводные устройства, использующие протокол Bluetooth, не подвержены этой уязвимости.
Производители, не использующие Bluetooth, обычно задействуют частоту 2.4 ГГц ISM для работы своих устройств. Поскольку единого протокола работы беспроводных устройств не существует, каждый из производителей творит свои варианты их работы, включая и защиту. В исследовании изучались контроллеры от Logitech, Dell и Lenovo.
Выяснилось, что в то время, как большинство клавиатур общается с USB-донглом по зашифрованному протоколу, ни одна из протестированных мышей не утруждает себя этим. В результате отсутствует какая-либо аутентификация мыши — донгл просто не отличит управляющий пакет, переданный по радио мышкой, от пакета, переданного атакующей стороной.
Популярным среди производителей приёмником является nRF24L от компании Nordic Semiconductor, поэтому изучив его работу, исследователи смогли обобщить данные на множество устройств. А для осуществления самого взлома не требуется особого оборудования — нужны всего лишь схожий USB-донгл за $15 и программа на Python в 15 строчек кода.
Проблемы, найденные в обработке донглами получаемых сигналов, позволили исследователям создать метод, благодаря которому переданные пакеты будут распознаваться не как клики и движения мыши, а как нажатия на клавиши клавиатуры. Эти проблемы варьируются от производителя к производителю, но их можно разделить на три категории.
1. Инъекция нажатий подменной мышью
Некоторые донглы не сверяют тип полученной команды с типом передающего устройства. В результате, они спокойно принимают команды на нажатие клавиш от устройства «мышь». Прикидывающийся мышью донгл атакующего отправляет нешифрованные пакеты на донгл жертвы, и тот спокойно обрабатывает их, как нажатия.
2. Инъекция нажатий подменной клавиатурой
Хотя большинство клавиатур работают с донглами по шифрованному каналу, не все донглы требуют обязательного шифрования. В результате атакующий может передавать незашифрованные команды, которые донгл жертвы обрабатывает, как команды от его собственной клавиатуры.
3. Принудительное спаривание
Обычно на производстве донглы спарены с клавиатурой или мышью, но некоторые производители допускают добавление новых устройств, для которого донгл переводится в особый режим работы — например, для случаев, когда к одной мыши добавляется клавиатура, или когда донгл утерян и пользователь устанавливает новый. В случае использования жертвой одной лишь мыши, атакующий может прикинуться клавиатурой, принудительно спарить её с донглом жертвы и отправлять управляющие команды.
Исследователи утверждают, что атака может произойти в сжатый промежуток времени — донгл способен симулировать печать 1000 символов в минуту, и в результате, установить трояна за 10 секунд.
У некоторых производителей предусмотрены перепрограммируемые донглы — такие, прошивку которых можно поменять. Logitech уже отрапортовала, что серьёзно отнеслась к этой уязвимости и выпустила обновлённую прошивку для беспроводных продуктов. К сожалению, очень много донглов имеют память только для чтения, в результате их уязвимость исправить невозможно.