Код із робочого парку без розголошення його секретів
Доставка
Наші набори створені на основі коду, який керує нашим власним парком, де конфігураційні файли містять ключі API, токени, паролі до поштових скриньок та ідентифікатори акаунтів. Набір, який розкриє хоча б один із них, буде гіршим за відсутність набору, тому нічого не архівується, доки три сканери на трьох машинах не знайдуть нічого.
Що входить до складу
Пакувальник копіює лише файли, зазначені в маніфесті набору, ніколи не цілу папку, і пропускає кеші, резервні копії та історію системи контролю версій. Приклади та тести використовують вигадані продукти та цифри, ніколи наші.
Сканування
- На машині збірки: підготовлені файли перевіряються на наявність фактичних значень секретів парку (132 на останній збірці) та на SHA-256 відбитки 16 259 секретних рядків з нашої робочої станції. Переміщуються лише відбитки; секрети робочої станції ніколи не залишають її.
- На двох інших машинах: ті самі файли надсилаються на кожну з них і перевіряються там проти секретів, які зберігаються на цій машині (498 та 129 значень), після чого видаляються.
- Усюди: шаблони для форматів ключів, приватних адрес та персональних даних.
- Перед тим, як це зарахується: кожен сканер спочатку запускається на закладених «канарейках» і повинен знайти всі з них, 23 за прогін, інакше збірка зупиняється.
Знахідка зупиняє збірку. Після того, як версію продано, її ніколи не перебудовують: виправлення виходить як нова версія, тому файл, який завантажує покупець, — це той самий файл, який було перевірено.
Хибні тривоги, які навчили нас найбільше
- Коментар, що починався з «Each pass ends with», був позначений як пароль додатка Gmail. Такі паролі складаються з чотирьох груп по чотири літери, і цей вираз — теж. Ми переформулювали коментар.
- Спільний діапазон адрес 100.64.0.0/10, який використовують carrier-grade NAT і Tailscale, був позначений як приватна адреса.
- Назва модуля systemd на кшталт
[email protected]виглядала як електронна адреса, а ідентифікатор магазину-заповнювача на кшталт9NXXXXXXXXXXвиглядав як реальний продукт.
Коментар, який ми переформулювали; інші три були дозволені для того одного набору та того одного шаблону, ніколи глобально, тому наступний набір сканується так само суворо, як і перший. Хибна тривога коштує хвилини, а пропущений ключ коштував би значно більше.
Кожен набір у продажу пройшов через це, з нульовими знахідками при кожному випуску.