AMD prosessorlarının spekulyativ icra mexanizmində zəiflik

Grsecurity layihəsi qeyd-şərtsiz irəliləmə əməliyyatlarından sonra təlimatların spekulyativ icrası ilə bağlı AMD prosessorlarında yeni zəifliyin (CVE-2021-26341) təfərrüatlarını və hücum metodunun nümayişini dərc edib. Hücum uğurlu olarsa, zəiflik ixtiyari yaddaş sahələrinin məzmununu müəyyən etməyə imkan verir. Məsələn, tədqiqatçılar ePBF ləpə altsistemində imtiyazsız kodu icra etməklə ünvan düzümünü müəyyən etməyə və KASLR (kernel memory randomization) mühafizə mexanizmindən yan keçməyə imkan verən istismar hazırlayıblar. Kernel yaddaş məzmununun sızmasına səbəb ola biləcək digər hücum ssenariləri istisna edilə bilməz.

Zəiflik sizə şərait yaratmağa imkan verir ki, prosessor qabaqlayıcı icra zamanı yaddaşda atlama təlimatından dərhal sonra (SLS, Straight Line Speculation) təlimatı spekulyativ şəkildə emal etsin. Üstəlik, belə optimallaşdırma yalnız şərti keçid operatorları üçün deyil, həm də JMP, RET və CALL kimi birbaşa qeyd-şərtsiz keçidi nəzərdə tutan təlimatlar üçün işləyir. Qeyri-şərtsiz atlama təlimatlarından sonra icra üçün nəzərdə tutulmayan ixtiyari məlumatlar yerləşdirilə bilər. Filialın növbəti təlimatın icrasını nəzərdə tutmadığını müəyyən etdikdən sonra prosessor sadəcə vəziyyəti geri qaytarır və spekulyativ icraya məhəl qoymur, lakin təlimatın icrasının izi paylaşılan keşdə qalır və yan kanal axtarışı üsullarından istifadə edərək təhlil üçün əlçatan olur.

Spectre-v1 zəifliyinin istismarında olduğu kimi, hücum nüvədə spekulyativ icraya səbəb olan müəyyən ardıcıllıqların (qadcetlərin) olmasını tələb edir. Bu halda zəifliyin bloklanması kodda bu cür qadcetləri müəyyən etmək və onlara spekulyativ icranı bloklayan əlavə təlimatlar əlavə etməkdən ibarətdir. Spekulyativ icra üçün şərtlər eBPF virtual maşınında işləyən imtiyazsız proqramlardan istifadə etməklə də yaradıla bilər. eBPF-dən istifadə edərək qadcetlərin qurulması imkanını bloklamaq üçün sistemdə eBPF-ə imtiyazsız girişi deaktiv etmək tövsiyə olunur (“sysctl -w kernel.unprivileged_bpf_disabled=1”).

Zəiflik Zen1 və Zen2 mikroarxitekturasına əsaslanan prosessorlara, o cümlədən AMD EPYC və AMD Ryzen Threadripper prosessorlarının birinci və ikinci nəsillərinə, eləcə də AMD Ryzen 2000/3000/4000/5000, AMD Athlon, AMD Athlon X, AMD Ryzen Threadreadreadreadreadriyə təsir göstərir. PRO və APU seriyalı prosessorlar A. Təlimatların spekulyativ icrasını bloklamaq üçün filial əməliyyatlarından (RET, JMP, CALL) sonra INT3 və ya LFENCE təlimatlarına zəng etmək tövsiyə olunur.

Mənbə: opennet.ru

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