Gitleaks детектор утечек секретов в вашем коде
Когда последний раз вы проверяли репозиторий на утечки?
Представьте: вы только что запушили обновление в репозиторий, и через пару часов получаете уведомление от GitHub о скомпрометированном токене. Знакомая ситуация? Именно такие случаи предотвращает Gitleaks — инструмент для поиска секретов в кодовой базе.
Что такое Gitleaks?
Gitleaks — это open-source инструмент на Go, который сканирует:
- Git-репозитории (локальные и удалённые)
- Отдельные файлы и директории
- Потоки данных через stdin
Основная задача — находить случайно закоммиченные секреты: пароли, API-ключи, токены доступа и другие конфиденциальные данные.
Ключевые возможности
1. Гибкие правила обнаружения
Gitleaks использует комбинацию:
- Регулярных выражений
- Проверки энтропии (для случайных строк)
- Ключевых слов в контексте
Пример обнаружения Sidekiq-секрета:
Finding: "export BUNDLE_ENTERPRISE__CONTRIBSYS__COM=cafebabe:deadbeef",
Secret: cafebabe:deadbeef
RuleID: sidekiq-secret
2. Множество вариантов интеграции
Вы можете использовать Gitleaks как:
- CLI-утилиту
- GitHub Action
- Pre-commit хук
- Docker-контейнер
Пример для GitHub Actions:
name: gitleaks
on: [pull_request, push]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: gitleaks/gitleaks-action@v2
3. Гибкая конфигурация
Можно:
- Использовать готовые правила
- Создавать собственные
- Настраивать исключения
Пример правила в TOML:
[[rules]]
id = "custom-api-key"
description = "Custom API Key"
regex = '''api[-_ ]?key[ =:"'\t]+([a-zA-Z0-9]{32})'''
4. Поддержка архивов и кодировок
Gitleaks умеет:
- Распаковывать и сканировать архивы (ZIP, tar и другие)
- Декодировать base64, hex и percent-encoded строки
Практическое применение
- В CI/CD пайплайнах — автоматическая проверка перед мерджем PR
- При миграции старых репозиториев — поиск исторических утечек
- В pre-commit хуках — предотвращение коммитов с секретами
- Для аудита безопасности — регулярные проверки всей кодовой базы
Как начать использовать
Установка через Homebrew:
brew install gitleaks
Быстрая проверка репозитория:
gitleaks detect --source . --verbose
Gitleaks — must-have инструмент для:
- Разработчиков, работающих с конфиденциальными данными
- DevOps-инженеров, настраивающих CI/CD
- Команд, заботящихся о безопасности
Проект активно развивается, имеет 22.4k звёзд на GitHub и поддерживается сообществом. Попробуйте — возможно, он найдёт то, что вы не хотели бы показывать публично.
P.S. В моей практике Gitleaks как-то нашёл старый тестовый ключ AWS в репозитории, который «никто не помнил». А у вас были подобные случаи?
