Retbleed Intel və AMD CPU-larının spekulyativ icra mexanizminə yeni bir hücumdur

ETH Zurich-dən olan bir qrup tədqiqatçı nüvə yaddaşından məlumat çıxarmağa və ya virtual maşınlardan host sisteminə hücum təşkil etməyə imkan verən CPU-da dolayı sıçrayışların spekulyativ icra mexanizminə yeni hücum müəyyən edib. Boşluqların kod adı Retbleed (CVE-2022-29900, CVE-2022-29901) olub və təbiətcə Spectre-v2 hücumlarına bənzəyir. Fərq, ünvanı yaddaşdan yükləmək, “jmp” təlimatından istifadə edərək dolayısı ilə tullanmaq əvəzinə, stekdən tullanmaq üçün ünvanı alan “ret” (qaytarma) təlimatını emal edərkən ixtiyari kodun spekulyativ icrasının təşkili ilə bağlıdır. və ya CPU reyestri.

Təcavüzkar səhv sıçrayış proqnozu üçün şərait yarada və proqramın icrası məntiqində nəzərdə tutulmayan kod blokuna məqsədyönlü spekulyativ keçid təşkil edə bilər. Nəhayət, prosessor budaq proqnozunun əsaslandırılmadığını müəyyən edəcək və əməliyyatı orijinal vəziyyətinə qaytaracaq, lakin spekulyativ icra zamanı işlənmiş məlumatlar keş və mikroarxitektura buferlərində yerləşəcəkdir. Səhv şəkildə yerinə yetirilən blok yaddaşa girişi həyata keçirirsə, onun spekulyativ icrası ümumi keşdə yerləşməyə və yaddaşdan oxunan məlumatlara səbəb olacaqdır.

Əməliyyatların spekulyativ icrasından sonra keşdə qalan məlumatları müəyyən etmək üçün təcavüzkar üçüncü tərəf kanalları vasitəsilə qalıq məlumatları müəyyən etmək üçün üsullardan istifadə edə bilər, məsələn, keşlənmiş və keşlənməyən məlumatlara giriş vaxtındakı dəyişiklikləri təhlil edə bilər. Fərqli imtiyaz səviyyəsindəki sahələrdən (məsələn, nüvə yaddaşından) məlumatın məqsədyönlü çıxarılması üçün "qadcetlər" istifadə olunur - xarici şərtlərdən asılı olaraq, yaddaşdan məlumatların spekulyativ oxunması üçün uyğun olan nüvədə mövcud olan əmrlərin ardıcıllığı. təcavüzkarın təsiri altına düşmək.

Şərti və dolayı filial təlimatlarından istifadə edən Spectre sinifinin klassik hücumlarından qorunmaq üçün əksər əməliyyat sistemləri dolayı filial əməliyyatlarını "ret" təlimatı ilə əvəz etməyə əsaslanan "retpoline" texnikasından istifadə edir, bunun üçün ayrıca stek vəziyyətinin proqnozlaşdırılması bloku nəzərdə tutulur. prosessorlarda istifadə olunur, filial proqnozlaşdırma blokundan istifadə etmir. 2018-ci ildə retpolinin tətbiqi zamanı hesab olunurdu ki, Spectre kimi ünvan manipulyasiyaları "ret" təlimatından istifadə edərək spekulyativ budaqlanma üçün praktiki deyil.

Retbleed hücum metodunu inkişaf etdirən tədqiqatçılar “ret” təlimatından istifadə edərək spekulyativ keçidin başlanması üçün mikroarxitektura şəraitinin yaradılması imkanını nümayiş etdirdilər və Linux nüvəsindəki zəiflikdən istifadə etmək üçün uyğun olan təlimat ardıcıllığını (qadcetləri) müəyyən etmək üçün hazır alətlər dəstini nəşr etdilər. hansı şəraitdə belə şərait yaranır.

