
Ավանդաբար, գրեթե բոլոր աշխատակիցները օգտագործում են Logitech ընկերության անլար ստեղնաշարեր և մկներ: Նորից՝ մուտքագրելով մեր գաղտնաբառերը, մենք՝ Raccoon Security թիմի մասնագետները, հարցրեցանք՝ որքան դժվար է շրջանցել անլար ստեղնաշարերի պաշտպանական մեխանիզմները: Վարած հետազոտությունը բացահայտեց ճարտարապետական թերություններ և ծրագրային սխալներ, որոնք թույլ են տալիս մուտք գործել մուտքագրված տվյալներին: Ավելին՝ ստորև.
Ինչու Logitech?
Մեր կարծիքով, Logitech ընկերության մուտքային սարքերը ერთ ամենաորակի և հարմար օգտագործման սարքերումից են: Մեր առկա սարքերի մեծ մասը հիմնված է Logitech լուծման վրա: միասնական dongle-ընդունիչ է, որը թույլ է տալիս միացնել մինչև 6 սարք: Logitech Unifying տեխնոլոգիայի հետ լիարժեք նահանգված սարքերը նշվում են համապատասխան լոգոշապիկով: Օգտագործման մեջ հեշտ թույլ է տալիս ղեկավարել անլար ստեղնաշարերի միացումները համակարգչին: Ստեղնաշարի միացման գործընթացը Logitech-ի dongle-ընդունիչին, ինչպես նաեւ ինքնս, ճարտարապետվում է, օրինակ, .

Logitech Unifying աջակցությամբ dongle-ընդունիչը
Ստեղնաշարը կարող է տեղեկատվության աղբյուր դառնալ մոլորեցնողների համար: Logitech ընկերությունը, հաշվի առնելով հնարավոր սպառնումները, հոգացել է անվտանգության համար՝ կիրառելով AES128 encryption ալգորիթմը անլար ստեղնաշարի ռադիոալիքում: Առաջին միտքը, որը կարող է այցելել մոլորեցնողին այսպիսի պայմաններում, է՝ բանալիների զգայական տեղեկատվությունը գրավել ռադիոալիքում կապի ժամանակ: Հետեւելով բանալու առկայությանը, հնարավոր է անցնել ստեղնաշարի ռադիոալիքները ևDecrypt them: Սակայն օգտագործողը շատ հազվադեպ (կամ նույնիսկ երբեք) չի հանգեցնում Unifying կապի գործընթացի, իսկ մոլորեցնողը, որն ունի շնամու ռադիո ընդունիչ, ստիպված կլինի երկար սպասել: Ավելի քան այդ, ոչ բոլոր դեպքերն էլ պարզ են, պե՛տք է անմիջապես անցնել ստեղնաշարի ազդանշանների վերցնելիս: Վերջին հետազոտությունը, որը կատարվել է 2019 թվականի հունիսին, անվտանգություն մասնագետ Մարկուս Մենգսը հրապարակեց հին Logitech USB-dongles firmware-ի խոցելիությունը հայտնաբերելու մասին: Դա թույլ է տալիս մոլորեցնողներին, ովքեր ֆիզիկական մուտք են ունենում սարքերին, ստանալ ռադիոալիքի encryption բանալիները և սեղմել ստեղնադրած ճնշումները (CVE-2019-13054).
Մենք կպատմենք մեր Logitech dongle-ի անվտանգության հետազոտության մասին, որը հիմնված է Nordic Semiconductor-ի SoC NRF24-ի վրա: Իսկ սկսել ենք, կարծես թե, հենց ռադիոալիքից:
Ինչպես է տվյալները փոխանցվում ռադիոալիքում
Հաճախականության և ժամանակի վերլուծության համար մենք օգտագործել ենք SDR ընդունիչ Blade-RF սարքի վրա ռադիոալիքի վերլուծիչի ռեժիմում (այդ մասին նույնպես կարող եք կարդալ ).

