Skip to main content

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
Aus diesen Elementen entsteht ein eindeutiger, konsistenter Bezeichner, der über mehrere Scans Ihrer Codebasis hinweg bestehen bleibt.

AST-basierte Intelligenz

Corgea verwendet Analysen des Abstract Syntax Tree (AST), um Fingerprints robuster gegenüber Codeänderungen zu machen.
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
Warum AST für Sie wichtig ist: Durch AST-Informationen in den Fingerprints kann Corgea:
  • 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
AST-basiertes Fingerprinting sorgt über den gesamten Entwicklungszyklus für eine stabilere und zuverlässigere Nachverfolgung von Security-Issues – auch bei Änderungen am Code.

Wo wird Fingerprinting verwendet?

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.
Zu verstehen, wann sich Fingerprints ändern, ist wichtig für die genaue Nachverfolgung von Problemen und das Sicherheitsmanagement.

Änderungen, die einen neuen Fingerprint erzeugen

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.
Wenn Sie eine groß angelegte Datei-Neuordnung durchführen, koordinieren Sie sich mit Ihrem Sicherheitsteam, damit es den Kontext versteht.
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.
Bei größeren Refaktorierungen sollten diese Gelegenheiten genutzt werden, um die Verwundbarkeit zu beheben, anstatt sie nur zu verschieben.
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.
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.
Achten Sie auf Änderungen der Klassifizierung – sie weisen oft auf wichtige neue Informationen zum Sicherheitsrisiko hin.
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.
Beim Ändern von anfälligem Code sollte man die Gelegenheit nutzen, das Sicherheitsproblem richtig zu beheben, statt es nur oberflächlich zu ändern.

Ä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 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

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.