Сканирование на наличие секретов¶
Важно
Для использования данного функционала платформа должна иметь активный модуль 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¶
johnny secrets gitleaks git /path/to/repo \
--gitleaks-path <path-to-gitleaks> \
--api_token <api_token> \
--api_url <api_url> \
--save-results \
--project <project-name> \
--git-ref main \
--git-depth 100
Пример запуска команды для Trufflehog¶
johnny secrets trufflehog git /path/to/repo \
--trufflehog-path <path-to-trufflehog> \
--api_token <api_token> \
--api_url <api_url> \
--save-results \
--project <project-name> \
--git-ref main \
--git-depth 100
Параметры git-режима¶
Команды johnny secrets gitleaks git и johnny secrets trufflehog git поддерживают следующие дополнительные параметры:
--git-ref– ветка, тег или коммит git, которые будут сканироваться. Если не задан, сканируются все ссылки. Примеры:main,v1.0.0,a1b2c3d;--git-depth– ограничение сканирования заданным количеством коммитов от вершины истории. Значение0означает отсутствие ограничения.
Пример конфига для Gitleaks¶
Пример конфига, который расширяет стандартную конфигурацию, добавляя новое правило со своим регулярным выражением
title = “Custom gitleaks config”
[extend]
useDefault = true
[[rules]]
id = “custom-generic-password”
description = “Detected a Generic password”
regex = ‘’‘passw(?:or)d.+’‘’
entropy = 1
Пример запуска команды¶
johnny secrets gitleaks dir . \
--gitleaks-path <path-to-gitleaks> \
--gitleaks-config <path-to-gitleaks-config> \
--api_token <api_token> \
--api_url <api_url> \
--save-results \
--create-project \
--project <project-name> \
--gitleaks-ignore-path .gitleaksignore \
--gl-secrets-report \
--gl-secrets-report-filename secrets-report.json
Данная команда запускает сканирование секретов в текущей директории, игнорируя файлы, перечисленные в .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.