Fonctionnement de la corrélation (analyse hybride)
Aucune technique d'analyse automatisée unique ne peut trouver toutes les vulnérabilités possibles ; chacune d'elles a ses propres avantages et inconvénients. Dynamic Analysis Security Testing (DAST) teste une application Web en cours d'exécution en effectuant des sondages selon des techniques similaires à celles utilisées par un hacker. Static Analysis Security Testing (SAST) examine le code source d'une application afin de détecter les vulnérabilités potentielles.
Ce diagramme illustre les types de vulnérabilités pouvant être détectés par chaque technique et leur chevauchement à des fins de corrélation. Un grand cercle vert indique la totalité des problèmes de sécurité potentiels pouvant être détectés par les outils DAST, SAST et les tests manuels.
Avec l'analyse dynamique, il est plus facile d'avoir une vue d'ensemble et d'établir un lien entre la vulnérabilité et une utilisation potentielle. L'outil DAST met en évidence les emplacements dans l'application qui peuvent être exploités par les tests qu'il envoie ; il traverse automatiquement l'application et teste les entrées possibles en utilisant la contrefaçon HTTP (envoi de demandes et réception de réponses reflétées dans le navigateur). A l'aide de l'analyse dynamique cependant, l'analyste de sécurité se demande toujours s'il a effectué une couverture de test correcte.Avec l'outil DAST, le défi consiste à rechercher toutes les pages et les chemins d'accès au contenu et à couvrir tous les vecteurs d'attaque.
L'analyse statique inspecte les flux de données au sein du code source et elle peut être utilisée plus tôt dans le cycle de développement, car vous n'êtes pas obligé d'exécuter une application Web. Alors que l'outil DAST permet seulement de visualiser le flux de données envoyé via le protocole HTTP, l'outil SAST peut voir les multiples flux de données transmis via l'architecture dorsale et qui ne sont pas exposés à une analyse dynamique, tels que les communications réseau dorsales, l'accès aux fichiers système, etc. Le test SAST permet par conséquent de détecter beaucoup plus de problèmes que le test DAST, mais ceux-ci ne seront pas tous d'une priorité élevée pour votre organisation, car les résultats du test SAST sont normalement interprétés comme des violations des bonnes pratiques du codage sécurisé, et non obligatoirement comme des "preuves d'attaque". L'utilisation d'un filtre permet d'éliminer les problèmes dont la gravité n'est pas suffisante selon les règles de sécurité de l'organisation. Avec l'outil SAST, le défi consiste à déterminer la priorité des problèmes.
L'outil DAST effectue une recherche dans l'infrastructure réseau jusqu'au niveau du serveur Web. L'outil SAST examine directement les applications Web.
Défi de l'analyse hybride
L'analyse hybride (également appelée corrélation) combine les outils DAST et SAST pour corréler et vérifier les résultats. Les problèmes identifiés à l'aide de l'analyse dynamique peuvent être suivis jusqu'à la ligne de code incorrecte. Il est possible de déterminer la priorité des problèmes détectés par l'outil SAST à l'aide des informations fournies par l'outil DAST.
Avec l'analyse hybride, le défi est lié au fait que l'outil DAST se base sur les données reflétées dans le navigateur ; ainsi si un flux de données SAST n'est pas reflété dans le navigateur en tant que problème DAST, il n'apparaît pas dans le rapport Problèmes de sécurité corrélés d'AppScan® Enterprise.
Les diagrammes suivants illustrent ce défi. Ce diagramme DAST montre l'injection SQL sous la forme d'un flux de données du point de vue de l'utilisateur. Le code malveillant est entré dans les zones de nom d'utilisateur/mot de passe de la page Web, et un message d'erreur s'affiche dans le navigateur.
Dans ce diagramme SAST, la même attaque d'injection SQL correspond en réalité à trois flux de données du point de vue d'un système dorsal.