Licences Open Source dans les SBOMs
29 juin 2023
Interlynk
Les licences Open Source jouent un rôle crucial en permettant la collaboration, l'innovation et la transparence dans le monde du développement de logiciels. Alors que les chaînes d'approvisionnement en logiciels deviennent chaque jour plus complexes, il devient de plus en plus essentiel de commencer à construire une visibilité sur les composants et les licences des logiciels utilisés. C'est là que le Logiciel de Facture de Matériaux (SBOM) entre en jeu. Les SBOM permettent aux organisations d'identifier les vulnérabilités, de suivre l'utilisation de l'open source et d'assurer la conformité avec de nombreuses obligations de licence.
Licences Open Source
Les licences Open Source définissent les termes et conditions selon lesquels le logiciel peut être utilisé, modifié et distribué. Lors de la prise en compte des composants Open Source pour le logiciel, la compréhension et l'inventaire des licences associées à ces composants doivent jouer un rôle clé dans les critères de sélection. Différentes licences ont des exigences et des restrictions variées. Les licences permissives comme MIT et BSD permettent plus de flexibilité, tandis que les licences copyleft comme GPL imposent des obligations plus strictes, comme le partage des modifications sous la même licence.
SBOM et licences open source
Inclure des licences Open Source dans le SBOM aide les organisations à suivre avec précision les licences associées à leurs composants logiciels. Cela crée une voie plus ouverte, gérable et évolutive pour gérer les risques et obligations liés aux licences.
Assurer la conformité aux licences Open Source : En incluant des licences dans le SBOM, les organisations peuvent facilement tenir un inventaire des licences des composants utilisés dans leurs projets logiciels. Cela aide à garantir la conformité aux termes et conditions des licences, évitant ainsi toute conséquence juridique ou tout retard dans les ventes et les fusions-acquisitions.
Atténuer les risques juridiques : Le non-respect des licences Open Source peut entraîner des litiges juridiques et une perte potentielle de droits de propriété intellectuelle. Inclure des licences dans le SBOM permet aux organisations de traiter proactivement les problèmes de licences et d'atténuer les risques juridiques associés à l'utilisation d'Open Source.
Promouvoir la transparence et la confiance : Les licences Open Source dans le SBOM favorisent la transparence et la confiance au sein des chaînes d'approvisionnement logicielles. En déclarant ouvertement les licences, les organisations démontrent leur engagement à respecter les obligations de licence et établissent une confiance avec les utilisateurs, les clients et la communauté Open Source au sens large.
Placement des licences dans les SBOM
CycloneDX et SPDX — deux des trois spécifications SBOM les plus couramment utilisées et recommandées par le NTIA — fournissent des détails de licence précis et faciles à mettre en œuvre dans un SBOM.
SPDX :
La Liste des licences SPDX est une liste des licences les plus couramment utilisées dans les logiciels et composants open-source, des extensions de ces licences et des exceptions à celles-ci. À partir de la version 3.20, la liste comprend 506 licences et dérivés. La liste des licences SPDX est une partie cruciale de la spécification SBOM SPDX. La liste peut être utilisée pour former des expressions de licence plus grandes en suivant ces règles :

