Dans le cadre de mon travail pour la mise en œuvre de la norme ISO27001:2022, j’ai eu à traiter des questions relatives au développement d’applications et aux tests de celles-ci, principalement pour la mesure de sécurité de l’annexe 8.28.
Notez que le développement est couvert par les mesures suivantes :
- 8.25 — Secure development life cycle : Les tests permettent d’intégrer la sécurité dès la conception et tout au long du cycle de développement.
- 8.26 — Application security requirements : Ils valident que les exigences de sécurité définies sont bien respectées.
- 8.27 — Secure system architecture and engineering principles : Les tests évaluent la robustesse des choix d’architecture contre les vulnérabilités courantes.
- 8.28 — Secure coding : Les tests SAST permettent d’identifier les failles de sécurité dans le code avant qu’elles n’atteignent la production.
- 8.29 — Security testing in development and acceptance : Cette mesure concerne directement les tests SAST et DAST pour identifier les vulnérabilités avant et après le déploiement.
- 8.30 — Outsourced development : Les tests garantissent que les développements externalisés respectent les standards de sécurité exigés.
- 8.31 — Separation of development, test and production environments : Ils assurent que chaque environnement est bien isolé pour éviter des fuites de données ou des attaques internes.
- 8.32 — Change management : Les tests de sécurité s’intègrent dans le processus de gestion des changements pour vérifier qu’aucune nouvelle vulnérabilité n’est introduite.
- 8.33 — Test information : Cette mesure assure que les tests sont bien documentés et que les résultats sont utilisés pour améliorer la sécurité.
- 8.34 — Protection of information systems during audit testing : Les tests doivent être réalisés de manière à ne pas compromettre la disponibilité ou l’intégrité des systèmes en production.
Avec cet article, j’aimerais mettre en lumière un aspect des tests applicatifs trop souvent négligé par les organisations. Soit les tests avant et après le développement!
Certaines considèrent les tests comme coûteux et inutiles, alors qu’il est possible de les automatiser de manière simple et à faible coût. Cela permet d’améliorer significativement la sécurité de l’application en cours de développement, de renforcer la confiance envers celle-ci et de rassurer les clients en garantissant un produit plus sûr.
De plus, le simple fait de tester votre application permet d’assurer la conformité avec plusieurs contrôles de la norme ISO27001:2022, notamment ceux liés au développement sécurisé et à la gestion des vulnérabilités.

