Пазете вашите донгли: изследване на сигурността на ресивера на клавиатури Logitech

Пазете вашите донгли: изследване на сигурността на ресивера на клавиатури Logitech

Исторически так сложилось, че повечето служители използват безжични клавиатури и мишки на компанията Logitech. При повторно въвеждане на паролите си, ние – специалистите от екипа Raccoon Security – се запитахме: колко трудно е да се заобиколят защитните механизми на безжичните клавиатури? Проведеното изследване разкри архитектурни недостатъци и софтуерни грешки, които позволяват достъп до въведените данни. Подробности – какво постигнахме.

Защо Logitech?

Според нас, входните устройства на компанията Logitech са едни от най-качествените и удобни. Повечето от устройствата, които имаме, са базирани на решението Logitech Unifying – универсален донгъл-приемник, който позволява свързване на до 6 устройства. Всички съвместими с технологията Logitech Unifying устройства са обозначени с подходящото лого. Лесен за използване приложение позволява управление на свързването на безжични клавиатури с компютъра. Подробно процесът на свързване на клавиатурата с донгъл-приемника Logitech, както и самата технология, са обсъдени, например, тук.

Пазете вашите донгли: изследване на сигурността на ресивера на клавиатури Logitech

Донгъл-приемник с поддръжка на Logitech Unifying

Клавиатурата може да стане източник на информация за престъпници. Компанията Logitech, като отчита възможната заплаха, се е погрижила за сигурността – приложила е алгоритъм за криптиране AES128 в радиоканала на безжичната клавиатура. Първата мисъл, която може да посети злонамерен човек при такава ситуация, е за перехващане на ключовата информация при нейното предаване по радиоканала по време на процедурата на свързване. Наистина, при наличието на ключ, можете да перехващате радиосигналите на клавиатурата и да ги дешифрирате. Въпреки това, потребителят рядко (или дори никога) не е принуден да свързва клавиатурата чрез процедурата Unifying, и на хакера с радиоприемник, който сканира, ще му се наложи да чака дълго. Освен това, нещата не са толкова прости и с самия процес на перехващане. В последното изследване през юни 2019 година експертът по сигурността Маркус Менгс публикува в мрежата съобщението об откритие на уязвимост в стари фърмуери на USB-донглове Logitech. Това позволява на злонамерените лица с физически достъп до устройствата да получават ключовете за криптиране на радиоканала и да инжектират натискания на клавиши (CVE-2019-13054).

Ще разкажем за нашето изследване на сигурността на донгъла Logitech базиран на SoC NRF24 от Nordic Semiconductor. А започваме, вероятно, с радиоканала.

Как данните се предават в радиоканала

За честотно-времевия анализ на радиосигнала използвахме SDR приемник на базата на устройството Blade-RF в режим на анализатор на спектъра (можете да прочетете и за това) тук).

Пазете вашите донгли: изследване на сигурността на ресивера на клавиатури Logitech

Устройство SDR Blade-RF

Също така разгледахме възможността за запис на квадратурите на радиосигнала на междинна честота, за да ги анализираме след това с помощта на методи за цифрова обработка на сигнали.

Държавната комисия по радиочестотите в Руската федерация е разрешила за използване от устройства с малък радиус на действие диапазон честоти 2400–2483,5 МХц. Това е много „населена“ област, където може да се срещне всичко: Wi-Fi, Bluetooth, различни дистанционни управления, охранителни системи, безжични детектори, мишки с клавиатури и други безжични цифрови устройства.

Пазете вашите донгли: изследване на сигурността на ресивера на клавиатури Logitech

Спектърът на диапазона от 2,4 ГХц

Обстановката с интерференция в диапазона е доста сложна. Но въпреки това компанията Logitech успя да осигури надежден и устойчив прием, използвайки протокола Enhanced ShockBurst в трансивера NRF24 в комбинация с алгоритми за честотна адаптация.

