FixVibe
Covered by FixVibehigh

API Утечка ключей: риски и способы устранения в современных веб-приложениях

Жестко запрограммированные секреты в коде внешнего интерфейса или в истории репозитория позволяют злоумышленникам выдавать себя за службы, получать доступ к частным данным и нести расходы. В этой статье рассматриваются риски утечки секрета и необходимые шаги по очистке и предотвращению.

CWE-798

Влияние

Утечка секретов, таких как ключи, токены или учетные данные API, может привести к несанкционированному доступу к конфиденциальным данным, выдаче себя за службу и значительным финансовым потерям из-за злоупотребления ресурсами [S1]. Как только секрет будет помещен в общедоступный репозиторий или включен во внешнее приложение, его следует считать скомпрометированным [S1].

Основная причина

Основная причина — включение конфиденциальных учетных данных непосредственно в исходный код или файлы конфигурации, которые впоследствии передаются в систему контроля версий или передаются клиенту [S1]. Разработчики часто жестко закодируют ключи для удобства во время разработки или случайно включают файлы .env в свои коммиты [S1].

Конкретные исправления

  • Ротация скомпрометированных секретов. В случае утечки секрета его необходимо немедленно отозвать и заменить. Простого удаления секрета из текущей версии кода недостаточно, поскольку он остается в истории контроля версий [S1][S2].
  • Используйте переменные среды. Храните секреты в переменных среды, а не жестко запрограммируйте их. Убедитесь, что файлы .env добавлены в .gitignore, чтобы предотвратить случайную фиксацию [S1].
  • Внедрите управление секретами. Используйте специальные инструменты управления секретами или службы хранилища для внедрения учетных данных в среду приложения во время выполнения [S1].
  • Очистить историю репозитория. Если секрет был передан в Git, используйте такие инструменты, как git-filter-repo или BFG Repo-Cleaner, чтобы навсегда удалить конфиденциальные данные из всех веток и тегов в истории репозитория [S2].

Как FixVibe проверяет это

FixVibe теперь включает это в сканирование в реальном времени. Пассивный secrets.js-bundle-sweep загружает пакеты JavaScript того же происхождения и сопоставляет известные ключи, токены и шаблоны учетных данных API с помощью энтропийных и заполнителей. Сопутствующие интерактивные проверки проверяют хранилище браузера, исходные карты, клиентские пакеты аутентификации и BaaS, а также исходные шаблоны репозитория GitHub. Переписывание истории Git остается шагом исправления; Прямая трансляция FixVibe посвящена секретам, присутствующим в отправленных ресурсах, хранилище браузера и текущем содержимом репозитория.