L’un des débats les plus récurrents entre les développeurs et les ingénieurs porte sur le langage de programmation le plus rapide parmi tous, mais la question de savoir lequel d’entre eux offre le plus de sécurité ne se pose pas souvent. Cependant, à la limite de la rapidité, les entreprises recherchent aujourd’hui également plus de sécurité qu’autrefois. Les menaces sur les systèmes informatiques et les applications métiers des entreprises sont grandissantes et même si, les langages de programmation ne cessent d’être régulièrement mise à jour, les pirates et les experts en sécurité parviennent toujours à trouver des failles de sécurité dans leur conception.
Vous avez sûrement votre idée du langage le plus sécuritaire, mais qu’en est-il du moins sécurisé d’entre eux ? Pour cela, WhiteSource, une plateforme de gestion de la sécurité et de la conformité des licences open source fondée en 2011 par Ron Rymon, Azi Cohen et Rami Sass, a mené récemment une étude visant à collecter pour les 7 langages de programmation les plus utilisés, le nombre de vulnérabilités signalées par la communauté open source pour chacun d’entre eux et ainsi, présenter un index de ceux ayant un nombre de vulnérabilités plus élevé.
L'étude s’est appuyée sur une base de données regroupant des informations provenant de sources diverses telles que la base de données nationale sur les vulnérabilités des USA (NVD), les avis de sécurité, GitHub et d’autres projets populaires liés au suivi des problèmes. WhiteSource a souligné le fait que le rapport tient en compte seulement les sept langages les plus populaires utilisés ces dix dernières années dans la communauté open source notamment le C, le Java, le JavaScript, le Python, le Ruby, le PHP et le C++.
Ensuite, WhiteSource a précisé que l’étude a vérifié pour chaque langage de programmation quelles étaient ses CWE les plus courantes. Cela a révélé que les vulnérabilités les plus courantes dans la plupart de ces langages sont le Cross-Site Scripting (XSS), la validation des entrées, les autorisations, les privilèges, les contrôles d'accès, etc. Il faut noter cependant que CWE fait référence à une liste mise au point par la communauté qui recense les faiblesses courantes en matière de sécurité des logiciels. Il sert de langage commun ou de jauge pour les outils de sécurité logicielle et de base pour les efforts d'identification, de réduction et de prévention des failles.
Pourcentage des vulnérabilités reportées par la communauté open source
C’est donc sur la base de tout ceci que la plateforme a présenté son index. WhiteSource indique qu’en dix ans, C a montré un nombre de vulnérabilités très important. Il arrive donc en tête de liste des langages les plus vulnérables avec une faiblesse reconnue à 47 % de toutes les vulnérabilités signalées. Pour former le trio des langages présentant le nombre de vulnérabilités le plus élevé, le PHP et le Java suivent respectivement 17 % et 12 %. Le JavaScript vient en quatrième place avec 11 %, le Python et le C++ restent en cinquième place avec 6 % chacun et le Ruby ferme le podium avec un nombre de vulnérabilités open source connu de 5 %. Il est donc le moins vulnérable parmi ces sept langages de l’étude.
Cela dit, un nombre de vulnérabilités élevé pour un langage signifie-t-il que le langage est moins sécurisé que les autres ? WhiteSource semble avoir répondu non. Il explique que plus le volume de code écrit dans un langage est élevé et plus le nombre de vulnérabilités est susceptible d’être élevé pour ce dernier ou cela peut également dépendre d’autres facteurs. « Le nombre élevé de vulnérabilités dans C peut s’expliquer par plusieurs facteurs. Pour commencer, l’utilisation de C remonte à plus longtemps que n’importe lequel des autres langages que nous avons recherchés. Il possède le volume de code écrit le plus élevé et c'est l'un des langages derrière des infrastructures majeures telles que OpenSSL et le noyau Linux. Cette combinaison gagnante de volume et de centralité explique le nombre élevé de vulnérabilités Open Source connues en C », précise WhiteSource à propos du langage C.
vulnérabilités par langage au fil des années
Selon l’analyse de WhiteSource, le nombre de vulnérabilités reconnu pour chaque langage de programmation a augmenté très rapidement au cours des dix dernières années avec une augmentation particulière en 2017. Cet état de choses résulterait de la popularité croissante de l’open source qui a permis de découvrir plus de problèmes au sein des logiciels. De plus, énonce le rapport, les outils de sécurité automatisés et les investissements croissants dans les programmes de bug bounty ont largement contribué à faire grandir les bases de données des vulnérabilités des langages.
Source : WhiteSource
Et vous ?
Que pensez-vous des résultats de cette analyse ?
Selon vous, quel est le langage de programmation le moins sécurisé ? Pourquoi ?
Voir aussi
Quel langage de programmation pour le Web est-il plus sécurisé ? Selon une étude, les langages populaires ont presque le même degré de sécurité
Internet aurait de sérieux problèmes à cause de langages comme C et C++ favorisant la survenue de failles mais peu de développeurs s'en soucieraient
Rust 1.21 est disponible en téléchargement le langage de programmation centré sur la sécurité et la vélocité