Un projet pour implémenter les utilitaires sudo et su dans Rust

L'ISRG (Internet Security Research Group), fondateur du projet Let's Encrypt et qui promeut HTTPS et le développement de technologies pour augmenter la sécurité d'Internet, a présenté le projet Sudo-rs pour créer des implémentations d'utilitaires sudo et su écrits en Rust qui vous permet d'exécuter des commandes pour le compte d'autres utilisateurs. Sous les licences Apache 2.0 et MIT, une version préliminaire de Sudo-rs a déjà été publiée, pas encore prête pour une utilisation générale. Le projet, dont les travaux ont débuté en décembre 2022, devrait s'achever en septembre 2023.

Les travaux se concentrent actuellement sur l'implémentation de fonctionnalités dans Sudo-rs qui permettent de l'utiliser comme remplacement transparent de sudo dans des cas d'utilisation typiques (configurations sudoers par défaut sur Ubuntu, Fedora et Debian). À l'avenir, il est prévu de créer une bibliothèque permettant d'intégrer la fonctionnalité sudo dans d'autres programmes et de fournir une méthode de configuration alternative qui évite d'analyser la syntaxe du fichier de configuration sudoers. Sur la base de la fonctionnalité sudo implémentée, une variante de l'utilitaire su sera également préparée. De plus, les plans mentionnent la prise en charge de SELinux, AppArmor, LDAP, des outils d'audit, la possibilité de s'authentifier sans utiliser PAM et la mise en œuvre de toutes les options de ligne de commande sudo.

Selon Microsoft et Google, environ 70 % des vulnérabilités sont causées par une gestion non sécurisée de la mémoire. On s'attend à ce que l'utilisation du langage Rust pour développer su et sudo réduise le risque de vulnérabilités causées par une gestion dangereuse de la mémoire et élimine l'apparition d'erreurs telles que l'accès à une zone mémoire après sa libération et les dépassements de mémoire tampon. Sudo-rs est développé par des ingénieurs de Ferrous Systems et Tweede Golf avec des fonds fournis par des sociétés telles que Google, Cisco, Amazon Web Services.

Une gestion sécurisée de la mémoire est assurée dans Rust au moment de la compilation grâce à la vérification des références, au suivi de la propriété des objets et de leur durée de vie (portée), ainsi qu'à l'évaluation de l'exactitude de l'accès à la mémoire pendant l'exécution du code. Rust offre également une protection contre les débordements d'entiers, nécessite l'initialisation obligatoire des valeurs des variables avant utilisation, gère mieux les erreurs dans la bibliothèque standard, applique le concept de références et de variables immuables par défaut, propose un typage statique fort pour minimiser les erreurs logiques.

Source: opennet.ru

Ajouter un commentaire