--- type: resource title: "Geheimnis-Scan: Commits und Dateien vor dem Push durchsuchen" status: active summary: "Zwei Scanner suchen in ausgehenden Commits oder in einer Textdatei nach Zugangsdaten, Firmennamen, privaten IPs und Mailadressen und zeigen Geheimnis-Werte nur als Länge." tags: [vault-tools, veroeffentlichung] created: 2026-10-15 updated: 2026-10-15 --- # Geheimnis-Scan Für den Blick vor einem Push oder bevor eine Datei ein Repo verlässt. Werte, die wie Geheimnisse aussehen, stehen in der Ausgabe nur als Länge. | Skript | Durchsucht | Aufruf | |---|---|---| | `push_scan.py` | hinzugefügte Zeilen eines Commit-Bereichs | `python -I -X utf8 push_scan.py ` | | `datei_scan.py` | eine Textdatei, etwa ein Transkript oder Export | `python -I -X utf8 datei_scan.py ` | ## Benutzen ```bash # Ausgehende Commits eines Zweigs, der auf Gitea schon existiert python -I -X utf8 push_scan.py "D:/Claude/Code Projekte/active - X" origin/main..main # Neuer Zweig, den Gitea noch nicht kennt python -I -X utf8 push_scan.py "D:/Claude/Code Projekte/active - X" feature/neu --not --remotes=origin # Eine Datei vor dem Löschen oder Veröffentlichen python -I -X utf8 datei_scan.py "D:/pfad/transkript.txt" ``` - `[geheim] …: 0` je Muster heißt: kein Treffer dieser Art. - `[zaehl] private_ipv4` und `[zaehl] firma` zeigen die Werte im Klartext. Liegen sie in Fixtures oder Plänen, ist das kein Befund; die Datei sagt die Fundstelle nicht, `git grep` danach schon. - Einen bekannten Kundennamen suchst du getrennt mit `grep -c` und gibst ihn nie aus. ## Was die Skripte sehen und was nicht - **Fangnetz, kein Nachweis.** Die Muster sind reguläre Ausdrücke für Zuweisungen (`password = "…"`), private Schlüsselblöcke, Token-Präfixe (`ghp_`, `glpat-`), URLs mit Zugangsdaten und Passwort-Hashes. Ein Geheimnis ohne diese Form, etwa ein nackter Schlüssel in einer eigenen Zeile, sehen sie nicht. - **Firmennamen** nur mit Rechtsform (`GmbH`, `AG`, `KG`, `UG`, `e.V.`). Ein Name ohne Rechtsform fällt durch. - **`push_scan.py`** liest nur hinzugefügte Zeilen; was ein früherer Commit schon veröffentlicht hat, sieht es nicht. ## Was belegt ist - 2026-10-15, vor den Pushes der Gitea-Doku-Angleichung (Welle 0): `push_scan.py` über die ausgehenden Commits von elf Repos, 0 Treffer in den Geheimnis-Mustern; der IP-Zähler schlug an Test-Fixtures an (`10.20.x.x` in Wartungsprotokoll), zählt also. - 2026-10-15: `datei_scan.py` über ein Claude-Transkript von 341 KB: kein Treffer in den Zuweisungen, neun lange Zeichenketten, davon vier aus signierten Download-Links; Firmennamen nur Platzhalter und Arbeitgeber. - **Offen:** Die Geheimnis-Muster sind nie gegen ein echtes oder absichtlich eingebautes Geheimnis rot gesehen worden. Bis dahin gilt „0 Treffer“ nur als Hinweis. ## Referenzen - `AI/Regelwerk/veroeffentlichung.md` (im Vault): was vor der Aufnahme einer Datei geprüft wird - `AI/Regelwerk/pruefwerkzeuge.md` (im Vault): Regressionsnachweis für Prüfskripte