Chrome brauzerida Spectre sinfining zaifliklaridan foydalanishning yangi texnikasi

Amerika, Avstraliya va Isroil universitetlarining bir guruh tadqiqotchilari Chromium dvigateliga asoslangan brauzerlarda Spectre sinfidagi zaifliklardan foydalanish uchun yangi yon kanalli hujum texnikasini taklif qilishdi. Spook.js kodli hujum JavaScript kodini ishga tushirish orqali saytni izolyatsiyalash mexanizmini chetlab o'tish va joriy jarayonning butun manzil maydonining mazmunini o'qish imkonini beradi, ya'ni. boshqa tablarda ishlaydigan, lekin bir xil jarayonda qayta ishlangan sahifalardagi ma'lumotlarga kirish.

Chrome turli jarayonlarda turli saytlarni boshqarganligi sababli, amaliy hujumlarni amalga oshirish imkoniyati turli foydalanuvchilarga o'z sahifalarini joylashtirish imkonini beruvchi xizmatlar bilan cheklangan. Usul tajovuzkor o'zining JavaScript kodini joylashtirish imkoniyatiga ega bo'lgan sahifadan foydalanuvchi tomonidan xuddi shu saytdan ochilgan boshqa sahifalar mavjudligini aniqlash va ulardan maxfiy ma'lumotlarni, masalan, hisob ma'lumotlari yoki almashtirilgan bank rekvizitlarini olish imkonini beradi. veb-shakllardagi maydonlarni avtomatik to'ldirish tizimi tomonidan. Namoyish sifatida, Tumblr xizmatida boshqa birovning blogiga qanday hujum qilish mumkinligi, agar uning egasi xuddi shu xizmatda joylashgan tajovuzkorlar blogini boshqa sahifada ochsa, ko'rsatilgan.

Usulni qo'llashning yana bir varianti - bu tajovuzkor tomonidan boshqariladigan plaginni o'rnatishda boshqa qo'shimchalardan ma'lumotlarni olish imkonini beruvchi brauzer plaginlariga hujum. Misol tariqasida, biz zararli plaginni o'rnatish orqali LastPass parol menejeridan maxfiy ma'lumotlarni qanday chiqarish mumkinligini ko'rsatamiz.

Tadqiqotchilar Chrome 89’da CPUIntel i7-6700K va i7-7600U’ga ega tizimlarda ishlaydigan ekspluatatsiya prototipini nashr etishdi. Ekspluatatsiyani yaratishda oldin Google tomonidan nashr etilgan JavaScript kodining prototiplari Spectre sinfidagi hujumlarni amalga oshirish uchun ishlatilgan. Qayd etilishicha, tadqiqotchilar Intel va Apple M1 protsessorlari asosidagi tizimlar uchun ishchi ekspluatatsiyalarni tayyorlashga muvaffaq bo‘lgan, bu esa xotirani soniyasiga 500 bayt tezlikda va 96 foiz aniqlikda o‘qishni tashkil etish imkonini beradi. Usul AMD protsessorlari uchun ham qo'llanilishi mumkin, deb taxmin qilinadi, ammo to'liq funktsional ekspluatatsiyani tayyorlash mumkin emas edi.

Hujum Chromium dvigateliga asoslangan har qanday brauzerlar, jumladan, Google Chrome, Microsoft Edge va Brave uchun amal qiladi. Tadqiqotchilar, shuningdek, usulni Firefox bilan ishlashga moslash mumkin, deb hisoblashadi, biroq Firefox dvigateli Chrome’dan juda farq qilgani uchun bunday ekspluatatsiya yaratish bo‘yicha ishlar kelajakka qoldiriladi.

Ko'rsatmalarning spekulyativ bajarilishi bilan bog'liq bo'lgan brauzer hujumlaridan himoya qilish uchun Chrome manzillar bo'shlig'ini segmentatsiyasini amalga oshiradi - Sandbox izolyatsiyasi JavaScript-ga faqat 32-bitli ko'rsatgichlar bilan ishlashga imkon beradi va ishlov beruvchilar xotirasini 4 Gb bo'lmagan yig'indilarda taqsimlaydi. Butun jarayonning manzil maydoniga kirishni ta'minlash va 32-bitli cheklovni chetlab o'tish uchun tadqiqotchilar JavaScript dvigatelini noto'g'ri turdagi ob'ektni qayta ishlashga majbur qiladigan, 64-bitli faylni yaratishga imkon beradigan Type Confusion deb nomlangan usuldan foydalanganlar. ikki 32-bitli qiymatlar kombinatsiyasiga asoslangan ko'rsatgich.

Hujumning mohiyati shundan iboratki, JavaScript dvigatelida maxsus ishlab chiqilgan zararli ob'ektni qayta ishlashda massivga kiradigan ko'rsatmalarning spekulyativ bajarilishiga olib keladigan sharoitlar yaratiladi. Ob'ekt shunday tanlanganki, tajovuzkor tomonidan boshqariladigan maydonlar 64-bitli ko'rsatgich ishlatiladigan maydonga joylashtiriladi. Zararli ob'ekt turi qayta ishlanayotgan massiv turiga to'g'ri kelmaganligi sababli, normal sharoitda bunday harakatlar Chrome brauzerida massivlarga kirish uchun ishlatiladigan kodni optimallashtirish mexanizmi orqali bloklanadi. Ushbu muammoni hal qilish uchun Type Confusion hujumining kodi shartli "if" blokiga joylashtiriladi, u normal sharoitlarda faollashtirilmaydi, lekin protsessor keyingi tarmoqlanishni noto'g'ri taxmin qilsa, spekulyativ rejimda bajariladi.

Natijada, protsessor spekulyativ ravishda yaratilgan 64-bitli ko'rsatgichga kiradi va muvaffaqiyatsiz bashoratni aniqlagandan so'ng holatni qaytaradi, ammo bajarilish izlari umumiy keshda qoladi va o'zgarishlarni tahlil qiluvchi yon kanal keshini aniqlash usullari yordamida tiklanishi mumkin. keshlangan va keshlanmagan ma'lumotlarga kirish vaqtlari. JavaScript-da mavjud bo'lgan taymerning aniqligi etarli bo'lmagan sharoitda kesh tarkibini tahlil qilish uchun Google tomonidan taklif qilingan usul qo'llaniladi, bu protsessorlarda ishlatiladigan Tree-PLRU keshini olib tashlash strategiyasini aldaydi va tsikllar sonini ko'paytirishga imkon beradi. keshda qiymat mavjud va yo'q bo'lganda vaqt farqini sezilarli darajada oshiradi. .

Manba: opennet.ru

a Izoh qo'shish