Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

False Positive SAST

devsecops

Définition

Un False Positive SAST (faux positif d'analyse statique de sécurité) est une alerte générée par un outil SAST sur du code qui n'est en réalité pas vulnérable, malgré l'apparence d'un pattern dangereux. Les faux positifs sont le principal frein à l'adoption des outils SAST par les équipes de développement : si un outil génère 80% de faux positifs, les développeurs vont ignorer systématiquement toutes les alertes (Alert Fatigue), y compris les vrais positifs représentant des vulnérabilités réelles. Les causes des faux positifs SAST sont multiples. L'analyse de flux simplifiée : l'outil détecte qu'une variable provient d'une entrée utilisateur et est utilisée dans une requête SQL, sans réaliser que cette variable passe par une fonction de validation qui la rend sûre (l'outil ne "voit" pas le contexte complet du flux de données). Les patterns superficiels : une règle regex basique détectant ".exec()" comme potential Command Injection va aussi alerter sur des appels légitimes à .exec() d'une connexion à une base de données. Le manque de compréhension sémantique : l'outil détecte toute utilisation de MD5 comme cryptographie faible, même quand MD5 est utilisé pour un hash de données non-sécuritaires (etag HTTP, fingerprint de fichier non-critique). La gestion des faux positifs dans une organisation DevSecOps passe par plusieurs approches. La suppression documentée : des annotations de code (// nosec, # noqa, @SuppressWarnings) avec une justification obligatoire marquent les alertes légitimement fausses. La configuration de l'outil : la désactivation des règles générant systématiquement des faux positifs dans le contexte technologique spécifique (un ORM comme Hibernate élimine structurellement les injections SQL, les règles d'injection SQL peuvent être désactivées pour ce contexte). La mesure du taux de faux positifs : un tableau de bord tracant le ratio "alertes confirmées/alertes totales" par outil et par règle permet d'identifier les règles problématiques et de prioriser leur tuning. Le taux de faux positifs acceptable varie selon le contexte : 50-70% est courant pour les premiers scans sur une nouvelle codebase, 20-30% est un objectif réaliste après tuning, et moins de 10% est atteignable pour des règles très ciblées dans des contextes technologiques maîtrisés.

Causes fréquentes de faux positifs SAST

Patterns générateurs de faux positifs fréquents : SQL injection sur ORMs (Hibernate, SQLAlchemy, ActiveRecord utilisent des requêtes paramétrées — une règle cherchant "sql + variable" génère massivement des faux positifs), XSS sur frameworks avec auto-escaping (React, Angular, Vue.js échappent automatiquement les valeurs interpolées), Command Injection sur des APIs exec() légitimes (java.sql.Connection.execute(), python subprocess.run() avec liste d'arguments non-shell), et Hardcoded Credentials sur des valeurs de configuration d'exemple ou des tokens de test sans valeur de production.

Documenter et tracer les suppressions de faux positifs

La discipline de documentation des faux positifs supprimés est critique : chaque suppression (annotation inline, règle d'exclusion) doit contenir : l'identifiant de la règle supprimée, la raison technique précise (pas juste "faux positif"), la référence au mécanisme de sécurité compensatoire qui rend le code sûr, la date d'expiration de la suppression (forçant une réévaluation périodique), et l'auteur. Des outils comme Semgrep et SonarQube permettent des commentaires d'explication sur les suppressions qui apparaissent dans l'historique d'audit. Sans cette traçabilité, les suppressions s'accumulent et peuvent masquer de vraies vulnérabilités futures.

Métriques pour mesurer et réduire les faux positifs

Métriques clés pour les faux positifs SAST : False Positive Rate (FPR) par règle et par outil (% d'alertes confirmées comme fausses par la revue humaine — calculé sur un échantillon statistique), Time-to-Triage (temps moyen pour évaluer une alerte — >15 minutes suggère que la règle manque de contexte), et Developer NPS sur les outils SAST (les outils générant trop de faux positifs ont un NPS négatif et sont ignorés). Ces métriques guident les décisions de tuning : désactiver les règles FPR > 80%, investiguer les règles dont le Time-to-Triage > 10 minutes pour les simplifier ou ajouter du contexte.

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis