Հոգ տանել ձեր դոնգլների մասին. Logitech ստեղնաշարի ընդունիչի անվտանգության ուսումնասիրություն

Հոգ տանել ձեր դոնգլների մասին. Logitech ստեղնաշարի ընդունիչի անվտանգության ուսումնասիրություն

Պատմականորեն, աշխատակիցների մեծ մասն օգտագործում է Logitech-ի անլար ստեղնաշարեր և մկներ: Եվս մեկ անգամ մուտքագրելով մեր գաղտնաբառերը՝ մենք՝ Raccoon Security թիմի մասնագետներս, հարցրինք ինքներս մեզ՝ որքանո՞վ է դժվար անլար ստեղնաշարի անվտանգության մեխանիզմները շրջանցելը։ Ուսումնասիրությունը բացահայտեց ճարտարապետական ​​թերություններ և ծրագրային սխալներ, որոնք թույլ են տալիս մուտք գործել մուտքային տվյալներ: Կտրվածքի տակ այն է, ինչ մենք ստացել ենք:

Ինչու՞ Logitech-ը:

Մեր կարծիքով, Logitech ներածման սարքերը ամենաորակյալ և հարմարավետներից են: Մեր ունեցած սարքերի մեծ մասը հիմնված է Logitech լուծման վրա միավորիչ ունիվերսալ dongle ընդունիչ է, որը թույլ է տալիս միացնել մինչև 6 սարք: Logitech Unifying տեխնոլոգիայի հետ համատեղելի բոլոր սարքերը նշված են Logitech Unifying տեխնոլոգիայի տարբերանշանով: Հեշտ է օգտագործել դիմում Թույլ է տալիս կառավարել անլար ստեղնաշարերի միացումը ձեր համակարգչին: Ստեղնաշարը Logitech ընդունիչի դոնգլին միացնելու գործընթացը, ինչպես նաև բուն տեխնոլոգիան ծածկված է, օրինակ. այստեղ.

Հոգ տանել ձեր դոնգլների մասին. Logitech ստեղնաշարի ընդունիչի անվտանգության ուսումնասիրություն

Dongle ընդունիչ Logitech Unifying աջակցությամբ

Ստեղնաշարը կարող է դառնալ հարձակվողների համար տեղեկատվության աղբյուր։ Logitech-ը, հաշվի առնելով հնարավոր սպառնալիքը, հոգացել է անվտանգության մասին՝ օգտագործել է AES128 կոդավորման ալգորիթմը անլար ստեղնաշարի ռադիոալիքում։ Առաջին միտքը, որ հարձակվողը կարող է ունենալ այս իրավիճակում, հիմնական տեղեկատվությունը որսալն է, երբ այն փոխանցվում է ռադիոալիքով պարտադիր ընթացակարգի ընթացքում: Ի վերջո, եթե դուք ունեք բանալի, կարող եք ընդհատել ստեղնաշարի ռադիոազդանշանները և վերծանել դրանք: Այնուամենայնիվ, օգտատերը հազվադեպ է (կամ նույնիսկ երբեք) ստիպված է միավորել ստեղնաշարը, և սկանավորող ռադիոյով հաքերը ստիպված կլինի երկար սպասել: Բացի այդ, գաղտնալսման գործընթացում ամեն ինչ այնքան էլ պարզ չէ: 2019 թվականի հունիսի վերջին ուսումնասիրության մեջ անվտանգության փորձագետ Մարկուս Մենգսը հրապարակել է առցանց сообщение Logitech USB դոնգլների հին որոնվածում խոցելիության հայտնաբերման մասին։ Այն թույլ է տալիս սարքերին ֆիզիկական հասանելիություն ունեցող հարձակվողներին ստանալ ռադիոալիքների կոդավորման բանալիներ և ներարկել ստեղնաշարերը (CVE-2019-13054):

Մենք կխոսենք Logitech dongle-ի անվտանգության մեր ուսումնասիրության մասին, որը հիմնված է Nordic Semiconductor-ի NRF24 SoC-ի վրա: Սկսենք, թերեւս, հենց ռադիոալիքից։

Ինչպես են տվյալները «թռչում» ռադիոալիքում

