Pour les organisations qui dépendent des services numériques, il est essentiel d’adopter les meilleures pratiques en matière de sécurité des applications web, notamment en testant régulièrement et continuellement leurs sites et applications pour détecter les vulnérabilités. Ces tests de sécurité vous permettent d’identifier et de corriger rapidement les vulnérabilités des applications web avant que des attaquants ne puissent les exploiter, tout en vérifiant que les mécanismes et contrôles de sécurité que vous avez mis en place fonctionnent efficacement dans des conditions réelles.
Lisez ce billet de blog pour découvrir les principales catégories de tests de sécurité des applications web, et quand ainsi que comment les appliquer. Nous illustrons avec des exemples d’outils de test de sécurité des applications web et partageons les meilleures pratiques en la matière. Enfin, vous trouverez une liste de contrôle pratique pour la sécurité des applications web, avec des conseils concrets et des instructions claires.
Il existe trois principaux types de tests de sécurité applicative web. Les tests de sécurité applicative statiques (SAST) analysent le code source pour détecter les vulnérabilités, tandis que les tests de sécurité applicative dynamiques (DAST) explorent la surface d’attaque externe (généralement côté client/front-end) pendant l’exécution de l’application pour identifier les failles. Lors des tests d’intrusion (pen testing), nos experts en cybersécurité simulent des attaques en conditions réelles afin de mieux cibler les vulnérabilités potentielles.
SAST analyse la base de code d’une application sans exécuter le programme pour identifier rapidement les vulnérabilités connues et les défauts de codage, ce qui vous aide à corriger les problèmes avant la mise en production. SAST détecte souvent des vulnérabilités telles que les dépassements de tampon, où les données excèdent la mémoire allouée, provoquant des plantages ou l’exécution non prévue de code. Il repère aussi les failles d’injection SQL, lorsque des entrées non assainies sont utilisées dans les requêtes, permettant ainsi à des attaquants de manipuler ou d’accéder aux données. SAST identifie également les scripts intersites (XSS), où des scripts malveillants sont injectés dans les pages web vues par d’autres utilisateurs.
Contrairement à DAST, les outils SAST s'exécutent généralement tôt dans le cycle de développement pour vérifier que vous suivez des pratiques de codage sécurisé, à un stade où corriger les erreurs est souvent plus simple. Au contraire des tests d'intrusion, le SAST fonctionne généralement via des outils automatisés avec peu d'intervention humaine et s'intègre souvent à un processus d'intégration et de livraison continues (CI/CD).
Les outils SAST sont spécifiques au langage ; assurez-vous de choisir celui qui supporte votre ou vos langages de programmation. Le projet mondial ouvert sur la sécurité des applications (OWASP) maintient une liste exhaustive d'outils SAST.
DAST analyse les applications en cours d'exécution pour repérer les vulnérabilités d'exécution qui ne sont pas visibles dans le code source. DAST peut identifier les vulnérabilités dépendantes de la configuration, qui n'apparaissent que dans certaines conditions environnementales, ainsi que les risques de sécurité liés aux interactions avec des systèmes externes, comme les API, les bases de données et les services tiers. DAST peut également détecter les vulnérabilités provoquées par un comportement utilisateur malveillant ou inattendu, tel que la manipulation des entrées ou l'abus de session.
Contrairement à SAST, nous utilisons les outils DAST plus tard dans le cycle de développement, lorsque l’application est déjà en production. DAST sonde et teste généralement depuis le client, sans accéder au code source, ce qui simule un attaquant cherchant à détecter et exploiter des vulnérabilités. DAST s’avère particulièrement utile pour identifier les problèmes dans des environnements de préproduction ou proches de la production, complétant ainsi les méthodes de test au niveau du code telles que SAST. DAST se distingue aussi du test d'intrusion : il s’appuie sur des outils automatisés qui nécessitent peu d’intervention humaine et s’intègre en continu dans un processus CI/CD
F5 propose une solution de type DAST avec F5 Distributed Cloud Web App Scanning, qui simplifie la sécurité web en explorant, découvrant et cartographiant automatiquement vos ressources web exposées pour dresser un inventaire précis des applications et services sur tous vos domaines. Nous effectuons des tests de pénétration automatisés et identifions à la fois les vulnérabilités connues, comme les CVE et les logiciels obsolètes, ainsi que les vulnérabilités inconnues, notamment les menaces OWASP Top 10 et LLM Top 10. Cette démarche proactive vous assure une protection complète de vos ressources web. OWASP publie également une longue liste d’outils DAST.
Nous réalisons des tests de pénétration manuels, menés par des experts en cybersécurité qui simulent des attaques sophistiquées afin d’identifier et d’exploiter les vulnérabilités dans une application, un système ou un réseau. Ces tests offrent un aperçu clair de votre posture de sécurité en montrant comment un attaquant pourrait exploiter vos faiblesses et en évaluant l’impact potentiel.
Les tests d'intrusion dévoilent efficacement les menaces complexes ou sophistiquées que les outils automatisés peuvent ignorer, comme les attaques ciblant la logique métier qui exploitent la fonctionnalité et les processus d'une application. Ils révèlent aussi les risques d'attaques par ingénierie sociale, où les attaquants manipulent des personnes pour accéder ou obtenir des informations de manière illégitime.
Contrairement à SAST et DAST, les tests de pénétration s'effectuent selon un calendrier pour la majorité des organisations. Ces tests sont souvent réalisés annuellement, trimestriellement ou mensuellement, en fonction du budget et des exigences en matière de sécurité.
Nous utilisons un large éventail d'outils spécialisés en tests de pénétration pour simuler des attaques et détecter les vulnérabilités potentielles dans l’environnement numérique de votre organisation, dont des scanners d’application web qui cartographient les services d’attaque externes d’un domaine et identifient les failles possibles. Nous intégrons aussi des analyseurs de trafic réseau pour surveiller et examiner les flux à la recherche d’activités non autorisées ou d’expositions de données, ainsi que des proxys web qui interceptent et inspectent le trafic entre votre navigateur et le(s) serveur(s) web afin de repérer les problèmes tels que la transmission de données non sécurisée. Les outils de craquage de mots de passe vérifient la robustesse des mots de passe hachés ou des identifiants mal sécurisés.
Certains produits spécialisés, comme Burp Suite, offrent un ensemble complet d'outils pour les tests d'intrusion, mais la plupart des testeurs utilisent diverses solutions spécialisées, adaptées à chaque tâche spécifique. Bien que certains outils promettent un « test de pénétration automatisé » plus économique qu’un test manuel, il reste important de solliciter de temps en temps des experts en cybersécurité pour réaliser un test manuel approfondi, selon le budget. En complément, misez sur des solutions de tests automatisés continus pour répondre aux besoins entre deux tests manuels.
De plus, F5 vous offre un scan gratuit de vos applications web qui constitue une première étape pour évaluer et renforcer la sécurité de vos applications web. Cette démarche interactive vous donne une visibilité complète sur n’importe quel domaine et constitue une base solide pour renforcer vos défenses de sécurité.
Pour assurer l'efficacité des outils de test de sécurité des applications web que vous sélectionnez, suivez ces meilleures pratiques.
Intégrez les tests de sécurité tout au long du cycle de vie des applications pour identifier rapidement et fréquemment les vulnérabilités.
Voici une liste pratique des informations et des vulnérabilités à rechercher lors des tests de sécurité d’applications web, que vous utilisiez SAST, DAST ou des tests d’intrusion. Pour en savoir plus, référez-vous au Guide de test de sécurité des applications web OWASP, une ressource complète avec des instructions détaillées pour tester efficacement la sécurité des applications.
Catégorie | Description |
---|---|
Collecte d'informations |
Cartographiez le cadre de l’application web, les points d’entrée et les chemins d’exécution, et repérez toute fuite d’informations via les moteurs de recherche, le contenu web ou les fichiers méta. |
Gestion de la configuration et du déploiement | Testez la configuration du réseau et de la plateforme applicative, les méthodes HTTP, les politiques de sécurité du contenu et les permissions des fichiers. |
Gestion des identités | Tester les définitions de rôles, les processus d'intégration de comptes et les politiques de nom d'utilisateur. |
Authentification | Vérifiez l'utilisation d'informations d’authentification par défaut, les contournements d’authentification, les méthodes d’authentification faibles, les mécanismes de verrouillage et les fonctionnalités de changement de mot de passe. |
Autorisation | Vérifiez la traversée de répertoire, les références d’objets directs non sécurisées, l’escalade de privilèges et les faiblesses d’OAuth. |
Gestion des sessions | Vérifiez le schéma de gestion des sessions et les attributs des cookies, puis contrôlez les variables de session exposées, le détournement de session et la falsification de requêtes intersites. |
Validation des entrées | Testez la vulnérabilité aux attaques de type cross-site scripting, à l'injection de données (comme l'injection SQL, LDAP, injection de code, etc.) et à la falsification de requêtes côté serveur. |
Gestion des erreurs | Veillez à ce que la gestion des erreurs empêche les attaquants de comprendre les API en usage, de cartographier les différentes intégrations de services ou de lancer un déni de service (DoS). |
Cryptographie | Vérifiez la sécurité de la couche de transport, la robustesse du chiffrement et l’envoi d’informations sensibles via des canaux non sécurisés. |
Logique métier | Vérification de la validation des données de la logique métier, de la capacité à falsifier des requêtes, des téléchargements de types de fichiers inattendus et de la fonctionnalité de paiement. |
Côté client | Testez les scripts intersites basés sur le DOM, les injections HTML et CSS, les redirections d’URL côté client, le partage de ressources entre origines et le cross site flashing. |
API | Effectuez une reconnaissance de l'API et vérifiez si l'autorisation au niveau des objets est vulnérable. |
Pour en savoir plus, consultez cet aperçu de la solution.