Gitleaks — это инструмент с открытым исходным кодом, предназначенный для предотвращения размещения конфиденциальных данных в репозиториях Git. Он работает путем сканирования Git‑репозиториев на наличие потенциальных секретов, таких как пароли, API‑ключи и другая конфиденциальная информация, которая не должна быть публично раскрыта.
Инструмент хорошо настраивается и поддерживает широкий спектр форматов файлов, включая текстовые, двоичные и даже зашифрованные файлы. Gitleaks можно использовать как инструмент командной строки или как часть конвейера CI/CD, чтобы помочь отловить конфиденциальные данные до их размещения в репозитории.
Gitleaks использует регулярные выражения для идентификации потенциально конфиденциальных данных, а его правила можно легко настроить для соответствия конкретным интересующим шаблонам. Он также поддерживает маскировку определенных шаблонов или полное игнорирование определенных файлов или каталогов.
Gitleaks может быть полезен всем, кто работает с Git‑репозиториями, особенно тем, кто имеет дело с конфиденциальными данными. Это эффективный способ предотвратить случайные утечки и обеспечить защиту конфиденциальной информации.
Вот шпаргалка по использованию Gitleaks:
Установите Gitleaks: Вы можете установить Gitleaks на свою систему с помощью менеджера пакетов для вашей операционной системы или загрузив бинарный релиз со страницы Gitleaks на GitHub.
Настройте Gitleaks: Вы можете настроить Gitleaks, создав конфигурационный файл с правилами, которые вы хотите использовать. По умолчанию Gitleaks поставляется с набором предопределенных правил, предназначенных для обнаружения распространенных типов конфиденциальной информации, таких как пароли, API-ключи и SSH-ключи.
Сканирование репозиториев: Вы можете сканировать репозитории с помощью Gitleaks, выполнив команду gitleaks --repo=<путь к репозиторию> из командной строки. Вы также можете указать дополнительные параметры, такие как количество используемых потоков и формат вывода.
Интеграция с конвейерами CI/CD: Вы можете интегрировать Gitleaks в ваш CI/CD конвейер для автоматического сканирования репозиториев на предмет потенциальных утечек. Для этого нужно добавить в конфигурационный файл конвейера шаг Gitleaks и указать хранилище для сканирования.
Настроить правила: Вы можете настроить правила Gitleaks так, чтобы они соответствовали определенным интересующим вас шаблонам. Это можно сделать путем редактирования конфигурационного файла и добавления или изменения регулярных выражений.
Маскировка конфиденциальной информации: Вы можете настроить Gitleaks на маскировку определенных шаблонов конфиденциальной информации, такой как пароли или ключи API, в своих выводах. Это можно сделать, указав опцию --redact при запуске Gitleaks.
Игнорировать файлы или каталоги: Вы можете настроить Gitleaks на игнорирование определенных файлов или каталогов при сканировании репозиториев. Это можно сделать, добавив в конфигурационный файл правила, которые исключают файлы или каталоги на основе их имени или расположения.
Ниже приведены некоторые общие примеры команд для Gitleaks:
Сканирование одного хранилища:
gitleaks --repo=/path/to/repository
Эта команда просканирует указанный репозиторий на предмет потенциальной утечки конфиденциальной информации.
Сканирование нескольких хранилищ:
gitleaks --config=config.toml
Эта команда просканирует все хранилища, перечисленные в конфигурационном файле config.toml.
[[repos]]
repo = "/path/to/repo1"
branches = ["master", "develop"]
[[repos.rules]]
regex = "password"
max_severity = "high"
[[repos.rules]]
regex = "AWS_SECRET_ACCESS_KEY"
max_severity = "medium"
[[repos]]
repo = "/path/to/repo2"
branches = ["main"]
[[repos.rules]]
regex = "api_key"
max_severity = "high"
В этом примере перечислены два репозитория, каждый из которых имеет свой собственный набор правил. Первый репозиторий расположен по адресу /path/to/repo1 и имеет две ветви: master и develop. В этом репозитории заданы два правила: одно для обнаружения слова "password" с максимальной степенью серьезности "high", а другое для обнаружения строки "AWS_SECRET_ACCESS_KEY" с максимальной степенью серьезности "medium".
Второй репозиторий расположен по адресу /path/to/repo2 и имеет только одну указанную ветку: main. Этот репозиторий имеет одно правило для обнаружения строки "api_key" с максимальной степенью серьезности "высокая".
Укажите формат вывода:
gitleaks --repo=/path/to/repository --format=json
Эта команда выведет результаты сканирования в формате JSON.
Сокращение конфиденциальной информации:
gitleaks --repo=/path/to/repository --redact
Эта команда удалит конфиденциальную информацию, такую как пароли и ключи API, из результатов сканирования.
Игнорировать определенные файлы или каталоги:
gitleaks --repo=/path/to/repository --exclude-path=path/to/excluded/directory
Эта команда будет игнорировать указанный каталог при сканировании хранилища.
Укажите количество потоков:
gitleaks --repo=/path/to/repository --threads=4
Эта команда будет использовать четыре потока для сканирования репозитория, что поможет ускорить процесс сканирования.
Сканирование определенной ветки:
gitleaks --repo=/path/to/repository --branch=my-branch
Эта команда будет сканировать только указанную ветвь репозитория.
Это лишь несколько примеров из множества опций и команд, доступных в Gitleaks. Для получения дополнительной информации вы можете ознакомиться с документацией Gitleaks или выполнить команду gitleaks --help из командной строки.
Заключение
Gitleaks — это мощный инструмент с открытым исходным кодом, предназначенный для предотвращения размещения конфиденциальных данных в репозиториях Git. Он работает путем сканирования Git‑репозиториев на наличие потенциальных секретов, таких как пароли, API‑ключи и другая конфиденциальная информация, которая не должна быть публично раскрыта. Инструмент хорошо настраивается, поддерживает широкий спектр форматов файлов и может использоваться как инструмент командной строки или как часть конвейера CI/CD, чтобы помочь отловить конфиденциальные данные до их размещения в репозитории. Следуя примерам команд и советам, приведенным в шпаргалке, вы сможете эффективно использовать Gitleaks для сканирования и защиты ваших репозиториев от потенциальных утечек конфиденциальной информации.
Оригинал статьи - здесь.
Поддержите автора хлопками на Medium.
Перевод статьи был выполнен проектом перевод энтузиаста:
???? @Ent_TranslateIB - Телеграмм канал с тематикой информационной безопасности
???? @Ent_Translate - Инстаграм проекта
Sadok
Что-то старенькое у вас.
gitleaks --repo уже нет