SGX zararli dasturi: yovuz odamlar yangi Intel texnologiyasidan u mo'ljallanganidan boshqa maqsadlarda qanday foydalanmoqda

Ma'lumki, anklavda bajarilgan kod o'z funksionalligida jiddiy cheklangan. U tizim qo'ng'iroqlarini amalga oshira olmaydi. U I/U operatsiyalarini bajara olmaydi. U xost ilovasi kod segmentining asosiy manzilini bilmaydi. U xost ilova kodini jmp qila olmaydi yoki chaqira olmaydi. U xost dasturini boshqaradigan manzillar maydoni tuzilishi haqida hech qanday tasavvurga ega emas (masalan, qaysi sahifalar xaritada yoki bu sahifalarda qanday ma'lumotlar joylashgan). U operatsion tizimdan xost ilovasi xotirasining bir qismini unga moslashtirishni soʻray olmaydi (masalan, /proc/pid/maps orqali). Xost ilovasining ixtiyoriy xotira hududini ko'r-ko'rona o'qishga bo'lgan sodda urinishlar, yozishga urinishlar haqida gapirmasa ham, ertami-kechmi (ehtimol, birinchisi) anklav dasturini majburiy tugatishga olib keladi. Bu anklav tomonidan so'ralgan virtual manzil maydoniga xost ilovasiga kirish imkoni bo'lmaganda sodir bo'ladi.

Bunday og'ir haqiqatlarni hisobga olgan holda, virus muallifi o'zining zararli maqsadlariga erishish uchun SGX anklavlaridan foydalana oladimi?

– Manzillarni o‘qish mumkinmi yoki yo‘qligini tekshirish uchun sindirish
– Yozilishi uchun manzillarni sinash
– Boshqaruv oqimini qayta yo‘naltirish uchun xack
- Yuqorida sanab o'tilgan uchta buzg'unchilik yovuz odamga nima beradi?
- Yovuz odam ranzovari yaratish uchun ushbu xakerlardan qanday foydalanadi

SGX zararli dasturi: yovuz odamlar yangi Intel texnologiyasidan u mo'ljallanganidan boshqa maqsadlarda qanday foydalanmoqda

Yuqorida aytilganlarning barchasiga asoslanib, anklav faqat xost dasturiga xizmat ko'rsatishga qodir ekanligi va anklav o'z tashabbusini, shu jumladan zararli tashabbuslarni amalga oshira olmasligi umumiy qabul qilinadi. Bu virus yozuvchilar uchun anklavlar amaliy ahamiyatga ega emasligini anglatadi. Ushbu shoshilinch taxmin SGX himoyasi assimetrik bo'lishining sabablaridan biridir: xost ilovasi kodi anklav xotirasiga kira olmaydi, anklav kodi esa istalgan xost ilovasi xotira manzilini o'qishi va yozishi mumkin.

Shuning uchun, agar zararli anklav kodi xost ilovasi nomidan o'zboshimchalik bilan tizim qo'ng'iroqlarini amalga oshirishi, uning nomidan o'zboshimchalik kodini bajarishi, xost ilovasi xotirasini skanerlashi va undagi noto'g'ri ROP zanjirlarini topishi mumkin bo'lsa, u xost ilovasi ustidan to'liq nazoratni qo'lga kiritishi mumkin edi. yashirin rejim. U nafaqat foydalanuvchi fayllarini o'g'irlashi va shifrlashi, balki foydalanuvchi nomidan ham harakat qilishi mumkin. Masalan, uning nomidan fishing xatlarini yuboring yoki DoS hujumlarini amalga oshiring. Hatto eng zamonaviy himoya mexanizmlaridan ham qo'rqmasdan, masalan, kanareykalarni yig'ish va manzilni tozalash.

Biz sizga tajovuzkorlar o'zlarining zararli maqsadlarida SGXdan foydalanish uchun yuqorida tavsiflangan cheklovlarni engib o'tish uchun foydalanadigan bir nechta xakerlarni ko'rsatamiz: ROP hujumlari. Yoki xost dastur jarayoni sifatida yashiringan o'zboshimchalik bilan kodni bajarish (zararli dastur tomonidan tez-tez ishlatiladigan protsessor bo'shlig'iga o'xshash) yoki tayyor zararli dasturni niqoblash (uning zararli dasturini antiviruslar va boshqa himoya mexanizmlari ta'qibidan qutqarish uchun).

Manzillarni tekshirib ko'ring, ularni o'qish mumkinmi yoki yo'qmi

Anklav virtual manzillar maydonining qaysi diapazonlari xost dasturiga kirish mumkinligini bilmaganligi sababli va kirish imkoni bo'lmagan manzilni o'qishga urinayotganda anklav o'z faoliyatini to'xtatishga majbur bo'lganligi sababli, tajovuzkor xato qilish yo'lini topish vazifasiga duch keladi. manzil maydonini toqat bilan skanerlang. Mavjud virtual manzillarni xaritalash usulini toping. Yomon bu muammoni Intelning TSX texnologiyasidan noto'g'ri foydalanish orqali hal qiladi. TSX ning nojo'ya ta'sirlaridan birini qo'llaydi: agar xotiraga kirish funksiyasi TSX tranzaksiyasiga joylashtirilgan bo'lsa, unda noto'g'ri manzillarga kirishdan kelib chiqadigan istisnolar operatsion tizimga etib bormasdan TSX tomonidan bostiriladi. Agar yaroqsiz xotira manziliga kirishga urinilsa, butun anklav dasturi emas, balki faqat joriy tranzaksiya bekor qilinadi. Bu. TSX anklavga tranzaksiya ichidagi istalgan manzilga xavfsiz kirish imkonini beradi - buzilib ketish xavfisiz.

agar belgilangan manzil mavjud xost ilovasida TSX tranzaksiyasi ko'pincha muvaffaqiyatli bo'ladi. Kamdan kam hollarda, uzilishlar (masalan, rejalashtiruvchining uzilishlari), keshni o'chirish yoki bir vaqtning o'zida bir nechta jarayonlar tomonidan xotira joylashuvini o'zgartirish kabi tashqi ta'sirlar tufayli muvaffaqiyatsiz bo'lishi mumkin. Bunday kamdan-kam hollarda TSX xatolik vaqtinchalik ekanligini ko'rsatuvchi xato kodini qaytaradi. Bunday hollarda siz faqat tranzaksiyani qayta boshlashingiz kerak.

agar ko'rsatilgan manzil mavjud emas xost ilovasida TSX sodir bo'lgan istisnoni bostiradi (OTga xabar berilmaydi) va tranzaksiyani bekor qiladi. Xato kodi anklav kodiga qaytariladi, shunda u tranzaksiya bekor qilinganiga munosabat bildira oladi. Ushbu xato kodlari ko'rib chiqilayotgan manzil xost ilovasida mavjud emasligini ko'rsatadi.

SGX zararli dasturi: yovuz odamlar yangi Intel texnologiyasidan u mo'ljallanganidan boshqa maqsadlarda qanday foydalanmoqda

SGX zararli dasturi: yovuz odamlar yangi Intel texnologiyasidan u mo'ljallanganidan boshqa maqsadlarda qanday foydalanmoqda

TSXni anklav ichidan bu manipulyatsiyasi yovuz odam uchun yoqimli xususiyatga ega: ko'pchilik apparat ta'minoti hisoblagichlari anklav kodi bajarilayotgan vaqtda yangilanmaganligi sababli, anklav ichida amalga oshirilgan TSX tranzaktsiyalarini kuzatib bo'lmaydi. Shunday qilib, TSX ning zararli manipulyatsiyasi operatsion tizim uchun mutlaqo ko'rinmas bo'lib qoladi.

Bundan tashqari, yuqoridagi buzg'unchilik hech qanday tizim qo'ng'iroqlariga tayanmaganligi sababli, uni oddiygina tizim qo'ng'iroqlarini bloklash orqali aniqlash yoki oldini olish mumkin emas; odatda tuxum oviga qarshi kurashda ijobiy natija beradi.

Yovuz odam ROP zanjirini yaratish uchun mos keladigan gadjetlar uchun xost ilovasi kodini qidirish uchun yuqorida tavsiflangan buzg'unchilikdan foydalanadi. Shu bilan birga, u har bir manzilni tekshirishga hojat yo'q. Virtual manzil maydonining har bir sahifasidan bitta manzilni tekshirish kifoya. Barcha 16 gigabayt xotirani tekshirish taxminan 45 daqiqa davom etadi (Intel i7-6700K da). Natijada, yovuz odam ROP zanjirini yaratish uchun mos bo'lgan bajariladigan sahifalar ro'yxatini oladi.

Yozish qobiliyati uchun manzillarni tekshirish uchun hack

ROP hujumining anklav versiyasini amalga oshirish uchun tajovuzkor xost ilovasining yozilishi mumkin bo'lgan foydalanilmaydigan xotira maydonlarini izlay olishi kerak. Tajovuzkor ushbu xotira joylaridan soxta stek ramkasini kiritish va foydali yukni (qobiq kodini) kiritish uchun foydalanadi. Xulosa shuki, zararli anklav xost ilovasidan o'zi uchun xotira ajratishni talab qila olmaydi, aksincha, xost ilovasi tomonidan ajratilgan xotiradan noto'g'ri foydalanishi mumkin. Agar, albatta, u anklavni buzmasdan shunday hududlarni topishga muvaffaq bo'lsa.

Yovuz odam bu qidiruvni TSX ning boshqa yon ta'siridan foydalanish orqali amalga oshiradi. Birinchidan, avvalgi holatda bo'lgani kabi, u manzilni mavjudligini tekshiradi va keyin ushbu manzilga mos keladigan sahifaning yozilishi mumkinligini tekshiradi. Buning uchun yovuz odam quyidagi buzg'unchilikdan foydalanadi: u TSX tranzaksiyasiga yozish funksiyasini joylashtiradi va u tugallangandan so'ng, lekin u tugallanmay turib, tranzaksiyani majburan bekor qiladi (aniq abort).

TSX tranzaksiyasining qaytarish kodiga qarab, tajovuzkor uni yozish mumkinmi yoki yo'qligini tushunadi. Agar bu "aniq abort" bo'lsa, yovuz odam buni amalga oshirganida, yozuv muvaffaqiyatli bo'lishini tushunadi. Agar sahifa faqat o'qish uchun mo'ljallangan bo'lsa, u holda tranzaktsiya "aniq bekor qilish" dan boshqa xato bilan tugaydi.

SGX zararli dasturi: yovuz odamlar yangi Intel texnologiyasidan u mo'ljallanganidan boshqa maqsadlarda qanday foydalanmoqda

TSX-ning ushbu manipulyatsiyasi yovuz odam uchun yoqimli bo'lgan yana bir xususiyatga ega (apparat ishlashi hisoblagichlari orqali kuzatishning mumkin emasligi bilan bir qatorda): barcha xotira yozish buyruqlari faqat tranzaksiya muvaffaqiyatli bo'lganda bajarilganligi sababli, tranzaktsiyani bajarishga majbur qilish problangan xotira katakchasining ishlashini ta'minlaydi. o'zgarishsiz qoladi.

Boshqarish oqimini qayta yo'naltirish uchun xack

Anklavdan ROP hujumini amalga oshirayotganda - an'anaviy ROP hujumlaridan farqli o'laroq, tajovuzkor hujum qilingan dasturdagi xatolardan foydalanmasdan (bufer to'lib ketishi yoki shunga o'xshash narsa) RIP registrini boshqarishi mumkin. Buzg'unchi to'g'ridan-to'g'ri stekda saqlangan RIP registrining qiymatini qayta yozishi mumkin. Xususan, u ushbu registrning qiymatini o'zining ROP zanjiri bilan almashtirishi mumkin.

Biroq, agar ROP zanjiri uzun bo'lsa, xost ilovasi stekining katta qismini qayta yozish ma'lumotlarning buzilishiga va dasturning kutilmagan xatti-harakatlariga olib kelishi mumkin. O‘z hujumini yashirincha amalga oshirishga intilayotgan yovuz odamning bu ahvolidan ko‘ngli to‘lmaydi. Shuning uchun u o'zi uchun soxta vaqtinchalik stek ramkasini yaratadi va unda ROP zanjirini saqlaydi. Soxta stek ramkasi tasodifiy yoziladigan xotira joyiga joylashtiriladi va haqiqiy stek buzilmasdan qoladi.

SGX zararli dasturi: yovuz odamlar yangi Intel texnologiyasidan u mo'ljallanganidan boshqa maqsadlarda qanday foydalanmoqda

Yuqorida sanab o'tilgan uchta hiyla yovuz odamga nima beradi?

(1) Birinchidan, zararli anklav orqali manzillarni o'qish mumkinmi yoki yo'qligini tekshirish uchun sindirish, – xost ilovasida suiiste'mol qilinadigan ROP gadjetlarini qidiradi.

SGX zararli dasturi: yovuz odamlar yangi Intel texnologiyasidan u mo'ljallanganidan boshqa maqsadlarda qanday foydalanmoqda

(2) Keyin tomonidan yozilishi uchun manzillarni tekshirish uchun hack, – zararli anklav xost ilovasi xotirasida foydali yukni kiritish uchun mos bo‘lgan maydonlarni aniqlaydi.

SGX zararli dasturi: yovuz odamlar yangi Intel texnologiyasidan u mo'ljallanganidan boshqa maqsadlarda qanday foydalanmoqda

(3) Keyinchalik, anklav (1)-bosqichda topilgan gadjetlardan ROP zanjirini yaratadi va bu zanjirni xost ilovalari stekiga kiritadi.

SGX zararli dasturi: yovuz odamlar yangi Intel texnologiyasidan u mo'ljallanganidan boshqa maqsadlarda qanday foydalanmoqda

(4) Nihoyat, xost ilovasi oldingi bosqichda yaratilgan ROP zanjiriga duch kelganida, zararli foydali yuk bajarila boshlaydi - xost ilovasining imtiyozlari va tizim qo'ng'iroqlarini amalga oshirish qobiliyati.

Qanday qilib yovuz odam ranzovari yaratish uchun bu xakerlardan foydalanadi

Xost ilovasi boshqaruvni ECALLlardan biri orqali anklavga o'tkazgandan so'ng (bu anklav zararli ekanligiga shubha qilmasdan), zararli anklav kodni kiritish uchun xost ilovasi xotirasida bo'sh joy qidiradi (bo'sh joy sifatida ushbu hujayralar ketma-ketligini oladi) nol bilan to'ldirilgan). Keyin orqali manzillarni o'qish mumkinmi yoki yo'qligini tekshirish uchun sindirish, – anklav xost ilovasida bajariladigan sahifalarni qidiradi va joriy katalogda “RANSOM” nomli yangi faylni yaratuvchi ROP zanjirini hosil qiladi (haqiqiy hujumda anklav mavjud foydalanuvchi fayllarini shifrlaydi) va to‘lov xabarini ko‘rsatadi. Shu bilan birga, xost dasturi anklav oddiygina ikkita raqamni qo'shayotganiga sodda tarzda ishonadi. Bu kodda qanday ko'rinadi?