SDR Blade-RF սարքը
Մենք նաև ուսումնասիրել ենք радиосигнала-ի քառակուսիների գեներացումը միջանկյալ հաճախությունների վրա, որպեսզի հետագայում վերլուծենք դրանք թվային ազդանշանների մշակման մեթոդների կիրառմամբ:
ՌԴ Радиочастотների պետական հանձնաժողով օգտագործել փոքր աշտարակներով սարքավորումների համար 2400–2483.5 ՄՀց հաճախականի միջակայքում: Սա չափազանց «լեցուն» միջակայք է, որտեղ հանդիպում ենք Wi-Fi, Bluetooth, բոլոր տեսակի հեռակառավարման պուլտեր, անվտանգության համակարգեր,Wireless համակարգչային սարքավորումներ, մկնիկներ և ստեղնաշարեր ուրիշWireless թվային սարքեր:

2.4 ԳՀց հաճախականության միջակայքի սպեկտր
Միջակայքի խառնաշփոթը բավական բարդ է: Սակայն, դրան rağmen Logitech ընկերությունը կարողացավ ապահովել կայուն ու հուսալի ընդունում՝ օգտագործելով Enhanced ShockBurst արձանագրությունը NRF24 տրանսիվերում և հաճախությունների ադապտացիայի ալգորիթմները:
Միջակայքում ալիքները դասավորված են целых значений МГц դիրքերում, ինչպես սահմանված է NRF24 Nordic Semiconductor - ընդամենը 84 ալիք մասնակի հաճախականության ցանցում: Logitech ընկերության կողմից միաժամանակ օգտագործվող频率-ալիքների քանակը, իհարկե, քիչ է: Մենք հայտնաբերեցինք առնվազն չորսը: Սիգնալների սպեկտրի վերլուծիչի կիրառած սահմանափակ վահանակի պատճառով, օգտագործված频率-ալիքների ճշգրիտ ցուցակը պարզել չի հաջողվել, սակայն դա չի եղել անհրաժեշտ: Տվյալները ստեղնաշարից донгլ-ռեսիվերին փոխանցվում են Burst ռեժիմում (կարճ աշխատանքի ռեժիմով) GFSK երկփուլային հաճախականության մոդուլյացիայի միջոցով 1 Մբոդ հաղորդավարությամբ:

Ստեղնաշարի радиосигнал-ը ժամանակի ցուցադրությունում
Ռեսիվերը օգտագործում է զուգակցման հիմքի վրա ընդունման սկզբունք, ուստի փոխանցված փաթեթի մեջ առկա են նախաբառ և հասցեական մաս: Խառնաշփոթի դիմադրողական կոդավորումը չի կիրառվում, տվյալների մարմինը գաղտնագրվում է AES128 ալգորիթմով:
Ընդհանուր առմամբ, Logitech ընկերության Wireless ստեղնաշարի радиоинտերֆեյսը կարելի է բնութագրել որպես ամբողջությամբ ասինխրոնային, վիճակային խտացումով և频率-ադապտացիայով: Սա նշանակում է, որ ստեղնաշարի փոխանցիչը միացնում է ալիքը՝ նոր փաթեթը փոխանցելու համար: Ռեսիվերանը նախաբառի ժամանակացման կամ频率-ալիքի մասին նախնական տեղեկություններ չունի, իսկ միայն այդ ցուցակը հայտնի է: Ռեսիվեր և առաքող հանդիպում են ալիքներում համատեղ ալգորիթմներով обходות և频率-слушող մեխանիզմները, որպես նաև Enhanced ShockBurst հաստատման մեխանիզմները: Մենք չուսումնասիրեցինք, արդյոք ալիքների ցուցակը ստատիկ է: Հավանական է, որ դրա փոփոխությունը կապված է频率-ադապտացիայի ալգորիթմի հետ: Մի բան, որն հիշեցնում է ППРЧ (պսևդո-պատահական շեղումների կատարվում频率) օգտագործվում է频率-ազդանշանների օգտագործմամբ:
Այգա ժամանակային-հաճախականության неопределенность, որպեսզի ապահովվեն բոլոր ստեղնուհի ազդանշանների ընդունումը, մի հանցագործի համար անհրաժեշտ կլինի մշտապես վերահսկել 84 դիրքերի հաճախականությունների ցանցը, ինչը պահանջում է զգալի ժամանակային ծախսեր։ Այստեղ ճիշտ է, թե ինչու USB-ով բանալիի ստացումը (CVE-2019-13054) նկարվում է որպես ստեղնակազմերի ներարկման հնարավորություն, այլ ոչ թե հանցագործի մուտք ունենալու հնարավորության իրավունք ստացած տվյալների։ Խիստ պարզ է, որ Logitech-ի անլար ստեղնաշարի ռադիո ինտերֆեյսը բավականին բարդ է և ապահովում է բացի 2,4 ԳՀց հաճախականության միջավայրից, վստահելի ռադիո կապի ապահովման միջոց։
Լուծման վրա ներքևից
Ուսումնասիրության համար մենք ընտրեցինք մեզ մոտ կանայք Logitech K330 ստեղնաշարը և Logitech Unifying ստեղնակազմը։

