Linux nüvəsində spekulyativ kod icrası problemi skaneri olan Kasper mövcuddur

Amsterdam Azad Universitetinin tədqiqatçılar qrupu, prosessorda spekulyativ kodun icrası nəticəsində yaranan Spectre sinif zəifliklərindən istifadə etmək üçün istifadə oluna bilən Linux nüvəsindəki kod parçalarını müəyyən etmək üçün nəzərdə tutulmuş Kasper alət dəstini nəşr edib. Alətlər dəsti üçün mənbə kodu Apache 2.0 lisenziyası altında paylanır.

Xatırladaq ki, yaddaşın məzmununu müəyyən etməyə imkan verən Spectre v1 kimi hücumların həyata keçirilməsi üçün imtiyazlı kodun tərkibində müəyyən ardıcıllıqla əmrlərin (qadcetlərin) olması tələb olunur ki, bu da göstərişlərin spekulyativ icrasına gətirib çıxarır. . Optimallaşdırma məqsədləri üçün prosessor bu cür qadcetləri spekulyativ rejimdə icra etməyə başlayır, sonra budaq proqnozunun əsaslandırılmadığını müəyyən edir və əməliyyatları ilkin vəziyyətinə qaytarır, lakin spekulyativ icra zamanı işlənmiş məlumatlar keş və mikroarxitektura buferlərində başa çatır və üçüncü tərəf kanalları vasitəsilə qalıq məlumatları müəyyən edən müxtəlif üsullardan istifadə etməklə onlardan əldə etmək mümkündür.

Tipik nümunələrin axtarışına əsaslanan Spectre zəifliyi üçün qadcetlərin skan edilməsi üçün əvvəllər mövcud olan alətlər çox yüksək səviyyədə yalançı pozitivlər göstərdi, eyni zamanda bir çox real qacetlər (təcrübələr göstərdi ki, bu cür alətlərlə müəyyən edilmiş qadcetlərin 99%-i hücumlar üçün istifadə edilə bilməz). , və hücuma səbəb ola biləcək işləyən qadcetlərin 33%-i fərq edilməyib).

Problemli qadcetlərin müəyyən edilməsinin keyfiyyətini artırmaq üçün Kasper təcavüzkarın Spectre sinfi hücumlarının həyata keçirilməsinin hər bir addımında istifadə edə biləcəyi zəiflikləri modelləşdirir - məlumatların idarə edilməsinə imkan verən problemlər modelləşdirilir (məsələn, istifadə edərək sonrakı spekulyativ icraya təsir etmək üçün təcavüzkar məlumatlarını mikroarxitektura strukturlarında əvəz etmək). LVI sinif hücumları), məxfi məlumatlara giriş əldə etmək (məsələn, bufer sərhədlərindən kənara çıxdıqda və ya yaddaşdan azad edildikdən sonra istifadə edərkən) və məxfi məlumatları sızdırmaq (məsələn, prosessor keşinin vəziyyətini təhlil etməklə və ya MDS metodundan istifadə etməklə).

Linux nüvəsində spekulyativ kod icrası problemi skaneri olan Kasper mövcuddur

Sınaq zamanı nüvə Kasper iş vaxtı kitabxanaları və LLVM səviyyəsində işləyən yoxlamalarla əlaqələndirilir. Yoxlama prosesi spekulyativ kodun icrasını təqlid edir, yoxlama nöqtəsi-bərpa mexanizmindən istifadə etməklə həyata keçirilir ki, bu da xüsusi olaraq səhv proqnozlaşdırılan kod bölməsini yerinə yetirir və sonra filial başlamazdan əvvəl orijinal vəziyyətinə qayıdır. Kasper həmçinin müxtəlif proqram təminatı və aparat təminatı zəifliklərini simulyasiya etməyə çalışır, memarlıq və mikroarxitektura effektlərinin təsirini təhlil edir və mümkün təcavüzkar hərəkətlərinin qeyri-səlis testini həyata keçirir. İcra axınlarını təhlil etmək üçün Linux nüvəsi üçün DataFlowSanitizer portu istifadə olunur və qeyri-müəyyən test üçün syzkaller paketinin dəyişdirilmiş versiyası istifadə olunur.

Linux nüvəsində spekulyativ kod icrası problemi skaneri olan Kasper mövcuddur

Kasper istifadə edərək Linux nüvəsinin skanı təlimatların spekulyativ icrası zamanı potensial məlumat sızmasına səbəb olan əvvəllər naməlum olan 1379 qadceti müəyyən etdi. Qeyd olunur ki, ola bilsin ki, onlardan yalnız bəziləri real problemlər yarada bilər, ancaq nəzəri deyil, real təhlükənin olduğunu nümayiş etdirmək üçün problemli kod fraqmentlərindən biri üçün informasiyaya səbəb olan istismarın işlək prototipi hazırlanıb. nüvə yaddaşından sızma.

Mənbə: opennet.ru

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