Ouvrir le menu Fermer le menu

Benchmark de Faux positifs avec les outils SAST

trait de séparation
Temps de lecture : 5 min

Comment définir une référence de faux positifs avec les outils SAST ?

De nombreux outils de test de sécurité des applications statiques (SAST) sont confrontés à des faux positifs. Ils signalent souvent qu'une vulnérabilité est présente, alors qu'en réalité, elle n'existe pas. Cette imprécision pèse sur l'équipe d'ingénierie, qui passe des heures productives à trier les fausses alarmes.

En définissant une référence de faux positifs - une limite au-dessus de laquelle est inacceptable - vous pouvez établir un point de référence ou une norme par rapport à laquelle mesurer l'efficacité de votre outil SAST. Cela vous aidera également à connaître l'étendue des faux positifs que vous pouvez autoriser à partir de votre outil d'analyse de sécurité. 

Au sommaire de ce blog rédigé par Mend qui explique comment définir une référence de faux positifs aves les outils SAST :

Pourquoi comparer les faux positifs ?

La réalisation de tests de sécurité des applications est un moyen important d'identifier les failles que les attaquants pourraient utiliser pour compromettre l'application. Si un outil de sécurité peut correctement identifier les vulnérabilités, les développeurs peuvent les corriger et ainsi améliorer la sécurité de leurs applications.

Les outils SAST produisent des résultats généralement regroupés en quatre catégories :
  • Vrai positif — identifiant correctement qu'une vulnérabilité existe.
  • Vrai négatif — identifiant correctement qu'une vulnérabilité n'existe pas.
  • Faux positif : identification erronée de l'existence d'une vulnérabilité, alors qu'elle n'existe pas en réalité.
  • Faux négatif — ne révèle pas qu'une vulnérabilité existe, alors qu'elle est réellement présente.

L'objectif de tout outil SAST devrait être de maximiser le nombre de vrais positifs et de vrais négatifs tout en minimisant les faux négatifs et les faux positifs . Cependant, cela est difficile à réaliser d'un point de vue technique. 

Ainsi, l'ingénieur doit prendre une décision de conception : doit-il concevoir l'outil SAST pour générer plus de vrais positifs tout en générant également plus de faux positifs ? Ou devrait-il le réduire, générant moins de faux positifs au détriment de certains vrais positifs ?

La décision la plus courante est de se tourner vers l'ancien design, car il s'agit d'une stratégie « gagnante » dans une situation de vente, lorsqu'un client teste un produit par rapport à un autre. L'ingénieur fait le pari que le client va choisir de manière simpliste le produit qui produit le plus de « résultats » sans se soucier d'examiner la validité de ces résultats.

En réalité, cela pourrait gagner la vente, mais cela nuit au client à long terme. Pourquoi ? Parce qu'un produit de sécurité qui produit trop de faux positifs submergera vos développeurs et leur fera éviter d'utiliser l'outil, ou du moins éviter de prêter beaucoup d'attention aux résultats produits par l'outil. Et lorsque cela se produit, votre programme de sécurité en souffre. Les applications contenant des vulnérabilités sont déployées en production. 

Pour résoudre ce problème, il est important de définir une référence de faux positifs avec les outils SAST . Il s'agit d'une mesure ou d'une quantité convenue de faux positifs que votre organisation considère comme acceptable, afin que vous puissiez éviter de perdre beaucoup de temps à rechercher des vulnérabilités qui n'existent pas réellement.

Comment mesurer le succès des outils SAST

Un moyen simple de mesurer le succès d'un outil SAST consiste à soustraire son taux de faux positifs de son taux de vrais positifs. Si vous obtenez un score de précision parfaite de 100 %, cela implique que le taux de vrais positifs pour l'outil SAST est de 100 % et que le taux de faux positifs est de 0 %.

Supposons que l'analyse des vulnérabilités d'une application avec trois outils SAST différents génère les résultats suivants :

  • L'outil n°1 ne fait rien. Il ne détecte aucune vulnérabilité et ne produit aucune fausse alarme. Son taux de vrais positifs est de 0 % et son taux de faux positifs est également de 0 %. Ainsi, son score de précision est de 0%, ce qui ne vaut rien. 
  • L'outil #2 signale que chaque ligne de code de l'application présente une vulnérabilité. Ainsi, son taux de vrais positifs est de 100% car il détecte parfaitement chaque vulnérabilité. Cependant, s'il détecte un certain nombre de positifs inoffensifs, obsolètes, inefficaces ou sans importance, il a un taux élevé de faux positifs. Par exemple, si l'outil identifie un total de 1 000 vulnérabilités, mais que 800 d'entre elles ne présentent aucune menace, son taux de faux positifs est de 80 % et son score de précision n'est que de 20 %, ce qui n'offre pas une bonne valeur au processus de test. .
  • L'outil #3 lance simplement une pièce pour déterminer si une ligne de code est vulnérable ou non. Il devine au hasard, ce qui donne un taux de vrais positifs et un taux de faux positifs de 50 % chacun. Son score de précision serait également de 0 %. 
La Fondation OWASP a mis en place un projet de référence gratuit et open source qui évalue la vitesse, la couverture et la précision des outils automatisés d'identification des vulnérabilités logicielles.

