Alors que la prise en charge du noyau Linux en amont pour RISC-V continue de s’améliorer avec de nouvelles fonctionnalités ISA, la prise en charge de plus de SoC RISC-V et d’autres améliorations, dans certains domaines, le code RISC-V open source continue de rattraper l’autre architectures matures supportées par le noyau Linux. L’un des domaines encore en suspens est l’activation de la prise en charge de KASLR pour RISC-V sous Linux afin d’améliorer la sécurité du système.
La randomisation de la disposition de l’espace d’adressage du noyau (KASLR) est importante pour empêcher l’exploitation des vulnérabilités de corruption de la mémoire. KASLR est très utile pour repousser les attaques reposant sur un attaquant connaissant les emplacements d’adresse mémoire connus du noyau en randomisant le code du noyau au moment du démarrage.
KASLR sur x86/x86_64 est en ligne depuis environ une décennie et des efforts ont également été déployés pour améliorer encore la randomisation avec le FGKASLR qui n’est pas encore terminé. Du côté RISC-V, le support KASLR est toujours en attente, mais la semaine dernière a vu la troisième révision des correctifs. Les correctifs randomisent le mappage du noyau et s’appuient sur les machines virtuelles dont le chargeur de démarrage fournit une graine dans l’arborescence des périphériques ou sur les systèmes RISC-V physiques pour que le micrologiciel fournisse une graine aléatoire à l’aide du protocole EFI RNG.
Avec les correctifs v3, le code RISC-V KASLR a été rebasé sur un état Linux 6.4 plus récent, il existe un correctif d’avertissement pour RISC-V 32 bits et d’autres correctifs. Nous verrons si ce support RISC-V KASLR parvient à être bientôt intégré.