Was ist Fingerprinting?
Fingerprinting ist Corgeas intelligentes Verfahren zur eindeutigen Identifizierung von Schwachstellen in Ihrer Codebasis. Der Fingerprint dient als „DNA“ eines Security-Issues: Mit diesem eindeutigen Bezeichner erkennt Corgea dieselbe Schwachstelle über mehrere Scans hinweg, auch wenn sich der Code im Laufe der Zeit geringfügig ändert.Fingerprinting läuft automatisch im Hintergrund. Sie müssen es weder konfigurieren noch pflegen; es funktioniert ab dem ersten Scan ohne weitere Einrichtung.
Wie funktioniert es?
Wenn Corgea beim Scannen ein Security-Issue erkennt, erstellt es anhand wesentlicher Merkmale einen Fingerprint:- Position: Dateipfad und Zeilennummer des Issues
- Kontext: Die spezifische Codezeile und ihre umgebende Struktur
- Klassifizierung: Art der Schwachstelle, beispielsweise SQL-Injection oder XSS
AST-basierte Intelligenz
Corgea verwendet Analysen des Abstract Syntax Tree (AST), um Fingerprints robuster gegenüber Codeänderungen zu machen.Was ist ein Abstract Syntax Tree (AST)?
Was ist ein Abstract Syntax Tree (AST)?
Ein Abstract Syntax Tree ist eine strukturelle Darstellung des Codes. Er bildet die Bedeutung und Beziehungen der Codeelemente ab, nicht nur den reinen Text.Klassische Fingerprinting-Verfahren, die nur exakten Text oder Zeilennummern berücksichtigen, versagen leicht bei folgenden Änderungen:
- Leere Zeilen oder Kommentare hinzufügen oder entfernen
- Ihren Code umformatieren (Einrückung, Abstand usw. ändern)
- Variablennamen oder Funktionssignaturen refaktorieren
- Die gleiche Schwachstelle erkennen, selbst wenn oberflächliche Codeänderungen vorgenommen werden
- Sich auf semantische Bedeutung konzentrieren statt nur auf Textabgleich
- Issues weiterverfolgen, auch wenn Code umstrukturiert oder refaktoriert wird
- False Positives reduzieren, wenn ähnlich aussehende, aber unterschiedliche Issues auftreten
Wo wird Fingerprinting verwendet?
- Issue-Tracking
- Duplikaterkennung
- Issue-Verlauf
- Berichterstattung
Bei mehreren Scans erkennt Corgea anhand der Fingerprints, ob ein Issue:
- Seit früheren Scans fortbesteht
- Behoben wurde und nicht mehr erkannt wird
- Wiederaufgetaucht ist, nachdem es gelöst wurde
Wann und warum Fingerprints sich ändern
Corgeas Fingerprinting bleibt bei kleineren Codeänderungen stabil. In bestimmten berechtigten Fällen kann sich ein Fingerprint jedoch ändern. Wenn Sie diese Fälle kennen, können Sie Scan-Ergebnisse korrekt einordnen.Änderungen, die einen neuen Fingerprint erzeugen
Dateiverschiebungen oder -umbenennungen
Dateiverschiebungen oder -umbenennungen
Was passiert: Wenn Sie eine Datei in ein anderes Verzeichnis verschieben oder umbenennen, erhält die Schwachstelle einen neuen Fingerprint.Beispiel: Das Verschieben von
src/utils/database.py nach src/core/db.py erzeugt einen neuen Fingerprint, auch wenn der anfällige Code identisch ist.Warum: Der Dateipfad ist ein zentraler Bestandteil des Fingerprints. Dadurch lässt sich nachvollziehen, wo sich eine Schwachstelle in Ihrer Projektstruktur befindet.Anzeige: Das bisherige Issue kann als „fixed“ erscheinen, während am neuen Speicherort ein neues Issue erkannt wird.Bedeutende Code-Umstrukturierung
Bedeutende Code-Umstrukturierung
Was passiert: Größere Refactorings, die Struktur oder Kontext des anfälligen Codes verändern, erzeugen einen neuen Fingerprint.Beispiel: Wird eine anfällige Inline-SQL-Abfrage in eine Datenbank-Hilfsfunktion mit derselben Schwachstelle verschoben, ändert sich die AST-Struktur erheblich.Warum: Während AST-basierte Fingerabdrücke kleinere Refaktorierungen erfassen, deuten erhebliche strukturelle Änderungen darauf hin, dass sich der Codekontext wesentlich geändert hat.Anzeige: Das ursprüngliche Issue wird geschlossen und ein neues erscheint, obwohl das zugrunde liegende Schwachstellenmuster bestehen bleibt.
Zeilennummer weit über den Schwellenwert verschoben
Zeilennummer weit über den Schwellenwert verschoben
Was passiert: Umfangreiche Einfügungen oder Löschungen, durch die sich die Position des anfälligen Codes stark verschiebt, können den Fingerprint ändern.Beispiel: Das Hinzufügen von 200 neuen Codezeilen oberhalb einer Schwachstelle könnte den Kontext so verschieben, dass sich der Fingerabdruck ändert.Warum: Fingerprinting toleriert kleine Änderungen der Zeilennummer. Große Verschiebungen deuten dagegen auf einen veränderten Codekontext innerhalb der Datei hin.Anzeige: Das Issue kann als behoben erscheinen und unter einer anderen Zeilennummer erneut auftreten.
Dies ist aufgrund der AST-Intelligenz selten, aber falls es passiert, vergewissern Sie sich, dass es sich wirklich um dasselbe Problem handelt, bevor Sie es als Duplikat markieren.
Änderungen der Schwachstellenklassifizierung
Änderungen der Schwachstellenklassifizierung
Was passiert: Wenn Corgeas Analyse ein Issue neu klassifiziert (z. B. von “Potential SQL Injection” zu “Confirmed SQL Injection”), erhält es einen neuen Fingerprint.Beispiel: Zusätzlicher Kontext aus späteren Scans kann die Klassifizierung einer Schwachstelle ändern oder verschärfen.Warum: Die Klassifizierung trägt zur Eindeutigkeit eines Issues bei. Unterschiedliche Klassifizierungen können unterschiedliche Behebungsmaßnahmen erfordern.Was Sie sehen werden: Ein Problem wird geschlossen und ein anderes mit unterschiedlicher Schwere oder Art erscheint am selben Ort.
Änderungen am anfälligen Code
Änderungen am anfälligen Code
Was passiert: Eine Änderung an der tatsächlich betroffenen Codezeile kann den Fingerprint ändern, auch wenn die Schwachstelle nicht behoben wird.Beispiel:
Änderung von:In:Die SQL-Injection bleibt bestehen, der Fingerprint ändert sich jedoch.Warum: Der konkrete Codekontext ist Teil des Fingerprints. Die Änderung zeigt, dass der Code bearbeitet wurde, und bietet eine Gelegenheit zur korrekten Behebung.Anzeige: Das bisherige Issue erscheint als behoben und ein neues, ähnliches Issue wird angelegt.
Änderungen ohne neuen Fingerprint
Die folgenden Änderungen wirken sich normalerweise nicht auf den Fingerprint aus:
- Hinzufügen oder Entfernen von Kommentaren
- Ändern von Leerzeichen oder Einrückungen
- Umbenennen von lokalen Variablen (in den meisten Fällen)
- Hinzufügen von Code vor oder nach der anfälligen Zeile (in Maßen)
- Neuformatierung gemäß Stilrichtlinien
- Hinzufügen von Logging- oder Debug-Anweisungen in der Nähe
Mit Fingerprint-Änderungen umgehen
1
Issue-Verlauf prüfen
Corgea verfolgt alle historischen Ereignisse anhand des Fingerprints. So können Sie die Zeitleiste des ursprünglichen Issues einsehen.
2
Überprüfen Sie die Codeänderungen
Verwenden Sie Ihr Versionskontrollsystem, um zu verstehen, was sich zwischen den Scans geändert hat.
3
Referenzen aktualisieren
Wenn Sie Issues in externen Systemen (JIRA usw.) verfolgen, müssen Sie gegebenenfalls die Referenzen aktualisieren.
4
Betrachten Sie es als eine Gelegenheit
Ein geänderter Fingerprint bedeutet häufig, dass jemand den anfälligen Code bearbeitet hat. Prüfen Sie bei dieser Gelegenheit, ob der Fix vollständig und korrekt ist.
5
Kontaktieren Sie den Support
Wenn Sie glauben, dass ein Fingerabdruck sich fälschlicherweise oder unerwartet geändert hat, kann unser Team bei der Untersuchung helfen.
Warum dieses Design?
Warum dieses Design?
Warum bleibt der Fingerprint nicht immer gleich? Corgeas Ansatz bietet folgende Vorteile:
- Genauigkeit: Wenn sich der Codekontext tatsächlich ändert, bildet ein neuer Fingerprint den aktuellen Zustand der Codebasis ab.
- Transparenz: Fingerprint-Änderungen zeigen Security-Teams, dass der Code bearbeitet wurde.
- Flexibilität: Es verhindert „veraltetes“ Problem-Tracking, bei dem ein Problem als behoben markiert ist, die Schwachstelle jedoch in leicht veränderter Form weiterhin besteht.
- Compliance: Audit Trails sind genauer, wenn sie tatsächliche Codeänderungen statt nur das fortdauernde Vorhandensein eines Issues abbilden.
Hauptvorteile
- Für Sicherheitsteams
- Für Entwicklungsteams
- Für das Management
Erhalten Sie ein genaues Verständnis Ihres Sicherheitsstatus, ohne dass doppelte Erkennungen ihn fälschlicherweise aufblähen. Verstehen Sie, wann Codeänderungen getrackte Sicherheitslücken beeinflussen.
Fragen?
Wenn Sie Fragen dazu haben, wie Fingerprinting Ihren spezifischen Anwendungsfall beeinflusst, unerwartete Fingerprint-Änderungen bemerken oder mehr darüber erfahren möchten, wie Probleme in Ihrer Umgebung verfolgt werden, wenden Sie sich bitte an Ihr Corgea-Support-Team.Brauchen Sie Hilfe?
Kontaktieren Sie unser Support-Team für Hilfe beim Fingerprinting oder bei anderen Fragen.
