
Tarixən, əksər işçilər Logitech markasının simsiz klaviatura və siçanlarından istifadə edir. Parollarımızı bir daha daxil edərkən, Raccoon Security komandası mütəxəssisləri olaraq, simsiz klaviaturaların müdafiə mexanizmlərini aşmağın nə qədər çətin olduğunu soruşduq. Araşdırmamız, daxil edilən məlumatlara giriş imkanı verən memarlıq çatışmazlıqları və proqram xətalarını ortaya çıxardı. Bizim əldə etdiklərimiz haqqında daha ətraflı məlumat aşağıdadır.
Niyə Logitech?
Bizim fikrimizcə, Logitech şirkətinin giriş cihazları ən keyfiyyətli və rahat olanlərdən biridir. Bizim istifadə etdiyimiz əksər cihazlar Logitech həllinə əsaslanır. – 6 cihazı bağlamağa imkan verən universal dongle qəbuledicisidir. Logitech Unifying texnologiyası ilə uyğun olan bütün cihazlar müvafiq loqotip ilə işarələnir. İstifadəsi asandır simsiz klaviaturaları kompüterə bağlamağa imkan verir. Logitech dongle qəbuledicisinə klaviaturanın əlaqələndirilməsi prosesi, eləcə də texnologiya, məsələn, aşağıda açıqlanır. .

Logitech Unifying dəstəkli dongle qəbuledicisi
Klaviatura, təcavüzkarlar üçün məlumat mənbəyi ola bilər. Logitech şirkəti, mümkün olan təhdidi nəzərə alaraq, simsiz klaviaturanın radio kanalında AES128 şifrələmə alqoritmini tətbiq edərək təhlükəsizliyə diqqət yetirib. Bu vəziyyətdə, təcavüzkarın ağlından keçə biləcək ilk fikir, əlaqələndirilmə prosesi zamanı radio kanalında açar məlumatının ələ keçirilməsidir. Axı açar olduğunda, klaviaturanın radio siqnallarını ələ keçirmək və onları deşifrə etmək mümkündür. Ancaq istifadəçi Unifying prosedurunu bir çox hallarda (və ya bəlkə də heç vaxt) həyata keçirmir, buna görə də siqnal tutmağa çalışan xaker uzun müddət gözləməli olacaq. Üstəlik, ələ keçirmə prosesi də o qədər asan deyil. 2019-cu ilin iyun ayında təhlükəsizlik mütəxəssisi Markus Mengs son araşdırmasında Logitech USB dongle-larının köhnə versiyasında zəifliyi aşkar etdiyini bildirdi. Bu, fizikə giriş imkanı olan təcavüzkarlara radio kanalının şifrələmə açarlarını əldə etməyə və düymə basmalarını daxil etməyə imkan verir (CVE-2019-13054).
Biz Logitech donglunun SoC NRF24 bazasında təhlükəsizlik araşdırmamızdan danışacağıq. İlk olaraq, bəlkə də, radio kanalından başlayaq.
Radio kanalında məlumatlar necə «uçur»
Radio siqnalının tezlik-zaman analizində Blade-RF cihazına əsaslanan SDR qəbuledicisini spektr analizatoru rejimində istifadə etdik (bununla bağlı daha çox məlumatı buradan oxuya bilərsiniz ).

SDR Blade-RF cihazı
Biz həmçinin radio siqnalın kvadraturasını intermedi tayfada yazmaq imkanını nəzərdən keçirdik ki, sonra onları rəqəmsal siqnal emal metodları ilə analiz edək.
Rusiya Federasiyasında Dövlət Radiofrekans Komissiyası kiçik fəaliyyət radiusuna malik cihazlarla istifadə edilməsinə 2400–2483,5 MHz bant aralığında. Bu, Wi-Fi, Bluetooth, müxtəlif uzaqdan idarəetmə cihazları, siqnalizasiya sistemləri, simsiz xəbərdarlıq sistemləri, klaviaturalarla siçanlar və digər simsiz rəqəmsal cihazlar da daxil olmaqla çox «dolanıq» bir aralıqdır.

