
En 2023, Amazon Web Services a financé un projet de réécriture de sudo et su dans le langage de programmation Rust afin d'augmenter la sécurité de la mémoire pour les logiciels largement utilisés et pour améliorer davantage la sécurité Linux/open-source. Cette initiative confirme une tendance à remédier aux nombreuses vulnérabilités liées à des problèmes de sécurité de la mémoire.
C'est dans cette optique que Ubuntu 25.10 devrait adopter par défaut l'utilitaire sudo-rs. Sudo-rs est une réimplémentation à sécurité mémoire de l'utilitaire sudo, largement utilisé, écrit dans le langage de programmation Rust. Cette décision s'inscrit dans le cadre d'un effort plus large de Canonical visant à améliorer la résilience et la maintenabilité des principaux composants du système. Sudo-rs est développé par la Trifecta Tech Foundation (TTF), une organisation à but non lucratif qui crée des blocs de construction sécurisés et open source pour les logiciels d'infrastructure.
La décision d'adopter sudo-rs est conforme à l'engagement de Canonical d'augmenter prudemment mais volontairement la résilience des logiciels système critiques, en adoptant Rust. Rust est un langage de programmation qui offre de solides garanties en matière de sécurité de la mémoire et qui élimine de nombreuses vulnérabilités qui ont historiquement affecté les logiciels traditionnels basés sur le langage C.
Sudo-rs fait partie de l'initiative Privilege Boundary de la Trifecta Tech Foundation, qui vise à gérer l'escalade des privilèges à l'aide d'alternatives sûres pour la mémoire.

Préparation à l'adoption générale par les distributions Linux
Pour préparer l'adoption générale, les mainteneurs de sudo-rs achèveront les travaux décrits dans le plan de travail de l'étape 5 du projet :
- La prévention des évasions de l'interpréteur de commandes (NOEXEC) à gros grain sur Linux
- La possibilité de contrôler les profils AppArmor
- sudoedit
- La prise en charge des noyaux Linux antérieurs à la version 5.9, utilisée par Ubuntu 20.04 LTS.
Canonical sponsorise cette étape pour faire de sudo-rs une implémentation encore meilleure de la commande sudo. Avec les fonctionnalités ci-dessus, plus d'utilisateurs et d'administrateurs système devraient être en mesure d'utiliser sudo-rs sans aucun changement dans leur flux de travail actuel.
Les responsables de sudo-rs s'en tiennent à l'approche "moins c'est plus" : certaines fonctionnalités du sudo original ne seront pas implémentées dans sudo-rs si elles ne servent que des cas d'utilisation très spécialisés. Les mainteneurs poursuivent leur collaboration avec Todd Miller, le mainteneur de sudo en place depuis plus de trente ans, améliorant ainsi indirectement le sudo original en tant que sous-produit de cet engagement.

