Въздействие
Изтичането на тайни като 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 се фокусира върху тайните, присъстващи в изпратените активи, хранилището на браузъра и текущото репо съдържание.