2.4 GHz bant aralığının spektri
Bu aralıqda müdaxilə şəraiti kifayət qədər mürəkkəbdir. Lakin buna baxmayaraq, Logitech şirkəti NRF24 transceiver-də Enhanced ShockBurst protokolundan istifadə etməklə və tezlik uyğunlaşma alqoritmləri ilə etibarlı və dayanıqlı qəbul təmin edə bilib.
Bant aralığındakı kanallar tam ədəd MHz mövqelərində yerləşdirilmişdir, bu isə NRF24 Nordic Semiconductor - tam 84 kanal frekans şəbəkəsində mövcuddur. Eyni anda istifadə olunan Logitech frekans kanallarının sayı əlbəttə ki, daha azdır. Minimum dörd kanaldan istifadə etdiyimizi aşkar etdik. İstifadə olunan frekans mövqelərinin dəqiq siyahısını müəyyən etmək mümkün olmadı, çünki götürülən spektr analizatorunun limitli görüş sahəsi var, amma bunun da heç bir əhəmiyyəti yox idi. Klaviaturadan dongle-reseiverə informasiya Burst rejimində (txrfizörün qısa açılması) GFSK iki pozisiyalı tezlik modulyasiyası ilə 1 Mbaud simbol sürətində ötürülür.

Klaviaturanın radio siqnalı zaman göstəricisində
Reseiver korrelyasiya prinsipinə əsaslanaraq qəbul edir, buna görə də ötürülən paketdə preambulum və adres hissəsi var. Müdaxilə üzrə mübarizəyə aid kodlaşdırma tətbiq edilmir, məlumatlar AES128 alqoritmi ilə şifrələnir.
Ümumiyyətlə, Logitech simsiz klaviaturanın radio interfeysini tam qeyri-sinxron, statistik sıxışma və tezlik uyğunlaşması ilə xarakterizə etmək olar. Bu, deməkdir ki, klaviaturanın txrfizörü hər yeni paket ötürülməsi üçün kanalını dəyişir. Reseiverə nə ötürülmə vaxtı, nə də tezlik kanalı əvvəlcədən məlumdur, yalnız onların siyahısı məlumdur. Reseiver və ötürücü kanalda müvafiq alqoritmlərlə tezlikləri aşmaq və dinləmək, eləcə də Enhanced ShockBurst təsdiqləmə mexanizmləri vasitəsilə bir araya gəlir. Biz kanalların siyahısının stasionar olub-olmadığını araşdırmamışıq. Bu ehtimal ki, tezlik uyğunlaşma alqoritmi ilə əlaqədardır. Tezlik resursunun istifadəsi ilə bağlı PPRÇ (psevdosətirli yığma tezlik dəyişməsi) metoduna bənzər bir şey məlum olur.
Beləliklə, tezlik-müddət qeyri-müəyyənliyi şəraitində, klaviaturanın bütün siqnallarını təmin etmək üçün, hücumçunun 84 pozisiyadan ibarət tezlik şəbəkəsini daimi şəkildə idarə etməsi lazım olacaq ki, bu da əhəmiyyətli zaman sərfiyyatını tələb edir. Buradan CVE-2019-13054 USB vasitəsilə açar çıxartma zəifliyinin niyə baş verdiyi aydın olur. klaviş basımlarının inyektiya edilməsi imkanı kimi təqdim edilir, lakin hücumçunun klaviaturadan daxil edilən məlumatlara giriş əldə etməsi kimi deyil. Aydındır ki, simsiz klaviaturanın radiotexnologiyası olduqca mürəkkəbdir və Logitech cihazları arasında etibarlı radiomənaşın təmin edir, 2.4 GHz diapazonda mürəkkəb maneələr şəraitində.
Problemin içindən baxışı
Tədqiqat üçün Logitech K330 markalı klaviatura və Logitech Unifying donqulu arasından birini seçdik.

Logitech K330
Klaviaturanın içinə nəzər salaq. Tədqiqat üçün maraqlı bir element – Nordic Semiconductor-dan SoC NRF24 çipidir.

Logitech K330 simsiz klaviaturanın lövhəsində SoC NRF24
Proqram təminatı daxili yaddaşda yerləşdirilib, oxuma və tədqiqat mexanizmləri deaktiv edilib. Təəssüf ki, proqram təminatı açıq mənbələrdə dərc edilməyib. Buna görə də, problemi başqa cür yanaşmağa qərar verdik – Logitech donqul qəbul edən cihazın daxili məzmununu öyrənməyə.
Donqul qəbul edici cihazın «daxili dünyası» olduqca maraqlı bir formada təşkil olunub. Donqul asanlıqla açılır, üzərində tanış olduğumuz NRF24 var, USB kontrolleri ilə buraxılışda və həm USB, həm də birbaşa proqramlayıcı vasitəsilə yenidən proqramlanma imkanı var.

