Дөңгелектерге күтім жасаңыз: Logitech пернетақта қабылдағышының қауіпсіздігін зерттеу

Дөңгелектерге күтім жасаңыз: Logitech пернетақта қабылдағышының қауіпсіздігін зерттеу

Тарихи түрде қызметкерлердің көпшілігі Logitech компаниясының сымсыз пернетақталары мен тышқандарын пайдаланады. Құпия сөздерді тағы бір рет енгізе отырып, біз, Raccoon Security тобының мамандары, өзімізге сұрақ қойдық: сымсыз пернетақталардың қауіпсіздік механизмдерін айналып өту қаншалықты қиын? Зерттеу барысында енгізілген деректерге қол жеткізуге мүмкіндік беретін архитектуралық кемшіліктер мен бағдарламалық қамтамасыз ету қателері анықталды. Кесудің астында біз алған нәрсе.

Неліктен Logitech?

Біздің ойымызша, Logitech енгізу құрылғылары ең жоғары сапалы және ыңғайлы. Біздегі құрылғылардың көпшілігі Logitech шешіміне негізделген біріктіруші 6 құрылғыға дейін қосуға мүмкіндік беретін әмбебап қосқыш қабылдағыш. Logitech Unifying технологиясымен үйлесімді барлық құрылғылар Logitech Unifying технологиясы логотипімен белгіленген. Қолдануға оңай қолдану Сымсыз пернетақталарды компьютерге қосуды басқаруға мүмкіндік береді. Пернетақтаны Logitech ресивер кілтіне қосу процесі, сондай-ақ технологияның өзі қамтылған, мысалы, осында.

Дөңгелектерге күтім жасаңыз: Logitech пернетақта қабылдағышының қауіпсіздігін зерттеу

Logitech Unifying қолдауы бар Dongle қабылдағыш

Пернетақта шабуылдаушылар үшін ақпарат көзі бола алады. Logitech ықтимал қауіпті ескере отырып, қауіпсіздік туралы қамқорлық жасады - ол сымсыз пернетақтаның радиоарнасында AES128 шифрлау алгоритмін қолданды. Бұл жағдайда шабуылдаушы болуы мүмкін деген бірінші ой байлау процедурасы кезінде радиоарна арқылы жіберілген негізгі ақпаратты ұстап алу болып табылады. Ақыр соңында, егер сізде кілт болса, сіз пернетақтаның радио сигналдарын ұстап, олардың шифрын шеше аласыз. Дегенмен, пайдаланушыға сирек (немесе тіпті ешқашан) пернетақтаны біріктіруге тура келеді, ал сканерлеу радиосы бар хакер ұзақ уақыт күтуге тура келеді. Сонымен қатар, ұстап алу процесінің өзімен бәрі оңай емес. 2019 жылдың маусымындағы соңғы зерттеуде қауіпсіздік сарапшысы Маркус Менгс желіде жариялады хабарлама Logitech USB кілттерінің ескі микробағдарламасында осалдықтың табылғаны туралы. Ол құрылғыларға физикалық қатынасы бар шабуылдаушыларға радиоарна шифрлау кілттерін алуға және пернелерді енгізуге мүмкіндік береді (CVE-2019-13054).

Біз Nordic Semiconductor компаниясының NRF24 SoC негізіндегі Logitech құрылғысының қауіпсіздігін зерттеу туралы айтатын боламыз. Мүмкін, радиоарнаның өзінен бастайық.

Радиоарнада деректер қалай «ұшады».

Радиосигналдың уақыт жиілігін талдау үшін біз спектр анализатор режимінде Blade-RF құрылғысына негізделген SDR қабылдағышын қолдандық (бұл туралы да оқуға болады). осында).

Дөңгелектерге күтім жасаңыз: Logitech пернетақта қабылдағышының қауіпсіздігін зерттеу

SDR Blade-RF құрылғысы

Біз сондай-ақ радиосигналдың квадратураларын аралық жиілікте жазу мүмкіндігін қарастырдық, содан кейін оларды цифрлық сигналдарды өңдеу әдістері арқылы талдауға болады.

Ресей Федерациясындағы Радиожиілік жөніндегі мемлекеттік комиссия рұқсат қысқа диапазондағы құрылғылар үшін жиілік диапазоны 2400–2483,5 МГц. Бұл өте «толық» ауқым, онда сіз ештеңе таба алмайсыз: Wi-Fi, Bluetooth, қашықтан басқару құралдарының барлық түрлері, қауіпсіздік жүйелері, сымсыз детекторлар, пернетақтасы бар тышқандар және басқа сымсыз сандық құрылғылар.

