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 засяроджваецца на сакрэтах, якія прысутнічаюць у дастаўленых актывах, сховішчы браўзера і бягучым змесціве РЭПО.