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.)
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.Qu’est-ce qu’un arbre de syntaxe abstraite (AST)?
Qu’est-ce qu’un arbre de syntaxe abstraite (AST)?
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
- 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
À quoi servent les empreintes ?
- Suivi des problèmes
- Déduplication
- Historique des problèmes
- Rapports
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.Situations qui génèrent une nouvelle empreinte
Déplacement ou renommage de fichiers
Déplacement ou renommage de fichiers
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.Refactorisation significative du code
Refactorisation significative du code
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.
Décalage des numéros de ligne au-delà du seuil
Décalage des numéros de ligne au-delà du seuil
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.
Modifications de la classification des vulnérabilités
Modifications de la classification des vulnérabilités
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.
Modification du code vulnérable
Modification du code vulnérable
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.
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.
Pourquoi ce design ?
Pourquoi ce design ?
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
- Pour les équipes de sécurité
- Pour les équipes de développement
- Pour la direction
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.
