Retbleed - bu Intel va AMD protsessorlarining spekulyativ ijro mexanizmiga yangi hujum

ETH Zurich tadqiqotchilari guruhi markaziy protsessorda bilvosita o‘tishlarni spekulyativ bajarish mexanizmiga yangi hujumni aniqladi, bu yadro xotirasidan ma’lumot olish yoki virtual mashinalardan xost tizimiga hujumni tashkil qilish imkonini beradi. Zaifliklar Retbleed (CVE-2022-29900, CVE-2022-29901) kod nomiga ega va tabiatan Spectre-v2 hujumlariga yaqin. Farqi “jmp” ko‘rsatmasi yordamida bilvosita sakrash o‘rniga manzilni yuklash, stekdan sakrash uchun manzilni oladigan “ret” (qaytish) buyrug‘ini qayta ishlashda ixtiyoriy kodning spekulyativ bajarilishini tashkil etishda bo‘ladi. xotira yoki CPU registri.

Buzg'unchi noto'g'ri o'tishni bashorat qilish uchun sharoit yaratishi va dasturni bajarish mantig'ida ko'zda tutilmagan kod blokiga maqsadli, spekulyativ o'tishni tashkil qilishi mumkin. Oxir-oqibat, protsessor filial bashorati oqlanmaganligini aniqlaydi va operatsiyani asl holatiga qaytaradi, ammo spekulyativ bajarish paytida qayta ishlangan ma'lumotlar kesh va mikroarxitektura buferlarida tugaydi. Agar xato bajarilgan blok xotiraga kirsa, uning spekulyativ bajarilishi xotiradan o'qilgan ma'lumotlarning umumiy keshga joylashtirilishiga olib keladi.

Spekulyativ operatsiyalardan keyin keshda qolgan ma'lumotlarni aniqlash uchun tajovuzkor qoldiq ma'lumotlarni aniqlash uchun yon kanal usullaridan foydalanishi mumkin, masalan, keshlangan va keshlanmagan ma'lumotlarga kirish vaqtlaridagi o'zgarishlarni tahlil qilish. Boshqa imtiyozlar darajasidagi hududlardan (masalan, yadro xotirasidan) ma'lumotni maqsadli ravishda olish uchun "gadjetlar" qo'llaniladi - yadroda mavjud bo'lgan buyruqlar ketma-ketligi, ular ta'sir qilishi mumkin bo'lgan tashqi sharoitlarga qarab xotiradan ma'lumotlarni spekulyativ o'qish uchun mos keladi. hujumchi.

Shartli va bilvosita o'tish ko'rsatmalaridan foydalanadigan klassik Spectre sinfidagi hujumlardan himoya qilish uchun ko'pchilik operatsion tizimlar bilvosita o'tish operatsiyalarini "ret" buyrug'i bilan almashtirishga asoslangan "retpoline" texnikasidan foydalanadi, buning uchun protsessorlar alohida stek holatini bashorat qilish blokidan foydalanadilar. . filialni bashorat qilish blokidan foydalanmaslik. 2018-yilda retpolin joriy etilganida, Spektrga o'xshash manzil manipulyatsiyalari "ret" ko'rsatmasi yordamida spekulyativ tarmoqlanish uchun amaliy emas deb hisoblangan.

Retbleed hujum usulini ishlab chiqqan tadqiqotchilar "ret" ko'rsatmasi yordamida spekulyativ o'tishni boshlash uchun mikroarxitektura sharoitlarini yaratish imkoniyatini namoyish etdilar va Linux yadrosidagi zaiflikdan foydalanish uchun mos keladigan ko'rsatmalar (gadjetlar) ketma-ketligini aniqlash uchun tayyor vositalarni nashr etdilar. unda bunday sharoitlar o'zini namoyon qiladi.

