
Скрипты оболочки для клонирования и зеркалирования Git-репозиториев, вычисления дельт и запуска gitleaks для обнаружения секретов, скрытых в удалённых или сброшенных коммитах.
Этот репозиторий содержит shell-скрипты, которые можно использовать для загрузки и анализа различий между клонированными и зеркальными Git-репозиториями. Для получения дополнительной информации о базовой особенности поведения Git посетите нашу запись в блоге.
Эти скрипты клонируют копию указанного Git-репозитория как в режиме обычного клонирования, так и в режиме зеркала ("--mirror"). Затем они создают разницу (дельту) между ними, пытаясь найти части репозитория, доступные только в зеркальном режиме. Наконец, запускается gitleaks для проверки наличия секретов в дельте, а "git log" используется для создания единого файла, содержащего тела коммитов, чтобы их можно было легче проанализировать.
Обратите внимание, что поскольку этот скрипт создает три копии репозитория, он может потреблять много дискового пространства.
Вы можете протестировать эти инструменты на следующих двух примерах репозиториев:
Вам понадобятся Git, Python 3, GitLeaks и git-filter-repo. Вот пример установки на MacOS:
brew install git python3 gitleaks git-filter-repo
Вы можете запустить это против репозитория следующим образом:
git clone https://github.com/nightwatchcybersecurity/gitbleed_tools.git
cd gitbleed_tools
./gitbleed.sh https://github.com/nightwatchcybersecurity/gitbleed_tools.git example
Также есть несколько вспомогательных скриптов для сканирования репозиториев GitHub и GitLab:
./gitbleed_gh.sh nightwatchcybersecurity/gitbleed_tools
./gitbleed_gl.sh nwcs/junit_ui_bug
Это создаст папку example, содержащую три подпапки:
Также создаются три файла:
Пожалуйста, используйте GitHub issue tracker для сообщения о проблемах или предложения функций: https://github.com/nightwatchcybersecurity/gitbleed_tools
Вы также можете отправить email на research /at/ nightwatchcybersecurity [dot] com