Korpusdan ayrı Logitech donqulu
Mövcud olan standart proqram təminatını yeniləmə mexanizmi mövcuddur (yenilənmiş proqram versiyasını çıxarmaq üçün istifadə edilə bilən), donqul içində proqram axtarmağa ehtiyac yoxdur.
Nə həyata keçirildi: Firmware Update Tool tətbiqinin içindən RQR_012_005_00028.bin proqram təminatı çıxarıldı. Onun bütövlüyünü yoxlamaq üçün donqul kontrolleri şleyf ilə :

ChipProg 48 proqramlayıcısına Logitech donqulun şleyf bağlantısı
Proqram təminatının bütövlüyünü yoxlamaq üçün, o, kontrollerin yaddaşına uğurla yerləşdirildi və düzgün işləyirdi, klaviatura və siçan Logitech Unifying vasitəsilə donqula qoşulmuşdu. Modifikasiya edilmiş proqram təminatının yeniləmə mexanizmi ilə yüklənməsi mümkündir, çünki heç bir kriptoqrafik qoruma mexanizmləri nəzərdə tutulmayıb. Araşdırma məqsədilə biz proqramlayıcıya fiziki qoşma istifadə etdik, çünki belə tədqiqat daha sürətli aparılır.
Proqram təminatının araşdırılması və istifadəçi girişinə hücum
NRF24 çipi, ənənəvi Harvard arxitekturasında Intel 8051 hesablama nüvəsi əsasında hazırlanmışdır. Nüvə üçün transceiver periferik cihaz kimi çıxış edir və qeydiyyatların toplusu kimi ünvan məkanında yerləşir. Çipin sənədlərini və nümunə mənbə kodlarını internetdə tapmaq olar, buna görə də proqram təminatının disassemblesi çətinlik yaratmır. Tərsinə mühəndislik prosesi zamanı, biz.radio kanalından düymə basma məlumatlarını əldə etmə funksiyalarını lokalizasiya etdik və bunları HID formatına çevirərək USB interfeysi ilə hosta ötürdük. Boş yaddaş ünvanlarına, idarəetmə əlini ələ keçirmək, orijinal icra kontekstini saxlamaq və bərpa etmək üçün alətlər də daxil olmaqla, inyeksiya kodu yerləşdirildi.
Dongle tərəfindən radio kanalından qəbul edilən düymənin basılması və ya buraxılması paketi dekod edilir, standart HID hesabatına çevrilir və adi bir klaviaturadan olduğu kimi USB interfeysinə göndərilir. Tədqiqat kontekstində bizim üçün ən maraqlı olan HID hesabatının mülahizə baytını və 6 baytlıq düymə kodları massivini ehtiva edən hissəsidir (HID haqqında məlumat üçün) ).
HID hesabatının 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 strukturu hosta ötürülməzdən əvvəl inyeksiya edilmiş kod idarəni ələ keçirir, yaddaşda 8 bayt native HID məlumatlarını kopyalayır və onları açıq formada yan radio kanalına göndərir. Kod içində bu aşağıdakı kimi 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, qurduğumuz müəyyən sürət manipulyasiyası və paket strukturu xüsusiyyətləri ilə təyin edilmiş tezlikdə təşkil olunur.
Çipdəki transceiverin fəaliyyəti Enhanced ShockBurst protokolunu üzvi şəkildə əks etdirən vəziyyət qrafikası əsasında yaranır. Biz aşkar etdik ki, HID məlumatları USB interfeysinə hosta ötürülmədən əvvəl transceiver IDLE vəziyyətində idi. Bu, onu yan kanalda işləmək üçün təhlükəsiz şəkildə yenidən konfiqurasiya etməyə imkan verir. İnyeksiya olunan kod idarəni ələ keçirir, transceiverin orijinal konfiqurasiyasını tam şəkildə saxlayır və onu yan kanalda ötürmə rejiminə keçirir. Bu rejimdə Enhanced ShockBurst təsdiq mexanizmi söndürülür, HID məlumatları açıq formada radio eterə ötürülür. Yan kanaldakı paket strukturu aşağıdakı şəkildə göstərilmişdir, siqnalın epüroları demodulasiya edildikdən sonra məlumatların takt sinxronizasiyasının bərpasından əvvəl alınmışdır. Paketin vizual identifikasiyası üçün rahatlıq məqsədilə ünvan dəyəri seçilmişdir.

