Zum Inhalt springen

Prüfregel · RSC-SEC-081

Geheimschlüssel in der Git-Historie

SicherheitSchweregrad: HochCWE-540OWASP A07-2021

Prüft die hinzugefügten Zeilen der letzten Commits gegen dieselbe Musterliste wie den aktuellen Stand — ein gelöschter Schlüssel bleibt lesbar.

Warum das zählt

Git ist ein Archiv, kein Ordner. Jeder Stand, den ihr je committet habt, bleibt abrufbar — auch der, in dem der Schlüssel noch drinstand. Wer das Repository klonen kann, liest ihn mit einem einzigen Befehl. Das gilt selbst dann, wenn die Datei im aktuellen Stand längst gelöscht und in `.gitignore` eingetragen ist.

Der Ablauf ist bei generierten Projekten fast immer derselbe: Der erste Commit lautet „alles rein“, `.gitignore` entsteht später, und irgendwann fällt die `.env` auf und fliegt raus. Damit ist das Problem aus der Arbeitskopie verschwunden und aus der Historie nicht.

Die einzige wirksame Reaktion ist Rotation. Den Schlüssel aus der Historie zu entfernen ist möglich (`git filter-repo`), aber aufwendig, bricht jeden Klon — und ist wertlos, solange der alte Wert noch gültig ist. Rotiert zuerst, räumt danach auf, falls überhaupt.

Prüfstufe

Repo-Zugang (Deep-Scan)

So behebt ihr es

Betroffene Schlüssel rotieren; das Entfernen der Datei genügt nicht.

Eigene App kostenlos prüfen