Tadqiqot davomida Intel protsessorli tizimlarda yadro xotirasidan foydalanuvchi makonidagi imtiyozsiz jarayondan sekundiga 219 bayt tezlikda va 98% aniqlikda o'zboshimchalik bilan ma'lumotlarni ajratib olish imkonini beruvchi ishchi ekspluat tayyorlandi. AMD protsessorlarida ekspluatatsiya samaradorligi ancha yuqori — oqish tezligi sekundiga 3.9 KB. Amaliy misol sifatida biz /etc/shadow faylining mazmunini aniqlash uchun taklif qilingan ekspluatatsiyadan qanday foydalanishni ko'rsatamiz. Intel protsessorlari bo'lgan tizimlarda root foydalanuvchi paroli xeshini aniqlash uchun hujum 28 daqiqada, AMD protsessorli tizimlarda esa 6 daqiqada amalga oshirildi.

Hujum 6-yil 8-chorakdan oldin chiqarilgan Intel protsessorlarining 3-2019 avlodlari (shu jumladan Skylake) va 1-yilning 1-choragidan oldin chiqarilgan Zen 2, Zen 2021+ va Zen 3 mikroarxitekturalari asosidagi AMD protsessorlari uchun tasdiqlangan. AMD ZenXNUMX va Intel Alder Lake kabi yangi protsessor modellarida, shuningdek, ARM protsessorlarida muammo mavjud himoya mexanizmlari tomonidan bloklanadi. Masalan, IBRS (Indirect Branch Restricted Speculation) ko'rsatmalaridan foydalanish hujumlardan himoya qilishga yordam beradi.

Eski protsessorlarda dasturiy ta'minotdagi muammoni bloklaydigan Linux yadrosi va Xen gipervizori uchun bir qator o'zgarishlar tayyorlandi. Linux yadrosi uchun tavsiya etilgan yamoq 68 ta faylni o'zgartiradi, 1783 qatorni qo'shadi va 387 qatorni o'chiradi. Afsuski, himoya katta xarajatlarga olib keladi - AMD va Intel protsessorlarida o'tkazilgan matnlarda ishlashning pasayishi 14% dan 39% gacha baholanadi. Intel protsessorlarining yangi avlodlarida mavjud bo'lgan va Linux yadrosi 4.19 dan boshlab qo'llab-quvvatlanadigan IBRS ko'rsatmalariga asoslangan himoyadan foydalanish afzalroqdir.

Intel protsessorlarida spekulyativ bilvosita sakrash uchun manzilni almashtirish Qaytish stack buferidagi pastki chegara (pastki oqim) orqali toshib ketish sodir bo'lganda paydo bo'ladigan xususiyat tufayli amalga oshiriladi. Bunday sharoitlar yuzaga kelganda, "ret" ko'rsatmasi oddiy bilvosita sakrashlar uchun ishlatiladiganga o'xshash manzil tanlash mantiqini qo'llashni boshlaydi. Linux yadrosida bunday teskari oqimni boshlash uchun sharoit yaratadigan va tizim qo'ng'iroqlari orqali kirish mumkin bo'lgan mingdan ortiq joylar topildi.

AMD protsessorlarida "ret" buyrug'ining spekulyativ bajarilishi stekga xos buferga (Qaytish manzili stack) havolasiz amalga oshiriladi va filialni bashorat qilish bo'limi "ret" buyrug'ini boshqaruv qaytishi sifatida emas, balki bilvosita filial sifatida ko'rib chiqadi. , va shunga mos ravishda, bilvosita o'tishlarni bashorat qilish uchun ma'lumotlardan foydalanadi. Bunday sharoitlarda tizim chaqiruvi orqali erishish mumkin bo'lgan deyarli har qanday "ret" operatsiyasidan foydalanish mumkin.

Bundan tashqari, AMD protsessorlarida (CVE-2022-23825, Filial turi chalkashligi) xayoliy filiallarni amalga oshirish bilan bog'liq yana bir muammo aniqlandi - filialni bashorat qilish uchun shartlar filialni bashorat qilish buferiga ta'sir qilish imkonini beruvchi kerakli filial ko'rsatmalarisiz ham yuzaga kelishi mumkin. "ret" ko'rsatmasisiz. Bu xususiyat himoyani amalga oshirishni sezilarli darajada murakkablashtiradi va filialni bashorat qilish buferini faolroq tozalashni talab qiladi. Yadroga to'liq himoya qo'shilishi qo'shimcha xarajatlarni 209% ga oshirishi kutilmoqda.

Manba: opennet.ru

a Izoh qo'shish