Le langage de programmation Rust suscite des préoccupations concernant la vie privée

0

Les développeurs de Rust ont exprimé à plusieurs reprises des préoccupations au sujet d’un problème de confidentialité non-adressé au cours des dernières années.

Rust a rapidement pris de l’ampleur parmi les développeurs, pour son accent sur les performances, la sécurité et pour avoir une syntaxe similaire à C++.

L’enquête de 2020 des développeurs de StackOverflow classe Rust au premier rang des « langages de programmation les plus appréciés ».

Cependant, depuis un certain temps les développeurs ont été dérangés par leurs builds de production qui font fuir des informations potentiellement sensibles de débogage.

Les binaires compilés de Rust gardent les noms d’utilisateurs et les chemins d’accès

Début 2017, un développeur Rust a posé une question sur le GitHub de Rust demandant : « Comment puis-je empêcher rustc d’inclure les informations spécifiques au système telles que les chemins de fichiers absolus de la source à partir de laquelle il est compilé dans les binaires qu’il génère ? »

Le développeur a partagé quelques exemples de chemins retenus dans leurs builds de production :

/checkout/src/libcore/option.rs
/home/kfairmasterz/.cargo/registry/src/github.com-1ecc6299db9ec823/typeable-0.1.2/src/lib.rs
/home/kfairmasterz/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-0.9.7/src/ssl/bio.rs

Ces noms de chemin absolus ont révélé le nom d’utilisateur du système du développeur et la structure globale des dossiers.

Ils ont en outre exprimé dans le même fil:

« Si cela aide, l’inclusion des identifiants d’utilisateur comme ceux-ci viole le RGPD … donc cela devrait être adressé par l’équipe de Rust.

« En 2020, les gens se soucient de la vie privée et cela peut être dommageable comme rust-langmdBook#847 où les gens ont pris leur distance avec le projet en raison du manque de respect de la vie privée des utilisateurs », a déclaré le développeur se référant à un projet Rust appelé mdBook.

À première vue, cette « fuite » de noms d’utilisateur et de chemins absolus peut sembler triviale pour un lecteur.

Cependant, au fil des ans, beaucoup plus de développeurs ont été surpris de constater que ces informations sont incluses non seulement dans les builds de débogage, mais aussi dans leur production de build Rust [1, 2, 3, 4, …] et ont demandé du changement.

Étant donné que le projet Rust, à l’époque, n’a pas réglé ce problème, certaines solutions de contournement ont été proposées par les membres de la communauté, comme l’utilisation de l’option « abort on panic », mais malheureusement aucune d’entre elles n’a fonctionné.

« J’ai essayé d’activer ‘abort’ pour la panique dans le profil de sortie. Même si cela s’est traduit par une taille binaire plus petite, il n’efface pas les noms de fichiers source du binaire », a déclaré le développeur Dmitry Zakablukov en Août 2020.

D’autres solutions de contournement proposées comprenaient divers paramètres comme le temps du système, le nom d’utilisateur, le fuseau horaire, le lieu, le nom d’hôte, et ainsi de suite.

Fait intéressant, bien qu’il s’agit d’un risque pour la vie privée, l’inclusion accidentelle de métadonnées telles que des chemins absolus peut aider les experts en criminalistique informatique et les autorités car le chemin pourrait révéler les noms d’utilisateur du système.

Bien sûr, tout développeur qui est au courant de ce problème peut trivialement construire ses applications Rust à l’intérieur d’un conteneur, et utiliser un nom d’utilisateur pseudonyme pour minimiser l’impact du problème.

Un problème ressuscité après 4 ans, l’équipe de Rust le catégorise comme étant un bug

La semaine dernière, un développeur dont le pseudonyme est chemsaf3 a réitéré ses préoccupations concernant ce problème.

Le développeur a présenté le problème sous l’intitulé « Chemins de registre codés en binaire » sur le GitHub du projet Rust pour attirer l’attention vers ce problème.

« Le langage Rust cherche à divulguer inutilement des informations sensibles dans des binaires compilés tels que les chemins du système et les noms d’utilisateur. »

« [Cela] se produit en mode release (production), pas seulement lors du débogage, et [il n’y a] aucun moyen de supprimer les informations avec les outils existants. »

« Les gens ont signalé le problème, mais aucune action ou communication de l’équipe de Rust, » a déclaré chemsaf3.

Le développeur a également déclaré qu’on ne sait toujours pas combien de développeurs travaillant sur des applications Rust ignorent probablement que leurs applications révèlent leurs chemins de système et noms d’utilisateur.

La principale préoccupation du développeur était :

« Rust est de plus en plus populaire de sorte que cela peut commencer à affecter un plus grand nombre de développeurs. »

« Ce comportement n’est pas documenté, et il n’y a pas non plus de moyen d’empêcher la fuite », nous a encore dit le développeur.

La requête sur GitHub déposée par le développeur a été rapidement suivie d’une réponse du membre de l’équipe Rust:

« Merci pour le rapport! Il semble que vous avez trouvé plusieurs autres problèmes liées à cela, donc je ne sais pas si ce problème couvre quelque chose de nouveau. Il semble que #5505 couvre les problèmes de remapping, pouvez-vous clarifier ce qui est différent ici? » a demandé Eric Huss de l’équipe Rust.

Finalement, après que le problème ait refait surface sur Reddit, Alexis Hunt, un membre de l’équipe de Google, est intervenu sur le GitHub de Rust:

« J’ai pris connaissance de ce problème sur Reddit, et cela m’a intéressé car personnellement avoir de bonnes protections de la vie privée par défaut est important pour moi. J’en ai parlé de façon informelle avec certains collègues… »

Hunt a résumé certaines des préoccupations des développeurs et partagé quelques idées sur la façon dont le problème pourrait être résolu.

« Personnellement, je pense que c’est important et devrait être abordé rapidement, mais je ne suis pas en mesure pour le moment de faire un suivi et d’y arriver. J’espère que quelqu’un d’autre pourra s’en occuper », a poursuivi Hunt.

« Nous sommes d’accord qu’il s’agit d’un bug qui vaut la peine d’être corrigé et nous soutiendront nos équipes pour le résoudre », a déclaré Manish Goregaokar de l’équipe Rust et ingénieur logiciel senior chez Google.

Bien qu’à l’heure actuelle, on ne sait pas comment, ni quand, l’équipe de Rust prévoit de résoudre ce problème, la pression accrue de la communauté des développeurs semble orienter les maintes et maintes personnes dans une direction qui mène vers l’action.

Si cet article vous a plu, jetez un œil à notre article précédent.

Laisser un commentaire