În OpenBSD a fost implementată o tehnică de protecție împotriva exploatării vulnerabilităților, bazată pe recompunerea aleatorie a fișierului executabil sshd la fiecare pornire a sistemului. Anterior, o astfel de tehnică de recompunere a fost aplicată pentru nucleu și bibliotecile libc.so, libcrypto.so și ld.so, iar acum va fi aplicată și pentru unele fișiere executabile. În curând, metoda va fi implementată și pentru ntpd și alte aplicații server. Modificarea este deja inclusă în ramura CURRENT și va fi oferită în versiunea OpenBSD 7.3.
Recompunerea permite ca deplasările funcțiilor în biblioteci să fie puțin predictibile, ceea ce va îngreuna crearea de exploateu-uri care utilizează metode de programare orientată pe returnare (ROP — Return-Oriented Programming). Folosind tehnica ROP, atacatorul nu încearcă să plaseze propriul cod în memorie, ci lucrează cu porțiuni de instrucțiuni mașină deja existente în bibliotecile încărcate, care se termină cu instrucțiunea de returnare a controlului (de obicei, această instrucțiune este sfârșitul funcțiilor din bibliotecă). Funcționarea exploat-ului se reduce la construirea unei secvențe de apeluri ale unor astfel de blocuri („gadget-uri”) pentru a obține funcționalitatea dorită.
Sursa: opennet.ro
