Découvrez comment intégrer facilement l'analyse statique, les tests unitaires et d'autres méthodes de test de logiciels C et C++ dans votre pipeline CI/CD. Inscrivez-vous pour la démo >>

Test de sécurité dynamique des applications: avantages et inconvénients de DAST

Par Ricardo Camacho

8 April 2021

5  min lire

DAST est une méthodologie de test d'application qui peut aider les développeurs à découvrir les vulnérabilités de sécurité. Cependant, il est criblé de quelques défauts, rendant nécessaire une combinaison entre DAST et SAST. Passez en revue pour savoir comment vous pouvez mélanger les deux.

Le test de sécurité dynamique des applications (DAST) est un ensemble de méthodes de test que les développeurs de logiciels utilisent pour rechercher des vulnérabilités de sécurité dans les applications en simulant des comportements malveillants afin d'identifier les faiblesses qui pourraient être exploitées. Dans les tests de boîte noire, DAST imite les mêmes types d'attaques externes qu'un pirate informatique tenterait, mais sans avoir besoin de comprendre ou de visualiser l'architecture d'une application ou le code source interne.

Les outils DAST sophistiqués peuvent effectuer des analyses complexes pour détecter un large éventail de failles afin de prévenir les failles de sécurité telles que les attaques par déni de service distribué (DDoS), les scripts intersites (XSS), les injections SQL, etc. Et bien que DAST soit un outil puissant pour la cybersécurité, il ne peut être utilisé que vers la fin du cycle de vie de développement logiciel (SDLC) car il a besoin d'une version en cours d'exécution d'une application avant de pouvoir fonctionner.

Pendant le développement et une fois qu'une application est prête pour le test par voie d'exécution, une approche DAST peut effectuer des tests de pénétration et / ou des tests d'API afin de trouver des failles ou des vulnérabilités, afin que ces problèmes découverts puissent être mis dans un sprint pour être corrigés. Cela aide les ingénieurs DevOps à résoudre rapidement ces problèmes avant que le logiciel ne soit diffusé au public. Lorsqu'il est combiné avec d'autres formes de tests de sécurité comme les tests de sécurité des applications statiques (SAST), cela fournit une stratégie de test complète pour aider votre équipe à fournir des logiciels sûrs, sécurisés et fiables.

Ajouter une analyse statique à votre boîte à outils de test de sécurité

Quels sont les avantages des tests dynamiques de sécurité des applications?

Dans la mesure où une approche de test de sécurité des applications dynamique peut imiter le comportement malveillant des utilisateurs, elle est capable de montrer à une entreprise exactement comment ses applications se comportent dans un environnement en direct, en signalant les risques tôt afin qu'une entreprise puisse effectuer les réparations nécessaires pour empêcher une attaque réussie. Cette méthodologie permet de découvrir des problèmes qu'une équipe de développement n'a pas pensé ou jugés impossibles à résoudre. Vous seriez surpris du nombre d'attaques qui fonctionnent simplement parce que personne n'a pensé à bloquer un chemin.

Les pirates informatiques ont tendance à aimer exploiter une faille de sécurité le plus longtemps possible et à garder leur présence silencieuse, ce qui peut passer inaperçu par l'équipe de sécurité. Au moment où quelqu'un se rend compte qu'une application a été violée, le mal est fait. L'attaque pourrait prendre la forme de mettre un système hors ligne, ou elle pourrait être plus insidieuse en causant des dommages critiques comme la révélation de données d'entreprise ou client sensibles ou le chiffrement des données et leur conservation contre rançon.

DAST est également capable de détecter des problèmes que d'autres formes de test ne peuvent pas. Problèmes tels que la configuration du serveur et les problèmes d'authentification, ainsi que les obstacles après qu'un utilisateur connu est connecté à un site. Et comme les méthodes DAST testent au niveau de la boîte noire et ne reposent pas sur le code source ou ne se soucient pas du code source, elles peuvent tester n'importe quelle application et trouver des problèmes manqués par d'autres tests tels que des problèmes d'authentification ou de configuration de serveur. Mieux encore, DAST peut facilement aider à garantir la conformité et à simplifier les rapports réglementaires.

Les limites de DAST

Bien que les outils de test de sécurité dynamique des applications soient utiles pour éviter les problèmes de sécurité, il existe quelques inconvénients à prendre en compte. Un inconvénient est que DAST peut s'appuyer sur des experts en sécurité pour créer les bonnes procédures de test, il est difficile de créer des tests complets pour chaque application. Parallèlement à cela, les outils DAST peuvent créer des résultats de test faux positifs, reconnaissant un élément valide d'une application comme une menace. Les faux positifs créent plus de travail pour un analyste pour déterminer si les résultats DAST sont valables ou non. Et à mesure que les résultats faussement positifs augmentent, la fiabilité des tests diminue.

Une autre limitation des outils DAST est qu'ils signalent uniquement qu'un problème existe, mais qu'il ne peut pas identifier les problèmes dans le code lui-même. Avec DAST seul, les développeurs peuvent ne pas savoir facilement par où commencer pour résoudre le problème. En outre, les outils DAST se concentrent sur les demandes et les réponses qui peuvent manquer un bon nombre de défauts cachés dans la conception architecturale.

