Gardez le contrôle de vos licences de logiciels open source

L’ajout de nouveaux packages open source à des applications est plus simple et plus accessible que jamais.

L’utilisation de composants logiciels libres dans le cadre du développement de logiciels est en constante augmentation. À l’heure actuelle, GitHub compte plus de 40 millions de comptes et il est estimé que la plateforme devrait atteindre 100 millions d’utilisateurs d’ici 2025.

Toutefois, une telle croissance exponentielle s’accompagne de risques - ne pas gérer correctement la chaîne d’approvisionnement de logiciels en assurant le suivi des composants, de leurs dépendances et des licences, peut entraîner des conséquences désastreuses.

L’utilisation et le partage de blocs de code réutilisables pour accélérer le cycle de développement des logiciels est désormais une pratique courante. Par conséquent, les écosystèmes de développement tels que npm (Node Package Management)) sont devenus de plus en plus dépendantes de bibliothèques tierces.

Npm est le client JavaScript le plus utilisé au monde et la plateforme de référence pour les développeurs qui souhaitent récupérer des packages JavaScript et réutiliser du code pour accélérer le processus de développement. Le registre npm a déjà atteint le cap de un milliard de téléchargements quotidiens..

“Il y avait 1.5 million de packages npm dans le registre public à lui-seul en février 2021"

Mais - il semble que les développeurs, les équipes de sécurité, les équipes juridiques et les propriétaires d’entreprises sont pour la plupart dans le flou concernant leurs obligations en matière de licences.

Qu’est-ce qu’une licence de logiciel open source ?

Qu’est-ce qu’une licence de logiciel open source ?

Les licences de logiciels open source (OSS) permettent aux développeurs de partager leur code source (composants, bibliothèques, etc.) en tant que source libre. D’autres développeurs peuvent alors librement (à des degrés différents selon ce qui est défini dans la licence en question) utiliser ces composants dans leur propre travail.

Lorsque vous utilisez des composants open source, vous signez implicitement un contrat légal qui est applicable. Il vous engage (c’est-à-dire le développeur ou l’entreprise), ainsi que l’auteur, sur la manière dont vous allez utiliser son code. Selon le type de licence, il peut y avoir une grande disparité dans les droits qu’elle accorde et les obligations qu’elle impose.

Pourquoi les licences sont-elles nécessaires ? L’utilisation de l’open source, c’est pas gratuit?

Le code open source est gratuit et peut être utilisé par tout le monde, mais il y a des limites. Pour chaque licence de code open source, il y a des conditions générales qui limitent ce que les utilisateurs peuvent ou ne peuvent pas faire. Il est donc nécessaire pour chaque développeur ou entreprise de s’y conformer.

Qu’est-ce qui pourrait se passer ?

Chaque composant open source, ainsi que chaque composant dont il dépend, aura également des termes et conditions uniques qui devront tous être respectés.

Dans l’industrie du logiciel, les entreprises adhèrent au cycle de vie du développement logiciel (SDLC) afin de garantir un logiciel entièrement testé et prêt pour la production. En suivant le processus étape par étape, on élimine les difficultés courantes des projets de développement de logiciels.

Mais la conformité des licences doit être vérifiée dès le début du processus SDLC. Plus vous tardez à le faire, plus il sera probable que vous rencontriez des difficultés qui pourraient avoir un impact sur la distribution de votre logiciel.

Comment les licences affectent-elles les œuvres dérivées ?

Il est important que les développeurs comprennent comment les liens statiques et dynamiques peuvent avoir des répercussions sur les licences pour les œuvres dérivées. Cette distinction est essentielle pour interpréter les exigences en matière de licence.

Une fois que le code modifié est publié, si les termes et conditions de la licence ne sont pas respectés, il est fortement possible d’être contraint de distribuer tous vos logiciels propriétaires développés en interne.

Quelles sont les conséquences potentielles d’un manque de conformité ?

  • Pénalités et restrictions de vente du logiciel de votre entreprise jusqu’à ce que la conformité soit respectée.
  • Une injonction peut empêcher la distribution d’un produit jusqu’à ce que le code source soit publié.
  • Plus une dépendance problématique est découverte tard, plus il sera coûteux de la résoudre.
  • Médiatisation négative par rapport à la non-conformité
  • Perte de réputation auprès des clients
  • Perte de crédibilité auprès de la communauté open source
  • Coûts de découverte et de diligence raisonnable en réponse à une enquête de conformité sur un code source en particulier.
  • Frais juridiques externes éventuels pour répondre à une réclamation

Les conséquences des réclamations pour non-conformité ont toujours amené les défendeurs à devoir se conformer. De plus, les coûts de la réponse à une réclamation dépassent généralement ceux du temps et de l’argent nécessaires pour assurer la conformité de base.