Le projet Benchmark est un exemple d'application contenant des milliers de vulnérabilités exploitables, certaines vraies et d'autres fausses positives. Vous pouvez y exécuter un outil SAST et noter les résultats de l'outil. Vous pouvez ensuite tracer le score de l'outil SAST sur le graphique suivant.
benckmark_sast_faux-negatifs_mend_ISIT

Idéalement, les meilleurs résultats pour un outil de sécurité se trouveraient dans le coin supérieur gauche, indiquant un minimum de faux positifs et un maximum de vrais positifs. 

Aller plus loin avec le benchmark

Nous avons mentionné ci-dessus qu'un moyen simple de mesurer le succès d'un outil SAST consiste à soustraire son taux de faux positifs de son taux de vrais positifs. Mais cette mesure en elle-même n'est pas adéquate car elle ne tient pas compte d'autres facteurs importants.

Prenons l'exemple de ces deux outils SAST différents, dont chacun a été noté par rapport au projet OWASP : 
  • L'outil SAST #1 a identifié 10 vrais positifs et 3 faux négatifs, donnant un score de précision de 70 %.
  • L'outil SAST #2 a identifié 100 vrais positifs et 30 faux négatifs, donnant un score de précision de 70 %.
Bien que les scores de précision dérivés de manière simpliste pour ces deux outils différents soient les mêmes, vous pouvez fortement préférer l'un à l'autre. Nous devons donc introduire quelques métriques supplémentaires, comme suit :
  • Complétude — La complétude fait référence à une mesure du nombre de vulnérabilités réelles détectées (vrais positifs) par rapport au nombre total de vulnérabilités réelles présentes.

    Un score d'exhaustivité plus élevé (le maximum théorique est de 1) indique qu'un outil SAST identifie davantage de problèmes existants dans l'application. Un outil complet vous offre une meilleure visibilité sur votre code. Cela pourrait conduire à identifier davantage de vulnérabilités et à expédier des produits plus sécurisés. 
  • Profondeur — Dans les tests SAST , la profondeur fait référence à la capacité d'un outil à détecter un large éventail de vulnérabilités. Un outil prenant en charge un grand nombre de langages de programmation et disposant d'une base de données complète de vulnérabilités provenant de plusieurs points de vente à jour a la profondeur nécessaire pour vous aider à trouver les vulnérabilités de sécurité.

    Si la profondeur de couverture d'un outil est limitée, il générera un nombre massif de faux positifs et produira également des résultats incohérents entre les différentes vulnérabilités et langues. Vous devez donc tenir compte de ce facteur lors de la définition d'une référence de faux positifs avec votre outil SAST.

Conclusion

Mend_WhiteSource_ISIT
La définition de critères de référence appropriés pour votre programme de test d'applications doit être effectuée en collaboration, car différentes équipes ont des objectifs différents. L'équipe de sécurité souhaite naturellement que chaque application présente le risque de sécurité le plus faible possible, ce qui signifie qu'elle souhaite des outils de sécurité qui obtiennent un score très élevé sur l'échelle d'exhaustivité, quel que soit le nombre de faux positifs qu'ils produisent. L'équipe de développement a des objectifs presque opposés. Ils veulent passer leur temps à développer de nouvelles fonctionnalités et ils ne veulent pas être ralentis par des tâches improductives telles que la gestion des faux positifs. 

De plus, vos benchmarks peuvent également différer en fonction de l'application que vous testez. Certaines applications peuvent avoir une valeur plus élevée que d'autres ou être plus exposées aux attaques. Pour ces applications sensibles, vous pouvez accepter des faux positifs plus élevés pour obtenir une plus grande complétude.

Et tous ces scores de précision ne sont qu'une dimension d'un outil SAST. D'autres dimensions importantes incluent la vitesse d'exécution de l'outil, la facilité avec laquelle les résultats peuvent être consommés par les développeurs et la facilité avec laquelle l'outil peut être déployé et automatisé dans le cadre de votre flux de travail.

Sur la base de toutes ces considérations, Mend SAST s'est avéré être un outil extrêmement efficace et efficient pour les organisations modernes qui recherchent à la fois rapidité et sécurité. Si vous n'êtes pas encore familier avec Mend SAST, découvrez la solution !

0

Ces articles peuvent vous intéresser

image blog article

SAST vs SCA

7 différences clés pour choisir la solution qui répondra à votre besoin !

image blog article

Accélérer l’analyse SAST

Pourquoi équilibrer les résultats et les ressources des tests de sécurité des applications est-ce important ?

image blog article

ROI de SAST dans DevSecOps

Quel retour sur investissement de la mise en place d'un outil SAST dans votre développement DevSecOps pour les logiciels embarqués ?

image blog article

SAST et SCA multilingues pour plates-formes et applications Android

Android est, pour la plupart des gens, un système d'exploitation pour les appareils mobiles comme les téléphones ou les tablettes. En fait, c'est surtout une plate-forme open source extrêmement réussie en général.

image blog article

SAST et SCA dans ISO/SAE 21434

Que dit la norme ISO/SAE 21434 sur les domaines clés de la sécurité et quels outils SAST et SCA s'appliquent.