Secrets Sprawl: come abbiamo risolto la fuga di 412 token

Una pipeline CI è fallita alle 2:13 del mattino del 3 marzo. Abbiamo trovato 412 token API trapelati in 37 repository. Questo errore ha messo a rischio 1,2 milioni di dollari in potenziali costi di violazione.

La maggior parte dei team pensa che un Vault risolva tutto. In realtà, un Vault può diventare un single point of failure per la latenza. Quando i token risiedono al di fuori del Vault, utilizzano valori hard-coded o variabili d'ambiente. Questi fallback non compaiono nei log di audit.

Le nostre metriche hanno mostrato il costo di questa dispersione:

  • Recupero segreti normale: 48 ms per richiesta.
  • Durante la fuga: 187 ms per richiesta.

Gli agent di build hanno prelevato 12 token per job da un cluster Vault distante. Ciò ha causato timeout e ha costretto gli sviluppatori a eseguire il rollback manuale delle modifiche. La latenza non è solo un processo lento. È un centro di costo che gonfia le bollette cloud e rallenta gli sviluppatori.

Una chiave AWS trapelata in un repository di staging potrebbe costare 120 dollari l'ora se utilizzata da un attaccante. Una singola ora di abuso costa più di un audit di sicurezza trimestrale.

Gli scanner statici ci hanno deluso. Hanno mancato il 78% dei nostri token. Perché? Perché quei token venivano generati al volo e risiedevano negli artifact di build, non nel codice sorgente. Uno step di GitHub Actions ha scritto un token in un layer Docker. Lo scanner non ha visto nulla, ma il token è rimasto nel nostro registry per settimane.

Hai bisogno di visibilità a runtime, non solo di un'ispezione statica.

Abbiamo costruito un motore Lambda per risolvere il problema. Monitora CloudTrail alla ricerca di nuovi segreti e li confronta con il nostro Vault. Ecco il nuovo workflow:

  • Rilevare un segreto tramite un webhook.
  • Interrogare il Vault per i metadati.
  • Invalidare il token tramite l'API del provider.
  • Aprire una PR per rimuovere il segreto dal file.
  • Effettuare il merge della PR automaticamente se supera la CI.

Questo motore ha ruotato 412 token in 27 minuti con un tasso di successo del 99,97%.

Ora monitoriamo l'età dei segreti. Se un token è più vecchio di 30 giorni, la build fallisce. Questa semplice regola ha ridotto le nuove fughe del 62% in un trimestre. Utilizziamo anche un modello isolation-forest per segnalare pattern di utilizzo anomali. Se un token appare da un nuovo IP, il sistema lo ruota immediatamente.

Smetti di trattare i token come file. Tratta l'età dei segreti e la latenza di recupero come metriche chiave. Se lo farai, la dispersione diminuirà.

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

Community di apprendimento opzionale: https://t.me/GyaanSetuAi