Каналите в диапазона са разположени на позиции с целочислени стойности в МХц, както е определено в спецификации NRF24 Nordic Semiconductor – общо 84 канала в честотната мрежа. Броят на едновременно използваните честотни канали от Logitech е, разбира се, по-малък. Установихме използването на поне четири. Поради ограничената честотна лента на използвания анализатор на спектъра, точният списък на използваните честотни позиции не може да бъде определен, но и нямаше нужда от това. Информацията от клавиатурата до донгъл приемника се предава в режим Burst (с кратки включвания на предавателя) с помощта на двупозиционна честотна модулация GFSK при символна скорост от 1 Мбод:

Пазете вашите донгли: изследване на сигурността на ресивера на клавиатури Logitech

Радиосигналът от клавиатурата в времево представяне

Приемникът използва корелационен принцип на приемане, поради което в предавания пакет присъстват преамбула и адресна част. Устойчиво на интерференция кодиране не се прилага, тялото на данните е шифрано с алгоритъма AES128.

Като цяло радиоинтерфейс на безжичната клавиатура Logitech може да бъде описан като напълно асинхронен, със статистическо компресиране и честотна адаптация. Това означава, че предавателят на клавиатурата променя канала за предаване на всеки нов пакет. Приемникът не знае предварително нито времето на предаване, нито честотния канал, а само техния списък. Приемникът и предавателят се свързват в канала благодарение на съгласуваните алгоритми за обход и прослушване на честоти, както и механизмите за потвърждение Enhanced ShockBurst. Не проучихме дали списъкът на каналите е статичен. Вероятно промяната му се обуславя от алгоритъма за честотна адаптация. Нещо подобно на метода ППРЧ (псевдослучайна перестройка на работната честота) се предполага в използването на честотния ресурс на обхвата.

Така, в условията на честотно-времева неопределеност, за гарантирано приемане на всички сигнали от клавиатурата, на злонамерене лице ще му трябва да контролира постоянно цялата мрежа от честоти в диапазона от 84 позиции, което изисква значителни времеви разходи. Тук става ясно защо уязвимостта за извличане на ключа чрез USB (CVE-2019-13054) в източниците се позиционира като възможност за инжектиране на натискания на клавиши, а не за получаване на достъп от злонамеренец до данните, въведени от клавиатурата. Очевидно, радиоинтерфейсът на безжичната клавиатура е устроен достатъчно сложно и осигурява надеждна радиовръзка между устройствата Logitech в условия на сложна шумова среда в диапазона 2,4 GHz.

Поглед върху проблема отвътре

За изследването избрахме една от наличните клавиатури Logitech K330 и донгъл Logitech Unifying.

Пазете вашите донгли: изследване на сигурността на ресивера на клавиатури Logitech

Logitech K330

Нека погледнем вътре в клавиатурата. Интересен елемент за изследване на платката е чипът SoC NRF24 от Nordic Semiconductor.

Пазете вашите донгли: изследване на сигурността на ресивера на клавиатури Logitech

SoC NRF24 на платката на безжичната клавиатура Logitech K330

Фърмуерът е разположен в вътрешната памет, механизмите за четене и отстраняване на грешки са изключени. За съжаление, фърмуерът не е публикуван в откритите източници. Затова решихме да подходим към проблема от друга страна – да проучим вътрешното съдържание на донгъл-приемника Logitech.

Вътрешният свят на донгл приемника е устроен доста интересно. Донгълът лесно се разглобява, разполага с познатия NRF24 с вграден USB контролер и може да бъде препрограмиран както от USB, така и директно от програмист.

Пазете вашите донгли: изследване на сигурността на ресивера на клавиатури Logitech

Донгъл Logitech без корпус

Тъй като съществува стандартен механизъм за обновяване на фърмуера с помощта на приложението Firmware Update Tool (от което може да бъде извлечена актуализирана версия на фърмуера), няма нужда да се търси фърмуерът вътре в донгъл.