Logitech K330
Նայենք ստեղնաշարի ներսը։ Ուսումնասիրության հետաքրքրաշարժ տարր է քարտեզի մեջ պատկերված SoC NRF24 քան Nordic Semiconductor-ի կողմից։

SoC NRF24 Logitech K330 անլար ստեղնաշարի քարտում
Պրոգրամը տեղադրված է ներքին հիշողությունում, ընթերցման և դեբագավորման մեխանիզմները выключены են։ Ցավոք սրտի, պրոգրամը բաց աղբյուրներով հրապարակված չէ։ Սակայն մենք որոշեցինք հարցը դիտել այլ ուղղությամբ՝ ուսումնասիրելով Logitech-ի ստեղնակազմի ներքին բովանդակությունը։
Logitech-ի ստեղնակազմի «ներքին աշխարհը» բավականին հետաքրքիր կերպ է կազմակերպված։ Ստեղնակազմը հեշտությամբ ապամոնտաժվում է, կրում է մեզ հայտնի NRF24 USB-կառավարմամբ և կարող է վերանայվել USB կողմից, ինչպես նաև անմիջապես պրոգրամատորով։

Logitech-ի ստեղնակազմը առանց դաշտի
Քանի որ կա նաև պրոգրամի թարմացման միացման մեխանիզմ առկա (որի մեջ կարելի է ստանալ նորացված վերսիան), որոնել պրոգրամը անմիջապես ստեղնակազմի մեջ անհրաժեշտ չէ։
Ինչ կատարվել է։ Firmware Update Tool ծրագրի մարմնից դուրս բերվել է RQR_012_005_00028.bin պրոգրամը։ Նրա ամբողջականության վերահսկման համար ստեղնակազմի կառավարը միացվել է ChipProg-48 պրոգրամատորով :

