Удаление секретов из кода и повторное сохранение изменений в репозитории не исправит ситуацию, потому что история изменений на GitHub может сохранять эти данные. Чаще всего именно это
становится причиной утечек.Можно удалить секретный ключ и другие данные из репозитория, перезаписать его историю и удалить файл из предыдущих коммитов. Но очищать историю версий опасно — если приложение начнет сбоить, найти способ откатиться к предыдущей версии будет тяжело.
Отсутствие регулярного обновления ключейСрок хранения ключей, токенов и любых других секретов должен быть минимальным. После истечения срока хранения секрет должен автоматически удаляться, а вместо него создаваться новый. Если секреты не меняются или это происходит редко, есть риск, что их могут использовать мошенники.
Недостаточная автоматизация управления секретамиУправлять секретами вручную сложно — разработчики могут забыть удалить устаревший токен, случайно оставить ключ в коде или неправильно настроить доступ.
При работе с микросервисами, где секреты часто создаются и передаются между контейнерами, отсутствие автоматизации приводит к хаосу, так как они сначала фокусируются на функциональности, а не безопасности. Эти проблемы часто встречаются при использовании Docker, Kubernetes, криптовалют или нейросетей.
Еще один потенциальный канал для утечек — переписки в мессенджерах. Во многих случаях разработчикам проще бросить в чат секрет или публичную ссылку на него, чем переслать его безопасным образом.
Избыточные права доступаОдна из самых распространенных проблем — то, что секреты открывают доступ ко всей системе, а не к конкретным компонентам или сервисам. Например, используемый для доступа к API токен с правами администратора может быть скомпрометирован и использован для выполнения любых других операций. Компрометация токенов разработчиков уже приводила к тому, что злоумышленники загружали в PyPi вредоносные версии популярных пакетов, подменяя ими оригинальные.