Yan kanaldakı Burst paketinin demodulasiya edilmiş siqnalları
Paketin yan kanala ötürülməsi tamamlandıqdan sonra, inyeksiya edilmiş kod transceiverin vəziyyətini bərpa edir. İndi o, orijinal proqram təminatı kontekstində adi rejimdə işləməyə hazırdır.
Tezlik və tezlik-zaman sahələrində yan kanal aşağıdakı kimi görünür:

Yan kanalın spektral və tezlik-zaman təsviri
NRF24 çipinin modifikasiya olunmuş proqram təminatı ilə işləməsini yoxlamaq üçün, Logitech dongle modifikasiyalı proqram təminatı, simsiz klaviatura və NRF24 çipini əsas alan Çin modulundan ibarət stend yığdıq.

Logitech simsiz klaviaturanın radio siqnalının ələ keçirilməsi sxemi

NRF24 bazalı modul
Stenddə klaviatura normal işləyəndə, onu Logitech dongle-a qoşduqda, açıq məlumatların yan radiokanalda ötürülməsini və əsas radio interfeysində şifrlənmiş məlumatların normal ötürülməsini müşahidə etdik. Beləliklə, istifadəçi klaviatura girişinin birbaşa ələ keçirilməsi mümkün oldu:

Klaviatura girişinin ələ keçirilməsi nəticəsi
İnjected kod, dongle proqram təminatında kiçik gecikmələr yaradır. Ancaq bunlar istifadəçi tərəfindən hiss olunacaq qədər də kiçikdir.
Belə bir hücum vektoru üçün Unifying texnologiyası ilə uyğun olan hər hansı bir Logitech klaviaturası istifadə oluna bilər. Hücum, Logitech klaviaturalarının əksəriyyəti ilə birlikdə gələn Unifying qəbulına yönəldildiyi üçün, konkret klaviatura modelindən asılı deyil.
Nəticə
Aparılan tədqiqatın nəticələri, müzakirə olunan ssenarinin kiber cinayətkarlar tərəfindən istifadə oluna biləcəyini düşündürür: əgər bir haker, Logitech simsiz klaviaturası üçün qurbanın dongle qəbulunu dəyişdirsə, o zaman qurbanın hesablarının şifrələri ilə bütün nəticələri ilə tanış ola bilər. Unutmayaq ki, açar basma əmrlərini injector etmək də mümkündür, bu o deməkdir ki, qurbanın kompüterində istənilən kodu icra etmək çətinlik yaratmayacaq.
Bəs əgər kiber cinayətkar USB vasitəsilə hər hansı bir Logitech dongle-nin proqram təminatını uzaqdan dəyişdirməyə qadirdirsə? Onda yaxınlıqdakı dongledlərdən bir retranslyator şəbəkəsi quraraq məlumat sızmasının məsafəsini artıra bilər. Bütün bunlara baxmayaraq, müasir, yüksək seçici sistemləri, kiçik dəyişmə vaxtı olan antenalar və dar istiqamətli antenna ilə təmin olunan maliyyə cəhətdən güclü bir kiber cinayətkar, hətta qonşu binadan klaviatura girişini “eşidə” bilər.

Professional radio qəbul avadanlığı
Logitech klaviaturanın simsiz məlumat ötürmə kanalı kifayət qədər yaxşı qorunduğundan, tapılan hücum vektoru, qəbul edici üzərində fiziki giriş tələb edir ki, bu da hücumçunun imkanlarını ciddi şəkildə məhdudlaşdırır. Bu halda, qəbul edicinin sabit proqramını qorumaq üçün yeganə müdafiə variantı kriptoqrafik qoruma mexanizmlərinin istifadəsi ola bilər, məsələn, qəbul edici tərəfində yüklənmiş sabit proqramın imzasının yoxlanılması. Lakin, təəssüf ki, NRF24 bunu dəstəkləmir və cari cihaz arxitekturası çərçivəsində qorunmanın həyata keçirilməsi mümkün deyil. Belə ki, donğllarınızı qoruyun, çünki təsvir olunan hücum variantı onlara fiziki giriş tələb edir.

Raccoon Security – praktik informasiya təhlükəsizliyi, kriptoqrafiya, sxemotexnika, geri inkişaf və aşağı səviyyəli proqram təminatının yaradılması sahəsində NTÇ 'Vulkan' tərəfindən xüsusi ekspert komandasıdır.
Mənbə: habr.com
