Инструмент для сбора информации, использующий GitHub Code Search API. GitHound ищет открытые ключи API и другую конфиденциальную информацию на GitHub с помощью поиска кода на GitHub, сопоставления шаблонов и поиска в истории коммитов. В отличие от других инструментов он ищет по всему GitHub, а не только в определённых репозиториях, у пользователей или в организациях.
Доступны результаты поиска в режиме реального времени с помощью GitHound Explore или с помощью флага --dashboard.
🚀 Установка
Скачайте последнюю версию со страницы релизов.
Распаковываем архив:
unzip git-hound_linux_amd64.zip
Добавляем API-токен github в config.yml
В качестве альтернативы можно использовать переменные окружения, которые будут переопределять значения в config.yml:
GITHOUND_GITHUB_TOKEN: Устанавливает токен доступа к API GitHub.
GITHOUND_INSERT_KEY: Устанавливает ключ вставки GitHoundExplore для функции --dashboard.
GitHound использует базу данных регулярных выражений для ключей API, поддерживаемую авторами Gitleaks.
📖 Принцип работы и использование
GitHound находит ключи API с помощью комбинации точных регулярных выражений для распространённых сервисов, таких как Slack и AWS, и универсального регулярного выражения API с учётом контекста. Это позволяет находить длинные строки, похожие на ключи API, которые окружены ключевыми словами, такими как Authorization и «API-Token». GitHound предполагает, что это ложные срабатывания, а затем проверяет их легитимность с помощью энтропии Шеннона, проверки слов из словаря, расчёта уникальности и обнаружения кодировки.
Далее он выводит результаты с высокой степенью достоверности. Для файлов, в которых кодируются секреты, он декодирует строки в формате base64 и ищет в закодированных строках ключи API.
echo "\"uberinternal.com\"" | githound --dig-files --dig-commitst --threads 100
--dig-files - Просматривает файлы репозитория, чтобы найти больше секретов;
--dig-commits - Просматривает историю коммитов, чтобы найти больше секретов.
