Les dĂ©veloppeurs d'OpenSSH ont poursuivi la sĂ©paration de sshd en plusieurs fichiers exĂ©cutables distincts. Lors de la premiĂšre phase de sĂ©paration rĂ©alisĂ©e en mai, les fonctions liĂ©es au traitement des sessions ont Ă©tĂ© extraites de sshd et mises dans un processus distinct nommĂ© sshd-session, laissant Ă sshd uniquement la fonctionnalitĂ© nĂ©cessaire pour accepter une nouvelle connexion rĂ©seau et lancer sshd-session pour chaque nouvelle session. Hier, un changement a Ă©tĂ© introduit dans la base de code d'OpenSSH, ajoutant un autre processus â sshd-auth, vers lequel le code responsable de l'authentification a Ă©tĂ© transfĂ©rĂ© depuis sshd-session.
Le processus sshd-auth est lancĂ© depuis sshd-session et permet d'isoler davantage les donnĂ©es liĂ©es Ă l'authentification dans l'espace d'adressage d'un processus distinct, ce qui empĂȘche l'accĂšs Ă ces donnĂ©es en mĂ©moire lors d'attaques contre le code utilisĂ© pour traiter les Ă©tapes de connexion jusqu'Ă la fin de l'authentification. De plus, ce changement rĂ©duit lĂ©gĂšrement la consommation de mĂ©moire, car le code liĂ© Ă l'authentification n'est prĂ©sent en mĂ©moire que pendant l'authentification, puis est dĂ©chargĂ© Ă la fin du processus sshd-auth.
Ă l'instar de sshd, ssh-session et ssh-agent, un processus sshd-auth a Ă©galement bĂ©nĂ©ficiĂ© d'une opĂ©ration de rĂ©organisation alĂ©atoire du fichier exĂ©cutable lors de chaque dĂ©marrage du systĂšme d'exploitation. Cette rĂ©organisation alĂ©atoire rend les offsets des fonctions dans les fichiers exĂ©cutables et les bibliothĂšques imprĂ©visibles, ce qui complique la crĂ©ation d'exploits utilisant des mĂ©thodes de programmation orientĂ©e retour (ROP â Return-Oriented Programming). Lorsqu'il utilise la technique ROP, l'attaquant n'essaie pas de placer son propre code en mĂ©moire, mais travaille avec des morceaux existants d'instructions machine se terminant par une instruction de retour (habituellement, ce sont des fins de fonctions). Le travail de l'exploit consiste Ă construire une chaĂźne d'appels de tels blocs (« gadgets ») pour obtenir la fonctionnalitĂ© souhaitĂ©e.
Source : opennet.ru
