Spedire il codice di una flotta funzionante senza spedirne i segreti
Spedizione
I nostri kit derivano dal codice che gestisce la nostra flotta, dove i file di configurazione contengono chiavi API, token, password di caselle di posta e ID account. Un kit che ne disperdesse uno sarebbe peggio di nessun kit, quindi nulla viene compresso finché tre scanner su tre macchine non hanno trovato nulla.
Cosa viene incluso
Il packager copia solo i file indicati dal manifest del kit, mai un'intera cartella, ed esclude cache, backup e cronologia del controllo versione. Esempi e test usano prodotti e cifre inventati, mai i nostri.
Le scansioni
- Sulla macchina di build: i file in staging vengono cercati per i valori effettivi dei segreti della flotta (132 all'ultima build) e per le impronte SHA-256 di 16.259 stringhe segrete dal nostro workstation. Solo le impronte viaggiano; i segreti del workstation non lo lasciano mai.
- Su altre due macchine: gli stessi file vengono inviati a ciascuna e cercati lì contro i segreti che quella macchina possiede (498 e 129 valori), poi eliminati.
- Ovunque: pattern per formati di chiavi, indirizzi privati e dati personali.
- Prima che conti qualcosa: ogni scanner viene prima eseguito su canary piazzati e deve trovarli tutti, 23 per esecuzione, altrimenti la build si ferma.
Un riscontro ferma la build. Una volta che una versione è stata venduta non viene mai ricostruita: una correzione viene spedita come nuova versione, quindi il file che l'acquirente scarica è il file che è stato scansionato.
I falsi allarmi che ci hanno insegnato di più
- Un commento che iniziava con "Each pass ends with" è stato segnalato come password app Gmail. Quelle password sono quattro gruppi di quattro lettere, e così è quella frase. Abbiamo riformulato il commento.
- L'intervallo di indirizzi condiviso 100.64.0.0/10, usato da carrier-grade NAT e Tailscale, è stato segnalato come indirizzo privato.
- Un nome di unità systemd come
[email protected]sembrava un indirizzo email, e un ID store placeholder come9NXXXXXXXXXXsembrava un prodotto reale.
Il commento che abbiamo riformulato; gli altri tre sono stati consentiti per quel singolo kit e quel singolo pattern, mai globalmente, così il kit successivo viene scansionato con la stessa severità del primo. Un falso allarme costa un minuto, e una chiave persa costerebbe molto di più.
Ogni kit in vendita ha superato questo processo, con zero riscontri a ogni release.