OpenSSH-utvecklarna har fortsatt att dela upp sshd i flera separata körbara filer. I det första steget av uppdelningen som genomfördes i maj flyttades funktioner relaterade till sessionhantering frĂ„n sshd till en separat process, sshd-session, medan sshd behöll den funktionalitet som krĂ€vs för att ta emot nya nĂ€tverksanslutningar och starta sshd-session för varje ny session. I gĂ„r infördes en förĂ€ndring i OpenSSH:s kodbas som tillsatte ytterligare en process â sshd-auth, dĂ€r koden som utför autentisering flyttades frĂ„n sshd-session.
Processen sshd-auth startas frÄn sshd-session och möjliggör att relaterad autentiseringdata isoleras i adressrymden av en separat process, vilket förhindrar Ätkomst till dessa data i minnet om attacker utförs mot koden som anvÀnds för att behandla anslutningsfaserna före avslutandet av autentiseringen. Dessutom kommer förÀndringen att minska minnesanvÀndningen nÄgot, eftersom den relaterade autentiseringskoden nu endast finns i minnet under autentiseringen och sedan laddas ur vid avslutandet av processen sshd-auth.
PĂ„ liknande sĂ€tt som sshd, ssh-session och ssh-agent, tillĂ€mpas en operation för slumpmĂ€ssig omarrangering av den körbara filen för processen sshd-auth vid varje systemstart. SlumpmĂ€ssig omarrangering gör det svĂ„rt att förutsĂ€ga funktionernas förskjutningar i de körbara filerna och biblioteken, vilket försvĂ„rar skapandet av exploateringar som anvĂ€nder metoder för returinriktad programmering (ROP â Return-Oriented Programming). NĂ€r ROP-tekniken anvĂ€nds försöker angriparen inte att placera sin egen kod i minnet, utan arbetar med redan existerande bitar av maskininstruktioner som avslutas med Ă„tergĂ„ngsinstruktionen (vanligtvis funktionernas slut). Arbete med exploateringen gĂ„r ut pĂ„ att bygga en kedja av anrop av liknande block ('gadgets') för att fĂ„ den önskade funktionaliteten.
KĂ€lla: opennet.ru
