Verzendcode uit een werkende vloot zonder de geheimen mee te sturen
Verzending
Onze kits komen van code die onze eigen vloot draait, waar configuratiebestanden API-sleutels, tokens, mailboxwachtwoorden en account-id's bevatten. Een kit die er een lekt is erger dan geen kit, dus er wordt niets gecomprimeerd totdat drie scanners op drie machines niets hebben gevonden.
Wat erin gaat
De packager kopieert alleen de bestanden die in de manifest van een kit staan, nooit een hele map, en laat caches, back-ups en versiebeheergeschiedenis weg. Voorbeelden en tests gebruiken verzonnen producten en cijfers, nooit de onze.
De scans
- Op de buildmachine: de gestage bestanden worden doorzocht op de werkelijke waarden van de geheimen van de vloot (132 bij de laatste build) en op de SHA-256-vingerafdrukken van 16.259 geheime strings van onze werkstation. Alleen vingerafdrukken reizen mee; de geheimen van het werkstation verlaten het nooit.
- Op twee andere machines: dezelfde bestanden worden naar elk gestuurd en daar doorzocht op de geheimen die die machine bevat (498 en 129 waarden), daarna verwijderd.
- Overal: patronen voor sleutelindelingen, privé-adressen en persoonsgegevens.
- Voor er iets telt: elke scanner draait eerst op geplaatste canaries en moet ze allemaal vinden, 23 per run, anders stopt de build.
Een vondst stopt de build. Zodra een versie is verkocht, wordt deze nooit opnieuw gebouwd: een fix verschijnt als een nieuwe versie, dus het bestand dat een koper downloadt is het bestand dat is gescand.
De valse alarmen die ons het meest hebben geleerd
- Een commentaar dat begon met "Each pass ends with" werd gemarkeerd als een Gmail-appwachtwoord. Die wachtwoorden bestaan uit vier groepen van vier letters, en die zin ook. We hebben het commentaar herschreven.
- Het gedeelde adresbereik 100.64.0.0/10, dat carrier-grade NAT en Tailscale gebruiken, werd gemarkeerd als privé-adres.
- Een systemd-unitnaam zoals
[email protected]leek op een e-mailadres, en een placeholder-store-id zoals9NXXXXXXXXXXleek op een echt product.
Het commentaar dat we hebben herschreven; de andere drie werden toegestaan voor die ene kit en dat ene patroon, nooit globaal, dus de volgende kit wordt net zo streng gescand als de eerste. Een vals alarm kost een minuut, en een gemiste sleutel zou veel meer kosten.
Elke kit te koop heeft dit ondergaan, met nul vondsten bij elke release.