> ## Documentation Index
> Fetch the complete documentation index at: https://docs.corgea.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Issue-Fingerprinting

> Erfahren Sie, wie Corgea Sicherheitslücken über Scans hinweg eindeutig identifiziert und verfolgt

## 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.

<Info>
  Fingerprinting läuft automatisch im Hintergrund. Sie müssen es weder konfigurieren noch pflegen; es funktioniert ab dem ersten Scan ohne weitere Einrichtung.
</Info>

## 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.

<Accordion title="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
</Accordion>

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

<Tip>
  AST-basiertes Fingerprinting sorgt über den gesamten Entwicklungszyklus für eine stabilere und zuverlässigere Nachverfolgung von Security-Issues – auch bei Änderungen am Code.
</Tip>

## Wo wird Fingerprinting verwendet?

<Tabs>
  <Tab title="Issue-Tracking">
    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
  </Tab>

  <Tab title="Duplikaterkennung">
    Fingerprints verhindern doppelte Befunde. Tritt dieselbe Schwachstelle in mehreren Scans oder Branches auf, erkennt Corgea sie als dasselbe Issue und vermeidet Duplikate im Dashboard.
  </Tab>

  <Tab title="Issue-Verlauf">
    Jeder Issue-Fingerprint ist mit einem Verlauf verknüpft, der Folgendes erfasst:

    * Zeitpunkt der ersten Erkennung
    * Statusänderungen im Laufe der Zeit
    * Wer zur Behebung zugewiesen wurde
    * Ergriffene Maßnahmen zur Lösung

    Damit erhalten Sie einen vollständigen Audit Trail für Compliance und Security-Tracking.
  </Tab>

  <Tab title="Berichterstattung">
    Ihre Corgea-Dashboards und Berichte verwenden Fingerprints für:

    * **Eindeutige Schwachstellenanzahl** (nicht durch Duplikate aufgebläht)
    * **Trendanalyse** im Zeitverlauf
    * **Projektbezogene Sicherheitsmetriken**
    * **Verteilung der Issues nach Kategorie**
  </Tab>
</Tabs>

## 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.

<Warning>
  Zu verstehen, wann sich Fingerprints ändern, ist wichtig für die genaue Nachverfolgung von Problemen und das Sicherheitsmanagement.
</Warning>

### Änderungen, die einen neuen Fingerprint erzeugen

<AccordionGroup>
  <Accordion title="Dateiverschiebungen oder -umbenennungen" icon="folder-arrow-up">
    **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.

    <Tip>
      Wenn Sie eine groß angelegte Datei-Neuordnung durchführen, koordinieren Sie sich mit Ihrem Sicherheitsteam, damit es den Kontext versteht.
    </Tip>
  </Accordion>

  <Accordion title="Bedeutende Code-Umstrukturierung" icon="code">
    **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.

    <Tip>
      Bei größeren Refaktorierungen sollten diese Gelegenheiten genutzt werden, um die Verwundbarkeit zu beheben, anstatt sie nur zu verschieben.
    </Tip>
  </Accordion>

  <Accordion title="Zeilennummer weit über den Schwellenwert verschoben" icon="arrow-down-1-9">
    **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.

    <Note>
      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.
    </Note>
  </Accordion>

  <Accordion title="Änderungen der Schwachstellenklassifizierung" icon="tag">
    **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.

    <Tip>
      Achten Sie auf Änderungen der Klassifizierung – sie weisen oft auf wichtige neue Informationen zum Sicherheitsrisiko hin.
    </Tip>
  </Accordion>

  <Accordion title="Änderungen am anfälligen Code" icon="pen-to-square">
    **Was passiert:** Eine Änderung an der tatsächlich betroffenen Codezeile kann den Fingerprint ändern, auch wenn die Schwachstelle nicht behoben wird.

    **Beispiel:**
    Änderung von:

    ```python theme={null}
    query = "SELECT * FROM users WHERE id=" + user_id
    ```

    In:

    ```python theme={null}
    query = "SELECT id, name FROM users WHERE id=" + user_id
    ```

    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.

    <Tip>
      Beim Ändern von anfälligem Code sollte man die Gelegenheit nutzen, das Sicherheitsproblem richtig zu beheben, statt es nur oberflächlich zu ändern.
    </Tip>
  </Accordion>
</AccordionGroup>

### Änderungen ohne neuen Fingerprint

<Check>
  Die folgenden Änderungen wirken sich normalerweise **nicht** auf den Fingerprint aus:
</Check>

* 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

<Steps>
  <Step title="Issue-Verlauf prüfen">
    Corgea verfolgt alle historischen Ereignisse anhand des Fingerprints. So können Sie die Zeitleiste des ursprünglichen Issues einsehen.
  </Step>

  <Step title="Überprüfen Sie die Codeänderungen">
    Verwenden Sie Ihr Versionskontrollsystem, um zu verstehen, was sich zwischen den Scans geändert hat.
  </Step>

  <Step title="Referenzen aktualisieren">
    Wenn Sie Issues in externen Systemen (JIRA usw.) verfolgen, müssen Sie gegebenenfalls die Referenzen aktualisieren.
  </Step>

  <Step title="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.
  </Step>

  <Step title="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.
  </Step>
</Steps>

<Accordion title="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.
</Accordion>

## Hauptvorteile

<Tabs>
  <Tab title="Für Sicherheitsteams">
    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.
  </Tab>

  <Tab title="Für Entwicklungsteams">
    Vermeiden Sie Verwirrung darüber, welche Probleme Aufmerksamkeit erfordern und welche bereits bearbeitet wurden. Führen Sie Refactoring und Verbesserungen am Code fort, ohne den Überblick über Sicherheitsprobleme zu verlieren.
  </Tab>

  <Tab title="Für das Management">
    Erhalten Sie zuverlässige Metriken zur Verfolgung der Sicherheitsverbesserungen im Laufe der Zeit und zur Darstellung von Compliance-Maßnahmen. Verstehen Sie die tatsächlichen Auswirkungen von Codeänderungen auf die Sicherheitslage.
  </Tab>
</Tabs>

## 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.

<Card title="Brauchen Sie Hilfe?" icon="headset" href="mailto:help@corgea.com">
  Kontaktieren Sie unser Support-Team für Hilfe beim Fingerprinting oder bei anderen Fragen.
</Card>
