Skip to main content

Qu’est-ce qu’une empreinte ?

L’empreinte est la méthode intelligente qu’utilise Corgea pour identifier de façon unique les vulnérabilités de votre code. Comparable à l’« ADN » d’un problème de sécurité, cet identifiant unique permet à Corgea de reconnaître une même vulnérabilité d’un scan à l’autre, même si le code évolue légèrement.
Les empreintes sont calculées automatiquement en arrière-plan. Aucune configuration ni maintenance n’est nécessaire : le mécanisme fonctionne dès le premier scan de votre code.

Comment cela fonctionne-t-il ?

Lorsque Corgea scanne votre code et identifie un problème de sécurité, elle crée une empreinte digitale basée sur les caractéristiques clés de ce problème, notamment :
  • Emplacement: Le chemin du fichier et le numéro de ligne où le problème survient
  • Contexte: La ligne de code spécifique et sa structure environnante
  • Classification: Le type de vulnérabilité de sécurité (par exemple, SQL Injection, XSS, etc.)
Ces éléments sont combinés pour créer un identifiant unique et stable qui persiste sur plusieurs scans de votre code.

Analyse intelligente basée sur les AST

Corgea analyse les arbres syntaxiques abstraits (AST) afin de rendre les empreintes plus pertinentes et plus robustes face aux modifications du code.
Un arbre de syntaxe abstraite est une représentation structurelle de votre code qui comprend la signification et les relations entre différents éléments du code — pas seulement le texte lui-même.Les méthodes traditionnelles de calcul d’empreintes, fondées uniquement sur le texte exact ou les numéros de ligne, deviennent rapidement inopérantes lorsque vous :
  • Ajoutez ou supprimez des lignes vides ou des commentaires
  • Reformatez votre code (changez l’indentation, l’espacement, etc.)
  • Refactorisez des noms de variables ou des signatures de fonctions
Pourquoi les AST sont importants : En intégrant les informations de l’AST aux empreintes, Corgea peut :
  • Reconnaître la même vulnérabilité, même après des modifications superficielles du code
  • Se concentrer sur le sens sémantique plutôt que sur une simple correspondance textuelle
  • Maintenir le suivi par la réorganisation et la refactorisation du code
  • Réduire les faux positifs lorsque des problèmes similaires mais différents apparaissent
Les empreintes basées sur les AST offrent un suivi plus stable et plus fiable des problèmes de sécurité tout au long du cycle de développement, même lorsque le code évolue.

À quoi servent les empreintes ?

Lorsque vous effectuez plusieurs scans au fil du temps, Corgea utilise les empreintes pour déterminer si un problème :
  • Persiste depuis les scans précédents
  • A été corrigé et n’est plus détecté
  • Réapparu après avoir été résolu

Quand et pourquoi les empreintes changent

Bien que l’empreinte digitale de Corgea soit conçue pour être stable malgré de légères modifications de code, il existe des scénarios légitimes où une empreinte peut changer. Les comprendre vous aide à interpréter correctement les résultats de votre scan.
Comprendre quand les empreintes digitales changent est essentiel pour un suivi précis des problèmes et une gestion de la sécurité.

Situations qui génèrent une nouvelle empreinte

