Applications Web : la sécurité recule
Une étude portant sur près de 600 applications Web développées sur mesure a révélé que les développeurs peinent toujours à éliminer de leur code les vulnérabilités les plus exploitées, ouvrant la voie à des attaques par injection SQL ou scripting inter-sites.
Le britannique Context Information Security a publié récemment la nouvelle édition de ses statistiques des vulnérabilités des applications Web. Pour cela, l'entreprise a effectué des tests de pénétration contre des applications Web pour des organisations du Royaume-Uni, principalement, tant dans le secteur public que privé, au cours de l'an passé. Context Information Security avait effectué une étude similaire en 2010, et considère que les chiffres de 2011 montrent que le problème de la sécurité des applications Web s'aggrave.
L'entreprise a ainsi découvert que les deux tiers des applications Web testés en 2011 peuvent être utilisées par des criminels pour mettre en place des attaques par stripping inter sites (cross-site scripting, XSS), et près d'un sur cinq était ouvert aux injections SQL. Les deux techniques sont couramment utilisées par des attaquants pour pénétrer des systèmes légitimes et les détourner pour contaminer ensuite les ordinateurs d'internautes.
Au total, Context a découvert quelque 8 000 vulnérabilités, soit une moyenne de 13,5 par application, contre 12,5 en 2010. Mauvaise configuration de serveurs et fuites de données arrivent en tête de la liste des types de vulnérabilités rencontrées. Une liste où figurent aussi les failles d'authentification, de gestion de session ou de contrôle des permissions, et les vulnérabilités liées au chiffrement. Seul domaine d'amélioration : la validation des entrées de données, du fait d'un recours accrus à des frameworks de développement, selon les chercheurs, qui intègrent en standard des capacités de validation des entrées.
Les applications Web créées pour le secteur public étaient celles contenant le plus grand nombre de vulnérabilités en 2011, avec plus de 15 vulnérabilités par application testée. Mais bien que le secteur des services financiers ait eu l'un des plus faibles taux de vulnérabilités au cours des deux dernières années, le nombre moyen de vulnérabilités par application y a légèrement augmenté en 2011. Les secteurs du droit et de l'assurance ont également vu une augmentation du nombre moyen de vulnérabilités de leurs applications Web.
Certains secteurs ont réussi à obtenir des améliorations. C'est dans le secteur des médias et de la publicité que le nombre de vulnérabilités par application Web a le plus reculé. Bon résultat aussi pour le secteur de la santé, avec un nombre moyen de vulnérabilités par l'application passé de 13,5 en 2010 à 11 en 2011.
«Je suis surpris par le niveau des vulnérabilités ouvrant la porte aux injections SQL parce que beaucoup de frameworks, au cours des 10 dernières années, ont évolué de telle sorte qu'il n'est plus nécessaire d'écrire de code SQL. Le développement se fait à un niveau supérieur », explique Michael Jordan, directeur de la recherche et du développement de Context.
Jordon est en revanche moins surpris par le fait que le XSS soit toujours un problème parce que, bien que quelques-unes des techniques les plus simples aient été bloquées, les pirates ont créé des méthodes d'exécution XSS plus sophistiquées.
En fait, pour Jordon, les frameworks de développement d'applications Web tels que Apache Struts et ASP.NET de Microsoft gèrent désormais de nombreuses fonctions de sécurité automatiquement, sans que les développeurs aient à écrire du code spécifique. Ce qui peut les conduire à oublier des règles de sécurité de base : "vous pouvez compter sur les frameworks pour qu'ils fassent ce qu'ils sont censés faire, mais parfois, les développeurs ne comprennent pas ce que sont leurs responsabilités propres. Ils présument que le framework fera tout à leur place."
Il recommande donc aux entreprises d'intégrer une approche formelle de la sécurité dans leurs processus de développement et dans ceux de gestion du cycle de vie de leurs applications. Pour lui, la sécurité doit donc être étroitement intégrée à la conception et au développement du code plutôt que cantonnée aux tests de pénétration finaux. Toutefois, il admet que la sécurité peut parfois être laissée de côté dans un monde de développement agile où de nouvelles fonctions peuvent être ajoutées tout au long du cycle de développement.
Adapté de l'anglais par la rédaction