Сканирование на наличие секретов
Для использования данного функционала платформа должна иметь активный модуль CodeScoring.Secrets.
Сканирование на наличие секретов выполняется с помощью следующих команд:
johnny secrets gitleaks dir— сканирование файлов в указанной директории;johnny secrets gitleaks git— сканирование истории локального git-репозитория;johnny secrets trufflehog dir— сканирование файлов в указанной директории с помощью Trufflehog;johnny secrets trufflehog git— сканирование истории локального git-репозитория с помощью Trufflehog.
Важно: агент работает только с версией Gitleaks 8.19.0 и выше, и с версией Trufflehog 3.93.8 и выше.
При запуске агент:
- Анализирует файлы в указанной директории или историю коммитов репозитория на наличие секретов (пароли, токены, ключи доступа и т. д.).
- исключает файлы и каталоги, указанные в
.gitleaksignore; - игнорирует секреты, зафиксированные в отчете Gitleaks, если задан
baseline-path.
- Формирует результаты по найденным секретами, при необходимости сохраняет их на платформе CodeScoring и создает отчет в формате GitLab.
Сканирование git-репозитория
Режим git позволяет сканировать историю коммитов локального git-репозитория. В отличие от режима dir, который анализирует текущее состояние файлов, режим git проверяет секреты во всех коммитах репозитория или в ограниченном диапазоне.
Пример запуска команды для Gitleaks
Пример запуска команды для Trufflehog
Параметры git-режима
Команды johnny secrets gitleaks git и johnny secrets trufflehog git поддерживают следующие дополнительные параметры:
--git-ref– ветка, тег или коммит git, которые будут сканироваться. Если не задан, сканируются все ссылки. Примеры:main,v1.0.0,a1b2c3d;--git-depth– ограничение сканирования заданным количеством коммитов от вершины истории. Значение0означает отсутствие ограничения.
Пример конфига для Gitleaks
Пример конфига, который расширяет стандартную конфигурацию, добавляя новое правило со своим регулярным выражением
Пример запуска команды
Данная команда запускает сканирование секретов в текущей директории, игнорируя файлы, перечисленные в .gitleaksignore, отправляет результаты в платформу CodeScoring, и формирует отчет в формате GitLab, записывая его в secrets-report.json.
Параметры команды
Команды johnny secrets gitleaks dir, johnny secrets gitleaks git, johnny secrets trufflehog dir и johnny secrets trufflehog git имеют следующие уникальные параметры:
Параметры запуска поиска секретов
--commit– хэш коммита, который будет привязан к найденным секретам при сохранении результатов. Используется только для командdir, если инструмент не определяет коммит самостоятельно (например:--commit a1b2c3d);--gl-secrets-report– включение формирования отчета о найденных секретах в формате GitLab;--gl-secrets-report-filename– имя выходного файла для отчета в формате GitLab (по умолчаниюgl-secrets-report.json).
Параметры Gitleaks
--gitleaks-path– путь к исполняемому файлу Gitleaks, который будет использоваться при сканировании. Если не задан, будет выполняться вызов системной командыgitleaks;--gitleaks-config- путь к конфигурационному файлу Gitleaks;--baseline-path– путь к файлу отчета Gitleaks, который используется в качестве базовой линии для игнорирования ранее найденных секретов;--enable-rule– список ID правил, которые будут включены при сканировании;--gitleaks-ignore-path– путь к файлу.gitleaksignoreили директории, содержащей его, для добавления fingerprint найденных ранее секретов;--ignore-gitleaks-allow– игнорирование комментариевgitleaks:allow, которые помечают строки как безопасные для игнорирования;--log-level– уровень логирования, который контролирует подробность выводимых сообщений. Возможные значения:trace,debug,info,warn,error,fatal;--max-decode-depth– максимальная глубина рекурсивного декодирования при поиске секретов. Значение0отключает декодирование;--max-target-megabytes– максимальный размер анализируемых файлов в мегабайтах. Файлы, превышающие этот размер, будут пропущены;--no-banner– отключение баннера Gitleaks, который отображается при запуске инструмента;--no-color– отключение цветного вывода для подробного режима (verbose);--redact– маскирование найденных секретов в логах. Можно задать промежуточные значения (например,20для скрытия 20% секрета);--verbose– включение подробного (verbose) вывода, предоставляющего больше информации о процессе сканирования.
Параметры Trufflehog
--trufflehog-path– путь к исполняемому файлу Trufflehog, который будет использоваться при сканировании. Если не задан, будет выполняться вызов системной командыtrufflehog;--trufflehog-config– путь к конфигурационному файлу Trufflehog;--concurrency– количество параллельных воркеров при сканировании;--no-verification– отключить верификацию найденных секретов;--only-verified– выводить только верифицированные секреты;--include-paths– путь к файлу с regex-шаблонами (по одному на строку) для включения файлов в сканирование;--exclude-paths– путь к файлу с regex-шаблонами (по одному на строку) для исключения файлов из сканирования;--trufflehog-log-level– уровень логирования Trufflehog. Возможные значения:debug,info,warn,error.
Для сводки доступных параметров команды и инструкции по использованию можно вызвать команду с флагом -h, --help.
