Производители, не использующие Bluetooth, обычно задействуют частоту 2.4 ГГц ISM для работы своих устройств. Поскольку единого протокола работы беспроводных устройств не существует, каждый из производителей творит свои варианты их работы, включая и защиту. В исследовании изучались контроллеры от Logitech, Dell и Lenovo.
Выяснилось, что в то время, как большинство клавиатур общается с USB-донглом по зашифрованному протоколу, ни одна из протестированных мышей не утруждает себя этим. В результате отсутствует какая-либо аутентификация мыши – донгл просто не отличит управляющий пакет, переданный по радио мышкой, от пакета, переданного атакующей стороной.
Популярным среди производителей приёмником является nRF24L от компании Nordic Semiconductor, поэтому изучив его работу, исследователи смогли обобщить данные на множество устройств. А для осуществления самого взлома не требуется особого оборудования – нужны всего лишь схожий USB-донгл за $15 и программа на Python в 15 строчек кода.
Проблемы, найденные в обработке донглами получаемых сигналов, позволили исследователям создать метод, благодаря которому переданные пакеты будут распознаваться не как клики и движения мыши, а как нажатия на клавиши клавиатуры. Эти проблемы варьируются от производителя к производителю, но их можно разделить на три категории.
1. Инъекция нажатий подменной мышью
Некоторые донглы не сверяют тип полученной команды с типом передающего устройства. В результате, они спокойно принимают команды на нажатие клавиш от устройства «мышь». Прикидывающийся мышью донгл атакующего отправляет нешифрованные пакеты на донгл жертвы, и тот спокойно обрабатывает их, как нажатия.
2. Инъекция нажатий подменной клавиатурой
Хотя большинство клавиатур работают с донглами по шифрованному каналу, не все донглы требуют обязательного шифрования. В результате атакующий может передавать незашифрованные команды, которые донгл жертвы обрабатывает, как команды от его собственной клавиатуры.
3. Принудительное сопряжение
Обычно на производстве донглы сопряжены клавиатурой или мышью, но некоторые производители допускают добавление новых устройств, для которого донгл переводится в особый режим работы – например, для случаев, когда к одной мыши добавляется клавиатура, или когда донгл утерян и пользователь устанавливает новый. В случае использования жертвой одной лишь мыши, атакующий может прикинуться клавиатурой, принудительно соединить её с донглом жертвы и отправлять управляющие команды.
Исследователи утверждают, что атака может произойти в сжатый промежуток времени – донгл способен симулировать печать 1000 символов в минуту, и в результате, установить трояна за 10 секунд.
У некоторых производителей предусмотрены перепрограммируемые донглы – такие, прошивку которых можно поменять. Logitech уже отрапортовала, что серьёзно отнеслась к этой уязвимости и выпустила обновлённую прошивку для беспроводных продуктов. К сожалению, очень много донглов имеют память только для чтения, в результате их уязвимость исправить невозможно.
Комментарии (39)
lakegull
24.02.2016 12:47Такие мыши уже во всех городах страны. Критическую уязвимость можно вычислить по характерным симптомам.
bearpaw
24.02.2016 13:00+1Взяли мы с коллегой со склада в 2012 году два комплекта клава+мышь от логитека.
Каждый связал его со своим донглом. Недели через три коллега взвыл.
Т.к. у него начал появлятся непонятный код. Он проверил с начало антивирусом, потом отрубился от сети…
Оказалось моя клава как-то прошла сопряжение с его донглом и я начал писать на две машины.Cubus
27.02.2016 01:19Мне вспоминается, как будучи школьниками, мы играли в первый Serious Sam на двух компьютерах по LAN в тесной комнате. Сигналы от беспроводных мышек время от времени пересекались, что вносило элемент неожиданности в и без того весёлый процесс.
kolipass
29.02.2016 12:29А мы играли на одном компьютере в Сема втроем (разделение экрана), при чем мышь была только у одного. Заставить две мыши работать на одном компьютере так и не смогли
Barsuk
24.02.2016 18:40Статье не хватает наименований моделей уязвимых девайсов, хотя бы популярных, я уже не говорю про демонстрацию уязвимости.
geher
24.02.2016 22:48Интересно, а как дела обстоят у мышей, использующих Logitech Unifying?
kviktor_ua
27.02.2016 01:13Говорят, что исправили
forums.logitech.com/t5/Mice-and-Pointing-Devices/Logitech-Response-to-Unifying-Receiver-Research-Findings/m-p/1493878/thread-id/73186Disasm
29.02.2016 07:54Получается, что можно и прошивку на этих девайсах менять. Ох, сомневаюсь, что она там подписана, очень сомневаюсь.
KivApple
01.03.2016 13:40Как по мне в отсутствии подписи прошивки ничего плохого нет, ибо даёт пользователю свободу. Вопрос в том, что прошивка должна меняться только при наличии физического доступа к приёмнику и передатчику. С приёмником скорее всего так и есть (он прошивается через USB же, не?), а как обстоят дела с самой мышкой — вопрос. По-хорошему, это должно быть доступно только по команде спаренного донгла (можно использовать то же шифрование пакетов, что и при передаче информации с мыши/клавиатуры на компьютер).
Disasm
01.03.2016 14:08А вот и есть в этом плохое. Не думаю что вы хотите, чтобы какой-нибудь софт на вашем компьютере мог перепрошить приёмник, что, в свою очередь, может внезапно сделать его загрузочной флешкой при следующем запуске компьютера. Или виртуальным ethernet-адаптером, который по DHCP раздаёт адреса фейковых DNS серверов.
ittakir
27.02.2016 01:20У моей беспроводной мыши A4Tech есть кнопочка, при нажатии на которую жмется Win-R, печатается адрес сайта изготовителя мыши и жмется Enter.
Но протокол не зашифрованый, насколько я знаю. Значит легко можно исполнить любые команды от имени пользователя, в том числе скачать и установить троян.KivApple
01.03.2016 13:42Про это уже обсуждали. Уязвимость называется Bad USB. Правда уязвимость относительно условная. Ведь, скажем, PCI-видеокарта вообще может читать и писать в ОЗУ в обход центрального процессора и любых средств защиты ОС.
eps
А всего лишь надо доверить беспроводные протоколы профессионалам и пользоваться Bluetooth клавиатурами / мышами. Сколько уже атак было на эти самодельные протоколы передачи данных — и радио-кейлоггеры, и фальшивые клавиатуры.
Особенно круто, что эти атаки физически удалённые — можно совершить их с пары сотен метров с направленной антенной.
MiXei4
Первая моя беспроводная мышь была bluetooth. Она пару раз в день отваливалась от ноута. Приходилось то ли выключать включать мышь, то ли bluetooth на ноуте. Не знаю кто был виноват, но "осадочек остался"… С донглами проблем не было.
kolipass
Современный блутус на голову выше тех, что были раньше, но хороших, удобных мышей как не было так и нет. А еще у блутус большая проблема из-за поддержки на уровне операционной системы ни в биосе не поковырять, да и в grub систему не выберешь.
AllegroMod
Может быть, у меня недостаточно современный Блютус, но почему-то Magic Trackpad жрет батарейки как бегемот веники, чуть ли не по два комплекта в месяц, а клавиатура Logitech работает уже год с тем набором, с которым я её купил.
RicoX
Аналогичная картина, пришлось купить для Magic Trackpad даже две пары аккумуляторов и нормальную зарядку, так как надоело выкидывать не дешевые дюреселы после 2х недель использования. При этом клавиатура за 4 года использования ни разу не отвалилась от связи, а трекпад регулярно отваливается из-за загаженного эфира в 2.4
Khayrullin
Сравнивать клавиатуру и мышь — некорректно.
Einherjar
logitech mx master хорошая и удобная мышь. а многими годами ранее был еще набор logitech mx5500 revolution в котором точно также была хорошая и удобная мышь. проблем с лагами о которых говорят в комментах ниже тоже ни разу не наблюдал. кстати mx5500 в биосе работал если использовать их собственный блютус приемник.
pnetmon
мне HP X7500 понравилась, покупалась из-за размера и дополнительных кнопок
m0Ray
A4Tech BT-630, третий год полёт нормальный, ни на что не хочу менять.
Cat_In_Black
У меня сейчас мышь bluetooth. Да, несколько раз в день отваливалась от ноута, пока ноут был под Win7. Но последние месяца 3 там Ubuntu — не было ни одного дисконнекта. Вы правы, «осадочек остался»…
isden
У меня есть очень сильные подозрения, что отвалы были по причине включенного энергосбережения в адаптере BT под виндой. Я подобное уже видел, только с гарнитурой.
wtigga
Все bluetooth-клавиатуры и мыши, которыми я пользовался, обладали чувствительным лагом — текст печатается с задержкой, курсор тоже двигается запозало. Очень раздражает.
ViPppp
У эппловой мыши и клавиатуры нет такой проблемы, к примеру.
KivApple
Был бы Bluetooth идеальным решением — да. Однако всё не так радужно.
1) Bluetooth не работает на ранних этапах загрузки ПК. То есть в меню UEFI, в меню выбора варианта загрузки ОС, во время установки ОС. И если нет нормальной клавиатуры, то ситуация станет безвыходной в случае каких-то проблем (только бегать искать обычную клавиатуру).
2) Все виденные мною Bluetooth-клавиатуры и мыши имеют заметный лаг между нажатием и реакцией компьютера. А аналогичные с кастомным протоколом — работают идеально (во всяком случае на глаз лаг заметить невозможно в принципе).
3) Глючный драйвер Bluetooth (а такие бывают, поверьте) будет с точки зрения юзера глючной мышью/клавиатурой. В случае с кастомным приёмником всё зависит только от производителя (драйвера USB HID входят в поставку ОС и на всех популярных ОС вылизаны почти до идеала).
Да никто не требует от производителей убер-систем безопасности. Достаточно любого стандартного шифрования (своё изобретать не стоит) с невозможностью отправлять команды без него. И всё. В случае если приёмники нельзя переспаривать, решение вообще банально — просто жёстко зашитые ключи на этапе производства. В случае иного решение немного сложнее, нужно предусмотреть передачу нового ключа от девайса к приёмнику. Впрочем, тут достаточно разместить кнопочку спаривания не только на передатчике, но и на приёмнике. Кстати, некоторые чипы линейки NRF24L имеют аппаратный AES, то есть даже алгоритм шифрования можно не писать, лишь обратиться к нужным функциям SDK.
CrazyRoot
А в результате маркетологи на корню зарубят идею «Что бы согласовать клавиатуру и компьютер нажмите одновременно кнопки». Да и пользователи в большинстве своем не будут рады лишними телодвижениями.
Гораздо логичнее будет сделать согласование программным методом – что нить типа «наберите на клавиатуре текст который вы видите» и после согласования врубать шифрование. Если конечно есть такая возможность переводить донгл на шифрованное соединение прямо так сказать «онлайн». В таком случае, это спасет от тех умельцев кто вытащил закрытые ключи с догла и пытается сделать кейлогер.
4aba
мне кажется спаривать надо 1 раз за жизнь клавиатуры/мышки/донгла, и я не вижу проблемы нажать кнопочки.
NetBUG
Мне кажется, большая часть беспроводных аксессуаров продаётся уже связанными с приёмниками.
По крайней мере, программку от Logitech я поставил только когда понадобилось вторую мышку привязать.
VaalKIA
Всё ещё проще, не помню кто придумал, но идея такая — котролируйте своё устройство физически, не давайте выткать в него всякую фигню и т.п. (а так оно по факту уже и есть) То есть, выводится интерфейс передачи в виде контактной площадки, к которой надо прикоснуться мышкой и устройство — сопряжено. Так же подходит для WiFi флешек и т.п. Но технология вроде запатентована…
Pakos
А раньше так и было — кнопка на приёмнике и устройствах...
Zolg
В данном случае (HID устройства по радио-каналу) криптографическая защита потребует модернизации протокола передачи информации и возможно — некоторых изменений в железе. И основная часть усилий будет направлена не на шифрование вовсе, а на message authentication и предотвращение replay attack.
А канал «просто зашифрованный заранее сохраненным ключиком» будет ничуть не более безопасен, чем нешифрованый: клавиш на клавиатуре всего 100 с небольшим.
KivApple
Кхм. Добавлять в каждый пакет временную метку. И всё. Каждый пакет уникален, даже если юзер жмёт одну и ту же кнопку. А если приёмник будет отсекать метки из прошлого, то и replay attack не прокатит. Да, не обязательно пихать в мышку RTC, временные метки могут быть достаточно условными и относительными. Лишь бы каждый пакет был уникален.
Реализация AES, как я уже сказал, в некоторых чипах NRF24L1 аппаратная, так что изобретать велосипед не нужно — достаточно вызвать функцию из SDK, который предоставил производитель.
Zolg
Реализация извлечения звука в большинстве роялей аппаратная. Для того, что бы играть отличную музыку достаточно вовремя нажимать клавиши, любезно предоставленные производителем.
Samoglas
Ко всему вышесказанному про Bluetooth добавлю, что такие мыши, например, не работают с телевизорами. Две мышки с собственными донглами: A4 и Logitech — без проблем подключаются к Samsung Smart TV (Bada).
KivApple
Кстати да, не везде есть поддержка Bluetooth. Я как-то игрался с одноплатником — там Bluetooth тоже не было. И с учётом того, что клавиатуры и мышки с собственным донглами стоят не дороже аналогичных с Bluetooth, последние выходят дороже, если добавить необходимость покупки Bluetooth-донглов для всех девайсов, где их нет. А ещё ведь надо поставить драйвера и настроить спаривание, а для этого потребуется таки обычная клавиатура/мышь.
И это если на железке стоит полноценная ОС. А то ведь поддержки Bluetooth, как в случае телевизора, может в принципе не быть.
В общем, как не крути, а устройства ввода без Bluetooth выходят значительно более универсальными.