Prüfregel · RSC-SEC-081
Geheimschlüssel in der Git-Historie
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
So behebt ihr es
Betroffene Schlüssel rotieren; das Entfernen der Datei genügt nicht.