Les différents types de licences open source

Différents types de licences open source

Quelles sont les différences entre les licences de logiciels commerciaux et les licences de logiciels open source ?

Pour la plupart des licences commerciales, la principale obligation consiste à limiter le droit d’utiliser ou de distribuer le logiciel propriétaire aux utilisateurs autorisés, c’est-à-dire ceux qui ont payé pour l’obtenir (cf. Microsoft).

Les développeurs de logiciels propriétaires font recours à des droits d’auteur pour priver l’utilisateur de sa liberté, ce qui va à l’encontre de l’éthique de l’open source. Celui qui a mis en place la licence conserve les droits exclusifs et uniques d’édition, d’inspection, de modification et d’amélioration du logiciel.

Une licence open source ne s’achète pas, elle est gratuite. L’utilisateur peut modifier, améliorer et distribuer le code comme il le souhaite. Toutefois, il peut quand même y avoir des conditions que l’utilisateur doit respecter et auxquelles il doit se conformer lorsqu’il distribue son logiciel.

Selon le type de licence open source, l’utilisateur peut être tenu de reproduire un texte de licence spécifique, en plus de rendre son logiciel disponible lors de sa distribution. La licence sert à définir les responsabilités de ceux qui utilisent et distribuent le logiciel.

Savez-vous quels licences open source vous utilisez ?

Parmi les milliers de licences de logiciels existantes, plus de 200 sont classées comme licences de logiciels open source. Parmi celles-ci, environ 80 sont approuvées par l' Open Source Initiative (OSI). Toutes ces licences ont leurs propres conditions générales, certaines copy-left, d’autres permissives et d’autres encore sans licence du tout.

Aujourd’hui, les licences permissives sont beaucoup plus nombreuses que les licences copyleft. La communauté open source favorise les composants dont les licences sont les plus faciles à utiliser. Les licences permissives offrent une solution de conformité plus simple à suivre, ce qui réduit l’aspect frustrant des licences.

90 % du code des applications modernes est du code source libre développé par d’autres personnes"

Comprendre les différents types de licences de logiciels open source

Les licences de logiciels open source peuvent généralement être divisées en deux catégories principales : copyleft et permissive. Cette division est déterminée en fonction des exigences et des restrictions qu’un auteur impose aux utilisateurs.

Une licence permissive impose des restrictions minimales sur la façon dont les autres peuvent utiliser les composants open source. Elle n’exige pratiquement rien en retour concernant les obligations à venir.

Une licence copyleft fournit la même autorisation qu’une licence permissive, mais exige que vous publiez tous les ouvrages dérivés que vous faites sous les mêmes conditions de licence copyleft.

De nombreuses licences open source précisent si ou comment le logiciel peut être utilisé dans des applications commerciales, ainsi que les conditions et les restrictions dans lesquelles cela peut être réalisé.

Un composant logiciel sans licence n’est pas libre d’utilisation. Par défaut, il est entièrement protégé par des droits d’auteur, ce qui signifie que les développeurs n’ont aucun droit légal de l’utiliser, de le modifier ou de le partager.

En tant que communauté, les développeurs de logiciels open source font de leur mieux pour s’assurer que leur code soit facile à adopter, à utiliser et à respecter. Et les entreprises peuvent également apporter leur contribution en s’assurant qu’elles respectent les exigences en matière de licence pour le code qu’elles utilisent.

Compatibilité des licences

Associer des licences différentes peut être un défi. En effet, les autorisations et les conditions d’une licence données peuvent créer des conflits avec les exigences d’une autre licence.

En général, les licences permissives sont compatibles entre elles, ce qui en fait des composants populaires pour les produits logiciels propriétaires. Et parce qu’elles sont permissives, elles sont compatibles avec les licences copyleft.

En général, les licences copyleft sont plus problématiques pour les logiciels commerciaux car elles sont connues comme des licences réciproques. Cela signifie que les œuvres dérivées doivent également être publiées sous une licence copyleft compatible.

Ces licences partent du principe que tout le monde peut bénéficier librement du travail accompli par les autres, mais que toute modification de ce travail doit également profiter à tout le monde, et doit donc être publiée dans des conditions similaires.

Pourquoi la conformité open source est-elle si importante ?

Pourquoi la conformité open source est-elle si importante ?

Pourquooi avoir des licences open source ?

Les composants open source accélèrent le cycle de développement des logiciels. Ils sont soutenus par des centaines et parfois par des milliers de communautés qui représentent les développeurs OSS.

Bien que le logiciel soit gratuit, les utilisateurs ont la responsabilité de s’assurer d’être en conformité avec les obligations qui découlent d’une licence.

