Au début janvier, une proposition pour améliorer Python (Python Enhancement Proposal) a été soumise à commentaires. Elle prévoit d’intégrer des documents de nomenclature des logiciels aussi appelés SBOM (Software Bill-of-Materials) dans les paquets Python. L’objectif est d’améliorer leur « mesurabilité » et de résoudre le problème des « dépendances fantômes ». Pour justifier cette proposition, les auteurs expliquent que les paquets Python sont particulièrement affectés par un problème de dépendance fantôme, ce qui signifie qu'ils incluent souvent des composants logiciels qui ne sont pas écrits en Python, que ce soit pour des raisons de compatibilité avec les normes, de facilité d'installation, ou dans des cas d’usage comme l'apprentissage machine qui utilisent des bibliothèques compilées de C, C++, Rust, Fortran, et autres langages.
La proposition note que si le format de paquetage binaire Python wheel est préféré par les utilisateurs en raison de sa facilité d'installation, il nécessite de regrouper des bibliothèques compilées partagées sans méthode d'encodage des métadonnées les concernant. De plus, les paquets liés aux paquets Python doivent parfois résoudre le problème de bootstrapping en Python, et donc inclure des projets Python purs dans le code source.
Un besoin de documentation plus en plus fort
Cependant, ces composants logiciels ne peuvent pas non plus être décrits à l'aide des métadonnées des paquets Python et risquent de ne pas être vus par les outils d'analyse de la composition des logiciels (Software Composition Analysis), si bien que les composants logiciels vulnérables ne sont pas signalés avec précision. L'inclusion d'un document SBOM annotant toutes les bibliothèques incluses permettrait aux outils SCA d'identifier de manière fiable les logiciels inclus.
Étant donné que le SBOM est indépendant de la technologie et de l'écosystème pour décrire la composition, la provenance et l'héritage des logiciels, et que les SBOM sont utilisés comme données d'entrée pour les outils d'analyse de la composition des logiciels (SCA), comme c’est le cas des scanners pour les vulnérabilités et les licences, la proposition préconise l’usage des SBOM pour améliorer la mesurabilité des paquets Python. Par ailleurs, les listes répertoriant tous les composants logiciels, leurs dépendances et les métadonnées associées sont requises par les récentes réglementations de sécurité, comme le Secure Software Development Framework (SSDF). En raison de ces réglementations, les auteurs de la proposition pensent que la demande de documents SBOM pour les projets open source devrait rester élevée, ce qui justifie encore plus l’utilisation des documents SBOM dans les paquets Python.
Commentaire