C’est une menace latente mais bien réelle sur laquelle alerte Veracode dans son 11eme rapport « State of Software Security : Open Source Edition » (sur inscription). En effet pour le spécialiste des tests applicatifs, un champ de mines se cache sous le capot des logiciels modernes. Ces bombes à retardement proviennent des bibliothèques open source et de l’absence d’actualisation du code. En général, les développeurs se servent de ces librairies pour créer leurs applications, mais sans se soucier de la qualité du code, ni de la sécurité.

Sur le plan méthodologique, Veracode a utilisé des données provenant de 13 millions d'analyses couvrant 86 000 référentiels, contenant à leur tour plus de 301 000 bibliothèques uniques. Le rapport cite également les réponses de près de 2 000 développeurs interrogés. Parmi les résultats, le rapport montre que 80 % des bibliothèques tierces ne sont jamais mises à jour et que presque tous les dépôts de code analysés comprenaient des bibliothèques présentant au moins une vulnérabilité. Or 92 % des failles découvertes dans les bibliothèques tierces peuvent être corrigées par une simple mise à jour de la dernière version. L’étude rappelle aussi que les deux tiers des corrections sont « mineures et ne perturbent pas la fonctionnalité des applications les plus complexes ».

Des langages plus ciblés, une mentalité à changer chez les développeurs

Dans le détail, les librairies ont été classées en fonction des langages (cf schéma ci-dessous) et de leur propension à ne pas être mises à jour après un scan montrant des faiblesses. Ruby se positionne en tête (67,1%), JavaScript (65,9%) et Java (64,7%) complètent le podium. En dernière position, on retrouve Python (38,9%) et PHP (37,7%) qui traditionnellement est considéré comme « le mouton noir » de la sécurité, souligne le rapport. Et il vaut mieux ne pas être pressé pour les mises à jour, 50% des bibliothèques ne seront actualisées qu’au bout de 21 mois et 25% ne le sont toujours pas au bout de 4 ans. Si on se focalise uniquement sur les vulnérabilités, une fois les développeurs informés, 17% d’entre eux corrigent les failles dans l’heure, 25% attendent 1 semaine. 50% des brèches sont colmatées dans les 3 mois et 75% sont résolues dans l’année, peut-on lire dans l’étude.

Classement des langages où les librairies ne sont pas mises à jour. (Crédit Photo: Veracode)

« La grande majorité des applications d'aujourd'hui utilisent du code source ouvert. La sécurité d'une bibliothèque peut changer rapidement, il est donc crucial de garder un inventaire à jour de ce qui se trouve dans votre application » explique Chris Eng, directeur de recherche chez Veracode. « Nous avons constaté que les développeurs choisissent une bibliothèque, ils la mettent rarement à jour », poursuit-il. Un changement de mentalité est donc nécessaire, surtout que les entreprises sont de plus en plus sensibles sur la sécurité de leur supply chain. Cette préoccupation arrive seulement en troisième position chez les développeurs qui regardent d’abord la fonctionnalité et la licence de la librairie choisie.