Поиск секретов в скрытых Git-коммитах

Искать секреты в исходном коде мы уже умеем. Но в git-репозиториях остались интересные места, до которых стандартными способами не доберешься. Речь о скрытых коммитах - информации об измененных файлах в репозитории, которая была удалена и не отображается в истории проекта.

Когда разработчик вносит изменения (коммит) в репозиторий, а затем по какой-то причине хочет отменить эти изменения, он выполняет команды:

git reset --hard HEAD^ git push origin -f

Первая строка отменяет последний коммит и все последние изменения в файлах целевого репозитория, а вторая строка применяет все изменения в этом репозитории. То есть, данные команды удаляют последние внесенные изменения.

Тут появляется важная особенность, которую отметили исследователи: если коммит недоступен в истории изменений, то это не означает, что его нельзя восстановить. И тогда все коммиты, которые содержали секреты и затем были удалены разработчиком, можно восстановить и извлечь из них ценную информацию.

Исследователи опубликовали инструмент для извлечения скрытых коммитов публичного GitHub-репозитория и их анализа. Для репозиториев GitLab эта техника тоже работает, и также есть готовый инструмент. Security-чемпионы и специалисты по безопасности приложений берут этот подход в работу.

@makrushin

Поиск секретов в скрытых Git-коммитах | Сетка — социальная сеть от hh.ru