Секрет утёк в git
Вопрос
Разработчик закоммитил в публичный репозиторий манифест Secret с паролем от продовой базы. Что делаешь?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Считать секрет скомпрометированным: сразу сменить пароль в базе и в хранилище, перезапустить потребителей
Проверить логи доступа к базе на подозрительные подключения за период утечки
Удалить секрет из истории git (filter-repo) и попросить хостинг очистить кеши, но это вторично
Найти причину: почему секрет оказался в манифесте, а не во внешнем хранилище
Защиты на будущее: pre-commit и CI сканеры секретов (gitleaks), push protection, External Secrets
Разбор инцидента без поиска виноватых и сообщение по процессу безопасности
Что могут спросить следом
- Почему недостаточно удалить коммит?
- Как ротировать пароль без простоя?
Разбор
Первое правило: утёкший секрет скомпрометирован, даже если коммит удалили через минуту, потому что публичные репозитории сканируют боты. Поэтому сразу меняю пароль: создаю новый в базе, обновляю значение в хранилище секретов, перезапускаю приложения, затем отзываю старый. Если у базы было открытое подключение снаружи, смотрю журнал подключений за период утечки. Только после ротации чищу историю git через filter-repo и прошу хостинг сбросить кеши, но это гигиена, а не защита. Дальше ищу причину: почему пароль вообще оказался в манифесте. Закрываю на будущее: сканер секретов в pre-commit и в CI, push protection на хостинге, переход на External Secrets или Sealed Secrets, чтобы реальные значения физически не попадали в репозиторий. И провожу разбор без поиска виноватых, с сообщением ответственным за безопасность по принятому процессу.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.