SPDX : Expressions de Licence
Le expressions de licence forme la colonne vertébrale de la déclaration des licences, telles que déclarer des licences pour des Paquets par les auteurs du paquet. (e.g.
PackageLicenseDeclared: (LGPL-2.0-only AND LicenseRef-3)
et les licences gouvernantes telles que conclues par les auteurs (e.g.
PackageLicenseConcluded: (LGPL-2.0-only OR LicenseRef-3)
en plus de fournir tout commentaire ou analyse en tant qu'information de contexte. (e.g.
PackageLicenseComments: <text>La licence pour ce projet a changé avec la sortie de la version 1.4. La version du projet incluse ici post-date le changement de licence.</text>
CycloneDX :
La spécification SBOM CycloneDX utilise également la liste des licences SPDX et l'expressions de licence SPDX et fournit également des champs pour peupler les liens vers le texte de la licence. (e.g.

CycloneDX : Métadonnées de Licence
Défis connus pour comprendre les licences du SBOM :
Alors que les spécifications ont décrit la déclaration de licence de manière méthodique, l'implémentation dans les générateurs de SBOM a manqué du même sérieux. Cela a conduit à certains défis :
Licences Absent : L'absence de champs de licence dans le SBOM est le défi le plus courant. Bien qu'il soit exact que CycloneDX et SPDX ont gardé les champs de licence optionnels (pour des cas d'utilisation plus larges), Éléments Minimaux NTIA pour un SBOM a recommandé l'inclusion de licences pour les rendre utiles.
Valeur par Défaut Invalide : SDPX a fourni deux valeurs par défaut :
NONEpour les situations où aucune licence ne s'applique etNOASSERTIONlorsque la découverte de licence n'a pas été tentée, ou la licence est intentionnellement omise dans le document. Cependant, un certain nombre de valeurs par défaut invalides —EMPTY,NULL,NOLICENSE,UNKNOWNpeuvent être trouvées dans les SBOM générés par divers outils. Cela pose des défis pour les outils de consommation de SBOM.Références de Licence Invalides : Une expression de licence simple SPDX
license-expressionpeut inclure une référence de licence définie par l'utilisateur. Cependant, pour rendre cela utile pour l'outil de consommation de SBOM, cette indirection nécessite : (a) un id de référence de licence valide et (b) une description précise de la référence de licence elle-même. Chez Interlynk, nous constatons diverses erreurs dans de telles expressions de licence, y compris (a) caractères invalides dans les références de licence, (b) références de licence pendantes, (c) références de licence non terminantes, (d) Référence de licence pour des documents externes sans fournir les documents externes eux-mêmes.Expressions de Licence Invalides : Inclure des licences dans l'ABNF référencé ci-dessus est le seul moyen certain d'assurer que les processus automatisés peuvent analyser correctement le SBOM et extraire les informations sur les licences. Cependant, nous avons remarqué très peu d'adhérence à respecter l'ABNF et au lieu de cela s'appuyer sur divers raccourcis qui rendent les licences faciles à lire par les humains (et donc obtenir une présomption d'exactitude) tout en causant des erreurs pour les outils de consommation. Des exemples d'expressions de licence invalides incluent :
PackageDeclaredLicense: MIT, LGPLv2, BSDPackageConcludedLicense: [MIT, LGPLv2, BSD]PackageConcludedLicense: [MIT, LGPLv2, BSD]LicenseID: MIT/LGPLv2
Pour surmonter ces défis, il est crucial de prétraiter le SBOM avec des outils de qualité (par exemple, sbomqs) ou d'extraction de données (par exemple, sbomgr) pour comprendre l'exactitude et la complétude du SBOM sous-jacent et la maturité du générateur de SBOM.
Meilleures pratiques pour gérer les licences open source dans le SBOM :
Établissez une politique claire pour la gestion des licences Open Source au sein de votre organisation. Cela inclut la définition des licences acceptables, la réalisation d'examens réguliers des licences et l'éducation des développeurs concernant les obligations liées aux licences.
Effectuez des audits et des analyses de licences réguliers : Auditez régulièrement vos projets logiciels pour garantir la conformité avec les licences Open Source. Utilisez des outils de scan qui peuvent identifier et signaler automatiquement les licences associées à vos composants logiciels.
Utilisez des outils et de l'automatisation : Exploitez des outils d'analyse de la composition logicielle (SCA) qui peuvent générer automatiquement des SBOM et fournir des informations sur la conformité des licences. Ces outils peuvent aider à rationaliser le processus et garantir l'exactitude dans la gestion des licences Open Source.
Faites appel à une expertise juridique : Dans les scénarios de licence complexes, envisagez de faire appel à une expertise juridique pour naviguer à travers d'éventuels défis juridiques. Les professionnels du droit peuvent fournir des conseils sur la compatibilité des licences et les obligations, et aider à résoudre toute question de licence qui pourrait surgir.
Alors que les pratiques Open Source et SBOM continuent d'évoluer, il est essentiel de rester informé des tendances et développements futurs. Des efforts sont en cours pour standardiser les formats de SBOM, permettant un partage plus facile et l'interopérabilité entre différents écosystèmes logiciels. Des exigences réglementaires relatives à la transparence de la chaîne d'approvisionnement logicielle émergent également, soulignant la nécessité de SBOM complets et de la gestion des licences Open Source.
Les licences Open Source dans le Bill of Materials (SBOM) garantissent la conformité, atténuent les risques juridiques et favorisent la transparence dans les chaînes d'approvisionnement logicielle. En incluant des licences Open Source dans le SBOM, les organisations peuvent gérer efficacement leurs composants logiciels, répondre aux obligations de licence et instaurer la confiance avec les parties prenantes. Restez vigilant, adoptez les meilleures pratiques et adoptez le paysage évolutif des licences Open Source pour naviguer avec succès dans les complexités du développement logiciel.