Какво беше направено: от тялото на приложението Firmware Update Tool беше извлечен фърмуерът RQR_012_005_00028.bin. За проверка на целостта му контролерът на донгъла беше свързан с кабел към програмиста ChipProg-48:

Пазете вашите донгли: изследване на сигурността на ресивера на клавиатури Logitech

Кабелната връзка на донгъла Logitech с програмиста ChipProg 48

За контрол на целостта на фърмуера той успешно беше записан в паметта на контролера и заработи коректно, клавиатурата и мишката бяха свързани към донгъла чрез Logitech Unifying. Възможно е качване на модифициран фърмуер с помощта на стандартния механизъм за обновление, тъй като не са предвидени механизми за криптографска защита на фърмуера. Ние в интерес на изследването използвахме физическо свързване с програмиста, тъй като така отладката е много по-бърза.

Изследване на фърмуера и атака на потребителския вход

Чипът NRF24 е проектиран на базата на изчислителното ядро Intel 8051 в традиционната харвардска архитектура. За ядрото трансиверът служи като периферно устройство и е разположен в адресното пространство като набор от регистри. Документацията за чипа и примери за изходен код могат да бъдат намерени в Интернет, затова дизасемблирането на фърмуера не представлява трудност. В хода на реверс-инженеринга локализирахме функции за получаване на данни за натискания на клавиши от радиоканала и преобразуването им в HID формат за предаване на хост по USB интерфейса. В свободните адреси на паметта беше разположен код за инжекция, включващ инструменти за прихващане на управлението, запазване и възстановяване на оригиналния контекст на изпълнение, както и функционален код.

Приетият донгъл от радиоканала пакет на натискане или отпускане на клавишата се дешифрира, преобразува в стандартен HID-репорт и се изпраща в USB-интерфейса като от обикновена клавиатура. В проучването за нас най-голям интерес представлява частта от HID-репорта, съдържаща байт флагове-модификатори и масив от 6 байта с кодове на натискания на клавишите (за справка информация за HID тук).

Структура на HID-репорта:

// Keyboard HID report structure.
// See https://flylib.com/books/en/4.168.1.83/1/ (last access 2018 december)
// "Reports and Report Descriptors", "Programming the Microsoft Windows Driver Model"
typedef struct{
    uint8_t Modifiers;
    uint8_t Reserved;
    uint8_t KeyCode[6];
}HidKbdReport_t;

Непосредствено преди предаването на HID-структурата на хоста, инжектираният код поема управлението, копира в паметта 8 байта нативни HID-данни и ги изпраща на побочния радиоканал в открит вид. В кода това изглежда така:

//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~>
// Profiling have shown time execution ~1.88 mSec this block of code
SaveRfState();                  // save transceiver state
RfInitForTransmition(TransmitRfAddress);        // configure for special trnsmition
hal_nrf_write_tx_payload_noack(pDataToSend,sizeof(HidKbdReport_t)); // Write payload to radio TX FIFO
CE_PULSE();                 // Toggle radio CE signal to start transmission
RestoreRfState();               // restore original transceiver state
//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~<

Побочният канал се организира на установената от нас честота с определени характеристики на скоростта на манипулация и структурата на пакета.

Работа на трансивера в чипа NRF24 е основана на графа състояния, в който органично е вписан протоколът Enhanced ShockBurst. Установихме, че непосредствено преди предаването на HID-данни в USB-интерфейса на хоста, трансиверът е бил в състояние IDLE. Това позволява безопасното му пренастройване за работа в побочен канал. Инжектираният код прихваща управлението, запазва оригиналната конфигурация на трансивера в пълнота и го превежда в нов режим на предаване по побочния канал. Механизмът на потвърдителите Enhanced ShockBurst в този режим е изключен, HID-данните в открит вид се предават в радио ефир. Структурата на пакета в побочния канал е представена на фигурата по-долу; епюри на сигнала са получени след демодулация и преди възстановяване на тактовата синхронизация на данните. Стойността на адреса е избрана за удобство на визуалната идентификация на пакета.

