Специалисты по безопасности из компании 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 уже отрапортовала, что серьёзно отнеслась к этой уязвимости и выпустила обновлённую прошивку для беспроводных продуктов. К сожалению, очень много донглов имеют память только для чтения, в результате их уязвимость исправить невозможно.

Комментарии (39)


  1. eps
    24.02.2016 05:45

    А всего лишь надо доверить беспроводные протоколы профессионалам и пользоваться Bluetooth клавиатурами / мышами. Сколько уже атак было на эти самодельные протоколы передачи данных — и радио-кейлоггеры, и фальшивые клавиатуры.

    Особенно круто, что эти атаки физически удалённые — можно совершить их с пары сотен метров с направленной антенной.


    1. MiXei4
      24.02.2016 06:42
      +2

      Первая моя беспроводная мышь была bluetooth. Она пару раз в день отваливалась от ноута. Приходилось то ли выключать включать мышь, то ли bluetooth на ноуте. Не знаю кто был виноват, но "осадочек остался"… С донглами проблем не было.


      1. kolipass
        24.02.2016 07:57
        +2

        Современный блутус на голову выше тех, что были раньше, но хороших, удобных мышей как не было так и нет. А еще у блутус большая проблема из-за поддержки на уровне операционной системы ни в биосе не поковырять, да и в grub систему не выберешь.


        1. AllegroMod
          24.02.2016 09:45
          +1

          Может быть, у меня недостаточно современный Блютус, но почему-то Magic Trackpad жрет батарейки как бегемот веники, чуть ли не по два комплекта в месяц, а клавиатура Logitech работает уже год с тем набором, с которым я её купил.


          1. RicoX
            24.02.2016 09:53
            +1

            Аналогичная картина, пришлось купить для Magic Trackpad даже две пары аккумуляторов и нормальную зарядку, так как надоело выкидывать не дешевые дюреселы после 2х недель использования. При этом клавиатура за 4 года использования ни разу не отвалилась от связи, а трекпад регулярно отваливается из-за загаженного эфира в 2.4


          1. Khayrullin
            27.02.2016 01:21

            Сравнивать клавиатуру и мышь — некорректно.


        1. Einherjar
          24.02.2016 10:47

          но хороших, удобных мышей как не было так и нет

          logitech mx master хорошая и удобная мышь. а многими годами ранее был еще набор logitech mx5500 revolution в котором точно также была хорошая и удобная мышь. проблем с лагами о которых говорят в комментах ниже тоже ни разу не наблюдал. кстати mx5500 в биосе работал если использовать их собственный блютус приемник.


        1. pnetmon
          24.02.2016 19:39

          мне HP X7500 понравилась, покупалась из-за размера и дополнительных кнопок


        1. m0Ray
          24.02.2016 22:10

          A4Tech BT-630, третий год полёт нормальный, ни на что не хочу менять.


      1. Cat_In_Black
        26.02.2016 18:58

        У меня сейчас мышь bluetooth. Да, несколько раз в день отваливалась от ноута, пока ноут был под Win7. Но последние месяца 3 там Ubuntu — не было ни одного дисконнекта. Вы правы, «осадочек остался»…


        1. isden
          26.02.2016 19:08

          У меня есть очень сильные подозрения, что отвалы были по причине включенного энергосбережения в адаптере BT под виндой. Я подобное уже видел, только с гарнитурой.


    1. wtigga
      24.02.2016 07:53

      Все bluetooth-клавиатуры и мыши, которыми я пользовался, обладали чувствительным лагом — текст печатается с задержкой, курсор тоже двигается запозало. Очень раздражает.


      1. ViPppp
        24.02.2016 12:29
        +1

        У эппловой мыши и клавиатуры нет такой проблемы, к примеру.


    1. KivApple
      24.02.2016 08:26
      +5

      Был бы Bluetooth идеальным решением — да. Однако всё не так радужно.
      1) Bluetooth не работает на ранних этапах загрузки ПК. То есть в меню UEFI, в меню выбора варианта загрузки ОС, во время установки ОС. И если нет нормальной клавиатуры, то ситуация станет безвыходной в случае каких-то проблем (только бегать искать обычную клавиатуру).
      2) Все виденные мною Bluetooth-клавиатуры и мыши имеют заметный лаг между нажатием и реакцией компьютера. А аналогичные с кастомным протоколом — работают идеально (во всяком случае на глаз лаг заметить невозможно в принципе).
      3) Глючный драйвер Bluetooth (а такие бывают, поверьте) будет с точки зрения юзера глючной мышью/клавиатурой. В случае с кастомным приёмником всё зависит только от производителя (драйвера USB HID входят в поставку ОС и на всех популярных ОС вылизаны почти до идеала).

      Да никто не требует от производителей убер-систем безопасности. Достаточно любого стандартного шифрования (своё изобретать не стоит) с невозможностью отправлять команды без него. И всё. В случае если приёмники нельзя переспаривать, решение вообще банально — просто жёстко зашитые ключи на этапе производства. В случае иного решение немного сложнее, нужно предусмотреть передачу нового ключа от девайса к приёмнику. Впрочем, тут достаточно разместить кнопочку спаривания не только на передатчике, но и на приёмнике. Кстати, некоторые чипы линейки NRF24L имеют аппаратный AES, то есть даже алгоритм шифрования можно не писать, лишь обратиться к нужным функциям SDK.


      1. CrazyRoot
        24.02.2016 11:06

        А в результате маркетологи на корню зарубят идею «Что бы согласовать клавиатуру и компьютер нажмите одновременно кнопки». Да и пользователи в большинстве своем не будут рады лишними телодвижениями.
        Гораздо логичнее будет сделать согласование программным методом – что нить типа «наберите на клавиатуре текст который вы видите» и после согласования врубать шифрование. Если конечно есть такая возможность переводить донгл на шифрованное соединение прямо так сказать «онлайн». В таком случае, это спасет от тех умельцев кто вытащил закрытые ключи с догла и пытается сделать кейлогер.


        1. 4aba
          24.02.2016 11:30
          +1

          мне кажется спаривать надо 1 раз за жизнь клавиатуры/мышки/донгла, и я не вижу проблемы нажать кнопочки.


          1. NetBUG
            24.02.2016 22:00

            Мне кажется, большая часть беспроводных аксессуаров продаётся уже связанными с приёмниками.
            По крайней мере, программку от Logitech я поставил только когда понадобилось вторую мышку привязать.


          1. VaalKIA
            25.02.2016 02:22

            Всё ещё проще, не помню кто придумал, но идея такая — котролируйте своё устройство физически, не давайте выткать в него всякую фигню и т.п. (а так оно по факту уже и есть) То есть, выводится интерфейс передачи в виде контактной площадки, к которой надо прикоснуться мышкой и устройство — сопряжено. Так же подходит для WiFi флешек и т.п. Но технология вроде запатентована…


        1. Pakos
          25.02.2016 13:36

          А раньше так и было — кнопка на приёмнике и устройствах...


      1. Zolg
        24.02.2016 15:53

        решение вообще банально
        Не бывает в ИБ банальных решений. Вернее у большинства банальных решений внезапно обнаруживается набор чуть менее банальных уязвимостей.

        В данном случае (HID устройства по радио-каналу) криптографическая защита потребует модернизации протокола передачи информации и возможно — некоторых изменений в железе. И основная часть усилий будет направлена не на шифрование вовсе, а на message authentication и предотвращение replay attack.

        А канал «просто зашифрованный заранее сохраненным ключиком» будет ничуть не более безопасен, чем нешифрованый: клавиш на клавиатуре всего 100 с небольшим.


        1. KivApple
          26.02.2016 00:54

          Кхм. Добавлять в каждый пакет временную метку. И всё. Каждый пакет уникален, даже если юзер жмёт одну и ту же кнопку. А если приёмник будет отсекать метки из прошлого, то и replay attack не прокатит. Да, не обязательно пихать в мышку RTC, временные метки могут быть достаточно условными и относительными. Лишь бы каждый пакет был уникален.


          Реализация AES, как я уже сказал, в некоторых чипах NRF24L1 аппаратная, так что изобретать велосипед не нужно — достаточно вызвать функцию из SDK, который предоставил производитель.


          1. Zolg
            26.02.2016 10:33

            Добавлять в каждый пакет временную метку.
            Направление мысли у вас в целом верное, однако дьявол, как обычно, скрывается в деталях.

            Реализация AES, как я уже сказал, в некоторых чипах NRF24L1 аппаратная
            Реализация извлечения звука в большинстве роялей аппаратная. Для того, что бы играть отличную музыку достаточно вовремя нажимать клавиши, любезно предоставленные производителем.


    1. Samoglas
      25.02.2016 19:20

      Ко всему вышесказанному про Bluetooth добавлю, что такие мыши, например, не работают с телевизорами. Две мышки с собственными донглами: A4 и Logitech — без проблем подключаются к Samsung Smart TV (Bada).


      1. KivApple
        26.02.2016 00:59

        Кстати да, не везде есть поддержка Bluetooth. Я как-то игрался с одноплатником — там Bluetooth тоже не было. И с учётом того, что клавиатуры и мышки с собственным донглами стоят не дороже аналогичных с Bluetooth, последние выходят дороже, если добавить необходимость покупки Bluetooth-донглов для всех девайсов, где их нет. А ещё ведь надо поставить драйвера и настроить спаривание, а для этого потребуется таки обычная клавиатура/мышь.

        И это если на железке стоит полноценная ОС. А то ведь поддержки Bluetooth, как в случае телевизора, может в принципе не быть.

        В общем, как не крути, а устройства ввода без Bluetooth выходят значительно более универсальными.


  1. netto
    24.02.2016 11:00
    +6

    "… любой посетитель может высыпать из солонки сколько угодно соли, или насыпать в солонку яд через дырочки!"


    1. foxin
      24.02.2016 11:05
      +1

      поэтому некоторые производители пилят свой собственный беспроводной стандартвыдают персональные пакетики с солью


  1. lakegull
    24.02.2016 12:47

    Такие мыши уже во всех городах страны. Критическую уязвимость можно вычислить по характерным симптомам.


  1. bearpaw
    24.02.2016 13:00
    +1

    Взяли мы с коллегой со склада в 2012 году два комплекта клава+мышь от логитека.
    Каждый связал его со своим донглом. Недели через три коллега взвыл.
    Т.к. у него начал появлятся непонятный код. Он проверил с начало антивирусом, потом отрубился от сети…
    Оказалось моя клава как-то прошла сопряжение с его донглом и я начал писать на две машины.


    1. Cubus
      27.02.2016 01:19

      Мне вспоминается, как будучи школьниками, мы играли в первый Serious Sam на двух компьютерах по LAN в тесной комнате. Сигналы от беспроводных мышек время от времени пересекались, что вносило элемент неожиданности в и без того весёлый процесс.


      1. kolipass
        29.02.2016 12:29

        А мы играли на одном компьютере в Сема втроем (разделение экрана), при чем мышь была только у одного. Заставить две мыши работать на одном компьютере так и не смогли


  1. Barsuk
    24.02.2016 18:40

    Статье не хватает наименований моделей уязвимых девайсов, хотя бы популярных, я уже не говорю про демонстрацию уязвимости.


  1. geher
    24.02.2016 22:48

    Интересно, а как дела обстоят у мышей, использующих Logitech Unifying?


    1. Anisotropic
      26.02.2016 22:05

      Там логитек фикс выкатил.


    1. kviktor_ua
      27.02.2016 01:13

      1. Disasm
        29.02.2016 07:54

        Получается, что можно и прошивку на этих девайсах менять. Ох, сомневаюсь, что она там подписана, очень сомневаюсь.


        1. KivApple
          01.03.2016 13:40

          Как по мне в отсутствии подписи прошивки ничего плохого нет, ибо даёт пользователю свободу. Вопрос в том, что прошивка должна меняться только при наличии физического доступа к приёмнику и передатчику. С приёмником скорее всего так и есть (он прошивается через USB же, не?), а как обстоят дела с самой мышкой — вопрос. По-хорошему, это должно быть доступно только по команде спаренного донгла (можно использовать то же шифрование пакетов, что и при передаче информации с мыши/клавиатуры на компьютер).


          1. Disasm
            01.03.2016 14:08

            А вот и есть в этом плохое. Не думаю что вы хотите, чтобы какой-нибудь софт на вашем компьютере мог перепрошить приёмник, что, в свою очередь, может внезапно сделать его загрузочной флешкой при следующем запуске компьютера. Или виртуальным ethernet-адаптером, который по DHCP раздаёт адреса фейковых DNS серверов.


  1. ittakir
    27.02.2016 01:20

    У моей беспроводной мыши A4Tech есть кнопочка, при нажатии на которую жмется Win-R, печатается адрес сайта изготовителя мыши и жмется Enter.
    Но протокол не зашифрованый, насколько я знаю. Значит легко можно исполнить любые команды от имени пользователя, в том числе скачать и установить троян.


    1. KivApple
      01.03.2016 13:42

      Про это уже обсуждали. Уязвимость называется Bad USB. Правда уязвимость относительно условная. Ведь, скажем, PCI-видеокарта вообще может читать и писать в ОЗУ в обход центрального процессора и любых средств защиты ОС.