Tarixan ko'pchilik xodimlar Logitech simsiz klaviaturalari va sichqonlaridan foydalanadilar. Parollarimizni yana bir bor kiritib, biz, Raccoon Security jamoasi mutaxassislari, o'zimizga savol berdik: simsiz klaviaturalarning xavfsizlik mexanizmlarini chetlab o'tish qanchalik qiyin? Tadqiqot arxitektura kamchiliklari va kiritilgan ma'lumotlarga kirish imkonini beruvchi dasturiy xatolarni aniqladi. Kesish ostida biz olgan narsa.
Nima uchun Logitech?
Bizning fikrimizcha, Logitech kiritish qurilmalari eng sifatli va eng qulaylari qatoriga kiradi. Bizda mavjud qurilmalarning aksariyati Logitech yechimiga asoslangan
Logitech Unifying qo'llab-quvvatlashiga ega dongle qabul qiluvchisi
Klaviatura tajovuzkorlar uchun ma'lumot manbai bo'lishi mumkin. Logitech, mumkin bo'lgan tahdidni hisobga olgan holda, xavfsizlik haqida g'amxo'rlik qildi - simsiz klaviatura radiokanalida AES128 shifrlash algoritmidan foydalangan. Bu vaziyatda tajovuzkorning paydo bo'lishi mumkin bo'lgan birinchi fikr bog'lash jarayoni davomida radiokanal orqali uzatilganda asosiy ma'lumotlarni ushlab qolishdir. Axir, agar sizda kalit bo'lsa, siz klaviaturaning radio signallarini ushlab, ularni parolini hal qilishingiz mumkin. Biroq, foydalanuvchi kamdan-kam hollarda (yoki hatto hech qachon) klaviaturani birlashtirishi kerak va skanerlash radiosi bo'lgan xaker uzoq vaqt kutishi kerak. Bundan tashqari, ushlash jarayonining o'zi bilan hamma narsa juda oddiy emas. 2019 yil iyun oyida o'tkazilgan so'nggi tadqiqotda xavfsizlik bo'yicha ekspert Markus Mengs Internetda e'lon qildi
Biz Nordic Semiconductor kompaniyasining NRF24 SoC asosidagi Logitech dongle xavfsizligini o'rganishimiz haqida gaplashamiz. Keling, radio kanalining o'zidan boshlaylik.
Radio kanalida ma'lumotlar qanday "uchadi"
Radio signalining vaqt chastotasini tahlil qilish uchun biz spektr analizatori rejimida Blade-RF qurilmasiga asoslangan SDR qabul qilgichidan foydalandik (bu haqda ham o'qishingiz mumkin).
SDR Blade-RF qurilmasi
Shuningdek, biz radio signalning kvadraturalarini oraliq chastotada yozib olish imkoniyatini ko'rib chiqdik, keyinchalik ularni raqamli signalni qayta ishlash texnikasi yordamida tahlil qilish mumkin.
Rossiya Federatsiyasida radiochastotalar bo'yicha davlat komissiyasi
2,4 gigagertsli diapazonning spektri
Diapazondagi interferentsiya muhiti ancha murakkab. Shunga qaramay, Logitech chastotani moslashtirish algoritmlari bilan birgalikda NRF24 qabul qiluvchi-uzatuvchisida Kengaytirilgan ShockBurst protokolidan foydalanish orqali ishonchli va barqaror qabul qilishni ta'minlay oldi.
Tasvirdagi kanallar moddasida belgilanganidek butun MGts pozitsiyalariga joylashtiriladi
Vaqtni ko'rsatishda klaviatura radio signali
Qabul qiluvchi qabul qilishning korrelyatsiya tamoyilidan foydalanadi, shuning uchun uzatiladigan paketda kirish va manzil qismi mavjud. Shovqinga chidamli kodlash ishlatilmaydi, ma'lumotlar tanasi AES128 algoritmi bilan shifrlangan.
Umuman olganda, Logitech simsiz klaviaturasining radio interfeysi statistik multiplekslash va chastota moslashuvi bilan to'liq asinxron sifatida tavsiflanishi mumkin. Bu shuni anglatadiki, klaviatura uzatuvchisi har bir yangi paketni uzatish uchun kanalni almashtiradi. Qabul qiluvchi na uzatish vaqtini, na chastota kanalini oldindan bilmaydi, faqat ularning ro'yxati ma'lum. Qabul qilgich va uzatuvchi muvofiqlashtirilgan chastotani aylanib o'tish va tinglash algoritmlari, shuningdek, ShockBurst-ni tasdiqlashning kengaytirilgan mexanizmlari tufayli kanalda uchrashadi. Biz kanallar ro'yxati statik yoki yo'qligini tekshirmadik. Ehtimol, uning o'zgarishi chastotani moslashtirish algoritmi bilan bog'liq. Chastotani sakrash usuliga yaqin narsani (ish chastotasini psevdo-tasodifiy sozlash) diapazonning chastota resursidan foydalanishda ko'rish mumkin.
Shunday qilib, vaqt chastotasi noaniqligi sharoitida barcha klaviatura signallarining kafolatlangan qabul qilinishini ta'minlash uchun tajovuzkor 84 pozitsiyadan iborat butun chastotalar tarmog'ini doimiy ravishda kuzatib borishi kerak, bu esa katta vaqtni talab qiladi. Bu erda nima uchun USB kalitlarni chiqarish zaifligi aniq bo'ladi (CVE-2019-13054)
Muammoga ichkaridan qarash
Tadqiqotimiz uchun biz mavjud Logitech K330 klaviaturalaridan birini va Logitech Unifying dongle-ni tanladik.
Logitech K330
Keling, klaviaturaning ichki qismini ko'rib chiqaylik. O'rganish uchun taxtadagi qiziqarli element Nordic Semiconductor kompaniyasining SoC NRF24 chipidir.
Logitech K24 simsiz klaviaturasidagi SoC NRF330
Mikrodastur ichki xotirada joylashgan, o'qish va disk raskadrovka mexanizmlari o'chirilgan. Afsuski, proshivka ochiq manbalarda nashr etilmagan. Shuning uchun biz muammoga boshqa tomondan yondashishga qaror qildik - Logitech dongle qabul qilgichining ichki tarkibini o'rganish.
Dongle qabul qiluvchining "ichki dunyosi" juda qiziq. Dongle osongina qismlarga ajratiladi, o'rnatilgan USB kontrolleri bilan tanish NRF24 relizini bortda olib yuradi va uni USB tomondan ham, to'g'ridan-to'g'ri dasturchidan ham qayta dasturlash mumkin.
Logitech dongle korpussiz
Mikrodasturni yangilash uchun standart mexanizm mavjudligi sababli
Nima qilindi: proshivka RQR_012_005_00028.bin Firmware Update Tool ilovasining korpusidan chiqarildi. Uning yaxlitligini tekshirish uchun dongle boshqaruvchisi kabel orqali ulangan
Logitech dongle-ni ChipProg 48 dasturchisiga ulash uchun kabel
Mikrodasturning yaxlitligini nazorat qilish uchun u kontroller xotirasiga muvaffaqiyatli joylashtirildi va to'g'ri ishladi, klaviatura va sichqoncha Logitech Unifying orqali donglega ulandi. O'zgartirilgan proshivkani standart yangilash mexanizmi yordamida yuklash mumkin, chunki proshivka uchun kriptografik himoya mexanizmlari mavjud emas. Tadqiqot maqsadlarida biz dasturchiga jismoniy ulanishdan foydalandik, chunki disk raskadrovka shu tarzda tezroq amalga oshiriladi.
Mikrodasturni o'rganish va foydalanuvchi kiritishiga hujum
NRF24 chipi an'anaviy Garvard arxitekturasida Intel 8051 hisoblash yadrosi asosida ishlab chiqilgan. Yadro uchun qabul qiluvchi qurilma periferik qurilma vazifasini bajaradi va registrlar to'plami sifatida manzil maydoniga joylashtiriladi. Chip uchun hujjatlar va manba kodi misollarini Internetda topish mumkin, shuning uchun proshivkani demontaj qilish qiyin emas. Teskari muhandislik jarayonida biz radiokanaldan tugma ma'lumotlarini qabul qilish va USB interfeysi orqali xostga uzatish uchun HID formatiga aylantirish funktsiyalarini lokalizatsiya qildik. In'ektsiya kodi bo'sh xotira manzillariga joylashtirildi, ular nazoratni ushlab turish, asl ijro kontekstini saqlash va tiklash vositalarini, shuningdek, funktsional kodni o'z ichiga oladi.
Dongle tomonidan radiokanaldan olingan kalitni bosish yoki qo'yib yuborish paketi shifrlangan, standart HID hisobotiga aylantiriladi va oddiy klaviaturadan USB interfeysiga yuboriladi. Tadqiqotning bir qismi sifatida HID hisobotining biz uchun eng qiziq bo'lgan qismi HID hisobotining bir bayt modifikator bayroqlarini va tugmalar bosish kodlari bilan 6 bayt massivni o'z ichiga olgan qismidir (ma'lumot uchun, HID haqida ma'lumot).
HID hisobot tuzilishi:
// 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 tuzilmasini xostga uzatishdan oldin darhol kiritilgan kod nazoratni o'z qo'liga oladi, 8 baytlik mahalliy HID ma'lumotlarini xotiraga ko'chiradi va uni aniq matnda radio yon kanaliga yuboradi. Kodda bu shunday ko'rinadi:
//~~~~~~~~~ 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 ~~~~~~~~~~~~~~~~~~~~~~~~~<
Yon kanal biz o'rnatgan chastotada manipulyatsiya tezligi va paket tuzilishining ma'lum xususiyatlari bilan tashkil etilgan.
Chipdagi qabul qiluvchining ishlashi
Yon kanaldagi demodulyatsiyalangan portlash signali
Paket yon kanalga uzatilgandan so'ng, kiritilgan kod qabul qiluvchining holatini tiklaydi. Endi u yana original proshivka kontekstida normal ishlashga tayyor.
Chastota va vaqt chastotasi domenlarida yon kanal quyidagicha ko'rinadi:
Yon kanalning spektral va vaqt chastotasi tasviri
NRF24 chipining o'zgartirilgan proshivka bilan ishlashini sinab ko'rish uchun biz o'zgartirilgan proshivkali Logitech dongle, simsiz klaviatura va NRF24 chipli xitoy moduli asosida yig'ilgan qabul qilgichni o'z ichiga olgan stendni yig'dik.
Logitech simsiz klaviaturasi radio signalini ushlab turish sxemasi
NRF24 asosidagi modul
Klaviatura normal ishlayotgan skameykada, uni Logitech dongle-ga ulaganimizdan so'ng, biz yon radiokanaldagi tugmachalarni bosish haqida aniq ma'lumotlar uzatilishini va asosiy radio interfeysida shifrlangan ma'lumotlarning normal uzatilishini kuzatdik. Shunday qilib, biz foydalanuvchi klaviaturasi kiritishni to'g'ridan-to'g'ri ushlab turishni ta'minlay oldik:
Klaviatura kiritishni ushlab turish natijasi
AOK qilingan kod dongle mikrodasturining ishlashida biroz kechikishlarni keltirib chiqaradi. Biroq, ular foydalanuvchi sezishi uchun juda kichikdir.
Siz tasavvur qilganingizdek, ushbu hujum vektori uchun Unifying texnologiyasiga mos keladigan har qanday Logitech klaviaturasidan foydalanish mumkin. Hujum Logitech klaviaturalarining ko'pchiligiga kiritilgan Unifying qabul qiluvchisiga qaratilganligi sababli, u maxsus klaviatura modelidan mustaqil.
xulosa
Tadqiqot natijalari tajovuzkorlar tomonidan ko'rib chiqilgan stsenariydan foydalanishi mumkinligini ko'rsatmoqda: agar xaker qurbonni Logitech simsiz klaviaturasi uchun dongle qabul qiluvchisi bilan almashtirsa, u jabrlanuvchining akkauntlari parollarini keyingi barcha narsalar bilan bilib olishi mumkin bo'ladi. oqibatlari. Shuni unutmangki, tugmachalarni bosish ham mumkin, ya'ni jabrlanuvchining kompyuterida o'zboshimchalik bilan kodni bajarish qiyin emas.
Agar to'satdan tajovuzkor har qanday Logitech dongle-ning proshivkasini USB orqali masofadan o'zgartira olsa-chi? Keyin, bir-biriga yaqin joylashgan donglelardan siz takrorlagichlar tarmog'ini yaratishingiz va oqish masofasini oshirishingiz mumkin. Garchi "moliyaviy jihatdan boy" tajovuzkor hatto qo'shni binodan ham klaviatura kiritishini "tinglashi" va tugmachalarni bosishi mumkin bo'lsa-da, yuqori selektiv tizimlarga ega zamonaviy radio qabul qilish uskunalari, qisqa chastotali sozlash vaqtlari va yuqori yo'nalishli antennalarga ega sezgir radio qabul qiluvchilar ularga imkon beradi. klaviatura kiritishni "tinglash" va hatto qo'shni binodan ham tugmachalarni bosing.
Professional radio jihozlari
Logitech klaviaturasining simsiz ma'lumotlar uzatish kanali juda yaxshi himoyalanganligi sababli, topilgan hujum vektori qabul qiluvchiga jismoniy kirishni talab qiladi, bu esa tajovuzkorni sezilarli darajada cheklaydi. Bu holda yagona himoya varianti qabul qiluvchining dasturiy ta'minoti uchun kriptografik himoya mexanizmlaridan foydalanish, masalan, qabul qiluvchi tomonida yuklangan proshivka imzosini tekshirish bo'ladi. Ammo, afsuski, NRF24 buni qo'llab-quvvatlamaydi va joriy qurilma arxitekturasida himoyani amalga oshirish mumkin emas. Shunday qilib, donglelaringizga g'amxo'rlik qiling, chunki tasvirlangan hujum opsiyasi ularga jismoniy kirishni talab qiladi.
Raccoon Security - amaliy axborot xavfsizligi, kriptografiya, sxemalar dizayni, teskari muhandislik va past darajadagi dasturiy ta'minotni yaratish sohasida Vulkan tadqiqot va ishlanmalar markazining maxsus mutaxassislari jamoasi.
Manba: www.habr.com