Secret Gate
Заштитен механизам за објавување кој ги знае вашите вистински тајни: ништо не излегува додека не најде ништо.
- Linux or macOS
- Python 3.9+
- Git hooks
- CI

Што прави
Тајната капија одговора на едно прашање пред што било да излезе од вашите раце, било тоа release zip, копија за клиент, push на open-source или следниот commit: дали ова содржи моја тајна? Таа знае кои се вашите тајни, бидејќи ги чита датотеките каде што се чуваат, и никогаш не прикажува ниту една: пронајдокот го наведува името на датотеката, линијата и потеклото на вредноста.
- Вашите точни вредности. Секоја вредност во вашите env датотеки, JSON и YAML конфигурации,
.netrcи клучни датотеки, барана како што е напишана, base64-кодирана и URL-кодирана. Лозинка што изгледа како обичен збор, или внатрешен токен без познат префикс, се фаќа како и секоја друга. - Тајни од машини на кои не работи. Направете отпечатоци на вашиот лаптоп; серверот за build ги наоѓа тие вредности без никогаш да ги држи.
- Други машини проверуваат против свои тајни. Датотеките одат на секоја машина преку SSH, се скенираат таму и се бришат. Тајните никогаш не се движат, а машина која не може да одговори го блокира release-от.
- Форми, имиња и шум исто така. 25 формати на токени, вашите имиња, хостови, домени и сметки, приватни IP адреси, лични мејл адреси, телефонски броеви, IBAN-ови, патеки до home-фолдерот и случајни низи покрај имиња слични на тајни.
- Се докажува секој пат. Секое скенирање почнува со поставување на canaries од секој вид; ако било која проверка го промаши нејзиниот canary, скенирањето не се извршува.
- Каде веќе работите. Фолдери, zip и tar архиви, git pre-commit или pre-push hook, излезни кодови за CI, JSON извештај.
Тестирано на она што го испорачуваме
- Секој комплет што го продаваме: 8-те release архиви скенирани против 133 тајни вредности на нашиот build machine и 16.259 отпечатоци од нашиот лаптоп. Сите поминаа, заедно за 5.4 секунди.
- Вистинска тајна поставена во release копија беше фатена обична и base64-кодирана, секој пат именувана по датотеката од која доаѓа. Вредноста не се појави никаде во излезот или извештајот.
- Далечинско скенирање преку SSH провери release против 499 тајни вредности на втора машина за 1.4 секунди, и фати токен поставен во копија која постоеше само на таа машина.
Што има внатре
Капијата
Четири проверки, само-тест, скенирање на архиви и git-staged датотеки, читлив извештај и JSON извештај.
Отпечатоци
Отпечатоци на тајните од една машина, за скенирање на друга, без вредностите.
Далечински скенирања
Истите датотеки проверени на секоја машина која чува тајни, заедно со правилата на вашиот проект.
Поставување и CI
Алатка за пронаоѓање на вашите тајни датотеки, git hooks и GitHub Actions workflow за архиви за објавување.
Барања
- Linux или macOS со Python 3.9 или понова верзија; ништо за инсталирање преку pip.
- Git за hooks, SSH за далечински скенирања.
Добро е да се знае
- Ги чита датотеките такви какви што се сега. Тајна која веќе е во вашата git историја останува таму: ротирајте ја.
- Архивите во скенираната папка не се отвораат; скенирајте ја секоја архива посебно.
- Чувајте ги датотеките со отпечатоци толку приватно како и тајните: тие ги содржат првите 4 знаци од секоја вредност со 16 или повеќе знаци.
Прашања
Како се разликува од gitleaks или TruffleHog?
Тие бараат како обично изгледаат тајните и се добри во тоа. Secret Gate исто така знае што се вашите тајни всушност: ги чита вашите сопствени датотеки со тајни и ги бара тие точни вредности, па затоа се фаќа и лозинка за база на податоци или внатрешен токен без препознатлив облик. Изграден е за еден момент, пред нешто да се испорача, и fails closed.
Дали ги испраќа моите тајни некаде?
Не. Вредностите се читаат од вашите датотеки во меморија за скенирање и никогаш не се печати, запишуваат или испраќаат; датотеката со отпечатоци, ако направите една, содржи hash и првите 4 знаци од секоја вредност. Далечинските скенирања ги испраќаат датотеките што ќе ги испорачате на вашата машина; тајните на таа машина остануваат на неа.
Што со лажните аларми?
Наодот значи „погледнете го ова“. Ако е во ред, додајте тесно дефинирано правило за дозволување за тој тип на наод во конфигурацијата на проектот, на пример вашата сопствена адреса за поддршка. Нема прекинувач што исклучува проверка.
Дали може да ја скенира мојата git историја?
Не. Проверува што ќе испорачате: папка, архива или следниот commit. За тајна која веќе е во историјата, ротирајте ја тајната.
Ажурирано: