Tools
GitHub Secret Scanning - ModernBERT ersetzt LLM-Pipeline und spart 98 Prozent
Das Problem mit generischen Secrets
API-Keys mit festem Präfix findet jede Regex. Schwierig sind generische Secrets: Ein Passwort neben einer Produktions-Datenbank-URL ist echt, derselbe String in einem Test-Fixture harmlos. Eine hochentropische Zeichenkette kann ein API-Token oder eine Checksumme sein. Ohne Kontext lässt sich das nicht unterscheiden – und jede zusätzliche Ausnahmeregel riskiert, echte Credentials zu übersehen.
Zwei Stufen statt großes LLM
GitHub hat seine bisherige LLM-basierte Pipeline deshalb durch einen spezialisierten Klassifikator ersetzt:
- Kandidaten finden: Regex-Filter werfen ein breites Netz mit hohem Recall aus.
- Kontext bewerten: Ein feingetuntes ModernBERT liest Kandidat, Dateipfad, Secret-Typ, Variablennamen und umgebenden Code und berechnet, wie wahrscheinlich ein echtes Secret vorliegt.
Trainiert wurde auf Produkt-Feedback, menschlich annotierten Regex-Treffern und synthetischen „Hard Negatives" wie Platzhaltern, Doku-Beispielen und Public Keys. Das Modell läuft als 8-Bit-quantisiertes ONNX.
Die Zahlen
- Offline: 13 % höhere Precision, 19 % höherer Recall als die alte LLM-Pipeline.
- A/B-Test: 11,5 % mehr akzeptierte Alerts.
- Tempo: Median-Scanzeit nach Push um 86 % gesunken – schnell genug, um generische Secrets jetzt auch per Push Protection vor dem Push zu blocken.
- Kosten: über 98 % günstiger als Remote-LLM-Calls.
Die Lektion: Für eine enge, messbare Entscheidung schlägt ein kleines Encoder-Modell das große Generalisten-LLM.
Quelle: GitHub Blog