Ռադիոազդանշանի ժամանակային հաճախականության վերլուծության համար մենք օգտագործեցինք 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 անլար ստեղնաշարի ռադիո ինտերֆեյսը կարելի է բնութագրել որպես ամբողջովին ասինխրոն վիճակագրական մուլտիպլեքսով և հաճախականության հարմարեցմամբ: Սա նշանակում է, որ ստեղնաշարի հաղորդիչը փոխում է ալիքը՝ յուրաքանչյուր նոր փաթեթ փոխանցելու համար: Ստացողը նախապես չգիտի ոչ փոխանցման ժամանակը, ոչ էլ հաճախականության ալիքը, բայց հայտնի է միայն դրանց ցանկը։ Ընդունիչն ու հաղորդիչը հանդիպում են ալիքում՝ հաճախականության շրջանցման և լսման համակարգված ալգորիթմների, ինչպես նաև ShockBurst-ի ճանաչման ուժեղացված մեխանիզմների շնորհիվ: Մենք չենք ուսումնասիրել, թե արդյոք ալիքների ցանկը ստատիկ է: Հավանաբար դրա փոփոխությունը պայմանավորված է հաճախականության հարմարվողականության ալգորիթմով։ Հաճախականության ցատկման մեթոդին մոտ ինչ-որ բան (գործառնական հաճախականության կեղծ պատահական թյունինգ) կարելի է տեսնել միջակայքի հաճախականության ռեսուրսի օգտագործման մեջ:

Այսպիսով, ժամանակի հաճախականության անորոշության պայմաններում ստեղնաշարի բոլոր ազդանշանների երաշխավորված ընդունումն ապահովելու համար հարձակվողը պետք է մշտապես վերահսկի 84 դիրքից բաղկացած հաճախականության ամբողջ ցանցը, ինչը զգալի ժամանակ է պահանջում: Այստեղ պարզ է դառնում, թե ինչու է USB բանալին հանելու խոցելիությունը (CVE-2019-13054) աղբյուրներում դիրքավորվում է որպես ստեղնաշարի հարվածներ ներարկելու ունակություն, այլ ոչ թե հարձակվողի մուտքը ստեղնաշարից մուտքագրված տվյալներին: Ակնհայտ է, որ անլար ստեղնաշարի ռադիո ինտերֆեյսը բավականին բարդ է և ապահովում է հուսալի ռադիոհաղորդակցություն Logitech սարքերի միջև 2,4 ԳՀց տիրույթում բարդ միջամտության պայմաններում:

Հայացք խնդրին ներսից

Մեր ուսումնասիրության համար մենք ընտրեցինք մեր գոյություն ունեցող Logitech K330 ստեղնաշարերից մեկը և Logitech Unifying dongle-ը:

Հոգ տանել ձեր դոնգլների մասին. Logitech ստեղնաշարի ընդունիչի անվտանգության ուսումնասիրություն

Logitech K330

Եկեք նայենք ստեղնաշարի ներսում: Հետաքրքիր տարրը տախտակի վրա ուսումնասիրելու համար SoC NRF24 չիպն է Nordic Semiconductor-ից:

Հոգ տանել ձեր դոնգլների մասին. Logitech ստեղնաշարի ընդունիչի անվտանգության ուսումնասիրություն

SoC NRF24 Logitech K330 անլար ստեղնաշարի վրա

Որոնվածը գտնվում է ներքին հիշողության մեջ, ընթերցման և վրիպազերծման մեխանիզմներն անջատված են: Ցավոք, որոնվածը չի հրապարակվել բաց աղբյուրներում: Ուստի մենք որոշեցինք խնդրին մոտենալ մյուս կողմից՝ ուսումնասիրել Logitech dongle ընդունիչի ներքին պարունակությունը։

Դոնգլ ընդունիչի «ներաշխարհը» բավականին հետաքրքիր է։ Դոնգլը հեշտությամբ ապամոնտաժվում է, ներկառուցված USB կարգավորիչով կրում է ծանոթ NRF24 թողարկումը և կարող է վերածրագրավորվել ինչպես USB-ից, այնպես էլ անմիջապես ծրագրավորողից:

Հոգ տանել ձեր դոնգլների մասին. Logitech ստեղնաշարի ընդունիչի անվտանգության ուսումնասիրություն

Logitech dongle առանց բնակարանի

Քանի որ կա ստանդարտ մեխանիզմ՝ օգտագործելով որոնվածը թարմացնելու համար Firmware Update Tool հավելվածներ (որից կարող եք հանել թարմացված որոնվածի տարբերակը), կարիք չկա որոնել որոնվածը դոնգլի ներսում:

Ինչ է արվել. որոնվածը RQR_012_005_00028.bin-ը հանվել է Firmware Update Tool հավելվածի մարմնից: Դրա ամբողջականությունը ստուգելու համար dongle կարգավորիչը միացված է մալուխով ChipProg-48 ծրագրավորողին:

