Expédier du code d'une flotte opérationnelle sans expédier ses secrets
Livraison
Nos kits proviennent de code qui fait tourner notre propre flotte, où les fichiers de configuration contiennent des clés API, des jetons, des mots de passe de boîtes aux lettres et des identifiants de compte. Un kit qui en divulgue un seul serait pire que pas de kit du tout, donc rien n'est archivé tant que trois scanners sur trois machines n'ont rien trouvé.
Ce qui est inclus
Le packager copie uniquement les fichiers nommés par le manifeste d'un kit, jamais un dossier entier, et exclut les caches, les sauvegardes et l'historique du contrôle de version. Les exemples et les tests utilisent des produits et des chiffres inventés, jamais les nôtres.
Les analyses
- Sur la machine de build : les fichiers mis en attente sont recherchés pour les valeurs réelles des secrets de la flotte (132 lors du dernier build) et pour les empreintes SHA-256 de 16 259 chaînes secrètes de notre poste de travail. Seules les empreintes circulent ; les secrets du poste de travail ne le quittent jamais.
- Sur deux autres machines : les mêmes fichiers sont envoyés à chacune et recherchés là-bas par rapport aux secrets que chaque machine détient (498 et 129 valeurs), puis supprimés.
- Partout : motifs pour les formats de clés, les adresses privées et les données personnelles.
- Avant que cela ne compte : chaque scanner fonctionne d'abord sur des canaris placés et doit les trouver tous, 23 par exécution, sinon le build s'arrête.
Une découverte arrête le build. Une fois qu'une version a été vendue, elle n'est jamais reconstruite : une correction est expédiée sous forme de nouvelle version, donc le fichier que l'acheteur télécharge est le fichier qui a été analysé.
Les fausses alertes qui nous ont le plus appris
- Un commentaire commençant par « Each pass ends with » a été signalé comme un mot de passe d'application Gmail. Ces mots de passe sont composés de quatre groupes de quatre lettres, et cette phrase aussi. Nous avons reformulé le commentaire.
- La plage d'adresses partagée 100.64.0.0/10, utilisée par le NAT de niveau opérateur et Tailscale, a été signalée comme une adresse privée.
- Un nom d'unité systemd comme
[email protected]ressemblait à une adresse e-mail, et un identifiant de magasin fictif comme9NXXXXXXXXXXressemblait à un vrai produit.
Le commentaire que nous avons reformulé ; les trois autres ont été autorisés pour ce kit unique et ce motif unique, jamais globalement, afin que le kit suivant soit analysé aussi strictement que le premier. Une fausse alerte coûte une minute, et une clé manquée coûterait bien plus.
Chaque kit en vente est passé par là, avec zéro découverte à chaque sortie.