1. L’origine et les définitions de DAST et SAST
Le SAST (Static Application Security Testing) est une méthode de sécurité qui analyse le code source d’une application sans l’exécuter.
Le but est d’identifier des vulnérabilités potentielles dans le code source avant même que l’application soit lancée en production. L’idée est de trouver et de corriger ces vulnérabilités à un stade précoce du cycle de développement.
À l’inverse, le DAST (Dynamic Application Security Testing) se concentre sur les applications en fonctionnement, c’est-à-dire pendant qu’elles sont en cours d’exécution.
Cette méthode tester l’application du point de vue de l’attaquant en simulant des attaques sur une application déployée en production afin d’identifier des vulnérabilités dans les composants externes tels que les interfaces utilisateur, les API ou encore la communication avec les bases de données.
2. Concepts à savoir
SAST
Le SAST se focalise sur l’analyse du code source, des bibliothèques utilisées, et de l’architecture de l’application. En scrutant les fichiers de code, il permet de détecter des failles comme des erreurs de validation d’entrée, des injections SQL, ou encore des fuites d’informations sensibles dans les logs.
Les principales caractéristiques du SAST incluent :
- L’analyse du code source ou du code binaire.
- La détection des vulnérabilités dès la phase de développement.
- La possibilité d’être utilisé par des développeurs tout au long du cycle de développement.
DAST
Le DAST, quant à lui, est plus orienté vers le comportement de l’application une fois qu’elle est en fonctionnement. Il cherche à tester l’application dans un environnement en production ou de pré-production pour trouver des failles exploitées via des attaques externes. Le DAST est donc très utile pour évaluer l’efficacité des protections mises en place dans l’application et vérifier qu’elle ne possède pas de vulnérabilités exploitées par des attaquants.
Les principales caractéristiques du DAST incluent :
- L’analyse en temps réel d’une application en cours d’exécution.
- La simulation d’attaques en utilisant des outils de test de pénétration automatisés.
- L’identification de failles comme les injections SQL, les attaques XSS ou les faiblesses dans l’authentification.
3. Pourquoi utiliser DAST et SAST ?
Les deux techniques, SAST et DAST, apportent des avantages lorsqu’il s’agit de renforcer la sécurité des applications.
Le SAST permet de détecter des vulnérabilités tôt dans le processus de développement, ce qui réduit le coût de leur correction et améliore la qualité du code. En détectant des erreurs dès le départ, les développeurs peuvent éviter de laisser des failles potentielles dans le produit final.
Le DAST, quant à lui, est utilisé pour simuler des attaques dans un environnement réel, permettant ainsi de vérifier l’efficacité des mesures de sécurité mises en place et de repérer des failles exploitables une fois l’application en ligne. Il aide à identifier des risques qui ne peuvent pas être capturés en analysant simplement le code source, comme les vulnérabilités d’interfaces et d’API.
4. Comment intégrer DAST et SAST?
L’intégration de DAST et SAST dans une entreprise nécessite quelques considérations pratiques, notamment en termes de ressources et de compétences disponibles. Voici quelques recommandations :
- Mise en place d’une culture de sécurité dans le développement : Dans une entreprise de taille moyenne, il est crucial que la sécurité soit intégrée dès la phase de développement. Les développeurs doivent être formés à utiliser des outils SAST pour qu’ils puissent détecter les vulnérabilités avant la mise en production.
- Automatisation du processus de test : Pour maximiser l’efficacité des tests de sécurité, il est recommandé d’automatiser les processus SAST et DAST dans les pipelines CI/CD (intégration continue et déploiement continu). Cela permet de détecter automatiquement les vulnérabilités dès que le code est intégré.
- Utilisation de solutions accessibles : Pour les petites entreprises, il existe des outils de sécurité accessibles et peu coûteux qui peuvent être intégrés dans le développement logiciel. Il est important de choisir des solutions qui s’adaptent aux besoins spécifiques de l’entreprise et qui ne nécessitent pas d’expertise pointue.
5. Outils de SAST et DAST
Voici quelques outils populaires pour chaque type de test :
Outils de SAST :
- Checkmarx : Un outil de SAST populaire qui analyse le code source et aide à la détection précoce des vulnérabilités.
- SonarQube : Une plateforme open-source permettant de réaliser des analyses de code statiques pour détecter les défauts de sécurité.
- Veracode : Une solution cloud qui offre à la fois des tests statiques et dynamiques, idéale pour les entreprises de petite taille.
Outils de DAST :
- OWASP ZAP (Zed Attack Proxy) : Un outil open-source qui permet de réaliser des tests de pénétration automatisés sur des applications web.
- Burp Suite : Un outil très utilisé pour réaliser des tests de pénétration et d’analyse de sécurité dans des applications web.
- Acunetix : Une solution qui scanne les sites web à la recherche de vulnérabilités courantes, telle que l’injection SQL et les XSS.
Le SAST et le DAST sont deux approches pour sécuriser le développement des applications. Tandis que le SAST se concentre sur le code source dès les premières étapes de développement, le DAST permet de tester les applications une fois déployées. L’intégration de ces outils dans une entreprise de taille moyenne ou petite nécessite une planification soignée, l’automatisation des tests et l’utilisation d’outils adaptés.
Les entreprises souhaitant améliorer leur posture de sécurité devraient envisager une combinaison de SAST et DAST, tout en formant leurs équipes à l’intégration continue de ces tests. L’évaluation régulière des vulnérabilités reste essentielle pour assurer un développement sécurisé et conforme aux normes de cybersécurité.
Je vous invite à cliquer sur “Follow” pour continuer d’en apprendre plus sur le domaine de la sécurité de l’information.