La conformité des logiciels open source correspond au processus par lequel les utilisateurs et les développeurs OSS respectent les mentions de droits d’auteur et se conforment aux termes et conditions de la licence.

Les licences aident les entreprises à protéger leur propre propriété intellectuelle, celle des fournisseurs tiers et facilitent l’utilisation des logiciels open source dans les produits commerciaux.

Quelles sont les conséquences de la non-conformité ?

L’utilisation d’un package sans licence ou avec une mauvaise licence peut conduire à des défauts de conformité, et par conséquent peut engendrer :

  • Une perte de temps et des frais supplémentaires liés à la suppression d’un composant
  • Un “retour à la case départ” si vous devez remplacer et redévelopper un segment de code
  • Le risque de recevoir une plainte pour violation après la sortie
  • Le risque de compromettre la propriété exclusive d’un code propriétaire
  • En raison de la violation des obligations de licence, que l’auteur de la licence vous empêche toute distribution future de ses composants
  • Un composant potentiellement facile à exploiter dû au fait que personne ne maintient la licence

Uiliser un outil comme Bytesafe permet d’identifier les informations de licence des logiciels open source que vous utilisez :

  • Les packages peuvent avoir plusieurs licences
  • Utilisez-le pour limiter les packages problématiques ou sans licence
  • Analysez tous les fichiers du package et soyez notifié lorsque des problèmes de licence sont identifiés.

Risques juridiques et obligations

Risques juridiques et obligations

L’effet du copyleft

Le copyleft stipule que toute personne qui redistribue le logiciel, avec ou sans modifications, doit accorder la liberté de le copier et de le modifier à nouveau.

Modification de logiciels open source

Lors de la distribution de versions modifiées, certaines licences exigent que ces modifications soient formellement mises en évidence et soient accompagnées de renseignements sur la date et la nature des modifications apportées, ou exigent que les composants modifiés soient renommés pour éviter toute confusion avec la version originale.

Texte de licence

La plupart des licences de logiciels open source contiennent des obligations spécifiques concernant l’information et la documentation. Dans de nombreux cas, les licences exigent que le texte de licence soit fourni avec le logiciel lors de sa distribution.

L’absence de texte de licence est un cas récurrent de violation de licence, qui peut conduire à la perte de tous les droits d’utilisation dans le cas de certaines licences et qui, dans la pratique, entraîne parfois des démarches pour assurer que les conditions soient respectées telles qu’une injonction provisoire.

Mentions légales

En plus du texte de licence, dans de nombreux cas, la diffusion d’une mention légale indiquant le nom de l’auteur est également requise.

Les mentions légales se trouvent généralement à plusieurs endroits dans le logiciel. Certaines d’entre elles sont présentes dans le fichier des textes de licence. De plus, les fichiers sources peuvent également contenir des mentions légales, souvent dispersés dans des centaines, voir des milliers de fichiers.

Diligence raisonnable

Lors de l’investissement dans une entreprise, une étape essentielle du processus de diligence raisonnable est souvent liée aux logiciels propriétaires et à l’utilisation de composants open source.

Les logiciels open source utilisés dans un produit propriétaire peuvent avoir des ramifications de réglementation et de conformité qui doivent être évaluées. Il convient donc d’examiner l’inventaire des licences logicielles d’une entreprise, afin d’identifier les composants utilisés et de garantir la conformité.

Quand est-ce que les obligations de licence s’appliquent-elles ?

En règle générale, pour que les obligations s’appliquent, il faut que le logiciel soit distribué.

Composition de votre base de code

Composition de votre base de code

Où devez-vous concentrer vos efforts en matière de conformité ?

Vous ne serez pas surpris d’apprendre qu’aujourd’hui, dans la majorité des cas, le code d’un produit logiciel commercial est open source

Comme l’utilisation de l’open source continue de se généraliser, il est essentiel que les développeurs, les entreprises, les équipes juridiques, etc. fassent l’effort de connaître la composition de la base de code de leur produit.

Chaque composant et ses dépendances ont des restrictions et des obligations de licence qui doivent être respectées, allant de la licence permissive où “tout est permis” à la licence copyleft qui est plus restreinte.

Mais pour être en conformité, vous devez savoir quels composants open source se trouvent dans votre base de code. Permissive, avec, ou sans licence, cela implique toujours des conséquences si vous ne vous conformez pas.

Et ce n’est pas parce qu’un composant est sans licence que vous avez carte blanche pour faire ce que vous voulez. L’absence de licence signifie que, par défaut, le composant est soumis à des droits d’auteur exclusives, ce qui signifie que vous ne pouvez pas utiliser, modifier ou partager le code.