Дөңгелектерге күтім жасаңыз: Logitech пернетақта қабылдағышының қауіпсіздігін зерттеу

2,4 ГГц диапазонының спектрі

Ауқымдағы кедергі ортасы өте күрделі. Осыған қарамастан, Logitech NRF24 қабылдағышындағы Enhanced ShockBurst протоколын жиілікті бейімдеу алгоритмдерімен бірге пайдалану арқылы сенімді және тұрақты қабылдауды қамтамасыз ете алды.

Жолақтағы арналар бөлімінде анықталғандай бүтін МГц позицияларына орналастырылады сипаттамалары NRF24 Nordic Semiconductor - жиілік торында барлығы 84 арна. Logitech бір мезгілде пайдаланатын жиілік арналарының саны, әрине, аз. Біз кем дегенде төртеуін пайдалануды анықтадық. Қолданылатын сигнал спектрі анализаторының өткізу қабілеті шектеулі болғандықтан, пайдаланылатын жиілік позицияларының нақты тізімін анықтау мүмкін болмады, бірақ бұл қажет емес еді. Пернетақтадан қабылдағыш кілтіне ақпарат Burst режимінде (таратқышты қысқа мерзімде қосады) GFSK екі позициялық жиілікті модуляциясын 1 Мбауд символдық жылдамдықпен жібереді:

Дөңгелектерге күтім жасаңыз: Logitech пернетақта қабылдағышының қауіпсіздігін зерттеу

Уақытты көрсетудегі пернетақта радиосигнал

Қабылдаушы қабылдаудың корреляциялық принципін пайдаланады, сондықтан жіберілетін пакетте преамбула және адрес бөлігі болады. Шуға төзімді кодтау пайдаланылмайды, деректер корпусы AES128 алгоритмімен шифрланған.

Жалпы алғанда, Logitech сымсыз пернетақтасының радио интерфейсін статистикалық мультиплекстеу және жиілікті бейімдеу арқылы толығымен асинхронды деп сипаттауға болады. Бұл пернетақта таратқышы әрбір жаңа пакетті жіберу үшін арнаны ауыстыратынын білдіреді. Қабылдаушы жіберу уақытын да, жиілік арнасын да алдын ала білмейді, тек олардың тізімі белгілі. Қабылдағыш пен таратқыш келісілген жиілікті айналып өту және тыңдау алгоритмдері, сондай-ақ кеңейтілген ShockBurst растау механизмдері арқасында арнада кездеседі. Біз арналар тізімінің статикалық екенін зерттеген жоқпыз. Оның өзгеруі жиілікті бейімдеу алгоритміне байланысты болса керек. Диапазонның жиілік ресурсын пайдалануда жиілікті секіру әдісіне жақын нәрсені (жұмыс жиілігін псевдокездейсоқ баптау) көруге болады.

Осылайша, уақыт жиілігінің белгісіздігі жағдайында барлық пернетақта сигналдарының кепілді қабылдануын қамтамасыз ету үшін шабуылдаушы 84 позициядан тұратын барлық жиілік торын үнемі бақылап отыруы керек, бұл айтарлықтай уақытты қажет етеді. Бұл жерде USB кілтін шығарудың осалдығы неліктен екені анық болады (CVE-2019-13054) көздерде шабуылдаушының пернетақтадан енгізілген деректерге қол жеткізуіне емес, пернелерді басу мүмкіндігі ретінде орналастырылған. Әлбетте, сымсыз пернетақтаның радио интерфейсі өте күрделі және 2,4 ГГц диапазонындағы қиын кедергі жағдайында Logitech құрылғылары арасында сенімді радиобайланысты қамтамасыз етеді.

Мәселеге ішкі жағынан қарау

Зерттеу үшін біз бар Logitech K330 пернетақталарының бірін және Logitech Unifying кілтін таңдадық.

Дөңгелектерге күтім жасаңыз: Logitech пернетақта қабылдағышының қауіпсіздігін зерттеу

Logitech K330

Пернетақтаның ішін қарастырайық. Зерттеуге арналған тақтадағы қызықты элемент - Nordic Semiconductor компаниясының SoC NRF24 чипі.

Дөңгелектерге күтім жасаңыз: Logitech пернетақта қабылдағышының қауіпсіздігін зерттеу

Logitech K24 сымсыз пернетақта тақтасындағы SoC NRF330