Հոգ տանել ձեր դոնգլների մասին. Logitech ստեղնաշարի ընդունիչի անվտանգության ուսումնասիրություն

Մալուխ՝ Logitech dongle-ը ChipProg 48 ծրագրավորողին միացնելու համար

Որոնվածի ամբողջականությունը վերահսկելու համար այն հաջողությամբ տեղադրվեց կարգավորիչի հիշողության մեջ և ճիշտ աշխատեց, ստեղնաշարն ու մկնիկը միացան դոնգլին Logitech Unifying-ի միջոցով: Հնարավոր է վերբեռնել փոփոխված որոնվածը, օգտագործելով ստանդարտ թարմացման մեխանիզմը, քանի որ որոնվածի համար գաղտնագրային պաշտպանության մեխանիզմներ չկան: Հետազոտական ​​նպատակներով մենք օգտագործել ենք ֆիզիկական կապ ծրագրավորողի հետ, քանի որ այս կերպ վրիպազերծումը շատ ավելի արագ է:

Որոնվածի հետազոտություն և հարձակում օգտագործողի մուտքի վրա

NRF24 չիպը նախագծված է Հարվարդի ավանդական ճարտարապետության Intel 8051 հաշվողական միջուկի հիման վրա: Միջուկի համար հաղորդիչը գործում է որպես ծայրամասային սարք և տեղադրվում է հասցեների տարածության մեջ՝ որպես ռեգիստրների մի շարք: Չիպերի և սկզբնական կոդի օրինակների փաստաթղթերը կարելի է գտնել ինտերնետում, ուստի որոնվածը ապամոնտաժելը դժվար չէ: Հակադարձ ճարտարագիտության ժամանակ մենք տեղայնացրել ենք ռադիոալիքից ստեղնաշարի տվյալների ստացման և այն HID ձևաչափի փոխակերպելու գործառույթները՝ USB ինտերֆեյսի միջոցով հոսթին փոխանցելու համար: Ներարկման կոդը տեղադրվել է ազատ հիշողության հասցեներում, որոնք ներառում էին հսկողության գաղտնալսման, սկզբնական կատարման համատեքստը պահպանելու և վերականգնելու գործիքներ, ինչպես նաև ֆունկցիոնալ կոդը:

Դոնգլի կողմից ռադիոալիքից ստացված ստեղնը սեղմելու կամ բաց թողնելու փաթեթը վերծանվում է, վերածվում ստանդարտ 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 վիճակում: Սա հնարավորություն է տալիս ապահով կերպով վերակազմավորել այն կողային ալիքում աշխատելու համար: Ներարկված կոդը ընդհատում է կառավարումը, ամբողջությամբ պահպանում է հաղորդիչի սկզբնական կոնֆիգուրացիան և այն փոխում է փոխանցման նոր ռեժիմի կողային ալիքում: Ընդլայնված ShockBurst-ի հաստատման մեխանիզմն այս ռեժիմում անջատված է, HID-ի տվյալները փոխանցվում են պարզ ձևով օդով: Փաթեթի կառուցվածքը կողային ալիքում ներկայացված է ստորև նկարում, ազդանշանային դիագրամները ստացվել են դեմոդուլյացիայից հետո և մինչև տվյալների ժամացույցի համաժամացման վերականգնումը: Հասցեի արժեքը ընտրվել է փաթեթի տեսողական նույնականացման համար:

Հոգ տանել ձեր դոնգլների մասին. Logitech ստեղնաշարի ընդունիչի անվտանգության ուսումնասիրություն

Կողքի ալիքում դեմոդուլացված պայթյունի ազդանշան

Փաթեթը կողային ալիք փոխանցվելուց հետո ներարկված կոդը վերականգնում է հաղորդիչի վիճակը: Այժմ այն ​​կրկին պատրաստ է նորմալ աշխատելու սկզբնական որոնվածի համատեքստում:

Հաճախականության և ժամանակի հաճախականության տիրույթներում կողային ալիքն ունի հետևյալ տեսքը.

Հոգ տանել ձեր դոնգլների մասին. Logitech ստեղնաշարի ընդունիչի անվտանգության ուսումնասիրություն

Կողային ալիքի սպեկտրային և ժամանակային հաճախականության ներկայացում

