L'organisation FreeBSD Foundation a annoncĂ© la mise en Ćuvre du support des builds reproductibles, permettant de vĂ©rifier que les fichiers binaires distribuĂ©s sont construits Ă partir du code source fourni et ne contiennent pas de modifications cachĂ©es. ParallĂšlement, il a Ă©tĂ© annoncĂ© la possibilitĂ© de compiler FreeBSD dans des environnements non privilĂ©giĂ©s, ne nĂ©cessitant pas de droits root. La suppression des composants exĂ©cutĂ©s pendant la construction avec des droits root permettra d'amĂ©liorer la sĂ©curitĂ© de l'infrastructure de crĂ©ation des versions de FreeBSD, de rĂ©duire la surface d'attaque sur l'environnement de compilation et de simplifier la mise en place des builds automatisĂ©s.
Au stade de la compilation, des droits root étaient nécessaires pour créer des fichiers de périphériques, configurer des autorisations et monter des systÚmes de fichiers supplémentaires (par exemple lors de la création d'images disque). Les modifications visant à remplacer de telles actions par des opérations ne nécessitant pas de droits root ont été ajoutées à la branche expérimentale de FreeBSD, mais seront par la suite transférées vers la branche sur laquelle se base la version FreeBSD 15.0. En plus de la compilation de la version à partir du code source, il est désormais également possible de créer des artefacts tels que des images ISO pour créer des clés USB d'installation et de démarrage, des images systÚme pour machines virtuelles et des plateformes cloud.
En ce qui concerne les builds reproductibles, ils permettent d'obtenir l'identité des fichiers binaires générés à partir du code source dans différents environnements de compilation. Tout un chacun peut désormais personnellement s'assurer que les fichiers binaires distribués sont construits à partir des textes sources fournis, sans se fier uniquement à la confiance dans l'infrastructure de compilation du projet, la compromission du compilateur ou des outils de compilation pouvant mener à l'insertion de backdoors cachées.
Lors de la crĂ©ation d'assemblages reproductibles, de tels dĂ©tails sont pris en compte, tels que la correspondance exacte des dĂ©pendances ; l'utilisation d'outils de compilation d'une composition et de versions immuables ; un ensemble identique d'options et de paramĂštres par dĂ©faut ; le maintien de l'ordre de construction des fichiers (application des mĂȘmes mĂ©thodes de tri) ; la dĂ©sactivation de l'ajout par le compilateur d'informations de service non constantes, telles que des valeurs alĂ©atoires, des rĂ©fĂ©rences aux chemins de fichiers et des donnĂ©es sur la date et l'heure de construction. La reproductibilitĂ© des assemblages est Ă©galement affectĂ©e par des erreurs et des conditions de course dans les outils.
Source : opennet.ru
