Le volume 11 du rapport de Veracode sur l'état de la sécurité des logiciels est considéré par l'entreprise comme un rapport avant-gardiste. La 11e version du rapport de Veracode sur l'état de la sécurité des logiciels est enrichie par les données de plus de 130 000 applications scannées. Les tendances relevées permettent non seulement d'avoir une idée des risques auxquels les équipes de développement et de sécurité sont régulièrement confrontées, mais elles mettent également en lumière les vulnérabilités et les langages les plus risqués que les développeurs doivent surveiller pendant leur travail.
Selon Veracode, il est aujourd'hui important que les développeurs soient capables d'écrire du code plus rapidement et plus efficacement pour répondre aux exigences du développement logiciel moderne. L'entreprise estime que, bien qu'il soit plus facile que jamais de trouver et de corriger les failles avec les bons outils de sécurité des applications (AppSec), les équipes de développement sont toujours confrontées à des défis spécifiques aux langages qui peuvent se transformer en obstacles. C'est pourquoi les développeurs doivent examiner les tendances de la fréquence des bogues dans divers langages courants.
Cela leur permettra d'avoir une meilleure compréhension des risques quotidiens auxquels ils sont confrontés lors du codage et ils pourront utiliser ces connaissances pour anticiper ces vulnérabilités avant qu'ils ne deviennent un problème.
État de la sécurité des logiciels v11 : principales conclusions
Dans le volume 10 de l'état de la sécurité des logiciels, Veracode s'était intéressé à la prévalence des failles dans les langues les plus courantes. L'entreprise a constaté que certains langages sont plus sensibles à certains types de vulnérabilités que d'autres. Les débordements de mémoire tampon et les erreurs de gestion de la mémoire tampon sont des problèmes courants en C++, mais les capacités intégrées de gestion de la mémoire tampon des langages de haut niveau (comme .NET et JavaScript) font que ces failles ont tendance à être rares dans ces applications.
Dans ce volume 11 de l'État de la sécurité logicielle, Veracode a constaté que les distinctions entre les langages restent valables : 59 % des applications C++ présentent des bogues de haute (et très haute) gravité, contre seulement 9 % pour les applications JavaScript. Le script est un peu chamboulé avec Java, car seuls 24 % des utilisateurs ont des bogues critiques cette fois-ci. En gros, le rapport a révélé que 76 % des applications analysées contiennent des bogues, et 24 % d'entre elles présentent des vulnérabilités considérées comme très graves.
Environ 70 % des applications héritent de failles de sécurité de leurs bibliothèques de logiciels libres. En outre, Veracode juge qu'il est important de noter que seulement 30 % des applications ont plus de bogues de sécurité dans leurs bibliothèques de logiciels libres que dans le code écrit en interne, ce qui suggère que ce ne sont pas seulement les projets de logiciels libres qui sont à blâmer. Dans son rapport de 2020, Veracode a déclaré que les bibliothèques open source sont une surface d'attaque massive en raison de leur omniprésence.
Le rapport souligne également qu'il n'y a pas de corrélation entre la qualité du code interne et les bogues des logiciels libres, soulignant que les développeurs devraient vérifier la sécurité des bibliothèques de logiciels libres, quelle que soit la qualité de leur propre code. En ce qui concerne la manière dont les bogues sont résolus, Veracode a constaté que 73% des bogues qu'il a trouvés dans le cadre du rapport ont été corrigés, ce qui constitue une grande amélioration par rapport aux années précédentes, où ce chiffre se situait dans la moyenne des 50 %.
Malgré ce bon signe, il faut encore six mois en moyenne pour fermer la moitié des failles découvertes. En ce qui concerne les types de failles de sécurité découvertes, le rapport indique que les résultats sont conformes aux années précédentes.
Les types de failles de sécurité découvertes par Veracode en 2020
Selon le rapport de Veracode, pour la plupart, les principaux types de failles sont restés assez constants au fil des ans. Le volume 10 de l'année 2019 a révélé que les fuites d'informations, les problèmes cryptographiques, l'injection de CRLF et les failles de qualité de code étaient les types de vulnérabilités les plus courants dans les applications. Dans la recherche de cette année, les trois premiers types de vulnérabilités n'ont pas bougé, et en troisième place, les problèmes cryptographiques sont également présents dans presque deux applications sur trois présentant des défauts dans ce rapport.
Le type de failles le plus courant dans les applications .NET était la fuite d'informations, tandis que le Cross-Site Scripting (XSS) pour PHP et l'injection CRLF pour les applications Java étaient les plus courants. La première intersection se retrouve dans la deuxième faille la plus fréquente, la qualité du code apparaissant à la fois pour les applications .NET et Java. En fait, il existe plusieurs points de chevauchement pour les applications .NET et Java, ce qui est logique compte tenu des similitudes entre ces deux plateformes. Mais ce n'est pas tout.
Bien que la ventilation du langage soit utile, ce type d'analyse présente un risque important, car elle peut élever artificiellement certains types de failles. Le Cross-Site Scripting est également la faille la plus courante dans les applications JavaScript, mais cela s'applique à moins d'un tiers des applications analysées. Il est donc un peu problématique de le mettre sur le même plan de gravité que PHP, où XSS se trouve dans les trois quarts des applications scannées. Veracode a également publié une carte thermique des pires bogues dans les langages les plus populaires.
Il est intéressant de noter que le langage qui utilise le moins de bibliothèques open source est aussi celui qui présente le plus de bogues : PHP. En regardant la carte thermique, il est facile de repérer lequel des cinq langages populaires inclus a la plus mauvaise sécurité. Après PHP, il y a C++, puis Java, .Net, JavaScript et Python. Ces deux derniers font beaucoup mieux que la concurrence, les pires bogues de chacun d'eux n'étant trouvés que dans environ 30 % des applications. Comparativement à PHP, dont 74,6 % des applications sont vulnérables aux scripts intersites, JavaScript et Python sont des moteurs de sécurité.
Enfin, Veracode estime que, quel que soit le langage que vous choisissez, il est essentiel de mettre en œuvre les meilleures pratiques, que l'entreprise décrit dans le rapport comme "nature vs. culture". En substance, la nature des applications est constituée d'éléments qui ne peuvent être contrôlés, alors que les aspects de l'enrichissement sont ceux que vous pouvez contrôler. Selon le rapport, même si le développeur a hérité d'une vieille application gargantuesque avec des tas de dettes de sécurité, et qu'il n'y a plus personne qui se souvienne pourquoi certaines choses ont été codées de cette façon, réparer les défauts et ajouter de nouvelles fonctionnalités ne doit pas continuer à être difficile.
« Nous avons examiné l'effet de la nature et de la culture sur la sécurité de nos applications. Nous avons constaté que la culture, nos décisions et nos actions peuvent surmonter et améliorer la nature de l'application et de l'environnement », a conclu Veracode.
Source : Rapport de Veracode
Et vous ?
Cette étude est-elle pertinente ou pas ?
Quelle est votre expérience en la matière pour ce qui est de vos applications ?
Voir aussi
The State of the Octoverse 2020 : Python et TypeScript gagnent en popularité parmi les langages de programmation, alors que JavaScript continue d'être le langage le plus populaire sur GitHub
État de JavaScript en 2019 : les développeurs aiment un peu plus React, Angular est en déclin, un groupe de développeurs pense que JS est « trop complexe »
Les tendances dans les métiers de la technologie en France en 2017, une enquête réalisée par CodinGame
Les bibliothèques JavaScript ne reçoivent presque jamais de mise à jour une fois qu'elles sont installées, selon une enquête de Cloudfare