Orange shield blocking golden keys from leaking out of code

Спри 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 минути

  1. Инсталирай Gitleaks. На Mac: brew install gitleaks. С Docker: docker pull ghcr.io/gitleaks/gitleaks:latest. На други системи свали готов файл от страницата с версиите или го компилирай с Go чрез make build.
  2. Сканирай каквото вече имаш. Влез в проекта и пусни gitleaks git -v. Чете цялата ти история в git и показва всяка тайна, която намери. Направи го първо. Може да се изненадаш.
  3. Сканирай файлове без история. Пусни gitleaks dir -v path/to/folder за бърза проверка на папка, например такава, която агент току-що е генерирал.
  4. Провери откъс. Подай го през канал: cat some_file | gitleaks -v stdin.
  5. Блокирай лошите комити. Инсталирай pre-commit framework и добави файл .pre-commit-config.yaml в корена на репото, с репото на Gitleaks и hook-а gitleaks. Примерът в README фиксира версия v8.24.2, която може да е стара, затова пусни pre-commit autoupdate, за да вземеш последната.
  6. Включи го. Пусни pre-commit install. Оттук нататък всеки комит минава първо през Gitleaks. Ако намери тайна, комитът спира.
  7. Добави свои правила (по желание). Gitleaks чете конфигурация в този ред: флаг --config, променлива GITLEAKS_CONFIG, променлива GITLEAKS_CONFIG_TOML, после файл .gitleaks.toml в целевата папка. За да запазиш стандартните правила и да добавиш твои, сложи useDefault = true под [extend].
  8. Пусни го в 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

II
За автора
Ivan Ivanov
Основател наAI Rush XGiantPartsSupreme CommerceHawkValue

Ако не ти спестява време или пари, няма да го видиш тук

  • Факти, не шумВсяка цена и цифра е проверена в официалния източник
  • Винаги реалната ценаВиждаш колко струва, преди да кликнеш
  • Казвам, когато е слабоДори да е OpenAI или Google
Всички статии от Иван →
СподелиFacebookXLinkedInWhatsAppTelegram

Подобни статии