Secret Gate
Ein Release-Gate, das deine tatsächlichen Secrets kennt: Nichts geht live, bis es nichts mehr findet.
- Linux or macOS
- Python 3.9+
- Git hooks
- CI

Was es kann
Secret Gate beantwortet eine Frage, bevor etwas Ihre Hände verlässt – ob ein Release-Zip, eine Kundenkopie, ein Open-Source-Push oder der nächste Commit: Enthält dies ein Geheimnis von mir? Es weiß, was Ihre Geheimnisse sind, denn es liest die Dateien, in denen sie liegen, und zeigt keines davon an: Ein Fund benennt die Datei, die Zeile und die Herkunft des Werts.
- Ihre exakten Werte. Jeder Wert in Ihren env-Dateien, JSON- und YAML-Konfigurationen,
.netrc- und Schlüsseldateien, gesucht wie geschrieben, base64-kodiert und URL-kodiert. Ein Passwort, das wie ein gewöhnliches Wort aussieht, oder ein internes Token ohne bekanntes Präfix wird wie jeder andere erfasst. - Geheimnisse von Maschinen, auf denen es nicht läuft. Erstellen Sie Fingerabdrücke auf Ihrem Laptop; der Build-Server findet diese Werte, ohne sie jemals zu halten.
- Andere Maschinen prüfen gegen ihre eigenen Geheimnisse. Die Dateien werden per SSH an jede Maschine übertragen, dort gescannt und gelöscht. Die Geheimnisse wandern nie, und eine Maschine, die nicht antworten kann, blockiert das Release.
- Auch Formen, Namen und Rauschen. 25 Token-Formate, Ihre Namen, Hosts, Domains und Konto-IDs, private IP-Adressen, persönliche E-Mail-Adressen, Telefonnummern, IBANs, Pfade im Home-Ordner und zufällige Zeichenketten neben geheimnisähnlichen Namen.
- Es beweist sich jedes Mal selbst. Jeder Scan beginnt damit, Canary-Werte jeder Art zu platzieren; wenn ein Check seinen Canary-Wert verfehlt, läuft der Scan nicht.
- Wo Sie bereits arbeiten. Ordner, Zip- und Tar-Archive, ein Git-Pre-Commit- oder Pre-Push-Hook, Exit-Codes für CI, ein JSON-Bericht.
Getestet auf dem, was wir ausliefern
- Jedes Kit, das wir verkaufen: die 8 veröffentlichten Archive gescannt gegen die 133 Geheimniswerte auf unserem Build-Server und 16.259 Fingerabdrücke von unserem Laptop. Alle bestanden, zusammen in 5,4 Sekunden.
- Ein echtes Geheimnis, das in eine Release-Kopie gepflanzt wurde, wurde im Klartext und base64-kodiert gefunden, jedes Mal benannt durch die Datei, aus der es stammte. Der Wert erschien nirgends in der Ausgabe oder im Bericht.
- Ein Remote-Scan über SSH prüfte ein Release gegen die 499 Geheimniswerte einer zweiten Maschine in 1,4 Sekunden und fand ein Token, das in einer Kopie gepflanzt war, die nur auf dieser Maschine existierte.
Was ist enthalten
Das Gate
Die vier Checks, der Selbsttest, das Scannen von Archiven und Git-Staged-Dateien, ein lesbarer Bericht und einer im JSON-Format.
Fingerabdrücke
Fingerabdrücke der Geheimnisse einer Maschine für einen Scan auf einer anderen, ohne die Werte.
Remote-Scans
Die gleichen Dateien werden auf jedem Rechner geprüft, der Secrets enthält, wobei die Regeln Ihres Projekts mitgesendet werden.
Setup und CI
Ein Finder für Ihre Secret-Dateien, Git-Hooks und ein GitHub-Actions-Workflow für Release-Archive.
Voraussetzungen
- Linux oder macOS mit Python 3.9 oder neuer; nichts aus pip zu installieren.
- Git für die Hooks, SSH für Remote-Scans.
Gut zu wissen
- Es liest Dateien so, wie sie jetzt sind. Ein Secret, das sich bereits in Ihrem Git-Verlauf befindet, bleibt dort: Rotieren Sie es.
- Archive innerhalb eines gescannten Ordners werden nicht geöffnet; scannen Sie jedes Archiv einzeln.
- Bewahren Sie Fingerprint-Dateien so privat wie die Secrets auf: Sie enthalten die ersten 4 Zeichen jedes Werts mit 16 oder mehr Zeichen.
Häufige Fragen
Wie unterscheidet sich das von gitleaks oder TruffleHog?
Diese suchen nach dem, wie Secrets üblicherweise aussehen, und sind darin gut. Secret Gate kennt auch, was Ihre Secrets tatsächlich sind: Es liest Ihre eigenen Secret-Dateien und sucht nach genau diesen Werten, sodass auch ein Datenbank-Passwort oder ein internes Token ohne erkennbare Form gefunden wird. Es ist für einen Moment gebaut, bevor etwas ausgeliefert wird, und schlägt im Fehlerfall fehl (fail closed).
Sendet es meine Secrets irgendwohin?
Nein. Werte werden aus Ihren Dateien in den Speicher gelesen für den Scan und niemals ausgegeben, geschrieben oder gesendet; eine Fingerprint-Datei, falls Sie eine erstellen, enthält einen Hash und die ersten 4 Zeichen jedes Werts. Remote-Scans senden die Dateien, die Sie ausliefern wollen, an Ihren eigenen Rechner; die Secrets dieses Rechners bleiben dort.
Was ist mit Fehlalarmen?
Ein Fund bedeutet „Schauen Sie sich das an“. Wenn es in Ordnung ist, fügen Sie eine enge Allow-Regel für diese Art von Fund in der Projektkonfiguration hinzu, zum Beispiel Ihre eigene Support-Adresse. Es gibt keinen Schalter, der eine Prüfung abschaltet.
Kann es meinen Git-Verlauf scannen?
Nein. Es prüft, was Sie ausliefern wollen: einen Ordner, ein Archiv oder den nächsten Commit. Für ein Secret, das sich bereits im Verlauf befindet, rotieren Sie das Secret.
Aktualisiert: