Ответ вслух Middle Безопасность бэкенда обновлено

Секрет попал в git: что делать

Вопрос

Ты обнаружил, что ключ платёжного API закоммичен в публичный репозиторий. Твои действия?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Первым делом отзываю ключ у провайдера и выпускаю новый. Считаю, что старый уже скомпрометирован: публичные репозитории сканируют боты за минуты, и удаление коммита этого не отменит.

Что должно прозвучать в ответе

  • Сразу отозвать и перевыпустить ключ (ротация): это главное

  • Удалить из истории недостаточно: копии уже могли забрать

  • Проверить логи провайдера на подозрительное использование

  • Положить новый ключ в менеджер секретов или env, не в репозиторий

  • Чистка истории (git filter-repo) как вторичная мера

  • Профилактика: secret scanning, pre-commit хук, .env в .gitignore

Что могут спросить следом

  • Почему недостаточно сделать новый коммит, удаляющий ключ?
  • Как автоматически ловить секреты до коммита?

Разбор

Первым делом отзываю ключ у провайдера и выпускаю новый. Считаю, что старый уже скомпрометирован: публичные репозитории сканируют боты за минуты, и удаление коммита этого не отменит. Новый коммит, удаляющий ключ, тем более ничего не даёт: ключ остаётся в истории.

Дальше проверяю журналы провайдера: были ли запросы с этим ключом не от нас. Новый ключ кладу в переменные окружения сервера или менеджер секретов, в коде остаётся только чтение из окружения.

Потом, если нужно, чищу историю через git filter-repo и согласую с командой форс-пуш, но это уже вторично. И добавляю профилактику: .env в .gitignore, secret scanning в репозитории и pre-commit хук вроде gitleaks, чтобы такое не повторилось.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме