LVI - CPU-da spekulyativ icra mexanizminə hücumların yeni sinfi

ictimailəşdirildi hücumların yeni sinfi haqqında məlumat LVI (Yük Dəyəri Enjeksiyonu, CVE-2020-0551) Intel SGX anklavlarından və digər proseslərdən açarları və məxfi məlumatları sızdırmaq üçün istifadə oluna bilən Intel CPU-larında spekulyativ icra mexanizmində.

Hücumların yeni sinfi hücumlarda istifadə edilən eyni mikroarxitektura strukturlarının manipulyasiyasına əsaslanır MDS (Mikroarxitektura məlumatlarının seçilməsi), Spectre və Meltdown. Eyni zamanda, yeni hücumlar Meltdown, Spectre, MDS və digər oxşar hücumlara qarşı mövcud qorunma üsulları ilə bloklanmır. Effektiv LVI mühafizəsi CPU-da aparat dəyişikliklərini tələb edir. Mühafizəni proqramlı şəkildə təşkil edərkən, yaddaşdan hər yükləmə əməliyyatından sonra kompilyator tərəfindən LFENCE təlimatını əlavə etməklə və RET təlimatını POP, LFENCE və JMP ilə əvəz etməklə, həddən artıq yük qeyd olunur - tədqiqatçıların fikrincə, proqram təminatının tam qorunması azalmağa səbəb olacaqdır. performans 2-19 dəfə.

Problemin qarşısını almaqda çətinliklərin bir hissəsi hücumun hazırda praktikidən daha çox nəzəri olması ilə kompensasiya edilir (hücum nəzəri cəhətdən mümkündür, lakin həyata keçirilməsi çox çətindir və yalnız sintetik testlərdə təkrarlana bilər).
Intel mənimsənildi problem orta təhlükə səviyyəsinə malikdir (5.6-dan 10) və azad edilib SGX mühiti üçün proqram təminatının və SDK-nın yenilənməsi, burada bir həll yolu ilə hücumun qarşısını almağa çalışdı. Təklif olunan hücum üsulları hazırda yalnız Intel prosessorlarına şamil edilir, lakin Meltdown sinifli hücumların tətbiq oluna biləcəyi digər prosessorlar üçün LVI-nın uyğunlaşdırılması imkanını istisna etmək olmaz.

Problem ötən aprel ayında Leuven Universitetindən tədqiqatçı Co Van Bulk tərəfindən müəyyən edilmişdi, bundan sonra digər universitetlərdən 9 tədqiqatçının iştirakı ilə beş əsas hücum metodu işlənib hazırlanmışdır ki, onların hər biri daha spesifik metodların mövcud olmasına imkan verir. seçimlər. Müstəqil olaraq, bu ilin fevral ayında Bitdefender tədqiqatçıları da aşkar etdi LVI hücum variantlarından biri və bu barədə Intel-ə məlumat verdi. Hücum variantları əvvəllər istifadə edilmiş saxlama buferi (SB, Mağaza Buferi), doldurma buferi (LFB, Xətt Doldurma Buferi), FPU kontekstini dəyişdirmə buferi və birinci səviyyəli keş (L1D) kimi müxtəlif mikroarxitektura strukturlarının istifadəsi ilə fərqlənir. kimi hücumlarda ZombieLoad, RIDL, Fallout, LazyFP, qabaqcadan и Meltdown.

LVI, CPU-da spekulyativ icra mexanizminə hücumların yeni sinfidir

Əsas fəxri adlar MDS hücumlarına qarşı LVI ondan ibarətdir ki, MDS spekulyativ nasazlıqların aradan qaldırılması və ya yükləmə və saxlama əməliyyatlarından sonra keşdə qalan mikroarxitektura strukturlarının məzmununun müəyyən edilməsini manipulyasiya edir.
LVI hücumları qurbanın kodunun sonrakı spekulyativ icrasına təsir etmək üçün təcavüzkarın məlumatlarını mikroarxitektura strukturlarına daxil etməyə imkan verir. Bu manipulyasiyalardan istifadə edərək təcavüzkar hədəf CPU nüvəsində müəyyən kodu icra edərkən digər proseslərdə şəxsi məlumat strukturlarının məzmununu çıxara bilər.

LVI, CPU-da spekulyativ icra mexanizminə hücumların yeni sinfidir

