Étayé par des données provenant de plus de 130 000 scans d’applications sur un an, le dernier rapport Vracode State of Software Security Volume 11 de 2020, souligne que la fuite d’information est la faille la plus courante dans les applications. Aujourd’hui, il est essentiel que les développeurs soient capables d’écrire du code plus rapidement et plus efficacement afin de répondre aux exigences du développement de logiciels modernes.
« Bien qu’il soit plus facile que jamais de trouver et de corriger les défauts 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. En examinant les tendances de la fréquence des défauts dans divers langages courants, les développeurs ont une meilleure compréhension des risques quotidiens auxquels ils sont confrontés lors du codage et peuvent utiliser ces connaissances pour devancer ces défauts avant qu’ils deviennent un problème », peut-on lire dans le rapport.
En comparant les langages, l’enquête a révélé des disparités importantes en termes de sécurité du code produit : 59 % des applications C++ présentent des défauts de gravité élevée (et très élevée), contre seulement 9 % pour les applications JavaScript. Avec Java, seulement 24 % des applications présentaient des défauts critiques (voir le graphique ci-dessus).
La fréquence des failles par langage de programmation
Quant au type de défaut critique le plus courant, c’est la fuite de données dans les applications .NET, alors que pour PHP c’est le Cross-Site Scripting (XSS) et l’injection CRLF pour les applications Java. 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 scannées. Il est donc un peu problématique de le mettre au même niveau de gravité que le code produit avec PHP, où le XSS est présent dans les trois quarts des applications scannées.
« Il n’est pas réaliste de s’attendre à ce que les développeurs écrivent un code parfait chaque fois qu’ils travaillent sur une application, mais il est essentiel qu’ils soient en mesure de trouver et de corriger les défauts selon un calendrier qui ne crée pas davantage de goulets d’étranglement », remarque Veracode.
Des analyses plus fréquentes, l’association de l’analyse dynamique (DAST) et de l’analyse statique (SAST), la mise en œuvre d’une cadence de balayage régulière, ainsi que le recours à l’analyse de la composition des logiciels (SCA) avec le SAST peuvent permettre de remédier plus rapidement à un plus grand nombre de vulnérabilités, et garder la sécurité applicative sous contrôle. « En revanche, une densité de failles plus élevée ralentit considérablement le processus de remédiation de plus de 50 jours, en particulier pour les applications plus importantes », conclut le rapport.