Микробағдарлама ішкі жадта орналасқан, оқу және жөндеу механизмдері өшірілген. Өкінішке орай, микробағдарлама ашық көздерде жарияланған жоқ. Сондықтан, біз мәселеге екінші жағынан - Logitech донгле қабылдағышының ішкі мазмұнын зерттеуді шештік.

Донгл қабылдағыштың «ішкі әлемі» өте қызықты. Донгл оңай бөлшектеледі, бортында кірістірілген USB контроллері бар таныс NRF24 шығарылымын алып жүреді және оны USB жағынан да, тікелей бағдарламашыдан да қайта бағдарламалауға болады.

Дөңгелектерге күтім жасаңыз: Logitech пернетақта қабылдағышының қауіпсіздігін зерттеу

Logitech кілті корпуссыз

Микробағдарламаны қолдану арқылы жаңартудың стандартты механизмі бар болғандықтан Микробағдарламаны жаңарту құралы қолданбалары (жаңартылған микробағдарлама нұсқасын шығаруға болады), бағдарламалық құралдың ішінен микробағдарламаны іздеудің қажеті жоқ.

Орындалды: микробағдарлама RQR_012_005_00028.bin микробағдарламаны жаңарту құралы қолданбасының негізгі бөлігінен шығарылды. Оның тұтастығын тексеру үшін қосқыш контроллері кабель арқылы жалғанған ChipProg-48 бағдарламашысына:

Дөңгелектерге күтім жасаңыз: Logitech пернетақта қабылдағышының қауіпсіздігін зерттеу

Logitech кілтін ChipProg 48 бағдарламашысына қосуға арналған кабель

Микробағдарламаның тұтастығын бақылау үшін ол контроллердің жадына сәтті орналастырылды және дұрыс жұмыс істеді, пернетақта мен тінтуір Logitech Unifying арқылы кілтпен қосылды. Микробағдарламаны криптографиялық қорғау механизмдері болмағандықтан, стандартты жаңарту механизмі арқылы өзгертілген микробағдарламаны жүктеп салуға болады. Зерттеу мақсатында біз бағдарламашыға физикалық қосылымды қолдандық, өйткені отладка осылайша әлдеқайда жылдамырақ.

Микробағдарламаны зерттеу және пайдаланушы енгізуіне шабуыл

NRF24 чипі дәстүрлі Гарвард архитектурасындағы Intel 8051 есептеуіш ядросына негізделген. Ядро үшін трансивер перифериялық құрылғы ретінде әрекет етеді және адрестік кеңістікте регистрлер жиынтығы ретінде орналасады. Чиптің құжаттамасын және бастапқы код мысалдарын Интернетте табуға болады, сондықтан микробағдарламаны бөлшектеу қиын емес. Кері инженерия кезінде біз радиоарнадан пернелерді басу деректерін қабылдау және оларды USB интерфейсі арқылы хостқа жіберу үшін HID пішіміне түрлендіру функцияларын локализацияладық. Инъекция коды бос жад мекенжайларына орналастырылды, олар басқаруды ұстап алу, бастапқы орындау контекстін сақтау және қалпына келтіру үшін құралдарды, сондай-ақ функционалды кодты қамтиды.

Радиоарнадан кілтпен алынған пернені басу немесе босату пакеті шифрдан шығарылады, стандартты HID есебіне түрлендіріледі және кәдімгі пернетақтадағы сияқты USB интерфейсіне жіберіледі. Зерттеу бөлігі ретінде HID есебінің бізді ең қызықтыратын бөлігі 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 пернетақта қабылдағышының қауіпсіздігін зерттеу

Бүйірлік арнадағы демодуляцияланған жарылыс сигналы

Пакет бүйірлік арнаға жіберілгеннен кейін енгізілген код трансивердің күйін қалпына келтіреді. Енді ол қайтадан бастапқы микробағдарлама контекстінде қалыпты жұмыс істеуге дайын.

Жиілік және уақыттық жиілік домендерінде бүйірлік арна келесідей көрінеді:

Дөңгелектерге күтім жасаңыз: Logitech пернетақта қабылдағышының қауіпсіздігін зерттеу

Бүйірлік арнаның спектрлік және уақыттық жиіліктегі көрінісі

NRF24 чипінің модификацияланған микробағдарламасы бар жұмысын тексеру үшін біз модификацияланған микробағдарламасы бар Logitech кілтін, сымсыз пернетақтаны және NRF24 чипі бар қытай модулі негізінде жиналған қабылдағышты қамтитын стендті жинадық.