Il est donc logique de commencer par concentrer vos efforts de conformité sur les obligations des logiciels les plus contraignants.

There are several organizations who provide guidelines and definitions regarding software licenses.

The Free Software Foundation gère une liste non exhaustive des licences de logiciels et l' Open Source Initiative établit une liste d’environ 80 licences de logiciels open source certifiées.

Analyse de licences

Analyse de licences

Lorsque vous intégrez un logiciel libre dans votre produit logiciel, il est risqué de présumer que la licence principale du projet dont vous avez connaissance est la seule licence à laquelle vous devez vous conformer.

La licence d’un composant ne s’applique pas nécessairement à chaque fichier individuel ou à chaque ligne de code d’un seul fichier. En effet, les projets open source évoluent grâce aux contributions de centaines, voire de milliers de membres de la communauté, provenant tous de sources différentes.

Chaque composant open source peut dépendre d’une myriade de licences que vous pourriez ne pas être en mesure d’identifier sans effectuer une analyse. Chaque licence peut contenir des conditions et des exigences différentes.

Les packages stockés dans un registre Bytesafe sont analysés pour déterminer les informations sur les licences. Les licences identifiées sont ensuite affichées à la fois pour la dernière version du package mais aussi pour les versions individuelles du package.

Les informations de licence analysées permettent aux utilisateurs d’identifier les licences problématiques ou de recevoir une notification pour les packages sans licence ou avec des licences non standardisées.

Le plugin d’analyse de licence Bytesafe

Lorsqu’il est activé, le plugin analyse les fichiers de tous les packages dans un registre et signale les problèmes de licence potentiels. Les licences identifiées pour un package sont alors affichées sous forme de badges de licence. Un package peut avoir un ou plusieurs badges de licence (les packages peuvent avoir plusieurs licences).

De plus, si aucune information de licence n’est trouvée pour un package, cela sera signalé comme un problème de licence potentiel. Les packages qui ne sont pas sous licence sont normalement protégés par des droits d’auteur et une enquête plus approfondie peut être nécessaire.

L’outil d’analyse Bytesafe peut être utilisée de la manière suivante :

  • Code source sans licence - identifiez les packages sans licence
  • Licences non standardisées - identifiez les licences non standardisées qui nécessitent un suivi pour vérifier le statut des droits d’auteur
  • Bloquer les licences problématiques - assurez-vous que les licences non désirées ne sont pas ajoutées à vos registres grâce à une politique de blocage des licences

Erreurs de conformité récurrentes

Erreurs de conformité récurrentes

Code source sans licence

À moins que vous n’incluiez une licence de code qui spécifie le contraire, personne ne peut copier, distribuer ou modifier votre travail. Par défaut, les logiciels sans licence sont entièrement protégés par les droits d’auteur, ce qui signifie que les autres développeurs n’ont pas le droit de les utiliser, de les modifier ou de les partager.

De ce fait, tant qu’il ne passe pas dans le domaine public ou n’est pas protégé par une autre licence, il n’est pas légalement utilisable. Ce qui aura un impact direct sur sa réutilisation ainsi que sa durabilité.

Assurer la conformité avant de distribuer votre logiciel

La conséquence la plus marquante des cas de non-conformité est est l’obligation pour les entreprises concernées de se conformer aux conditions de licence.

Prenez donc le temps de vous familiariser avec toutes les obligations, faites des recherches pour voir toutes les dépendances et leurs conditions de licence.

L’utilisation de code open source étant désormais si répandue chez les développeurs, il est essentiel que les responsabilités en matière de conformité soient partagées au sein d’une organisation. Pour que tous les logiciels open source utilisés dans les produits puissent être identifiés et leur licence vérifiée.

Garder le contrôle de la conformité signifie mettre en place des processus et des procédures solides pour garantir la conformité :

  • Lisez et comprenez quelles sont les obligations de la licence pour vous assurer que celle-ci correspond à ce que vous voulez faire avec le logiciel
  • Avec le logiciel que vous avez développé, informez les utilisateurs du produit qu’il contient un logiciel open source et communiquez-leur leurs droits relatifs à ce logiciel
  • Publiez un texte de licence sur le site Web de votre produit
  • Formez votre personnel pour qu’il comprenne la politique de l’entreprise concernant l’utilisation des logiciels open source .

N’oubliez pas de soutenir la communauté open source

Pour les entreprises qui utilisent des logiciels open source dans leurs produits commerciaux, il est recommandé de développer et de maintenir une bonne relation de travail avec la communauté open source. Pour ce faire, il peut être intéressant de commencer par s’assurer que vous respectez les licences des logiciels open source utilisés.

Image
Image