Tədqiqat zamanı Intel CPU-ları olan sistemlərdə istifadəçi məkanında imtiyazsız bir prosesdən nüvə yaddaşından saniyədə 219 bayt sürətlə və 98% dəqiqliklə ixtiyari məlumatları çıxarmağa imkan verən işləyən ekspluat hazırlanmışdır. AMD prosessorlarında istismarın səmərəliliyi xeyli yüksəkdir - sızma sürəti saniyədə 3.9 KB təşkil edir. Praktik bir nümunə olaraq, /etc/shadow faylının məzmununu müəyyən etmək üçün təklif olunan istismardan necə istifadə olunacağını göstərir. Intel CPU-ları olan sistemlərdə kök parolun hashini müəyyən etmək üçün hücum 28 dəqiqəyə, AMD CPU-lu sistemlərdə isə 6 dəqiqəyə həyata keçirilib.

Hücum 6-cu ilin 8-cü rübündən əvvəl buraxılmış 3-2019 nəsil Intel prosessorları (o cümlədən Skylake) və 1-ci ilin ikinci rübündən əvvəl buraxılmış Zen 1, Zen 2+ və Zen 2021 mikroarxitekturalarına əsaslanan AMD prosessorları üçün təsdiqlənib. AMD Zen3 və Intel Alder Lake kimi daha yeni prosessor modellərində, eləcə də ARM prosessorlarında problem mövcud mühafizə mexanizmləri ilə bloklanır. Məsələn, IBRS (Indirect Branch Restricted Speculation) təlimatlarının istifadəsi hücumdan qorunmağa kömək edir.

Köhnə CPU-larda problemi proqramlı şəkildə bloklayan Linux nüvəsi və Xen hipervizoru üçün bir sıra dəyişikliklər hazırlanmışdır. Linux nüvəsi üçün təklif olunan yamaq 68 faylı dəyişdirir, 1783 sətir əlavə edir və 387 sətri silir. Təəssüf ki, qorunma əhəmiyyətli əlavə xərclərə səbəb olur - AMD və Intel prosessorlarında aparılan mətnlərdə performansın azalması 14% -dən 39% -ə qədər qiymətləndirilir. Yeni nəsil Intel CPU-larında mövcud olan və Linux 4.19 nüvəsindən bəri dəstəklənən IBRS təlimatlarına əsaslanan mühafizədən istifadə etmək daha məqsədəuyğundur.

Intel prosessorlarında, spekulyativ dolayı filial üçün ünvan dəyişdirilməsi Qaytarma Yığın Buferində aşağı axın baş verdiyi zaman baş verən xüsusiyyətə görə həyata keçirilir. Belə şərtlər yarandıqda, ret təlimatı adi dolayı sıçrayışlarda istifadə olunana bənzər ünvan seçimi məntiqini tətbiq etməyə başlayır. Linux nüvəsində belə bir geri axını başlatmaq üçün şərait yaradan və sistem zəngləri vasitəsilə əldə edilə bilən mindən çox yer tapıldı.

AMD prosessorlarında “ret” təlimatının spekulyativ icrası stek üçün xüsusi buferə (Qayda Ünvanı Yığına) istinad etmədən həyata keçirilir və budaq proqnozlaşdırma bloku “ret” göstərişini idarəetmənin qaytarılması kimi deyil, dolayı budaqdır və müvafiq olaraq dolayı keçidləri proqnozlaşdırarkən məlumatlardan proqnoz üçün istifadə edir. Bu şərtlər altında, sistem çağırışı ilə əldə edilə bilən faktiki olaraq hər hansı bir "ret" əməliyyatından istifadə edilə bilər.

Bundan əlavə, AMD CPU-larında dummy filialların həyata keçirilməsi ilə bağlı başqa bir problem (CVE-2022-23825, Filial Tipi Qarışıqlıq) var - filialın proqnozlaşdırılması üçün şərtlər hətta lazımi filial təlimatları olmadan da baş verə bilər ki, bu da filial proqnozlaşdırma buferinə heç bir əlaqə olmadan təsir göstərməyə imkan verir. "ret" göstərişi. Bu xüsusiyyət mühafizənin həyata keçirilməsini əhəmiyyətli dərəcədə çətinləşdirir və filialın proqnoz buferinin daha aktiv təmizlənməsini tələb edir. Nüvəyə tam qorunmanın əlavə edilməsinin 209% yerüstü artımla nəticələnəcəyi gözlənilir.

Mənbə: opennet.ru

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