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 шаблони на клучеви, токени и акредитиви со ентропија и порти за место. Поврзаните проверки во живо го проверуваат складирањето на прелистувачот, мапите на изворот, пакетите на клиенти за auth и BaaS и обрасците на изворот на репо на GitHub. Препишувањето на историјата на Git останува чекор за санација; Покриеноста во живо на FixVibe се фокусира на тајните присутни во испорачаните средства, складирањето на прелистувачот и тековните репо содржини.