FixVibe
Covered by FixVibehigh

API Изтичане на ключ: Рискове и коригиране в съвременните уеб приложения

Твърдо кодираните тайни в кода на интерфейса или хронологията на хранилището позволяват на атакуващите да се представят за услуги, да имат достъп до лични данни и да поемат разходи. Тази статия обхваща рисковете от изтичане на секрети и необходимите стъпки за почистване и предотвратяване.

CWE-798

Въздействие

Изтичането на тайни като API ключове, токени или идентификационни данни може да доведе до неоторизиран достъп до чувствителни данни, представяне на услугата и значителни финансови загуби поради злоупотреба с ресурси [S1]. След като дадена тайна бъде ангажирана в публично хранилище или пакетирана в приложение за интерфейс, тя трябва да се счита за компрометирана [S1].

Първопричина

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

Конкретни поправки

  • Завъртане на компрометирани тайни: Ако е изтекла тайна, тя трябва да бъде отменена и заменена незабавно. Простото премахване на тайната от текущата версия на кода е недостатъчно, защото тя остава в хронологията на контрола на версиите [S1][S2].
  • Използвайте променливи на средата: Съхранявайте тайните в променливите на средата, вместо да ги кодирате твърдо. Уверете се, че файловете .env са добавени към .gitignore, за да предотвратите случайно ангажиране на [S1].
  • Внедрете Secret Management: Използвайте специални инструменти за управление на тайни или услуги за трезори, за да инжектирате идентификационни данни в средата на приложението по време на изпълнение [S1].
  • Изчистване на хронологията на хранилището: Ако тайна е била ангажирана към Git, използвайте инструменти като git-filter-repo или BFG Repo-Cleaner, за да премахнете за постоянно чувствителните данни от всички клонове и тагове в хронологията на хранилището [S2].

Как FixVibe го тества

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