DAST s'exécute généralement à un rythme assez lent, prenant des jours ou des semaines pour terminer les tests. Et comme cela se produit tard dans le SDLC, les problèmes identifiés peuvent créer de nombreuses tâches pour les équipes de développement, ce qui prolonge les délais et augmente les coûts. De plus, comme cela peut prendre des jours ou des semaines pour terminer les tests, lorsque des problèmes sont identifiés, davantage de membres au sein des équipes du cycle de vie du projet sont touchés. Dans certains cas prolongés, les développeurs peuvent avoir besoin de revenir un peu en arrière et de se familiariser à nouveau avec l'ancien code avant de pouvoir effectuer les réparations nécessaires.

Les différences entre DAST et SAST

Alors que DAST simule des attaques malveillantes et d'autres comportements externes en recherchant des moyens d'exploiter les vulnérabilités de sécurité pendant l'exécution, SAST prend le point de vue d'un développeur pour les tests. SAST analyse chaque ligne de code sans avoir à exécuter l'application. Les violations identifiées, permettent aux testeurs de les examiner et d'apporter des corrections à la conception et / ou à la mise en œuvre du logiciel.

Le SAST peut être exécuté dès le début de la mise en œuvre du logiciel, car il examine le code source lui-même pour trouver des violations de règles de codage qui conduisent à des failles de sécurité. Une version en cours d'exécution du logiciel n'est pas nécessaire pour que SAST ait lieu, et une fois que vous trouvez le code qui a été signalé, vous pouvez immédiatement commencer le triage. SAST réduit également les coûts en détectant les défauts plus tôt dans le SDLC, où il est toujours rapide et facile d'effectuer des réparations.

Qu'est-ce que le test de sécurité statique des applications et comment SAST est-il utilisé?

Vous pouvez également facilement utiliser SAST sur plusieurs types différents d'applications logicielles et de langages, car les outils analysent le code statique. Que vous codiez en C ou C ++ pour des systèmes embarqués, ou des langages comme C #, VB.NET, Java et autres, les outils SAST sont un compagnon idéal pour DAST, vous offrant le meilleur de la conformité du code à partir de zéro, et un moyen d'identifier les problèmes d'exécution.

Quels sont les types courants de vulnérabilités logicielles?

La cybercriminalité est un jeu sale, et les pirates utiliseront toutes les astuces du livre pour contourner vos systèmes de sécurité. Cependant, il existe des méthodes éprouvées que les criminels ont tendance à préférer, ce qui nous donne un moyen de prédire et de prévenir les comportements malveillants. Jetons un coup d'œil à quelques voies principales d'attaque.

Attaques par injection SQL

Une injection SQL (SQLi) fait partie des types de cyberattaques les plus anciens et l'une des vulnérabilités les plus dangereuses qu'une application Web puisse avoir. Les attaques SQLi ciblent les entrées d'utilisateurs vulnérables dans une page Web ou une application pour exécuter des instructions SQL malveillantes et contourner les mesures de sécurité pour accéder à une base de données SQL entière et éventuellement ajouter, modifier ou supprimer des enregistrements.

Les injections SQL font partie des vulnérabilités les plus anciennes et les plus dangereuses, et elles peuvent être utilisées pour accéder à des secrets commerciaux sensibles, aux informations client, aux informations personnelles identifiables (PII), à la propriété intellectuelle (IP), etc. Ce type d'exposition peut s'appliquer à tout site Web ou application Web qui utilise des bases de données SQL telles que MySQL, Oracle, SQL Server ou d'autres options populaires.

Attaques de type Cross-Site Scripting (XSS)

Une attaque XSS est un type d'injection de code côté client particulièrement désagréable, permettant aux pirates d'exploiter des vulnérabilités connues et d'injecter des scripts dans une page Web, de sorte qu'un utilisateur peu méfiant obtient du contenu malveillant provenant d'une source fiable. Une attaque XSS peut être utilisée pour contourner les contrôles d'accès tels que la politique de même origine ou le contrôle d'accès basé sur les rôles (RBAC), et peut aller d'activités mesquines et à faible impact à des pannes système catastrophiques.

Attaques par déni de service distribué

Les pirates utilisent souvent un DDoS pour infiltrer une application en la surchargeant de trafic afin de perturber les services. C'est un peu comme un embouteillage artificiel créé juste pour empêcher les gens de se déplacer. Ce type d'attaque cible généralement des entreprises de premier plan comme les banques et autres passerelles financières, et il ne nécessite pas beaucoup de connaissances en matière de script ou de codage pour s'exécuter.

Comment utiliser DAST et SAST ensemble pour optimiser les tests

Une combinaison d'outils DAST et SAST vous offre le meilleur des deux mondes en vous donnant une vue à 360 ° sur la sécurité et la sûreté des logiciels.

Améliorez vos tests en combinant les procédures SAST et DAST.

SAST garantit que votre code est conforme à la ou aux normes de codage que vous adoptez et utilisez. C'est la première ligne de défense pour écrire du code sécurisé. Ensuite, DAST aide à trouver ces vulnérabilités comportementales d'exécution que vous ne pouvez pas découvrir avec SAST. De plus, avec DAST, plusieurs méthodes de test sont utilisées, telles que l'unité, l'intégration, le système, l'API et d'autres méthodes de test qui garantissent davantage une application sécurisée.

Découvrez comment votre équipe peut appliquer automatiquement la conformité aux normes de l'industrie.

 

Par Ricardo Camacho

Responsable marketing produit technique pour les solutions de test embarquées de Parasoft. Il possède une expertise dans le SDLC et l'automatisation des tests d'applications embarquées en temps réel, critiques pour la sûreté et la sécurité, et la conformité des logiciels aux normes de l'industrie.

Recevez les dernières nouvelles et ressources sur les tests de logiciels dans votre boîte de réception.