truffleHog
Описание truffleHog
Ищет по репозиториям git пароли, ключи и другие чувствительные данные. Для идентификации секретов ищет строки с высокой энтропией, анализирует историю изменений кода и ветви.
Этот инструмент эффективен для поиска случайно сохранённых в исходном коде паролей и ключей, даже если впоследствии они были убраны.
Этот модуль пройдёт по всей истории изменений (комитов) каждой ветви и проверит каждое различие (diff) от каждого изменения кода и будет искать в них пароли и ключи. Поиск выполняется как по регулярным выражениям, так и с расчётом энтропии. Для проверок энтропии, truffleHog будет вычислять энтропию Шэннона (Shannon) для набора символов base64 и набора шестнадцатеричных символов для каждого фрагмента текста более длиной более 20 символов, состоящего из этих наборов символов в каждом diff (различии текста). Если на любой точке выявлена строка с высокой энтропией и длиной более 20 символов, то она будет выведена на экран.
Домашняя страница: https://github.com/dxa4481/truffleHog
Автор: Dylan Ayrey
Лицензия: GPLv2
Справка по truffleHog
Использование:
trufflehog [-h] [--json] [--regex] [--rules ПРАВИЛА] [--entropy DO_ENTROPY] [--since_commit SINCE_COMMIT] [--max_depth МАКСИМАЛЬНАЯ_ГЛУБИНА] [--branch ВЕТВЬ] [-i INCLUDE_PATHS_FILE] [-x EXCLUDE_PATHS_FILE] [--repo_path REPO_PATH] [--cleanup] git_url
Опции:
Позиционные аргументы: git_url URL для поиска паролей и ключей Опциональные аргументы: -h, --help показать справку и выйти --json Вывод в JSON --regex Включить проверки регулярными выражениями с высоким сигналом --rules ПРАВИЛА Игнорировать регулярные выражения по умолчанию и списки исходников из файла json --entropy DO_ENTROPY Включить проверки энтропии --since_commit SINCE_COMMIT Хеш комита с которого начать сканирование --max_depth МАКСИМАЛЬНАЯ_ГЛУБИНА Максимальная глубина комитов для аналилза истории при поиске паролей и ключей --branch ВЕТВЬ Имя ветви для сканирования -i INCLUDE_PATHS_FILE, --include_paths INCLUDE_PATHS_FILE Файл с регулярными выражениями (одно на строку), по крайней одно из которых должно совпадать с путём объекта Git чтобы он был просканирован; строки, начинающиеся с "#" трактуются как комментарии и игнорируются. Если пустой или не указан (по умолчанию), все пути объектов Git включены если не исключены опцией --exclude_paths. -x EXCLUDE_PATHS_FILE, --exclude_paths EXCLUDE_PATHS_FILE Файл с регулярными выражениями (одно на строку), ни одно из которых не должно совпадать с путём объекта Git чтобы он был просканирован; строки, начинающиеся с "#" трактуются как комментарии и игнорируются. Если пустой или не указан (по умолчанию), никакие пути объектов Git не исключаются если они не исключены опцией --include_paths. --repo_path REPO_PATH Путь до клонированного репозитория. Если указана, git_url не используется --cleanup Очистить все временные файлы результатов
Руководство по truffleHog
Страница man отсутствует.
Настройка
Можно создать файл с собственными регулярными выражениями и для добавления их к правилам сканирования, их можно указать опцией --rules /путь/до/правил. Это должен быть файл json следующего формата:
{ "RSA private key": "-----BEGIN EC PRIVATE KEY-----" }
Имеется большой простор для тонкой настройки: можно добавить такие вещи как перечисление субдоменов, выявление s3 bucket и другие полезные регулярные выражения.
Базовые правила truffleHog берутся из исходного файла https://github.com/dxa4481/truffleHogRegexes/blob/master/truffleHogRegexes/regexes.json
Примеры запуска truffleHog
Найти пароли и ключи в репозитории https://github.com/Mi-Al/WiFi-autopwner:
trufflehog https://github.com/Mi-Al/WiFi-autopwner
Раньше ruffleHog функционировал на работе проверок энтропии строк в git diff. Эта функциональность ещё существует, но были добавлены проверки по высоко сигнальным регулярным выражениям (high signal regex). Если вы хотите использовать только поиск по регулярным выражениям, то для этого случая добавлена возможность подавления проверок энтропии.
truffleHog --regex --entropy=False https://github.com/dxa4481/truffleHog.git
Или:
truffleHog file:///user/dxa4481/codeprojects/truffleHog/
С опциями --include_paths и --exclude_paths, также возможно ограничить сканирование поднабором объектов в истории Git перечислив в файле регулярные выражения (одно на строку), которые должны совпадать с путями целевых объектов. Для иллюстрации, взгляните на файлы включения и исключения ниже:
Содержимое файла include-patterns.txt:
src/ # lines beginning with "#" are treated as comments and are ignored gradle/ # regexes must match the entire path, but can use python's regex syntax for # case-insensitive matching and other advanced options (?i).*\.(properties|conf|ini|txt|y(a)?ml)$ (.*/)?id_[rd]sa$
Содержимое файла exclude-patterns.txt:
(.*/)?\.classpath$ .*\.jmx$ (.*/)?test/(.*/)?resources/
Эти файлы фильтров можно задействовать следующим образом:
trufflehog --include_paths include-patterns.txt --exclude_paths exclude-patterns.txt file://путь/до/моего/репозитория.git
С этими фильтрами, проблемы, найденные в файлах в корневом уровне директории src, будут выведены на экран, кроме как если они содержат расширения .classpath или .jmx или они найдены в директории src/test/dev/resources/.
Эти возможности помогают сократить шум, и задействовать этот инструмент в конвейере разработки.
Установка truffleHog
Установка в Kali Linux
sudo pip3 install truffleHog
Установка в BlackArch
Программа предустановлена в BlackArch.
sudo pacman -S trufflehog
Информация об установке в другие операционные системы будет добавлена позже.
Скриншоты truffleHog
Инструкции по truffleHog
Ссылки на инструкции будут добавлены позже.
Comments are Closed