Пазете вашите донгли: изследване на сигурността на ресивера на клавиатури Logitech

Демодулиран сигнал на Burst-пакета в побочния канал

След завършване на предаването на пакета в побочния канал, инжектираният код възстановява състоянието на трансивера. Сега той отново е готов за работа в нормален режим в контекста на оригиналния фърмуер.

В честотната и честотно-временна области, побочният канал изглежда така, както е показано на фигурите:

Пазете вашите донгли: изследване на сигурността на ресивера на клавиатури Logitech

Спектрално и честотно-времево представяне на побочния канал

За да проверим работата на чипа NRF24 с променен фърмуер, събрахме стенд, който включва Logitech донгъл с модифициран фърмуер, безжична клавиатура и приемник, изградени на базата на китайски модул с чип NRF24.

Пазете вашите донгли: изследване на сигурността на ресивера на клавиатури Logitech

Схема за прихващане на радиосигнала на безжичната клавиатура Logitech

Пазете вашите донгли: изследване на сигурността на ресивера на клавиатури Logitech

Модул на базата на NRF24

На стенда при нормална работа на клавиатурата след свързването ѝ с донгъла Logitech наблюдавахме предаване на открити данни за натискания на клавиши по страничен радиоканал и нормално предаване на криптирани данни в основния радиоинтерфейс. По този начин успяхме да осигурим директно прихващане на клавиатурния вход на потребителя:

Пазете вашите донгли: изследване на сигурността на ресивера на клавиатури Logitech

Резултат от прихващането на клавиатурния вход

Инжектираният код внася малки закъснения в работата на фърмуера на донгъла. Въпреки това, те са твърде малки, за да могат потребителите да ги забележат.

Както разбирате, за такава атака може да се използва всяка клавиатура Logitech, съвместима с технологията Unifying. Тъй като атаката е насочена към Unifying приемника, който е включен в комплекта на повечето клавиатури Logitech, тя не зависи от конкретен модел клавиатура.

Заключение

Получените резултати от проучването навеждат на мисълта за възможното използване на разгледания сценарий от злонамерени лица: ако хакер замени донгъл-приемника на безжичната клавиатура Logitech на жертвата, той може да разбере паролите на жертвата с всички произтичащи последствия. Не бива да се забравя, че инжектирането на натискания върху клавишите също е възможно, което означава, че е лесно да се изпълни произволен код на компютъра на жертвата.

А ако злонамереният човек успее дистанционно да модифицира фърмуера на всеки Logitech донгъл чрез USB? Тогава от близко разположени донгъли може да се образува мрежа от релеета, увеличаваща дистанцията на изтичането. Въпреки това, „финансово осигуреният“ злонамерен човек би могъл да използва съвременни радиоприемни средства с високо селективни системи, чувствителни радиоприемници с малко време за настройка на честотата и насочени антени, за да може да „слуша“ клавиатурния вход и да натиска клавиши дори от съседна сграда.

Пазете вашите донгли: изследване на сигурността на ресивера на клавиатури Logitech

Професионално оборудване за радиоприем

Тъй като безжичният канал за предаване на данни на клавиатурата Logitech е достатъчно защитен, намереният вектор за атака изисква физически достъп до ресивера, което значително ограничава атакуващия. Единствената възможност за защита в този случай би могло да бъде използването на механизми за криптографска защита за фърмуера на ресивера, например проверка на подписа на зарежданата фърмуерна версия от страна на ресивера. За съжаление, NRF24 не поддържа това, и в рамките на текущата архитектура на устройството, реализирането на защита е невъзможно. Така че пазете вашите донгли, тъй като описаният вариант на атака изисква физически достъп до тях.

Пазете вашите донгли: изследване на сигурността на ресивера на клавиатури Logitech

Raccoon Security – специален екип от експерти на НТЦ «Вулкан» в областта на практическата информационна безопасност, криптографията, схемотехниката, обратната разработка и създаването на нискониво софтуер.

Източник: habr.com

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