Дөңгелектерге күтім жасаңыз: Logitech пернетақта қабылдағышының қауіпсіздігін зерттеу

Logitech сымсыз пернетақтасының радиосигналдарды тоқтату тізбегі

Дөңгелектерге күтім жасаңыз: Logitech пернетақта қабылдағышының қауіпсіздігін зерттеу

NRF24 негізіндегі модуль

Орындықта, пернетақта қалыпты жұмыс істеп тұрған кезде, оны Logitech кілтіне қосқаннан кейін біз бүйірлік радиоарнадағы пернелерді басу туралы анық деректердің берілуін және негізгі радио интерфейсінде шифрланған деректердің қалыпты берілуін байқадық. Осылайша, біз пайдаланушы пернетақтасының енгізуін тікелей тоқтатуды қамтамасыз ете алдық:

Дөңгелектерге күтім жасаңыз: Logitech пернетақта қабылдағышының қауіпсіздігін зерттеу

Пернетақтадан енгізуді тоқтату нәтижесі

Инъекциялық код қосқыш микробағдарламасының жұмысында шамалы кідірістерді енгізеді. Дегенмен, олар пайдаланушы байқамауы үшін тым кішкентай.

Өзіңіз ойлағандай, бұл шабуыл векторы үшін Unifying технологиясымен үйлесімді кез келген Logitech пернетақтасын пайдалануға болады. Шабуыл Logitech пернетақталарының көпшілігімен қамтылған Unifying қабылдағышына бағытталғандықтан, ол арнайы пернетақта үлгісіне тәуелсіз.

қорытынды

Зерттеу нәтижелері қаралған сценарийді шабуылдаушылармен пайдалану мүмкіндігін ұсынады: егер хакер жәбірленушіні Logitech сымсыз пернетақтасына арналған қондырма қабылдағышпен ауыстырса, онда ол жәбірленушінің есептік жазбаларының құпия сөздерін барлық келесі әрекеттермен таба алады. салдары. Сондай-ақ пернелерді басу мүмкіндігі бар екенін ұмытпаңыз, яғни жәбірленушінің компьютерінде еркін кодты орындау қиын емес.

Егер кенеттен шабуылдаушы USB арқылы кез келген Logitech кілтінің микробағдарламасын қашықтан өзгерте алса ше? Содан кейін тығыз орналасқан кілттерден сіз қайталағыштар желісін жасай аласыз және ағып кету қашықтығын арттыра аласыз. «Қаржылық жағынан бай» шабуылдаушы көрші ғимараттан да пернетақтадан енгізуді «тыңдап» және пернелерді баса алатын болса да, жоғары селективті жүйелері бар заманауи радиоқабылдағыштар, қысқа жиілікті реттеу уақыты бар сезімтал радиоқабылдағыштар және жоғары бағытталған антенналар оларға мүмкіндік береді. пернетақтадан енгізуді «тыңдау» және тіпті көрші ғимараттан пернелерді басыңыз.

Дөңгелектерге күтім жасаңыз: Logitech пернетақта қабылдағышының қауіпсіздігін зерттеу

Кәсіби радиотехника

Logitech пернетақтасының сымсыз деректерді беру арнасы өте жақсы қорғалғандықтан, табылған шабуыл векторы қабылдағышқа физикалық қол жеткізуді талап етеді, бұл шабуылдаушыны айтарлықтай шектейді. Бұл жағдайда жалғыз қорғау нұсқасы ресивердің микробағдарламасы үшін криптографиялық қорғау механизмдерін пайдалану болады, мысалы, ресивер жағында жүктелген микробағдарламаның қолтаңбасын тексеру. Бірақ, өкінішке орай, NRF24 мұны қолдамайды және құрылғының ағымдағы архитектурасында қорғауды жүзеге асыру мүмкін емес. Сондықтан кілттеріңізге қамқорлық жасаңыз, өйткені сипатталған шабуыл опциясы оларға физикалық қол жеткізуді қажет етеді.

Дөңгелектерге күтім жасаңыз: Logitech пернетақта қабылдағышының қауіпсіздігін зерттеу

Raccoon Security – практикалық ақпараттық қауіпсіздік, криптография, схемаларды жобалау, кері инженерия және төмен деңгейлі бағдарламалық жасақтаманы жасау саласындағы Вулкан ғылыми-зерттеу және дамыту орталығының сарапшылар тобы.

Ақпарат көзі: www.habr.com

пікір қалдыру