Спри AI агента да изтича API ключове за 0 € с Gitleaks
Накратко
- Gitleaks е безплатен скенер с MIT лиценз, който намира пароли, API ключове и токени в кода и в историята на git.
- Работи като pre-commit hook, така че комит със скрита тайна просто не се случва. Няма значение дали реда е писал ти или AI агентът ти.
- Цена: 0 €. Настройка: около 15 минути. Сравни с сметката от един изтекъл облачен ключ.
AI агентите за код пишат бързо. И без да мигнат пъхат API ключа ти във файл. Преглеждаш промените, уморен си, натискаш commit. Сега ключът е в историята на git. Завинаги.
Старият начин: четеш внимателно всяка промяна или плащаш за услуга за търсене на тайни. Новият начин не струва нищо и отнема 15 минути. Един безплатен скенер стои между теб и git и казва не.
Какво е Gitleaks
Gitleaks е инструмент с отворен код, който търси тайни: API ключове, пароли, токени. Има MIT лиценз, така че можеш да го ползваш в бизнес, без да плащаш на никого. Това е един изпълним файл. Без акаунт, без облак, никакви данни не излизат от машината ти.
Може да сканира три неща: цялата история на git на репо, папка с файлове или текст, който му подадеш. Последното е полезно, когато искаш да провериш откъс, преди да го поставиш някъде.
Една честна бележка. В README на проекта пише, че Gitleaks е завършен откъм функции и следващите версии ще са само със поправки за сигурност. Авторът е пренасочил вниманието си към нов проект, наречен Betterleaks. Значи нови функции няма да има. За тази задача това е напълно достатъчно. Прави точно каквото ти трябва.
Цени
- Gitleaks CLI: безплатен, MIT лиценз.
- Pre-commit framework: безплатен, с отворен код.
- GitHub Action (Gitleaks-Action): наличен за CI. Провери в репото текущите условия за лиценз, преди да го ползваш на работа.
Сметката: да кажем, че проверяваш на ръка промените на агента за тайни, по 10 минути на ден, 22 работни дни. Това са 220 минути, около 3,7 часа на месец. При 20 € на час (мое допускане, сложи твоята ставка) това са около 73 € на месец, 880 € на година, за работа, която машината върши по-добре. Gitleaks струва 0 € и не се уморява в 6 вечерта.
Стъпка по стъпка: настройка за 15 минути
- Инсталирай Gitleaks. На Mac:
brew install gitleaks. С Docker:docker pull ghcr.io/gitleaks/gitleaks:latest. На други системи свали готов файл от страницата с версиите или го компилирай с Go чрезmake build. - Сканирай каквото вече имаш. Влез в проекта и пусни
gitleaks git -v. Чете цялата ти история в git и показва всяка тайна, която намери. Направи го първо. Може да се изненадаш. - Сканирай файлове без история. Пусни
gitleaks dir -v path/to/folderза бърза проверка на папка, например такава, която агент току-що е генерирал. - Провери откъс. Подай го през канал:
cat some_file | gitleaks -v stdin. - Блокирай лошите комити. Инсталирай pre-commit framework и добави файл
.pre-commit-config.yamlв корена на репото, с репото на Gitleaks и hook-а gitleaks. Примерът в README фиксира версия v8.24.2, която може да е стара, затова пусниpre-commit autoupdate, за да вземеш последната. - Включи го. Пусни
pre-commit install. Оттук нататък всеки комит минава първо през Gitleaks. Ако намери тайна, комитът спира. - Добави свои правила (по желание). Gitleaks чете конфигурация в този ред: флаг
--config, променлива GITLEAKS_CONFIG, променлива GITLEAKS_CONFIG_TOML, после файл.gitleaks.tomlв целевата папка. За да запазиш стандартните правила и да добавиш твои, сложиuseDefault = trueпод[extend]. - Пусни го в CI. Ползвай Gitleaks GitHub Action, така че pull request с тайна да пада на проверката. Това хваща случая, когато някой прескочи локалния hook.
Ако наистина трябва да прескочиш hook-а веднъж, сложи SKIP=gitleaks пред командата за комит. Ползвай го рядко. Най-често правилното решение е да махнеш тайната.
Какво да направиш, когато намери тайна
Тук хората бъркат. Изтриването на реда от файла не го маха от историята на git. Ако истински ключ е бил комитнат и качен, смятай го за откраднат. Първо го смени при доставчика. После чисти кода. Премести стойността в променлива на средата или в мениджър на тайни и добави файла, който я е съдържал, в .gitignore.
За AI агента добави един ред в инструкциите му: никога не пиши истински пароли във файлове, чети ги от променливи на средата. Няма да хване всичко, затова е hook-ът. Подсигуряваш се двойно.
Реални случаи
- Самостоятелен основател с агент, който пише код. Hook-ът е предпазната ти мрежа, докато вървиш бързо.
- Агенция, която предава код на клиенти. Пусни пълно сканиране на историята преди предаването. Изтекъл ключ в предадено репо е твой проблем.
- Строители на WordPress и автоматизации. Конфигурации, експорти от Make или n8n и код на плъгини са класически места за токени. Сканирай папката, преди да я архивираш и споделиш.
- Стари проекти. Пусни сканиране на историята на репа отпреди година. Там са забравените ключове.
Ограничения и слаби места
- Работи с правила. Познатите шаблони ги хваща добре. Собствена тайна с необичаен формат може да се промъкне, ако не добавиш правило.
- Има фалшиви аларми. Тестови низове и примерни ключове го задействат. За тях ползвай allowlist в конфигурацията.
- Завършен значи замразен. Нови функции няма да има. Само поправки за сигурност.
- Не връща направеното. Предотвратява нови течове. Старите изтекли ключове пак трябва да се сменят.
- Локалните hook-ове могат да се прескочат. Затова CI проверката е важна.
Алтернативи
- Betterleaks. Новият проект на автора на Gitleaks. Заслужава поглед, ако искаш нещо, което ще получава нови функции.
- Вградено сканиране на тайни в GitHub. Провери кои планове го включват за твоите репа.
- Ръчен преглед. Безплатно, но бавно, а хората пропускат неща в края на дълъг ден.
Мнението на Иван
Заслужава си. Ако AI агент пише код в репото ти, ти трябва машина, която да проверява за тайни. Не струва нищо и се настройва за една кафе пауза. Аз бих сложил pre-commit hook-а на всеки проект още днес, после бих пуснал сканиране на историята на старите и бих сменил каквото намери. Инструментът е замразен, но за хващането на поставен ключ това няма значение.
Източник: Gitleaks
Ако не ти спестява време или пари, няма да го видиш тук
- Факти, не шумВсяка цена и цифра е проверена в официалния източник
- Винаги реалната ценаВиждаш колко струва, преди да кликнеш
- Казвам, когато е слабоДори да е OpenAI или Google


