OpenSSH inkişafçılarının sshd-ni bir neçə ayrı icra olunan fayla ayırma prosesi davam edib. May ayında həyata keçirilən bölünmənin birinci mərhələsində sshd-dən ayrı bir sshd-session prosesinə sessiya emalı ilə bağlı funksiyalar keçirilib, sshd-də isə yeni şəbəkə bağlantısını qəbul etmək və hər yeni sessiya üçün sshd-session-u işə salmaq üçün lazım olan funksionallıq qalıb. Dünən OpenSSH kod bazasına autentifikasiya həyata keçirən kodun sshd-session-dan sshd-auth-a keçirilməsi ilə bağlı daha bir prosesi əlavə edən dəyişiklik edilib.
sshd-auth prosesi sshd-session-dan işə salınır və autentifikasiya ilə bağlı məlumatları ayrı bir prosesin yaddaş məkanında əlavə izolyasiyaya imkan tanıyır. Bu, autentifikasiyadan əvvəl bağlantı mərhələlərinin emalı üçün istifadə olunan kodda hücumlar zamanı bu məlumatlara yaddaşda girişin əldə edilməsinə mane olacaq. Üstəlik, bu dəyişiklik yaddaş istehlakını bir qədər azaldacaq, çünki autentifikasiya ilə bağlı kod indi yalnız autentifikasiya prozesində yaddaşda olacaq, sonra isə sshd-auth prosesinin tamamlanması ilə yüklənəcək.
sshd, sshd-session və ssh-agent ilə paralel olaraq, sshd-auth prosesi üçün əməliyyat sisteminin hər açılışında icra olunan faylın təsadüfi yenidən düzəldilməsi tətbiq edilib. Təsadüfi yenidən düzəldilmə icra olunan fayllardakı və kitabxanalardakı funksiyaların yerlərinin qabaqcadan proqnozlaşdırılmasını çətinləşdirir ki, bu da qaytarma yönümlü proqramlaşdırma (ROP - Return-Oriented Programming) metodlarını istifadə edən exploitlərin yaradılmasını çətinləşdirir. ROP texnikasından istifadə edərkən hücum edən şəxs öz kodunu yaddaşda yerləşdirməkdənsə, artıq mövcud olan maşın təlimatlarının parçaları ilə işləyir ki, bu da idarəetmə qaydası (adətən, funksiyaların sonu) ilə bitir. Exploitin işi belə "gadget" adlanan belə blokların (təlimatların) çağırış zəncirini qurmaqdadır.
Mənbə: opennet.ru
