Tools

GitHub Secret Scanning - ModernBERT ersetzt LLM-Pipeline und spart 98 Prozent

github security secret-scanning modernbert onnx

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:

  1. Kandidaten finden: Regex-Filter werfen ein breites Netz mit hohem Recall aus.
  2. 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