Tarixən əksər işçilər Logitech-dən simsiz klaviatura və siçanlardan istifadə edirlər. Parollarımızı bir daha daxil edərək, biz, Raccoon Security komandasının mütəxəssisləri özümüzə sual verdik: simsiz klaviaturaların təhlükəsizlik mexanizmlərindən yan keçmək nə qədər çətindir? Tədqiqat memarlıq qüsurlarını və daxil edilmiş məlumatlara giriş imkanı verən proqram xətalarını aşkar edib. Kesimin altında əldə etdiyimiz şeydir.
Niyə Logitech?
Fikrimizcə, Logitech daxiletmə qurğuları ən keyfiyyətli və rahatdır. Bizdə olan cihazların əksəriyyəti Logitech həllinə əsaslanır
Logitech Unifying dəstəyi ilə dongle qəbuledicisi
Klaviatura təcavüzkarlar üçün məlumat mənbəyinə çevrilə bilər. Logitech, mümkün təhlükəni nəzərə alaraq, təhlükəsizliyin qayğısına qaldı - simsiz klaviaturanın radio kanalında AES128 şifrələmə alqoritmindən istifadə etdi. Təcavüzkarın bu vəziyyətdə ola biləcəyi ilk düşüncə, bağlama proseduru zamanı radio kanalı üzərindən ötürülən əsas məlumatları ələ keçirməkdir. Axı, açarınız varsa, klaviaturanın radio siqnallarını tuta və onların şifrəsini aça bilərsiniz. Bununla belə, istifadəçi nadir hallarda (və ya hətta heç vaxt) klaviaturanı birləşdirməlidir və skan edən radio ilə bir haker uzun müddət gözləməli olacaq. Bundan əlavə, ələ keçirmə prosesinin özü ilə hər şey o qədər də sadə deyil. 2019-cu ilin iyun ayında edilən son araşdırmada təhlükəsizlik üzrə ekspert Markus Menqs onlayn yayımladı
Nordic Semiconductor-dan NRF24 SoC əsasında Logitech dongle təhlükəsizlik araşdırmamız haqqında danışacağıq. Gəlin, bəlkə də, radio kanalının özündən başlayaq.
Bir radio kanalında məlumat necə "uçur"
Radio siqnalının zaman-tezlik analizi üçün spektr analizator rejimində Blade-RF cihazına əsaslanan SDR qəbuledicisindən istifadə etdik (bu barədə də oxuya bilərsiniz)
SDR Blade-RF Cihazı
Biz həmçinin radiosiqnalın kvadratlarını aralıq tezlikdə qeyd etmək imkanını nəzərdən keçirdik ki, bu da sonra rəqəmsal siqnal emal üsullarından istifadə etməklə təhlil edilə bilər.
Rusiya Federasiyasında Radiotezliklər üzrə Dövlət Komissiyası
2,4 GHz diapazonunun spektri
Aralıqdakı müdaxilə mühiti olduqca mürəkkəbdir. Buna baxmayaraq, Logitech tezlik adaptasiyası alqoritmləri ilə birlikdə NRF24 ötürücüsindəki Təkmilləşdirilmiş ShockBurst protokolundan istifadə etməklə etibarlı və sabit qəbulu təmin edə bildi.
Bir diapazondakı kanallar -də müəyyən edildiyi kimi tam MHz mövqelərində yerləşdirilir
Vaxt təmsilində klaviatura radio siqnalı
Qəbuledici qəbulun korrelyasiya prinsipindən istifadə edir, ona görə də ötürülən paketdə preambula və ünvan hissəsi var. Səs-küyə davamlı kodlaşdırma istifadə edilmir, məlumat orqanı AES128 alqoritmi ilə şifrələnir.
Ümumiyyətlə, Logitech simsiz klaviaturasının radio interfeysi statistik multipleksləşdirmə və tezlik uyğunlaşması ilə tamamilə asinxron kimi xarakterizə edilə bilər. Bu o deməkdir ki, klaviatura ötürücüsü hər bir yeni paketi ötürmək üçün kanalı dəyişdirir. Qəbuledici əvvəlcədən nə ötürmə vaxtını, nə də tezlik kanalını bilmir, ancaq onların siyahısı məlumdur. Qəbuledici və ötürücü koordinasiya olunmuş tezlikdən keçmə və dinləmə alqoritmləri, eləcə də Təkmilləşdirilmiş ŞokBurst etirafı mexanizmləri sayəsində kanalda görüşür. Kanal siyahısının statik olub-olmamasını araşdırmamışıq. Çox güman ki, onun dəyişməsi tezliyə uyğunlaşma alqoritmi ilə bağlıdır. Tezlik atlama metoduna yaxın bir şey (iş tezliyinin psevdo-təsadüfi tənzimlənməsi) diapazonun tezlik resursunun istifadəsində görünə bilər.
Beləliklə, zaman-tezlik qeyri-müəyyənliyi şəraitində bütün klaviatura siqnallarının zəmanətli qəbulunu təmin etmək üçün təcavüzkar 84 mövqedən ibarət bütün tezlik şəbəkəsini daim izləməli olacaq ki, bu da xeyli vaxt tələb edir. Burada USB açarı çıxarma zəifliyinin (CVE-2019-13054) səbəb olduğu aydın olur.
Problemə daxildən baxmaq
Tədqiqat üçün biz mövcud Logitech K330 klaviaturalarımızdan birini və Logitech Unifying açarı seçdik.
Logitech K330
Klaviaturanın içərisinə nəzər salaq. Öyrənmək üçün lövhədə maraqlı element Nordic Semiconductor-dan olan SoC NRF24 çipidir.
Logitech K24 simsiz klaviatura lövhəsində SoC NRF330
Firmware daxili yaddaşda yerləşir, oxuma və ayıklama mexanizmləri qeyri-aktivdir. Təəssüf ki, proqram təminatı açıq mənbələrdə dərc olunmayıb. Buna görə də, problemə digər tərəfdən yanaşmaq qərarına gəldik - Logitech dongle qəbuledicisinin daxili məzmununu öyrənmək.
Dongle qəbuledicisinin "daxili dünyası" olduqca maraqlıdır. Dongle asanlıqla sökülür, quraşdırılmış USB nəzarətçi ilə tanış NRF24 buraxılışını bortda daşıyır və həm USB tərəfdən, həm də birbaşa proqramçı tərəfindən yenidən proqramlaşdırıla bilər.
Korpussuz Logitech dongle
Firmware-dən istifadə edərək yeniləmək üçün standart bir mexanizm olduğundan
Nə edildi: proqram təminatı RQR_012_005_00028.bin Firmware Update Tool tətbiqinin gövdəsindən çıxarıldı. Bütövlüyünü yoxlamaq üçün dongle nəzarətçisi bir kabel ilə birləşdirildi
Logitech açarını ChipProg 48 proqramçısına qoşmaq üçün kabel
Mikroproqramın bütövlüyünə nəzarət etmək üçün o, nəzarətçinin yaddaşına uğurla yerləşdirildi və düzgün işlədi, klaviatura və siçan Logitech Unifying vasitəsilə dongle ilə birləşdirildi. Standart yeniləmə mexanizmindən istifadə edərək dəyişdirilmiş proqram təminatını yükləmək mümkündür, çünki mikroproqram üçün kriptoqrafik qorunma mexanizmləri yoxdur. Tədqiqat məqsədləri üçün proqramçı ilə fiziki əlaqədən istifadə etdik, çünki sazlama bu şəkildə daha sürətli olur.
Firmware tədqiqatı və istifadəçi girişinə hücum
NRF24 çipi ənənəvi Harvard memarlığında Intel 8051 hesablama nüvəsi əsasında hazırlanmışdır. Nüvə üçün ötürücü periferik cihaz kimi çıxış edir və registrlər dəsti kimi ünvan məkanında yerləşdirilir. Çip üçün sənədlər və mənbə kodu nümunələri İnternetdə tapıla bilər, buna görə də proqram təminatının sökülməsi çətin deyil. Ters mühəndislik zamanı biz radio kanalından klaviatura məlumatlarının qəbulu və USB interfeysi vasitəsilə hosta ötürülməsi üçün HID formatına çevrilməsi funksiyalarını lokallaşdırdıq. Enjeksiyon kodu boş yaddaş ünvanlarına yerləşdirilib, bura nəzarətin qarşısını almaq, orijinal icra kontekstini saxlamaq və bərpa etmək üçün alətlər, həmçinin funksional kod daxildir.
Radio kanalından dongle tərəfindən qəbul edilən düymənin basılması və ya buraxılması paketi şifrələnir, standart HID hesabatına çevrilir və adi klaviaturadan olduğu kimi USB interfeysinə göndərilir. Tədqiqatın bir hissəsi olaraq, HID hesabatının bizi ən çox maraqlandıran hissəsi HID hesabatının dəyişdirici baytlardan ibarət baytdan və düymələrin vuruş kodları ilə 6 baytlıq massivdən ibarət hissəsidir (istinad üçün, HID haqqında məlumat
HID hesabat strukturu:
// 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 strukturunu hosta ötürməzdən dərhal əvvəl yeridilmiş kod nəzarəti ələ alır, 8 bayt yerli HID məlumatını yaddaşa köçürür və onu aydın mətnlə radio yan kanalına göndərir. Kodda bu belə görünür:
//~~~~~~~~~ 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 ~~~~~~~~~~~~~~~~~~~~~~~~~<
Yan kanal manipulyasiya sürətinin və paket strukturunun müəyyən xüsusiyyətləri ilə təyin etdiyimiz tezlikdə təşkil edilir.
Çipdə qəbuledicinin işləməsi
Yan Kanalda Demodulyasiya edilmiş Partlayış Siqnalı
Paket yan kanala ötürüldükdən sonra yeridilmiş kod qəbuledicinin vəziyyətini bərpa edir. İndi yenidən orijinal proqram təminatı kontekstində normal işləməyə hazırdır.
Tezlik və zaman-tezlik domenlərində yan kanal belə görünür:
Yan kanalın spektral və zaman-tezlik təsviri
NRF24 çipinin dəyişdirilmiş proqram təminatı ilə işləməsini yoxlamaq üçün biz dəyişdirilmiş proqram təminatı ilə Logitech dongle, simsiz klaviatura və NRF24 çipi ilə Çin modulu əsasında yığılmış qəbuledicidən ibarət stend yığdıq.
Logitech simsiz klaviatura radio siqnalının tutulması sxemi
NRF24 əsaslı modul
Skamyada, klaviatura normal işləyərkən, onu Logitech dongle ilə birləşdirdikdən sonra yan radio kanalında düymələrin vuruşları haqqında aydın məlumatların ötürülməsini və əsas radio interfeysində şifrələnmiş məlumatların normal ötürülməsini müşahidə etdik. Beləliklə, biz istifadəçinin klaviatura girişinin birbaşa tutulmasını təmin edə bildik:
Klaviatura girişinə müdaxilənin nəticəsi
Enjekte edilmiş kod dongle proqram təminatının işində cüzi gecikmələr təqdim edir. Bununla belə, onlar istifadəçinin fərqinə varması üçün çox kiçikdir.
Təsəvvür etdiyiniz kimi, bu hücum vektoru üçün Unifying texnologiyası ilə uyğun gələn istənilən Logitech klaviaturasından istifadə edilə bilər. Hücum əksər Logitech klaviaturalarına daxil olan Birləşdirici qəbuledicini hədəf aldığından, o, xüsusi klaviatura modelindən asılı deyil.
Nəticə
Tədqiqatın nəticələri təcavüzkarlar tərəfindən nəzərdən keçirilən ssenaridən mümkün istifadəni təklif edir: əgər haker qurbanı Logitech simsiz klaviaturası üçün dongle qəbuledicisi ilə əvəz edərsə, o zaman qurbanın hesablarının parollarını bütün sonrakı məlumatlarla öyrənə biləcək. nəticələri. Unutmayın ki, düymələri vurmaq da mümkündür, yəni qurbanın kompüterində ixtiyari kodu yerinə yetirmək çətin deyil.
Birdən təcavüzkar istənilən Logitech açarının proqram təminatını USB vasitəsilə uzaqdan dəyişdirə bilsə nə olacaq? Sonra, bir-birinə yaxın olan dongle-lərdən təkrarlayıcılar şəbəkəsi yarada və sızma məsafəsini artıra bilərsiniz. Baxmayaraq ki, “maliyyə cəhətdən varlı” təcavüzkar hətta qonşu binadan da klaviatura girişinə “qulaq asa” və düymələri basa bilsə də, yüksək selektiv sistemlərə malik müasir radioqəbul avadanlığı, qısa tezlikli tənzimləmə vaxtlarına malik həssas radioqəbuledicilər və yüksək istiqamətli antenalar onlara imkan verəcəkdir. klaviatura daxilinə “qulaq asmaq” və hətta qonşu binadan da düymələri basmaq.
Peşəkar radio avadanlıqları
Logitech klaviaturasının simsiz məlumat ötürmə kanalı kifayət qədər yaxşı qorunduğundan, tapılan hücum vektoru alıcıya fiziki giriş tələb edir ki, bu da təcavüzkarı xeyli məhdudlaşdırır. Bu vəziyyətdə yeganə qorunma variantı qəbuledicinin proqram təminatı üçün kriptoqrafik qorunma mexanizmlərindən istifadə etməkdir, məsələn, qəbuledici tərəfdə yüklənmiş proqram təminatının imzasını yoxlamaqdır. Ancaq təəssüf ki, NRF24 bunu dəstəkləmir və mövcud cihaz arxitekturası daxilində qorunma həyata keçirmək mümkün deyil. Beləliklə, dongle-lərinizə diqqət yetirin, çünki təsvir edilən hücum seçimi onlara fiziki giriş tələb edir.
Raccoon Security praktiki məlumat təhlükəsizliyi, kriptoqrafiya, sxemlərin dizaynı, tərs mühəndislik və aşağı səviyyəli proqram təminatının yaradılması sahəsində Vulcan Tədqiqat və İnkişaf Mərkəzinin xüsusi ekspert qrupudur.
Mənbə: www.habr.com