Choix entre l'examen du code source et des sorties de génération

Lors de la création d'un nouveau projet, vous avez la possibilité de choisir l'examen du code source uniquement ou l'examen de la sortie de génération (bytecode), selon le projet.

Il est essentiel de comprendre les différentes méthodes d'examen pour réussir votre projet. Chaque examen a des utilisations, des exigences et des résultats spécifiques.

Examen du code source uniquement

Au début du cycle de développement du logiciel, l'examen du code source non compilé peut être un outil utile pour détecter les problèmes et confirmer l'approche programmatique avant que le projet ne soit trop avancé.

Généralement réalisés par les développeurs et nécessitant l'accès aux fichiers source, les examens du code source sont rapides, mais pas nécessairement aussi précis que les examens du code compilé. Les résultats des examens de code source uniquement identifient des vulnérabilités dans des lignes de code spécifiques. Ils n'indiquent pas les données de trace.

Examen des sorties de génération

Lorsque l'on préfère la précision à la vitesse d'examen, l'examen des sorties de génération peuvent vous aider à comprendre non seulement où se trouve une vulnérabilité dans une application, mais aussi l'impact de cette vulnérabilité. L'examen des sorties de génération est parfois appelé examen du "flux de données".

Les examens de sortie de génération requièrent l'accès à l'application entièrement générée. Les résultats de l'examen affichent des "traces" montrant le flux de données entachées dans l'application, depuis le point où elles entrent dans l'application jusqu'au point où les données sont utilisées (appelé le "collecteur"). La trace montre la ligne de code et la variable entachée à chaque point de la trace. Son apparence est similaire à une trace de pile d'exceptions.

L'examen des sorties de génération peut avoir des exigences supplémentaires, en fonction du type de projet :
  • Les dépendances d'application doivent être disponibles pour obtenir les résultats les plus complets et précis.
  • Par Java et .NET, bytecode est requis. L'application doit donc être générée avant l'exécution de l'examen.
  • Pour C/C++, une solution Visual Studio est requise.