Uğrunda istismar problemi qurban prosesinin kodunda görüşməlidir təcavüzkar tərəfindən idarə olunan dəyərin yükləndiyi xüsusi kod ardıcıllığı (qadcetlər) və bu dəyərin yüklənməsi istisnaların (nöqsan, dayandırılması və ya yardım) atılmasına səbəb olur, nəticədən imtina edir və təlimatı yenidən yerinə yetirir. İstisna işləndikdə, gadgetda işlənmiş məlumatların sızdığı bir spekulyativ pəncərə görünür. Xüsusilə, prosessor spekulyativ rejimdə kod parçasını (qadceti) icra etməyə başlayır, sonra proqnozun əsaslandırılmadığını müəyyən edir və əməliyyatları ilkin vəziyyətinə qaytarır, lakin spekulyativ icra zamanı emal edilmiş məlumatlar L1D keş yaddaşına yerləşdirilir. və mikroarxitektura buferləridir və üçüncü tərəf kanalları vasitəsilə qalıq məlumatların müəyyən edilməsi üçün məlum üsullardan istifadə etməklə onlardan əldə etmək mümkündür.

"Kömək" istisnası, "nöqsan" istisnasından fərqli olaraq, proqram işləyicilərini çağırmadan prosessor tərəfindən daxili olaraq idarə olunur. Yardım, məsələn, yaddaş səhifəsi cədvəlindəki A (Accessed) və ya D (Çirkli) bitinin yenilənməsi lazım olduqda baş verə bilər. Digər proseslərə hücumun həyata keçirilməsində əsas çətinlik qurban prosesini manipulyasiya etməklə yardımın baş verməsini necə başlamaqdır. Hazırda bunun etibarlı yolları yoxdur, lakin gələcəkdə onların tapılması mümkündür. Hücumun həyata keçirilməsi ehtimalı indiyə qədər yalnız Intel SGX anklavları üçün təsdiqlənib, digər ssenarilər nəzəri və ya sintetik şəraitdə təkrarlana bilər (koda müəyyən qadcetlərin əlavə edilməsi tələb olunur)

LVI, CPU-da spekulyativ icra mexanizminə hücumların yeni sinfidir

LVI, CPU-da spekulyativ icra mexanizminə hücumların yeni sinfidir

Mümkün hücum vektorları:

  • Kernel strukturlarından istifadəçi səviyyəsindəki prosesə məlumat sızması. Linux nüvəsinin Spectre 1 hücumlarına qarşı qorunması, həmçinin SMAP (Supervisor Mode Access Prevention) mühafizə mexanizmi LVI hücumu ehtimalını əhəmiyyətli dərəcədə azaldır. Gələcəkdə daha sadə LVI hücum üsulları müəyyən edilərsə, nüvəyə əlavə qorunma əlavə etmək lazım ola bilər.
  • Müxtəlif proseslər arasında məlumat sızması. Hücum tətbiqdə müəyyən kod hissələrinin olmasını və hədəf prosesində istisna atmaq üçün metodun müəyyən edilməsini tələb edir.
  • Host mühitindən qonaq sisteminə məlumat sızması. Hücum, həyata keçirilməsi çətin olan müxtəlif addımlar və sistemdə fəaliyyətin proqnozlaşdırılmasını tələb edən çox mürəkkəb kimi təsnif edilir.
  • Müxtəlif qonaq sistemlərində proseslər arasında məlumat sızması. Hücum vektoru müxtəlif proseslər arasında məlumat sızmasını təşkil etməyə yaxındır, lakin əlavə olaraq qonaq sistemləri arasında izolyasiyadan yan keçmək üçün kompleks manipulyasiyalar tələb edir.

Tədqiqatçılar tərəfindən nəşr edilmişdir bir prototiplər hücumun həyata keçirilməsi prinsiplərinin nümayişi ilə, lakin onlar hələ real hücumlar həyata keçirmək üçün uyğun deyil. Birinci misal, qaytarılma yönümlü proqramlaşdırmaya bənzər qurban prosesində spekulyativ kodun icrasını yönləndirməyə imkan verir (ROP, Qayıdış yönümlü proqramlaşdırma). Bu misalda qurban, lazımi gadgetları ehtiva edən xüsusi hazırlanmış bir prosesdir (həqiqi üçüncü tərəf proseslərinə hücum tətbiq etmək çətindir). İkinci nümunə bizə Intel SGX anklavı daxilində AES şifrələməsi zamanı hesablamalara müdaxilə etməyə və şifrələmə üçün istifadə olunan açarın dəyərini bərpa etmək üçün təlimatların spekulyativ icrası zamanı məlumat sızmasını təşkil etməyə imkan verir.


Mənbə: opennet.ru

Добавить комментарий