Kees Cook, ancien administrateur système en chef de kernel.org et dirigeant Ubuntu L'équipe de sécurité travaille désormais chez Google pour assurer la sécurité. Android ChromeOS a publié un ensemble de correctifs implémentant l'aléatorisation du décalage de la pile du noyau lors du traitement des appels système. Ces correctifs améliorent la sécurité du noyau en modifiant l'organisation de la pile, ce qui rend les attaques par pile beaucoup plus difficiles et moins efficaces. L'implémentation initiale prend en charge les processeurs ARM64 et x86/x86_64.
L'idée originale de ce correctif provient du projet PaX RANDKSTACK. En 2019, Elena Reshetova, ingénieure chez Intel, a tenté de créer une implémentation de cette idée adaptée à une intégration dans le noyau principal. LinuxL'initiative a ensuite été reprise par Keith Cook, qui a présenté une implémentation adaptée à la version principale du noyau. Des correctifs sont prévus pour la version 5.13. Le mode sera désactivé par défaut. Le paramètre de ligne de commande du noyau « randomize_kstack_offset=on/off » et le paramètre CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT sont proposés pour l'activer. La perte de performance induite par l'activation de ce mode est estimée à environ 1 %.
L'essence de la protection proposée est de choisir un décalage de pile aléatoire pour chaque appel système, ce qui rend difficile la détermination de la disposition de la pile en mémoire, même après avoir reçu les données d'adresse, puisque le prochain appel système modifiera l'adresse de base de la pile. Contrairement à l'implémentation PaX RANDKSTACK, dans les correctifs proposés pour inclusion dans le noyau, la randomisation n'est pas effectuée au stade initial (cpu_current_top_of_stack), mais après avoir défini la structure pt_regs, ce qui rend impossible l'utilisation de méthodes basées sur ptrace pour déterminer le décalage aléatoire. lors d’un appel système de longue durée.
Source: opennet.ru
