Sistem zəngləri üçün Linux nüvəsinin yığın ünvanlarını təsadüfiləşdirmək üçün yamaqlar təqdim edildi

Kees Cook, kernel.org saytının keçmiş baş sistem inzibatçısı və Ubuntu Təhlükəsizlik Qrupunun lideri, hazırda Google-da Android və ChromeOS-un təhlükəsizliyini təmin etmək üçün işləyir, sistem zənglərini emal edərkən nüvə yığınında ofsetləri təsadüfiləşdirmək üçün bir sıra yamaqlar dərc edib. Yamalar yığının yerləşdirilməsini dəyişdirərək nüvə təhlükəsizliyini yaxşılaşdırır, yığına hücumları daha çətin və daha az uğurlu edir. İlkin tətbiq ARM64 və x86/x86_64 prosessorlarını dəstəkləyir.

Yamanın orijinal ideyası PaX RANDKSTACK layihəsinə aiddir. 2019-cu ildə Intel-dən mühəndis Elena Reshetova bu ideyanın əsas Linux nüvəsinə daxil olmaq üçün uyğun bir tətbiq yaratmağa çalışdı. Daha sonra təşəbbüs nüvənin əsas versiyası üçün uyğun bir tətbiq təqdim edən Kees Cook tərəfindən götürüldü. Yamaqların 5.13 buraxılışının bir hissəsi kimi daxil edilməsi planlaşdırılır. Rejim standart olaraq deaktiv ediləcək. Onu aktivləşdirmək üçün “randomize_kstack_offset=on/off” kernel əmr xətti parametri və CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT parametri təklif olunur. Rejimin işə salınması ilə bağlı əlavə məsrəf təxminən 1% performans itkisi ilə qiymətləndirilir.

Təklif olunan mühafizənin mahiyyəti hər bir sistem çağırışı üçün təsadüfi stek ofsetinin seçilməsindən ibarətdir ki, bu da ünvan məlumatlarını aldıqdan sonra belə yaddaşda stek düzümünü müəyyən etməyi çətinləşdirir, çünki növbəti sistem çağırışı stekin əsas ünvanını dəyişəcək. PaX RANDKSTACK tətbiqindən fərqli olaraq, nüvəyə daxil edilmək üçün təklif olunan yamaqlarda, randomizə ilkin mərhələdə deyil (cpu_current_top_of_stack) deyil, pt_regs strukturunu təyin etdikdən sonra həyata keçirilir ki, bu da randomizə edilmiş ofseti müəyyən etmək üçün ptrace əsaslı metodlardan istifadə etməyi qeyri-mümkün edir. uzun müddət davam edən sistem çağırışı zamanı.

Mənbə: opennet.ru

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