Тарихи түрде қызметкерлердің көпшілігі Logitech компаниясының сымсыз пернетақталары мен тышқандарын пайдаланады. Құпия сөздерді тағы бір рет енгізе отырып, біз, Raccoon Security тобының мамандары, өзімізге сұрақ қойдық: сымсыз пернетақталардың қауіпсіздік механизмдерін айналып өту қаншалықты қиын? Зерттеу барысында енгізілген деректерге қол жеткізуге мүмкіндік беретін архитектуралық кемшіліктер мен бағдарламалық қамтамасыз ету қателері анықталды. Кесудің астында біз алған нәрсе.
Неліктен Logitech?
Біздің ойымызша, Logitech енгізу құрылғылары ең жоғары сапалы және ыңғайлы. Біздегі құрылғылардың көпшілігі Logitech шешіміне негізделген
Logitech Unifying қолдауы бар Dongle қабылдағыш
Пернетақта шабуылдаушылар үшін ақпарат көзі бола алады. Logitech ықтимал қауіпті ескере отырып, қауіпсіздік туралы қамқорлық жасады - ол сымсыз пернетақтаның радиоарнасында AES128 шифрлау алгоритмін қолданды. Бұл жағдайда шабуылдаушы болуы мүмкін деген бірінші ой байлау процедурасы кезінде радиоарна арқылы жіберілген негізгі ақпаратты ұстап алу болып табылады. Ақыр соңында, егер сізде кілт болса, сіз пернетақтаның радио сигналдарын ұстап, олардың шифрын шеше аласыз. Дегенмен, пайдаланушыға сирек (немесе тіпті ешқашан) пернетақтаны біріктіруге тура келеді, ал сканерлеу радиосы бар хакер ұзақ уақыт күтуге тура келеді. Сонымен қатар, ұстап алу процесінің өзімен бәрі оңай емес. 2019 жылдың маусымындағы соңғы зерттеуде қауіпсіздік сарапшысы Маркус Менгс желіде жариялады
Біз Nordic Semiconductor компаниясының NRF24 SoC негізіндегі Logitech құрылғысының қауіпсіздігін зерттеу туралы айтатын боламыз. Мүмкін, радиоарнаның өзінен бастайық.
Радиоарнада деректер қалай «ұшады».
Радиосигналдың уақыт жиілігін талдау үшін біз спектр анализатор режимінде Blade-RF құрылғысына негізделген SDR қабылдағышын қолдандық (бұл туралы да оқуға болады).
SDR Blade-RF құрылғысы
Біз сондай-ақ радиосигналдың квадратураларын аралық жиілікте жазу мүмкіндігін қарастырдық, содан кейін оларды цифрлық сигналдарды өңдеу әдістері арқылы талдауға болады.
Ресей Федерациясындағы Радиожиілік жөніндегі мемлекеттік комиссия
2,4 ГГц диапазонының спектрі
Ауқымдағы кедергі ортасы өте күрделі. Осыған қарамастан, Logitech NRF24 қабылдағышындағы Enhanced ShockBurst протоколын жиілікті бейімдеу алгоритмдерімен бірге пайдалану арқылы сенімді және тұрақты қабылдауды қамтамасыз ете алды.
Жолақтағы арналар бөлімінде анықталғандай бүтін МГц позицияларына орналастырылады
Уақытты көрсетудегі пернетақта радиосигнал
Қабылдаушы қабылдаудың корреляциялық принципін пайдаланады, сондықтан жіберілетін пакетте преамбула және адрес бөлігі болады. Шуға төзімді кодтау пайдаланылмайды, деректер корпусы AES128 алгоритмімен шифрланған.
Жалпы алғанда, Logitech сымсыз пернетақтасының радио интерфейсін статистикалық мультиплекстеу және жиілікті бейімдеу арқылы толығымен асинхронды деп сипаттауға болады. Бұл пернетақта таратқышы әрбір жаңа пакетті жіберу үшін арнаны ауыстыратынын білдіреді. Қабылдаушы жіберу уақытын да, жиілік арнасын да алдын ала білмейді, тек олардың тізімі белгілі. Қабылдағыш пен таратқыш келісілген жиілікті айналып өту және тыңдау алгоритмдері, сондай-ақ кеңейтілген ShockBurst растау механизмдері арқасында арнада кездеседі. Біз арналар тізімінің статикалық екенін зерттеген жоқпыз. Оның өзгеруі жиілікті бейімдеу алгоритміне байланысты болса керек. Диапазонның жиілік ресурсын пайдалануда жиілікті секіру әдісіне жақын нәрсені (жұмыс жиілігін псевдокездейсоқ баптау) көруге болады.
Осылайша, уақыт жиілігінің белгісіздігі жағдайында барлық пернетақта сигналдарының кепілді қабылдануын қамтамасыз ету үшін шабуылдаушы 84 позициядан тұратын барлық жиілік торын үнемі бақылап отыруы керек, бұл айтарлықтай уақытты қажет етеді. Бұл жерде USB кілтін шығарудың осалдығы неліктен екені анық болады (CVE-2019-13054)
Мәселеге ішкі жағынан қарау
Зерттеу үшін біз бар Logitech K330 пернетақталарының бірін және Logitech Unifying кілтін таңдадық.
Logitech K330
Пернетақтаның ішін қарастырайық. Зерттеуге арналған тақтадағы қызықты элемент - Nordic Semiconductor компаниясының SoC NRF24 чипі.
Logitech K24 сымсыз пернетақта тақтасындағы SoC NRF330
Микробағдарлама ішкі жадта орналасқан, оқу және жөндеу механизмдері өшірілген. Өкінішке орай, микробағдарлама ашық көздерде жарияланған жоқ. Сондықтан, біз мәселеге екінші жағынан - Logitech донгле қабылдағышының ішкі мазмұнын зерттеуді шештік.
Донгл қабылдағыштың «ішкі әлемі» өте қызықты. Донгл оңай бөлшектеледі, бортында кірістірілген USB контроллері бар таныс NRF24 шығарылымын алып жүреді және оны USB жағынан да, тікелей бағдарламашыдан да қайта бағдарламалауға болады.
Logitech кілті корпуссыз
Микробағдарламаны қолдану арқылы жаңартудың стандартты механизмі бар болғандықтан
Орындалды: микробағдарлама RQR_012_005_00028.bin микробағдарламаны жаңарту құралы қолданбасының негізгі бөлігінен шығарылды. Оның тұтастығын тексеру үшін қосқыш контроллері кабель арқылы жалғанған
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 чипінің модификацияланған микробағдарламасы бар жұмысын тексеру үшін біз модификацияланған микробағдарламасы бар Logitech кілтін, сымсыз пернетақтаны және NRF24 чипі бар қытай модулі негізінде жиналған қабылдағышты қамтитын стендті жинадық.
Logitech сымсыз пернетақтасының радиосигналдарды тоқтату тізбегі
NRF24 негізіндегі модуль
Орындықта, пернетақта қалыпты жұмыс істеп тұрған кезде, оны Logitech кілтіне қосқаннан кейін біз бүйірлік радиоарнадағы пернелерді басу туралы анық деректердің берілуін және негізгі радио интерфейсінде шифрланған деректердің қалыпты берілуін байқадық. Осылайша, біз пайдаланушы пернетақтасының енгізуін тікелей тоқтатуды қамтамасыз ете алдық:
Пернетақтадан енгізуді тоқтату нәтижесі
Инъекциялық код қосқыш микробағдарламасының жұмысында шамалы кідірістерді енгізеді. Дегенмен, олар пайдаланушы байқамауы үшін тым кішкентай.
Өзіңіз ойлағандай, бұл шабуыл векторы үшін Unifying технологиясымен үйлесімді кез келген Logitech пернетақтасын пайдалануға болады. Шабуыл Logitech пернетақталарының көпшілігімен қамтылған Unifying қабылдағышына бағытталғандықтан, ол арнайы пернетақта үлгісіне тәуелсіз.
қорытынды
Зерттеу нәтижелері қаралған сценарийді шабуылдаушылармен пайдалану мүмкіндігін ұсынады: егер хакер жәбірленушіні Logitech сымсыз пернетақтасына арналған қондырма қабылдағышпен ауыстырса, онда ол жәбірленушінің есептік жазбаларының құпия сөздерін барлық келесі әрекеттермен таба алады. салдары. Сондай-ақ пернелерді басу мүмкіндігі бар екенін ұмытпаңыз, яғни жәбірленушінің компьютерінде еркін кодты орындау қиын емес.
Егер кенеттен шабуылдаушы USB арқылы кез келген Logitech кілтінің микробағдарламасын қашықтан өзгерте алса ше? Содан кейін тығыз орналасқан кілттерден сіз қайталағыштар желісін жасай аласыз және ағып кету қашықтығын арттыра аласыз. «Қаржылық жағынан бай» шабуылдаушы көрші ғимараттан да пернетақтадан енгізуді «тыңдап» және пернелерді баса алатын болса да, жоғары селективті жүйелері бар заманауи радиоқабылдағыштар, қысқа жиілікті реттеу уақыты бар сезімтал радиоқабылдағыштар және жоғары бағытталған антенналар оларға мүмкіндік береді. пернетақтадан енгізуді «тыңдау» және тіпті көрші ғимараттан пернелерді басыңыз.
Кәсіби радиотехника
Logitech пернетақтасының сымсыз деректерді беру арнасы өте жақсы қорғалғандықтан, табылған шабуыл векторы қабылдағышқа физикалық қол жеткізуді талап етеді, бұл шабуылдаушыны айтарлықтай шектейді. Бұл жағдайда жалғыз қорғау нұсқасы ресивердің микробағдарламасы үшін криптографиялық қорғау механизмдерін пайдалану болады, мысалы, ресивер жағында жүктелген микробағдарламаның қолтаңбасын тексеру. Бірақ, өкінішке орай, NRF24 мұны қолдамайды және құрылғының ағымдағы архитектурасында қорғауды жүзеге асыру мүмкін емес. Сондықтан кілттеріңізге қамқорлық жасаңыз, өйткені сипатталған шабуыл опциясы оларға физикалық қол жеткізуді қажет етеді.
Raccoon Security – практикалық ақпараттық қауіпсіздік, криптография, схемаларды жобалау, кері инженерия және төмен деңгейлі бағдарламалық жасақтаманы жасау саласындағы Вулкан ғылыми-зерттеу және дамыту орталығының сарапшылар тобы.
Ақпарат көзі: www.habr.com