OpenBSD implementuje technikę zapobiegającą exploitom, która polega na losowym ponownym łączeniu pliku wykonywalnego sshd przy każdym uruchomieniu systemu. Ta technika ponownego łączenia była wcześniej używana w przypadku jądra i bibliotek libc.so, libcrypto.so i ld.so, a teraz będzie używana w przypadku niektórych plików wykonywalnych. W najbliższej przyszłości planowane jest wdrożenie metody również dla ntpd i innych aplikacji serwerowych. Zmiana jest już uwzględniona w gałęzi CURRENT i będzie oferowana w wydaniu OpenBSD 7.3.
Ponowne łączenie sprawia, że przemieszczenia funkcji w bibliotekach są mniej przewidywalne, co utrudnia tworzenie exploitów przy użyciu metod programowania zorientowanego na zwrot (ROP). Korzystając z techniki ROP, atakujący nie próbuje umieścić swojego kodu w pamięci, lecz operuje na fragmentach instrukcji maszynowych dostępnych już w załadowanych bibliotekach, kończąc na instrukcji sterującego powrotu (z reguły są to końce funkcji bibliotecznych) . Działanie exploita sprowadza się do zbudowania łańcucha wywołań do podobnych bloków („gadżetów”) w celu uzyskania pożądanej funkcjonalności.
Źródło: opennet.ru