Pre-commit сканеры безопасности: настройка хуков

Мы просто и по делу рассказываем про ИИ-инструменты для работы: сравнения, пошаговые гайды, бесплатные альтернативы и реальные сценарии применения. Помогаем выбрать между ChatGPT, Gemini, Claude, локальными моделями и десятками узкоспециализированных сервисов — от дизайна и HR до аналитики и SEO. Меньше хайпа, больше практики и экономии времени каждый день.

pre-commitgitleakstrivy

Pre-commit хуки — это автоматические проверки, которые запускаются до коммита в Git. Для безопасности они особенно полезны: помогают не допустить в репозиторий секреты, уязвимые зависимости, небезопасные паттерны и даже ошибки IaC-конфигов. Это снижает риск утечки ключей, компрометации CI/CD и дорогостоящих исправлений после релиза.

Что обычно проверяют pre-commit сканеры

  • Секреты: API keys, токены, пароли, .env, приватные ключи
  • Зависимости: известные CVE в пакетах
  • Код: небезопасные функции, SQL-инъекции, использование eval, слабая криптография
  • IaC и Docker: ошибки в Terraform, Kubernetes-манифестах, Dockerfile
  • Git hygiene: большие файлы, временные артефакты, случайные бинарники

Популярные инструменты 🛠️

  • pre-commit — фреймворк для управления хуками
  • gitleaks / detect-secrets — поиск секретов
  • bandit — анализ Python-кода
  • trivy — сканирование зависимостей, контейнеров и IaC
  • checkov — проверка Terraform/Kubernetes/CloudFormation

Базовая настройка

  1. Установите pre-commit:

    pip install pre-commit
    
  2. Создайте .pre-commit-config.yaml:

    repos:
      - repo: https://github.com/gitleaks/gitleaks
        rev: v8.18.2
        hooks:
          - id: gitleaks
    
      - repo: https://github.com/pycqa/bandit
        rev: 1.7.9
        hooks:
          - id: bandit
            args: ["-r", "."]
    
      - repo: https://github.com/pre-commit/pre-commit-hooks
        rev: v4.6.0
        hooks:
          - id: check-yaml
          - id: end-of-file-fixer
          - id: detect-private-key
    
  3. Активируйте хуки:

    pre-commit install
    
  4. Прогоните вручную по всему проекту:

    pre-commit run --all-files
    

Практические рекомендации ⚙️

  • Начинайте с поиска секретов — это даёт самый быстрый эффект
  • Фиксируйте версии хуков, чтобы избежать неожиданных изменений
  • Уменьшайте false positive через baseline или исключения, но не отключайте проверки без причины
  • Дублируйте критичные проверки в CI/CD: локальный хук можно обойти
  • Добавьте инструкцию по установке в README, иначе часть команды не включит хуки
  • Проверяйте только изменённые файлы для скорости, а полный скан запускайте в CI

Частые ошибки

  • Ставить слишком много тяжёлых проверок — разработчики начнут их отключать 😬
  • Надеяться только на локальные хуки — без CI защита неполная
  • Игнорировать найденные секреты вместо их ротации
  • Не обновлять правила и версии сканеров

Итог

Pre-commit сканеры безопасности — это простой способ сдвинуть security “влево” и ловить проблемы до попадания в репозиторий. Минимальный набор — gitleaks + базовые pre-commit-hooks, а дальше можно расширять проверками кода, зависимостей и инфраструктуры 🚀

📌 В конце загляните в подборку каналов про IT — там собраны полезные источники по разработке, DevSecOps и инфраструктуре.

🗣 Подборки каналов
🧠 Каталог ботов и приложений
🗺 Навигация

Читайте так же