NRF24 չիպի աշխատանքը փոփոխված որոնվածով փորձարկելու համար մենք հավաքեցինք ստենդ, որը ներառում էր Logitech dongle՝ փոփոխված որոնվածով, անլար ստեղնաշար և ընդունիչ, որը հավաքված էր չինական մոդուլի հիման վրա NRF24 չիպով:

Հոգ տանել ձեր դոնգլների մասին. Logitech ստեղնաշարի ընդունիչի անվտանգության ուսումնասիրություն

Logitech անլար ստեղնաշարի ռադիո ազդանշանի գաղտնալսման միացում

Հոգ տանել ձեր դոնգլների մասին. Logitech ստեղնաշարի ընդունիչի անվտանգության ուսումնասիրություն

NRF24-ի վրա հիմնված մոդուլ

Նստարանին, երբ ստեղնաշարը նորմալ աշխատում էր, այն Logitech dongle-ին միացնելուց հետո մենք դիտեցինք կողային ռադիոալիքում ստեղնաշարի սեղմումների մասին հստակ տվյալների փոխանցումը և հիմնական ռադիո ինտերֆեյսի գաղտնագրված տվյալների նորմալ փոխանցումը: Այսպիսով, մենք կարողացանք ապահովել օգտվողի ստեղնաշարի մուտքագրման ուղղակի գաղտնալսում.

Հոգ տանել ձեր դոնգլների մասին. Logitech ստեղնաշարի ընդունիչի անվտանգության ուսումնասիրություն

Ստեղնաշարի մուտքագրման ընդհատման արդյունքը

Ներարկված կոդը ներկայացնում է dongle-ի որոնվածի շահագործման աննշան ուշացումներ: Այնուամենայնիվ, դրանք չափազանց փոքր են, որպեսզի օգտագործողը նկատի:

Ինչպես կարող եք պատկերացնել, ցանկացած Logitech ստեղնաշար, որը համատեղելի է Unifying տեխնոլոգիայի հետ, կարող է օգտագործվել այս հարձակման վեկտորի համար: Քանի որ հարձակումը ուղղված է Logitech ստեղնաշարերի մեծ մասում ներառված Unifying ընդունիչին, այն անկախ է ստեղնաշարի կոնկրետ մոդելից:

Ամփոփում

Հետազոտության արդյունքները հուշում են հարձակվողների կողմից դիտարկված սցենարի հնարավոր կիրառումը. եթե հաքերը տուժողին փոխարինի Logitech անլար ստեղնաշարի համար նախատեսված dongle ընդունիչով, ապա նա կկարողանա պարզել զոհի աքաունթների գաղտնաբառերը՝ դրանից բխող ամեն ինչով: հետեւանքները. Մի մոռացեք, որ հնարավոր է նաև ստեղնաշարեր ներարկել, ինչը նշանակում է, որ տուժողի համակարգչում կամայական կոդ կատարելը դժվար չէ:

Ի՞նչ անել, եթե հանկարծ հարձակվողը կարողանա հեռակա կարգով փոփոխել Logitech-ի ցանկացած դոնգլի որոնվածը USB-ի միջոցով: Այնուհետև, սերտորեն բաժանված դոնգլներից, կարող եք ստեղծել կրկնողների ցանց և մեծացնել արտահոսքի հեռավորությունը: Թեև «ֆինանսապես հարուստ» հարձակվողը կկարողանա «լսել» ստեղնաշարի մուտքը և սեղմել ստեղները նույնիսկ հարևան շենքից, ժամանակակից ռադիոընդունիչ սարքավորումները բարձր ընտրողական համակարգերով, զգայուն ռադիոընդունիչներով կարճ հաճախականության թյունինգի ժամանակով և բարձր ուղղորդված ալեհավաքներով թույլ կտան նրանց: «լսել» ստեղնաշարի մուտքագրումը և սեղմել ստեղները նույնիսկ հարևան շենքից:

Հոգ տանել ձեր դոնգլների մասին. Logitech ստեղնաշարի ընդունիչի անվտանգության ուսումնասիրություն

Պրոֆեսիոնալ ռադիոսարքավորումներ

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

Հոգ տանել ձեր դոնգլների մասին. Logitech ստեղնաշարի ընդունիչի անվտանգության ուսումնասիրություն

Raccoon Security-ը Vulcan Research and Development Center-ի փորձագետների հատուկ թիմ է գործնական տեղեկատվական անվտանգության, ծածկագրության, սխեմաների նախագծման, հակադարձ ճարտարագիտության և ցածր մակարդակի ծրագրային ապահովման ստեղծման ոլորտում:

Source: www.habr.com

Добавить комментарий