Que se passe-t-il : si vous déplacez un fichier dans un autre répertoire ou le renommez, une nouvelle empreinte est attribuée à la vulnérabilité.Exemple : le déplacement de src/utils/database.py vers src/core/db.py crée une nouvelle empreinte, même si le code vulnérable est identique.Pourquoi : Le chemin du fichier est un élément central de l’empreinte digitale. C’est intentionnel — cela aide à suivre où se trouvent des vulnérabilités dans la structure de votre projet.Ce que vous verrez : L’ancien problème peut apparaître comme « résolu » et un nouveau problème sera détecté à la nouvelle localisation.
Si vous faites une réorganisation de fichiers à grande échelle, coordonnez-vous avec votre équipe de sécurité afin qu’ils comprennent le contexte.
Que se passe-t-il : Un refactoring majeur qui modifie la structure ou le contexte du code vulnérable générera une nouvelle empreinte digitale.Exemple : convertir une requête SQL inline vulnérable en fonction utilitaire d’accès à la base de données tout en conservant la vulnérabilité modifierait considérablement la structure de l’AST.Pourquoi : les empreintes basées sur les AST tolèrent les refactorings mineurs, mais des changements structurels importants indiquent une évolution significative du contexte du code.Ce que vous verrez : Le problème initial se referme et un nouveau apparaît, même si le schéma de vulnérabilité sous-jacent demeure.
Lors d’une refactorisation majeure, considérez ces éléments comme des opportunités pour corriger la vulnérabilité plutôt que de simplement la déplacer.
Que se passe-t-il : De grandes insertions ou suppressions qui déplacent significativement l’emplacement du code vulnérable peuvent modifier l’empreinte digitale.Exemple : Ajouter 200 lignes de nouveau code au-dessus d’une vulnérabilité pourrait en modifier suffisamment le contexte pour modifier l’empreinte digitale.Pourquoi : Bien que l’empreinte digitale soit résistante aux petits changements de numéros de ligne, des changements spectaculaires suggèrent que le contexte du code dans le fichier a changé.Ce que vous verrez : Le problème peut sembler résolu et réapparaître à un numéro de ligne différent.
Ce cas est rare grâce à l’analyse de l’AST. S’il se produit, vérifiez qu’il s’agit bien du même problème avant de le marquer comme doublon.
Que se passe-t-il : si l’analyse de Corgea conclut qu’un problème doit être reclassé, par exemple d’« Injection SQL potentielle » à « Injection SQL confirmée », il reçoit une nouvelle empreinte.Exemple : Un contexte supplémentaire lors de scans ultérieurs pourrait améliorer ou modifier la classification d’une vulnérabilité.Pourquoi : Cette classification fait partie de ce qui rend un numéro unique. Différentes classifications peuvent nécessiter différentes approches de remédiation.Ce que vous verrez : Un problème se ferme et un autre, avec une gravité ou un type différent, apparaît au même endroit.
Faites attention aux changements de classification — ils indiquent souvent de nouvelles informations importantes sur le risque de sécurité.
Que se passe-t-il : Modifier la ligne de code réellement vulnérable (même sans la corriger) peut modifier l’empreinte digitale.Exemple : Changer cela :
À ceci :
La vulnérabilité par injection SQL persiste, mais l’empreinte change.Pourquoi : Le contexte spécifique du code fait partie de l’empreinte digitale. C’est en fait utile — cela montre que quelqu’un a touché au code, et c’est une opportunité de le corriger correctement.Ce que vous verrez : L’ancien problème semble résolu, et un nouveau problème similaire apparaît.
Lorsque vous modifiez du code vulnérable, profitez-en pour corriger correctement le problème de sécurité plutôt que de le modifier superficiellement.

Situations qui ne changent pas l’empreinte

Les modifications suivantes n’affectent généralement pas l’empreinte :
  • Ajout ou suppression de commentaires
  • Changement d’espace blanc ou d’indentation
  • Renommer les variables locales (dans la plupart des cas)
  • Ajouter du code avant ou après la ligne vulnérable (dans la limite du raisonnable)
  • Reformatage selon les guides de style
  • Ajout d’instructions de journalisation ou de débogage à proximité

Gérer les changements d’empreinte

1

Consulter l’historique du problème

Corgea associe tous les événements historiques à une empreinte, ce qui permet de consulter la chronologie du problème initial.
2

Examiner les modifications du code

Utilisez votre système de gestion de versions pour comprendre ce qui a changé entre les scans.
3

Suivi des mises à jour

Si vous suivez les problèmes dans des systèmes externes (JIRA, etc.), vous devrez peut-être mettre à jour les références.
4

Considérez cela comme une opportunité

Une empreinte digitale modifiée signifie souvent que quelqu’un a modifié le code vulnérable — c’est le moment idéal pour s’assurer que la correction est complète et appropriée.
5

Contactez le support

Si vous pensez qu’une empreinte a été modifiée de manière incorrecte ou inattendue, notre équipe peut vous aider à enquêter.
Vous vous demandez peut-être : « Pourquoi ne pas garder la même empreinte digitale quoi qu’il arrive ? » Voici pourquoi l’approche de Corgea est bénéfique :
  • Précision: Lorsque le contexte du code change réellement, une nouvelle empreinte digitale garantit que vous suivez la réalité actuelle de votre base de code.
  • Visibilité: Les modifications des empreintes digitales indiquent que le code a été modifié, ce qui constitue une information précieuse pour les équipes de sécurité.
  • Flexibilité: évite un suivi obsolète dans lequel un problème est indiqué comme corrigé alors que la vulnérabilité persiste sous une forme légèrement différente.
  • Conformité: les pistes d’audit sont plus précises lorsqu’elles reflètent les modifications réelles du code, et pas seulement la persistance du problème.

Avantages clés

Obtenez une compréhension précise de votre posture de sécurité sans être gonflée par des doublons. Comprenez quand les modifications de code affectent les vulnérabilités suivues.

Des questions ?

Si vous avez des questions sur l’impact de l’empreinte digitale sur votre cas d’usage spécifique, remarquez des changements inattendus ou souhaitez en savoir plus sur la manière dont les problèmes sont suivis dans votre environnement, n’hésitez pas à contacter votre équipe de support Corgea.

Besoin d’aide ?

Contactez notre équipe d’assistance pour obtenir de l’aide concernant la prise d’empreintes digitales ou toute autre question.