Voici l'annonce de Canonical :
[QUOTE]Adoption de sudo-rs par défaut dans Ubuntu 25.10
Introduction
Suite à la publication de Carefully But Purposefully Oxidising Ubuntu, Ubuntu sera la première distribution Linux majeure à adopter sudo-rs comme implémentation par défaut de sudo, en partenariat avec la Trifecta Tech Foundation.
Le changement sera effectif à partir de la sortie d'Ubuntu 25.10.
Qu'est-ce que sudo-rs ?
sudo-rs est une réimplémentation de l'outil sudo traditionnel, écrit en Rust. Il est développé par la Trifecta Tech Foundation (TTF), une organisation à but non lucratif qui se concentre sur la construction de composants d'infrastructure sécurisés et open source. Le projet fait partie de l'initiative Privilege Boundary de la Trifecta Tech Foundation, qui vise à gérer l'escalade des privilèges à l'aide d'alternatives sûres pour la mémoire.
La commande sudo a longtemps servi de moyen défacto d'escalade des privilèges sous Linux. Comme décrit dans le billet original, Rust fournit de fortes garanties contre certaines classes de problèmes de sécurité de la mémoire, ce qui est essentiel pour les composants à la limite des privilèges.
L'équipe sudo-rs collabore avec Todd Miller, qui maintient le sudo original depuis plus de trente ans. sudo-rs ne doit pas être considéré comme une bifurcation, mais plutôt comme une poignée de main entre plusieurs générations de systèmes sécurisés. Tout au long du développement de sudo-rs, l'équipe TTF a également contribué à l'amélioration de l'implémentation originale de sudo.
Le projet sudo-rs est conçu pour remplacer l'outil original. Pour la grande majorité des utilisateurs, la mise à jour devrait être complètement transparente pour leur flux de travail. Cela dit, sudo-rs n'est pas une réimplémentation « aveugle ». Les développeurs ont adopté une approche « moins, c'est plus ». Cela signifie que certaines fonctionnalités de la version originale de sudo peuvent ne pas être réimplémentées si elles ne servent qu'une niche, ou si elles sont considérées comme des pratiques « dépassées ».
Erik Jonkers, président de la Trifecta Tech Foundation, explique : "Bien qu'aucun logiciel - quel que soit le langage - ne soit parfait, nous pensons que la transition vers Rust dans la programmation des systèmes est un pas en avant vital, et il est très excitant de voir Ubuntu s'engager en faveur de sudo-rs et prendre les devants pour faire avancer les choses."
Sponsoriser l'adoption par le grand public
L'adoption par le grand public d'un substitut à un outil aussi universellement connu s'accompagne de responsabilités. Avant de s'engager à livrer sudo-rs dans Ubuntu 26.04 LTS, nous testerons la transition dans Ubuntu 25.10. Nous sponsorisons également le développement de certains éléments spécifiques, qui se sont manifestés en tant que jalon 5 dans le projet en amont :
- Prévention des évasions de shell à gros grain (NOEXEC) sur Linux
- La possibilité de contrôler les profils AppArmor
- Une implémentation de sudoedit
- La prise en charge des noyaux Linux antérieurs à la version 5.9
Le dernier point peut sembler déplacé, mais comme Ubuntu 20.04 LTS est toujours supporté, sans ce travail, il pourrait y avoir des situations où sudo ne fonctionnerait pas si, par exemple, un conteneur OCI 26.04 LTS était exécuté sur un hôte 20.04 LTS !
L'équipe a également déjà commencé à travailler pour s'assurer que la suite de tests est aussi compatible que possible avec Ubuntu, afin de s'assurer que tout problème soit détecté rapidement.
Il ne s'agit pas seulement de livrer un nouveau binaire. Il s'agit de définir une direction. Nous n'abandonnons pas le C, ni même ne réécrivons tous les utilitaires nous-mêmes, mais en choisissant de remplacer l'un des outils les plus critiques pour la sécurité du système par une alternative sûre pour la mémoire, nous faisons une déclaration : la résilience et la durabilité ne sont pas optionnelles dans l'avenir de l'infrastructure ouverte.
Progrès de coreutils
Depuis l'annonce initiale, nous avons travaillé dur pour définir plus clairement un plan de migration vers uutils coreutils dans la version 25.10 et au-delà. De la même manière que nous nous sommes engagés avec la Trifecta Tech Foundation, nous sponsorisons également le projet uutils pour nous assurer que certaines lacunes clés sont comblées avant la livraison de la version 25.10. Le parrainage couvrira principalement le développement du support SELinux pour les commandes courantes telles que mv, ls, cp, etc.
La première étape du développement du support SELinux a été d'ajouter le support des tests automatisés dans Github Actions, depuis lors les mainteneurs ont commencé à travailler sur l'implémentation réelle.
L'autre fonctionnalité que nous sponsorisons est la prise en charge de l'internationalisation. Actuellement, certaines implémentations d'utilitaires (comme sort) ont une compréhension incomplète des locales, et peuvent donc produire des résultats inattendus. Nous espérons que ces deux fonctionnalités seront disponibles à temps pour la version 25.10, et nous continuerons à travailler avec le projet uutils tout au long du cycle 26.04 LTS afin de combler les lacunes que nous aurons identifiées dans la version intermédiaire.
L'une des principales préoccupations soulignées dans le billet de Julian concerne la taille des binaires. Nous avons quelques astuces pour réduire cette taille, et des discussions ont déjà été entamées en amont dans Debian sur la manière d'y parvenir. Il y a aussi des implications de sécurité, comme le manque...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.