Պրոգրամի ամբողջականությունը վերահսկելու համար այն հաջողությամբ տեղադրվել է կառավարչի հիշողության մեջ, և աշխատել է ճիշտ, ստեղնաշարն ու մկնիկը միացված են եղել Logitech Unifying-ի միջոցով։ Մտահոգություն կա փոփոխական պրոգրամի ներսում թարմացման մեկ այլ մեխանիզմի օգտագործմամբ, քանի որ պրոգրամի միջավայրում որևէ ռադիոգրաֆիկ պաշտպանություն նախատեսված չէ։ Ուսումնասիրության համար մենք օգտագործել ենք ֆիզիկական միացում պրոգրամատորի հետ, քանզի այսպես բարձրացնել դեբուժման տեմպերը։
Պրոգրամի ուսումնասիրություն և հարձակում օգտագործողի մուտքի վրա
Проверка прошивки и атака на пользовательский ввод
NRF24 չիպը նախագծվել է Intel 8051 հաշվիչ միջուկի հիման վրա ավանդական Գրադարանային ճարտարապետությամբ։ Այս միջուկի համար փոխանցողը գործում է որպեսPeripheral սարքավորում և տեղավորվում է հասցեի տարածքում որպես ռեգիստրների հավաքածու։ Չիպի փաստաթղթավորումը և աղբյուրային օրինաչափությունները կարելի է գտնել ինտերնետում, ուստի firmware-ի հետազոտումը խնդիր չի ներկայացնում։ Ռենով ծառայության ընթացքում մենք տեղայնացրել ենք ստեղնաշարի սեղմումների տվյալների ձեռքբերման ֆունկցիաները ռադիով ալիքից և արձանագրել դրանք HID ձևաչափով USB-հաղորդիչի վրա։ Ազատ հիշողության հասցեում տեղավորվել է ինվեքսման կոդը, որն ընդգրկում է կառավարման խափանումների, սկզբնական կատարումների համատեքստի պահեստացման և վերականգնման գործիքները, ինչպես նաև գործառնական կոդը։
Ռադիով ալիքից ընդունված դոնգլի ստեղնարզանման կամ բաց թողնելու տուփը դեքոդավորվում է, վերածվում ստանդարտ HID հաղորդման և ուղղվում USB ինտերֆեյսին որպես սովորական ստեղնաշարից։ Մեր հետազոտության շրջանակներում մեզ հատկապես հետաքրքրում է HID հաղորդման մասը, որն պարունակում է նշանի ֆլագերի 1 հատիկ और 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 ~~~~~~~~~~~~~~~~~~~~~~~~~<Երկրորդային ալիքը կառուցվում է մեզ ընտրած հաճախությամբ որոշակի արագության և փաթեթի կառուցվածքի հատկություններով:
Չիպի փոխանցողի աշխատանքը կառուցված է վիճակների գրաֆի հիման վրա, որում ներդրված է Enhanced ShockBurst протоколը։ Մենք պարզեցինք, որ USB ինտերֆեյսին HID տվյալների փոխանցման անմիջապես առաջ, փոխանցողը եղել է IDLE վիճակում։ Դա հնարավոր է դարձնում նրա անվտանգ վերակոնֆիգուրացումը երկրորդային ալիքում աշխատելու համար։ Ինջեկտված կոդը վերցնում է կառավարումը, պահպանում է փոխանցողի սկզբնական կոնֆիգուրացիան ամբողջությամբ և տեղափոխում նրան նոր հաղորդման ռեժիմում երկրորդային ալիքում։ Enhanced ShockBurst-ի հաստատման մեխանիզմը այս ռեժիմում անջատված է, HID տվյալները բաց տեսքով փոխանցվում են ռադիոյով։ Երկրորդային ալիքում փաթեթի կառուցվածքը ներկայացված է ստորև նկարում, նշանի էպյուրները ստացվել են դեմոդուլացման ընթացում և տվյալների ժամանցի համաժամացումը վերականգնելուց առաջ։ Հասցեի արժեքը ընտրված է փաթեթի տեսողական ճանաչելիության համար։

Դեմոդուլացված սիգնալ Burst փաթեթի երկրորդային ալիքում
Փաթեթի փոխանցման ավարտից հետո երկրորդային ալիքում ինջեկտված կոդը վերականգնում է փոխանցողի վիճակը։ Այժմ այն կրկին պատրաստ է աշխատելու բնօրինակ firmware-ի համատեքստում։
Հաճախականության և հաճախական-ժամանակային ոլորտներում կողային ալիքը տեսք ունի, ինչպես ներկայացված է պատկերում:

Սպեկտրալ և հաճախական-ժամանակային ներկայացում կողային ալիքի
NRF24 ծրի վերափոխված ծրագրակազմով փորձարկելու համար մենք հավաքեցինք ստենդ, որն ընդգրկում էր Logitech դոնգլը՝ վերափոխված ծրագրակազմով, անվարային ստեղնաշարը և ստացում, որը հավաքված էր չինական NRF24 մոդուլի հիման վրա:

Logitech անվարային ստեղնաշարի ռադիոալիքի ներխուժման սխեման

