SEV (Secure Encrypted Virtualization) himoya mexanizmini chetlab o'tishga imkon beruvchi AMD protsessorlaridagi zaiflik

Helmholtz Axborot xavfsizligi markazi (CISPA) tadqiqotchilari virtual mashinalarni gipervisor yoki xost tizimi ma'muri tomonidan aralashuvlardan himoya qilish uchun virtualizatsiya tizimlarida qo'llaniladigan AMD SEV (Secure Encrypted Virtualization) xavfsizlik mexanizmini buzish uchun CacheWarp hujumining yangi usulini nashr etdilar. Taklif etilgan usul gipervisorga kirish huquqiga ega bo'lgan tajovuzkorga uchinchi tomon kodini bajarish va AMD SEV yordamida himoyalangan virtual mashinada imtiyozlarni oshirish imkonini beradi.

Hujum INVD protsessorining buyrug'ini bajarish paytida keshning noto'g'ri ishlashi natijasida yuzaga kelgan zaiflikdan (CVE-2023-20592) foydalanishga asoslangan bo'lib, uning yordamida xotira va keshda ma'lumotlarning mos kelmasligiga erishish mumkin. , va SEV-ES va SEV-SNP kengaytmalari asosida amalga oshirilgan virtual mashina xotirasining yaxlitligini saqlash mexanizmlarini aylanib o'tish. Zaiflik birinchi avloddan uchinchi avlodgacha bo'lgan AMD EPYC protsessorlariga ta'sir qiladi.

Uchinchi avlod AMD EPYC protsessorlari (Zen 3) uchun muammo kecha AMD tomonidan chiqarilgan noyabr mikrokodi yangilanishida hal qilindi (tuzatish hech qanday ishlashning pasayishiga olib kelmaydi). AMD EPYC (Zen 1 va Zen 2) ning birinchi va ikkinchi avlodlari uchun himoya ta'minlanmaydi, chunki bu protsessorlar virtual mashinalar uchun yaxlitlikni nazorat qilishni ta'minlaydigan SEV-SNP kengaytmasini qo'llab-quvvatlamaydi. "Zen 4" mikroarxitekturasi asosidagi AMD AMD EPYC "Genoa" protsessorlarining to'rtinchi avlodi zaif emas.

AMD SEV texnologiyasi Amazon Web Services (AWS), Google Cloud, Microsoft Azure va Oracle Compute Infrastructure (OCI) kabi bulutli provayderlar tomonidan virtual mashina izolyatsiyasi uchun ishlatiladi. AMD SEV himoyasi virtual mashina xotirasini apparat darajasida shifrlash orqali amalga oshiriladi. Bundan tashqari, SEV-ES (shifrlangan holat) kengaytmasi CPU registrlarini himoya qiladi. Faqat joriy mehmon tizimi shifrlangan ma'lumotlarga kirish huquqiga ega va boshqa virtual mashinalar va gipervisor ushbu xotiraga kirishga harakat qilganda, ular shifrlangan ma'lumotlar to'plamini oladi.

AMD EPYC protsessorlarining uchinchi avlodi ichki xotira sahifalari jadvallarining xavfsiz ishlashini ta'minlaydigan SEV-SNP (Secure Nested Paging) qo'shimcha kengaytmasini taqdim etdi. Umumiy xotira shifrlash va registrlarni izolyatsiya qilishdan tashqari, SEV-SNP gipervisor tomonidan VMga o'zgarishlarni oldini olish orqali xotira yaxlitligini himoya qilish uchun qo'shimcha chora-tadbirlarni amalga oshiradi. Shifrlash kalitlari chipga o'rnatilgan, ARM arxitekturasi asosida amalga oshiriladigan alohida PSP (Platform Security Processor) protsessorida boshqariladi.

Taklif etilgan hujum usulining mohiyati keshda to'plangan ma'lumotlarni xotiraga tashlamasdan (qayta yozish) iflos sahifalar keshidagi bloklarni (chiziqlarni) bekor qilish uchun INVD ko'rsatmasidan foydalanishdir. Shunday qilib, usul sizga xotira holatini o'zgartirmasdan keshdan o'zgartirilgan ma'lumotlarni olib tashlashga imkon beradi. Hujumni amalga oshirish uchun virtual mashinaning ishini ikki joyda to'xtatish uchun dasturiy ta'minotdan istisnolardan (noto'g'ri in'ektsiya) foydalanish taklif etiladi: birinchi navbatda, tajovuzkor "wbnoinvd" ko'rsatmasini chaqiradi, unda to'plangan barcha xotira yozish operatsiyalarini qayta o'rnatish. kesh va ikkinchi o'rinda xotirada aks ettirilmagan yozish operatsiyalarini eski holatga qaytarish uchun "invd" buyrug'ini chaqiradi.

Tizimingizda zaifliklar mavjudligini tekshirish uchun AMD SEV orqali himoyalangan virtual mashinaga istisno kiritish va xotiraga qayta o'rnatilmagan VMdagi o'zgarishlarni qaytarish imkonini beruvchi ekspluatatsiya prototipi chop etildi. O'zgarishlarni orqaga qaytarish stekdagi eski qaytish manzilini qaytarish orqali dastur oqimini o'zgartirish yoki autentifikatsiya atributi qiymatini qaytarish orqali ilgari autentifikatsiya qilingan eski seansning kirish parametrlaridan foydalanish uchun ishlatilishi mumkin.

Misol uchun, tadqiqotchilar ipp-kripto kutubxonasida RSA-CRT algoritmini amalga oshirishda Bellcore hujumini amalga oshirish uchun CacheWarp usulidan foydalanish imkoniyatini ko'rsatdilar, bu raqamli kalitni hisoblashda xatolarni almashtirish orqali shaxsiy kalitni tiklashga imkon berdi. imzo. Shuningdek, u mehmon tizimiga masofadan ulanishda seansni tekshirish parametrlarini OpenSSH ga qanday o‘zgartirishingiz va Ubuntu 20.04 da ildiz huquqlarini olish uchun sudo yordam dasturini ishga tushirganda tekshirish holatini qanday o‘zgartirishingiz mumkinligini ko‘rsatadi. Ekspluatatsiya AMD EPYC 7252, 7313P va 7443 protsessorli tizimlarda sinovdan o'tkazildi.

Manba: opennet.ru

a Izoh qo'shish