Idrok qilish qulayligi uchun keling, ta'riflar orqali ba'zi mnemonikalarni kiritamiz:

SGX zararli dasturi: yovuz odamlar yangi Intel texnologiyasidan u mo'ljallanganidan boshqa maqsadlarda qanday foydalanmoqda

Foydali yukni bajargandan so'ng xost dasturining normal ishlashini tiklash uchun biz RSP va RBP registrlarining asl qiymatlarini saqlaymiz:

SGX zararli dasturi: yovuz odamlar yangi Intel texnologiyasidan u mo'ljallanganidan boshqa maqsadlarda qanday foydalanmoqda

Biz mos stek ramkasini qidirmoqdamiz ("boshqaruv oqimini qayta yo'naltirish uchun buzish" bo'limidagi kodga qarang).

Tegishli ROP gadjetlarini topish:

SGX zararli dasturi: yovuz odamlar yangi Intel texnologiyasidan u mo'ljallanganidan boshqa maqsadlarda qanday foydalanmoqda

Foydali yukni kiritish uchun joy topish:

SGX zararli dasturi: yovuz odamlar yangi Intel texnologiyasidan u mo'ljallanganidan boshqa maqsadlarda qanday foydalanmoqda

Biz ROP zanjirini quramiz:

SGX zararli dasturi: yovuz odamlar yangi Intel texnologiyasidan u mo'ljallanganidan boshqa maqsadlarda qanday foydalanmoqda

Zararli dasturlarga qarshi kurashish uchun yaratilgan Intelning SGX texnologiyasidan yovuz odamlar qarama-qarshi maqsadlarga erishish uchun shunday foydalanadilar.

Manba: www.habr.com

a Izoh qo'shish