NRF24 հիմքով մոդուլ
Ստենդում, երբ ստեղնաշարը ճիշտ աշխատում է հաղորդելով Logitech դոնգլին, մենք նկատեցինք բաց տեղեկությունների փոխանցում մասերի վերագրումները կողային ռադիոալիքում և նորմալ փոխանցում կոդավորված տեղեկությունների հիմնական ռադիոինտերֆեյսում: Այսպիսով, մեզ հաջողվեց ապահովել օգտագործողի ստեղնաշարի մուտքի ուղիղ ներխուժում:

Ստեղնաշարի մուտքի ներխուժման արդյունքը
Չափված կոդը դոնգլի ծրագրակազմի աշխատանքին փոքրիկ ուշացումներ է առաջացնում, սակայն դրանք չափազանց փոքր են, որպեսզի օգտատերը նկատի ունենա:
Ինչպես հասկանում եք, այս հարձակման վեկտորի համար կարելի է օգտագործել ցանկացած Logitech ստեղնաշար, որը համատեղելի է Unifying տեխնոլոգիայի հետ: Քանի որ հարձակումն ուղղված է Unifying ստացնողին, որն ընդգրկվում է ավելիոց Logitech ստեղնաշարերից, այն չի կախված կոնկրետ մոդելից:
Ավարտ
Ստացված հետազոտության արդյունքները հավատացնում են, որ դիտարկվող սցենարը կարող է օգտագործվել չարագործների կողմից. եթե հաքերը փոխի զոհին Logitech ստեղնաշարի դոնգլը, ապա նա կկարողանա իմանալ զոհի հաշիվների գաղտնաբառերը և բոլոր հետևանքներով: Չպետք է մոռանալ, որ ստեղնաշարի մուտքը նույնպես հնարավոր է ներմուծել, ինչը նշանակում է, որ չարագործը հեշտությամբ կարող է կատարվել կոդակառուցվածքը զոհի համակարգչում:
Եթեմ случа, если злоумышленник сможет удаленно модифицировать прошивку любого Logitech-донгла через USB? Тогда из близко расположенных донглов можно сложить сеть ретрансляторов и увеличить дистанцию утечки. Хотя «финансово обеспеченному» злоумышленнику современные средства радиоприема с высокоселективными системами, чувствительными радиоприемниками с малым временем перестройки частоты и узконаправленными антеннами позволят «слушать» клавиатурный ввод и нажимать клавиши даже из соседнего здания.

Պրոֆեսիոնալ ռադիոօգտագործման սարքեր
Logitech-ի անլար ստեղնաշարի տվյալների փոխանցման ալիքը չափազանց լավ պաշտպանված է, ուստի հայտնաբերված հարձակման վեկտորը պահանջում է ֆիզիկական մուտք ստեղնաշարի ռեսիվերի, ինչը զգալիորեն սահմանափակում է հարձակվողին: Միակ պաշտպանության տարբերակը կարող էր լինել ռեսիվերի ֆիրմային ծրագրի ներբեռնման ժամանակ крипտոգրաֆիկ պաշտպանության մեխանիզմների օգտագործումը, օրինակ՝ ռեսիվերի կողմից ներբեռնվող ֆիրմային ծրագրի դաշտից ստորագրության ստուգումը: Բայց, դժբախտաբար, NRF24-ն դա չի աջակցում, և ներկայիս սարանքի معمարումը ապահովելImpossible: Ուստի, խնայեք ձեր դոնգլերը, որովհետև նկարագրված հարձակման տարբերակը պահանջում է ֆիզիկական մուտք նրանց մոտ:

Raccoon Security՝ ՆԱՏՍ «Վулкан»-ի պես հատուկ թիմ, որը բաղկացած է փորձագետներից, որոնք զբաղվում են տեղեկատվական անվտանգության պրակտիկայով, крипտոգրաֆией, схемотехникой,.reverse engineering-ով և ցածր մակարդակի ծրագրային ապահովման ստեղծմամբ:
Ընտանիք: habr.com
