FixVibe
Covered by FixVibehigh

API Wyciek klucza: ryzyko i środki zaradcze w nowoczesnych aplikacjach internetowych

Zakodowane na stałe sekrety w kodzie frontendu lub historii repozytorium umożliwiają atakującym podszywanie się pod usługi, uzyskiwanie dostępu do prywatnych danych i ponoszenie kosztów. W tym artykule omówiono ryzyko tajnego wycieku oraz niezbędne kroki w celu oczyszczenia i zapobiegania.

CWE-798

Wpływ

Wyciek sekretów, takich jak klucze, tokeny lub poświadczenia API, może prowadzić do nieautoryzowanego dostępu do wrażliwych danych, podszywania się pod usługi i znacznych strat finansowych w wyniku nadużycia zasobów [S1]. Gdy sekret zostanie przekazany do publicznego repozytorium lub dołączony do aplikacji frontendowej, należy go uznać za przejęty [S1].

Główna przyczyna

Główną przyczyną jest włączenie poufnych danych uwierzytelniających bezpośrednio do kodu źródłowego lub plików konfiguracyjnych, które są następnie przekazywane do kontroli wersji lub udostępniane klientowi [S1]. Programiści często kodują klucze na stałe dla wygody podczas programowania lub przypadkowo dołączają pliki .env do swoich zatwierdzeń [S1].

Poprawki betonu

  • Zmieniaj naruszone tajemnice: Jeśli tajemnica wycieknie, należy ją natychmiast unieważnić i zastąpić nową. Samo usunięcie sekretu z bieżącej wersji kodu jest niewystarczające, ponieważ pozostaje on w historii kontroli wersji [S1][S2].
  • Używaj zmiennych środowiskowych: Przechowuj sekrety w zmiennych środowiskowych, zamiast je kodować na stałe. Upewnij się, że pliki .env zostały dodane do .gitignore, aby zapobiec przypadkowym zatwierdzeniom [S1].
  • Wdrożenie zarządzania sekretami: Użyj dedykowanych narzędzi do zarządzania sekretami lub usług skarbca, aby wprowadzić poświadczenia do środowiska aplikacji w czasie wykonywania [S1].
  • Wyczyść historię repozytorium: Jeśli w Git został przekazany sekret, użyj narzędzi takich jak git-filter-repo lub BFG Repo-Cleaner, aby trwale usunąć wrażliwe dane ze wszystkich gałęzi i znaczników w historii repozytorium [S2].

Jak FixVibe to testuje

FixVibe uwzględnia to teraz w skanach na żywo. Pasywny secrets.js-bundle-sweep pobiera pakiety JavaScript tego samego pochodzenia i dopasowuje znane klucze, tokeny i wzorce poświadczeń API z bramkami entropii i symbolami zastępczymi. Powiązane kontrole na żywo sprawdzają pamięć przeglądarki, mapy źródłowe, pakiety klientów uwierzytelniania i BaaS oraz wzorce źródeł repo GitHub. Przepisanie historii Gita pozostaje krokiem naprawczym; Transmisja na żywo FixVibe koncentruje się na tajemnicach obecnych w wysyłanych zasobach, pamięci przeglądarki i bieżącej zawartości repozytorium.