L'utilisation de logiciels open source est devenue presque omniprésente dans la communauté du développement logiciel. Les écosystèmes de développement sont devenus de plus en plus dépendants des bibliothèques et des packages tiers pour rationaliser le développement. La conscience de l'impact de l'augmentation de la prévalence des logiciels open source sur la sécurité des les organisations d'entreprises semblent également se développer. De son côté, la communauté open source ne reste pas inactive. En novembre 2019, GitHub (acquis en 2018 par Microsoft) a annoncé le lancement du GitHub Security Lab avec un accès gratuit à son outil de révision de code CodeQL et l'ouverture de sa base de données Advisory au public.
Cependant, la question demeure : cette sensibilisation accrue se traduit-elle par une amélioration de la sécurité et des pratiques liées à l'utilisation de logiciels open source ? Dans le cadre de son rapport annuel sur l'état de la sécurité open source, le spécialiste de l’open source Snyk a tenté d’y répondre afin d'aider la communauté du développement à exploiter l'open source en toute sécurité.
L’univers de l’open source
La tendance à une croissance incroyable de l'utilisation et de la contribution des logiciels open source dans divers écosystèmes de développement de logiciels s'est poursuivie en 2019. Dans le rapport State of the Octoverse, GitHub a signalé que plus de 10 millions de nouveaux utilisateurs ont rejoint GitHub l'année dernière, ce qui porte le nombre total de développeurs sur cette plateforme à plus de 40 millions.
« Nos recherches sur plusieurs écosystèmes et référentiels étaient conformes aux tendances de croissance globales observées dans la communauté open source. En termes d'écosystèmes de développement, nous avons continué de suivre les progrès de cinq des écosystèmes open source les plus courants.
« La croissance des packages open source est principalement due à la popularité et à la croissance continues de l'écosystème JavaScript. À l'inverse, moins de nouveaux packages ont été créés pour Java et Ruby que l'année précédente. Dans l'ensemble, dans ces cinq écosystèmes, le nombre total de colis a considérablement augmenté. En particulier, npm a augmenté de plus de 33 % entre fin 2018 et fin 2019 ».
Les implications du développement open source pour la sécurité
Un facteur de risque clé lorsque les entreprises envisagent la sécurité de l'utilisation de leurs logiciels open source se concentre sur l'idée de maintenir une nomenclature logicielle. Les organisations ont du mal à comprendre quelles bibliothèques et quels packages open source sont inclus dans le logiciel qu'elles produisent. Ce défi vient de la difficulté à comprendre non seulement les dépendances open source directes définies dans leur code, mais aussi les dépendances indirectes qui en résultent.
« Dans notre enquête, nous avons interrogé les participants sur leur capacité à suivre les dépendances open source dans leur logiciel. Plus de 60 % ont déclaré ne pas avoir une bonne vue sur les arbres de dépendance complets de leur logiciel. En conséquence, il serait extrêmement difficile d'identifier si une vulnérabilité récemment découverte dans un package open source affecte ou non leur code ».
Lorsque vous considérez ces informations à la lumière de la croissance et de l'utilisation répandue d'écosystèmes comme Node.js, le risque que le développement open source pose aux organisations devient bien trop réel. Snyk déclare analyser chaque année les vulnérabilités qu’elle a identifiées dans des centaines de milliers de projets : « nous continuons de constater que la majorité des vulnérabilités Node.js, Java et Ruby identifiées sont introduites via des dépendances indirectes ».
Snyk a déclaré que 86% des bogues de sécurité JavaScript, 81 % des bogues Ruby et 74 % des bogues Java affectaient les bibliothèques qui étaient des dépendances des composants principaux chargés dans un projet.
Snyk fait valoir que les entreprises qui analysent leurs dépendances principales à la recherche de problèmes de sécurité sans explorer leur arbre de dépendance complet à plusieurs niveaux vers le bas finiraient par avoir des produits vulnérables aux bogues imprévus.
« Ces dernières années, nous avons vu qu'en termes de vulnérabilités totales identifiées dans les packages open source à travers les écosystèmes, Node.js et Java ont...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.