7 risques posés par les logiciels libres et comment se défendre
Qu'est-ce qu'un logiciel Open-Source ?
Beaucoup d'entreprises et de produits, 90% selon certaines estimations, utilisent au moins un composant open-source, même s'ils n'en sont pas conscients. Un logiciel open-source est un logiciel dont le code est disponible pour inspection, modification et amélioration par le public. Généralement, ces logiciels sont créés grâce à la collaboration d'une communauté et sont maintenus et mis à jour bénévolement.
Les logiciels libres peuvent être utilisés selon une variété de licences, en fonction de ce que les créateurs ont mis en place. Linux OS, Apache Web Server, WordPress et Mozilla Firefox ne sont que quelques-uns des logiciels les plus couramment utilisés.
Risques liés à l'utilisation de logiciels libres
En raison de leur construction communautaire et de leur distribution largement non réglementée, une variété de risques - y compris certains risques de cybersécurité - sont associés à l'utilisation de logiciels open-source.
1. Les vulnérabilités sont connues de tous
Les vulnérabilités des logiciels libres sont rendues publiques par les contributeurs eux-mêmes, ainsi que par des organisations telles que l'Open Web Application Security Project (OWASP) et la National Vulnerability Database (NVD).
Si vous faites partie de la communauté d'un projet spécifique, vous êtes souvent averti avant qu'il ne soit rendu public par des groupes tels que OWASP et NVD, mais il en va de même pour toute autre personne faisant partie de la communauté. Cela signifie que si vous ne maintenez pas les dernières versions ou ne mettez pas à jour les composants, vous vous exposez à des risques, car les vulnérabilités sont souvent identifiées et exploitées par les cybercriminels.
2. Manque de sécurité
Les logiciels open-source ne sont assortis d'aucune revendication ou obligation légale en matière de sécurité et le support de la communauté vous informant sur la manière de les mettre en œuvre de manière sécurisée peut être insuffisant. Les développeurs responsables de la création du logiciel ne sont souvent pas des experts en sécurité et peuvent ne pas comprendre comment mettre en œuvre les meilleures pratiques.
Bien que des ressources telles que la liste des 10 principales vulnérabilités de l'OWASP soient accessibles au public et destinées aux communautés open source, elles ne fournissent pas toujours des instructions sur la manière de mettre en œuvre des dispositifs de sécurité pour se prémunir contre ces failles.
Souvent, les logiciels open-source incluent ou requièrent l'utilisation de bibliothèques tierces, extraites des gestionnaires de paquets sans inspection. La nature "boîte noire" de ces bibliothèques rend plus difficile et plus long l'identification et la correction des vulnérabilités qu'elles pourraient injecter.
3. Questions relatives à la propriété intellectuelle
Il existe plus de 200 types de licences pouvant s'appliquer aux logiciels libres, notamment Apache, GPL et MIT. Bon nombre de ces licences sont incompatibles entre elles, ce qui signifie que certains composants ne peuvent pas être utilisés conjointement, car il faut respecter l'ensemble des conditions lors de l'utilisation d'un logiciel libre. Plus le nombre de composants utilisés est élevé, plus il devient difficile de suivre et de comparer toutes les dispositions des licences.
Certaines licences incluent des clauses de "copyleft" qui vous obligent à publier tout logiciel créé avec les composants couverts en tant que logiciel libre, dans son intégralité. Cela rend impossible l'utilisation dans des logiciels propriétaires et moins attrayante l'utilisation à des fins commerciales.
4. Absence de garantie
Les logiciels libres ne sont assortis d'aucune garantie quant à leur sécurité, leur support ou leur contenu. Bien que de nombreux projets soient soutenus, ils sont réalisés par des bénévoles et leur développement peut être interrompu sans préavis.
Les membres de la communauté évaluent généralement le logiciel pour les problèmes de sécurité et fournissent une assistance par le biais de forums ouverts, mais ils ne sont pas obligés de le faire et ne sont pas non plus responsables des conseils erronés.
Les logiciels libres étant créés par des communautés de contributeurs parfois anonymes, il est difficile de vérifier que le code fourni est original et qu'il ne provient pas d'une source tierce ayant des droits de propriété intellectuelle établis. En pratique, cela signifie que si vous utilisez un logiciel open-source qui contient un code dont les droits ont été violés, vous pouvez être tenu pour responsable de la violation.
5. Supervision assouplie des intégrations
Les équipes ont souvent des processus de révision insuffisants ou inexistants lorsqu'il s'agit de savoir quels composants open-source sont utilisés. Plusieurs versions d'un même composant peuvent être utilisées par différentes équipes ou les développeurs peuvent ne pas être conscients des conflits de fonctionnalité ou de licence.
Ces problèmes peuvent survenir en raison d'un manque de connaissance des logiciels ou des fonctionnalités de sécurité, d'un manque de communication entre les équipes ou les membres des équipes, ou de protocoles de suivi et de documentation insuffisants ou absents.
Contrairement aux logiciels propriétaires de tierces parties, qui disposent de contrôles intégrés pour empêcher l'utilisation de versions multiples ou incompatibles, les composants open-source dépendent généralement de l'utilisateur pour vérifier l'utilisation correcte.
6. Insuffisances opérationnelles
L'utilisation de composants open-source peut créer beaucoup de travail supplémentaire pour des équipes déjà pressées par le temps et il n'est souvent pas clair qui est responsable de ce travail. Vous devez garder une trace des composants utilisés, de leur version, de l'endroit où ils sont utilisés et de la manière dont ils peuvent interagir avec d'autres composants utilisés.
En outre, il est nécessaire de comparer les licences et de surveiller les mises à jour et les correctifs au fur et à mesure qu'ils sont disponibles, y compris les impacts qu'ils peuvent avoir sur la fonctionnalité. Si les composants utilisés contiennent des fonctionnalités inutiles, ils peuvent ajouter de la complexité à votre système sans aucun avantage.
7. Mauvaises pratiques des développeurs
Les développeurs peuvent, sans le vouloir, accroître les risques s'ils copient-collent des extraits de code provenant de logiciels libres au lieu d'intégrer des composants dans leur intégralité. Cette pratique rend en effet impossible le suivi de ce code, tant du point de vue des licences que de celui de la sécurité.
Lorsqu'ils collaborent avec d'autres membres de l'équipe, les développeurs peuvent transférer des composants par courrier électronique plutôt que par l'intermédiaire d'un gestionnaire de référentiel binaire ou d'un emplacement réseau partagé. Cette méthode peut rendre le code vulnérable à la manipulation pendant le transfert, permettant l'insertion de failles de sécurité ou de fonctionnalités malveillantes.
Comment se protéger et protéger son organisation
Utiliser les bons outils
La mise en place d'équipes DevSec peut vous aider à intégrer la sécurité plus tôt dans votre cycle de vie du développement logiciel (SDLC) et à intégrer des logiciels open source en toute sécurité dès le départ. Les responsables de la sécurité peuvent ainsi évaluer plus facilement les composants que les développeurs souhaitent utiliser et fournir des conseils sur la réduction des risques ou l'élaboration de correctifs.
Les outils d'automatisation peuvent apporter une valeur ajoutée considérable pour le suivi des composants open-source et de leur statut, ainsi que pour l'évaluation des composants. Le code open source peut être analysé avant et pendant son utilisation grâce aux outils Dynamic Application Security Testing (DAST) ou Static Application Security Testing (SAST).
Créer des politiques globales
Les politiques devraient exiger la prise en compte de l'historique d'un composant open-source, comme la densité des problèmes connus, la fréquence de publication des versions et la latence entre l'identification du problème et le correctif. Il est important de connaître la solidité de la communauté impliquée dans un projet et d'anticiper le type de support qu'elle peut ou ne peut pas fournir.
Les politiques doivent dicter quelles sources et quels types de licences sont acceptables pour l'utilisation et doivent aider les développeurs à décider s'ils veulent utiliser des composants individuels ou une base de code entière.
Conclusion
De nombreuses entreprises bénéficient de l'utilisation de logiciels libres et il n'y a pas de raison que vous n'en profitiez pas également. Cependant, connaître les risques posés par les logiciels open-source - dès le processus de développement - vous aidera à éviter les pièges associés au partage de code provenant de la foule. En tenant compte des risques décrits dans ce blog et en mettant en œuvre des stratégies de protection, en plus d'autres stratégies nécessaires pour sécuriser vos systèmes, vous pouvez contribuer à garantir une utilisation sûre des logiciels libres.




