Secrets Sprawl: Wie wir 412 geleakte Token behoben haben

Eine CI-Pipeline schlug am 3. März um 02:13 Uhr fehl. Wir fanden 412 geleakte API-Token in 37 Repositories. Dieser Fehler setzte potenzielle Kosten für Sicherheitsverletzungen in Höhe von 1,2 Millionen US-Dollar aufs Spiel.

Die meisten Teams denken, ein Vault löse alle Probleme. In der Realität kann ein Vault zu einem Single Point of Failure für die Latenz werden. Wenn Token außerhalb des Vaults existieren, werden hartcodierte Werte oder Umgebungsvariablen verwendet. Diese Fallbacks erscheinen nicht in den Audit-Logs.

Unsere Metriken zeigten die Kosten dieses Sprawls:

  • Normaler Abruf von Secrets: 48 ms pro Anfrage.
  • Während des Leaks: 187 ms pro Anfrage.

Build-Agents bezogen pro Job 12 Token aus einem entfernten Vault-Cluster. Dies verursachte Timeouts und zwang Entwickler dazu, Änderungen manuell zurückzurollen. Latenz ist nicht nur ein langsamer Prozess. Sie ist ein Kostenfaktor, der die Cloud-Rechnungen in die Höhe treibt und die Entwickler ausbremst.

Ein geleakter AWS-Key in einem Staging-Repo könnte 120 US-Dollar pro Stunde kosten, wenn ein Angreifer ihn ausnutzt. Eine einzige Stunde Missbrauch kostet mehr als ein quartalsweiser Sicherheitsaudit.

Statische Scanner haben uns im Stich gelassen. Sie haben 78 % unserer Token übersehen. Warum? Weil diese Token on-the-fly generiert wurden und in Build-Artefakten existierten, nicht im Quellcode. Ein GitHub-Actions-Schritt schrieb einen Token in einen Docker-Layer. Der Scanner sah nichts, aber der Token lag wochenlang in unserem Registry.

Man benötigt Sichtbarkeit zur Laufzeit (Runtime Visibility), nicht nur statische Inspektion.

Wir haben eine Lambda-Engine gebaut, um dies zu beheben. Sie überwacht CloudTrail auf neue Secrets und vergleicht sie mit unserem Vault. Hier ist der neue Workflow:

  • Erkennung eines Secrets via Webhook.
  • Abfrage der Metadaten im Vault.
  • Ungültigmachen des Tokens über die Provider-API.
  • Erstellen eines PR, um das Secret aus der Datei zu entfernen.
  • Automatisches Mergen des PR, falls er die CI besteht.

Diese Engine hat 412 Token in 27 Minuten mit einer Erfolgsquote von 99,97 % rotiert.

Wir tracken nun das Alter von Secrets. Wenn ein Token älter als 30 Tage ist, schlägt der Build fehl. Diese einfache Regel reduzierte neue Leaks in einem Quartal um 62 %. Wir verwenden außerdem ein Isolation-Forest-Modell, um ungewöhnliche Nutzungsmuster zu markieren. Wenn ein Token von einer neuen IP erscheint, rotiert das System ihn sofort.

Hören Sie auf, Token wie Dateien zu behandeln. Betrachten Sie das Alter von Secrets und die Abruf-Latenz als Schlüsselmetriken. Wenn Sie das tun, wird der Sprawl schrumpfen.

Quelle: https://dev.to/isabelle_dubuis_d858453d7/secrets-sprawl-how-we-cleaned-up-412-leaked-tokens-and-stopped-the-latency-bleed-k71

Optionale Lern-Community: https://t.me/GyaanSetuAi