Vercel Security
Last updated
Last updated
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
W Vercel Zespół to pełne środowisko, które należy do klienta, a projekt to aplikacja.
Aby przeprowadzić przegląd zabezpieczeń Vercel, musisz poprosić o użytkownika z uprawnieniami roli przeglądającego lub przynajmniej uprawnieniami przeglądającego projekt w projektach, które chcesz sprawdzić (jeśli potrzebujesz tylko sprawdzić projekty, a nie konfigurację zespołu).
Cel: Zarządzaj podstawowymi ustawieniami projektu, takimi jak nazwa projektu, framework i konfiguracje budowy.
Transfer
Błąd w konfiguracji: Umożliwia przeniesienie projektu do innego zespołu
Ryzyko: Napastnik mógłby ukraść projekt
Usuń projekt
Błąd w konfiguracji: Umożliwia usunięcie projektu
Ryzyko: Usunięcie projektu
Cel: Zarządzaj niestandardowymi domenami, ustawieniami DNS i konfiguracjami SSL.
Błędy konfiguracji DNS
Błąd w konfiguracji: Nieprawidłowe rekordy DNS (A, CNAME) wskazujące na złośliwe serwery.
Ryzyko: Przejęcie domeny, przechwytywanie ruchu i ataki phishingowe.
Zarządzanie certyfikatami SSL/TLS
Błąd w konfiguracji: Używanie słabych lub wygasłych certyfikatów SSL/TLS.
Ryzyko: Wrażliwość na ataki typu man-in-the-middle (MITM), co narusza integralność i poufność danych.
Implementacja DNSSEC
Błąd w konfiguracji: Nie włączenie DNSSEC lub nieprawidłowe ustawienia DNSSEC.
Ryzyko: Zwiększona podatność na oszustwa DNS i ataki na pamięć podręczną.
Środowisko używane na domenę
Błąd w konfiguracji: Zmiana środowiska używanego przez domenę w produkcji.
Ryzyko: Ujawnienie potencjalnych sekretów lub funkcji, które nie powinny być dostępne w produkcji.
Cel: Definiowanie różnych środowisk (Rozwój, Podgląd, Produkcja) z określonymi ustawieniami i zmiennymi.
Izolacja środowiska
Błąd w konfiguracji: Udostępnianie zmiennych środowiskowych między środowiskami.
Ryzyko: Ujawnienie sekretów produkcyjnych w środowiskach rozwojowych lub podglądowych, co zwiększa narażenie.
Dostęp do wrażliwych środowisk
Błąd w konfiguracji: Umożliwienie szerokiego dostępu do środowisk produkcyjnych.
Ryzyko: Nieautoryzowane zmiany lub dostęp do aplikacji na żywo, co prowadzi do potencjalnych przestojów lub naruszeń danych.
Cel: Zarządzaj zmiennymi i sekretami specyficznymi dla środowiska używanymi przez aplikację.
Ujawnianie wrażliwych zmiennych
Błąd w konfiguracji: Prefiksowanie wrażliwych zmiennych NEXT_PUBLIC_
, co czyni je dostępnymi po stronie klienta.
Ryzyko: Ujawnienie kluczy API, poświadczeń bazy danych lub innych wrażliwych danych publicznie, co prowadzi do naruszeń danych.
Wrażliwe wyłączone
Błąd w konfiguracji: Jeśli wyłączone (domyślnie), możliwe jest odczytanie wartości wygenerowanych sekretów.
Ryzyko: Zwiększone prawdopodobieństwo przypadkowego ujawnienia lub nieautoryzowanego dostępu do wrażliwych informacji.
Wspólne zmienne środowiskowe
Błąd w konfiguracji: To są zmienne środowiskowe ustawione na poziomie zespołu i mogą również zawierać wrażliwe informacje.
Ryzyko: Zwiększone prawdopodobieństwo przypadkowego ujawnienia lub nieautoryzowanego dostępu do wrażliwych informacji.
Cel: Konfiguracja integracji repozytoriów Git, ochrony gałęzi i wyzwalaczy wdrożeń.
Zignorowany krok budowy (TODO)
Błąd w konfiguracji: Wygląda na to, że ta opcja pozwala skonfigurować skrypt/komendy bash, które będą wykonywane, gdy nowy commit zostanie przesłany do Github, co może umożliwić RCE.
Ryzyko: TBD
Cel: Połączenie z usługami i narzędziami zewnętrznymi w celu zwiększenia funkcjonalności projektu.
Niebezpieczne integracje zewnętrzne
Błąd w konfiguracji: Integracja z nieufnymi lub niebezpiecznymi usługami zewnętrznymi.
Ryzyko: Wprowadzenie luk w zabezpieczeniach, wyciek danych lub tylne drzwi przez skompromitowane integracje.
Nadmierne uprawnienia integracji
Błąd w konfiguracji: Przyznawanie nadmiernych uprawnień zintegrowanym usługom.
Ryzyko: Nieautoryzowany dostęp do zasobów projektu, manipulacja danymi lub zakłócenia w usługach.
Brak monitorowania integracji
Błąd w konfiguracji: Nie monitorowanie i audytowanie integracji zewnętrznych.
Ryzyko: Opóźnione wykrywanie skompromitowanych integracji, co zwiększa potencjalny wpływ naruszeń bezpieczeństwa.
Cel: Zabezpieczenie wdrożeń poprzez różne mechanizmy ochrony, kontrolując, kto może uzyskać dostęp i wdrożyć do twoich środowisk.
Autoryzacja Vercel
Błąd w konfiguracji: Wyłączenie autoryzacji lub brak egzekwowania kontroli członków zespołu.
Ryzyko: Nieautoryzowani użytkownicy mogą uzyskać dostęp do wdrożeń, co prowadzi do naruszeń danych lub niewłaściwego użycia aplikacji.
Ominięcie ochrony dla automatyzacji
Błąd w konfiguracji: Publiczne ujawnienie sekretu omijania lub używanie słabych sekretów.
Ryzyko: Napastnicy mogą ominąć ochronę wdrożeń, uzyskując dostęp i manipulując chronionymi wdrożeniami.
Linki do udostępniania
Błąd w konfiguracji: Udostępnianie linków bez ograniczeń lub brak unieważnienia przestarzałych linków.
Ryzyko: Nieautoryzowany dostęp do chronionych wdrożeń, omijając autoryzację i ograniczenia IP.
Opcje Allowlist
Błąd w konfiguracji: Umożliwienie zbyt szerokiego dostępu do ścieżek lub wrażliwych punktów końcowych.
Ryzyko: Napastnicy mogą wykorzystać niechronione ścieżki do wykonywania nieautoryzowanych działań lub omijania kontroli bezpieczeństwa.
Ochrona hasłem
Błąd w konfiguracji: Używanie słabych haseł lub ich niebezpieczne udostępnianie.
Ryzyko: Nieautoryzowany dostęp do wdrożeń, jeśli hasła zostaną odgadnięte lub wyciekły.
Uwaga: Dostępne w planie Pro jako część Zaawansowanej Ochrony Wdrożeń za dodatkowe 150 USD/miesiąc.
Wyjątki w ochronie wdrożeń
Błąd w konfiguracji: Nieumyślne dodanie domen produkcyjnych lub wrażliwych do listy wyjątków.
Ryzyko: Ujawnienie krytycznych wdrożeń publicznie, co prowadzi do wycieków danych lub nieautoryzowanego dostępu.
Uwaga: Dostępne w planie Pro jako część Zaawansowanej Ochrony Wdrożeń za dodatkowe 150 USD/miesiąc.
Zaufane adresy IP
Błąd w konfiguracji: Nieprawidłowe określenie adresów IP lub zakresów CIDR.
Ryzyko: Zablokowanie legalnych użytkowników lub uzyskanie dostępu przez nieautoryzowane adresy IP.
Uwaga: Dostępne w planie Enterprise.
Cel: Konfiguracja funkcji serverless, w tym ustawienia czasu wykonywania, alokacja pamięci i polityki bezpieczeństwa.
Nic
Cel: Zarządzanie strategiami i ustawieniami pamięci podręcznej w celu optymalizacji wydajności i kontroli przechowywania danych.
Opróżnij pamięć podręczną
Błąd w konfiguracji: Umożliwia usunięcie całej pamięci podręcznej.
Ryzyko: Nieautoryzowani użytkownicy usuwający pamięć podręczną, co prowadzi do potencjalnego DoS.
Cel: Planowanie zautomatyzowanych zadań i skryptów do uruchamiania w określonych odstępach czasu.
Wyłącz zadanie Cron
Błąd w konfiguracji: Umożliwia wyłączenie zadań cron zadeklarowanych w kodzie.
Ryzyko: Potencjalne przerwanie usługi (w zależności od tego, do czego miały służyć zadania cron).
Cel: Konfiguracja zewnętrznych usług logowania w celu rejestrowania i przechowywania logów aplikacji do monitorowania i audytowania.
Nic (zarządzane z ustawień zespołu)
Cel: Centralne centrum dla różnych ustawień związanych z bezpieczeństwem, które wpływają na dostęp do projektu, ochronę źródła i inne.
Logi budowy i ochrona źródła
Błąd w konfiguracji: Wyłączenie ochrony lub publiczne ujawnienie ścieżek /logs
i /src
.
Ryzyko: Nieautoryzowany dostęp do logów budowy i kodu źródłowego, co prowadzi do wycieków informacji i potencjalnego wykorzystania luk w zabezpieczeniach.
Ochrona forka Git
Błąd w konfiguracji: Umożliwienie nieautoryzowanych pull requestów bez odpowiednich przeglądów.
Ryzyko: Złośliwy kod może zostać scalony z bazą kodu, wprowadzając luki w zabezpieczeniach lub tylne drzwi.
Bezpieczny dostęp do backendu z OIDC Federation
Błąd w konfiguracji: Nieprawidłowe skonfigurowanie parametrów OIDC lub używanie niebezpiecznych adresów URL wydawcy.
Ryzyko: Nieautoryzowany dostęp do usług backendowych przez wadliwe przepływy autoryzacji.
Polityka przechowywania wdrożeń
Błąd w konfiguracji: Ustawienie zbyt krótkich okresów przechowywania (utrata historii wdrożeń) lub zbyt długich (niepotrzebne przechowywanie danych).
Ryzyko: Niemożność wykonania rollbacków w razie potrzeby lub zwiększone ryzyko ujawnienia danych z starych wdrożeń.
Ostatnio usunięte wdrożenia
Błąd w konfiguracji: Nie monitorowanie usuniętych wdrożeń lub poleganie wyłącznie na automatycznych usunięciach.
Ryzyko: Utrata krytycznej historii wdrożeń, co utrudnia audyty i rollbacki.
Cel: Dostęp do dodatkowych ustawień projektu w celu precyzyjnego dostosowania konfiguracji i zwiększenia bezpieczeństwa.
Lista katalogów
Błąd w konfiguracji: Włączenie listy katalogów pozwala użytkownikom na przeglądanie zawartości katalogów bez pliku indeksu.
Ryzyko: Ujawnienie wrażliwych plików, struktury aplikacji i potencjalnych punktów wejścia do ataków.
Włącz tryb wyzwania ataku
Błąd w konfiguracji: Włączenie tego poprawia obronę aplikacji webowej przed DoS, ale kosztem użyteczności.
Ryzyko: Potencjalne problemy z doświadczeniem użytkownika.
Błąd w konfiguracji: Umożliwia odblokowanie/zablokowanie ruchu.
Ryzyko: Potencjalny DoS, umożliwiający złośliwy ruch lub blokujący ruch legalny.
Błąd w konfiguracji: Umożliwia dostęp do odczytu pełnego kodu źródłowego aplikacji.
Ryzyko: Potencjalne ujawnienie wrażliwych informacji.
Błąd w konfiguracji: Ta ochrona zapewnia, że aplikacja klienta i serwera zawsze używają tej samej wersji, aby nie było desynchronizacji, w której klient używa innej wersji niż serwer i dlatego się nie rozumieją.
Ryzyko: Wyłączenie tego (jeśli włączone) może spowodować problemy z DoS w nowych wdrożeniach w przyszłości.
Transfer
Błąd w konfiguracji: Umożliwia przeniesienie wszystkich projektów do innego zespołu.
Ryzyko: Napastnik mógłby ukraść projekty.
Usuń projekt
Błąd w konfiguracji: Umożliwia usunięcie zespołu ze wszystkimi projektami.
Ryzyko: Usunięcie projektów.
Limit kosztów Speed Insights
Błąd w konfiguracji: Napastnik mógłby zwiększyć tę liczbę.
Ryzyko: Zwiększone koszty.
Dodaj członków
Błąd w konfiguracji: Napastnik mógłby utrzymać trwałość, zapraszając konto, które kontroluje.
Ryzyko: Trwałość napastnika.
Role
Błąd w konfiguracji: Przyznawanie zbyt wielu uprawnień osobom, które ich nie potrzebują, zwiększa ryzyko konfiguracji Vercel. Sprawdź wszystkie możliwe role w https://vercel.com/docs/accounts/team-members-and-roles/access-roles.
Ryzyko: Zwiększenie narażenia zespołu Vercel.
Grupa dostępu w Vercel to zbiór projektów i członków zespołu z przypisanymi rolami, co umożliwia centralne i uproszczone zarządzanie dostępem w wielu projektach.
Potencjalne błędy w konfiguracji:
Nadmierne uprawnienia członków: Przypisywanie ról z większymi uprawnieniami niż to konieczne, co prowadzi do nieautoryzowanego dostępu lub działań.
Nieprawidłowe przypisania ról: Nieprawidłowe przypisanie ról, które nie odpowiadają obowiązkom członków zespołu, co powoduje eskalację uprawnień.
Brak segregacji projektów: Nieoddzielanie wrażliwych projektów, co pozwala na szerszy dostęp niż zamierzono.
Niewystarczające zarządzanie grupami: Nieprzeglądanie ani nieaktualizowanie regularnie grup dostępu, co skutkuje przestarzałymi lub nieodpowiednimi uprawnieniami dostępu.
Niekonsekwentne definicje ról: Używanie niespójnych lub niejasnych definicji ról w różnych grupach dostępu, co prowadzi do zamieszania i luk w zabezpieczeniach.
Odpływy logów do stron trzecich:
Błąd w konfiguracji: Napastnik mógłby skonfigurować odpływ logów, aby ukraść logi.
Ryzyko: Częściowa trwałość.
Domena e-mail zespołu: Po skonfigurowaniu to ustawienie automatycznie zaprasza osobiste konta Vercel z adresami e-mail kończącymi się na określonej domenie (np. mydomain.com
) do dołączenia do twojego zespołu podczas rejestracji i na pulpicie.
Błąd w konfiguracji:
Określenie niewłaściwej domeny e-mail lub błędnie napisanej domeny w ustawieniu domeny e-mail zespołu.
Używanie powszechnej domeny e-mail (np. gmail.com
, hotmail.com
) zamiast domeny specyficznej dla firmy.
Ryzyka:
Nieautoryzowany dostęp: Użytkownicy z adresami e-mail z niezamierzonych domen mogą otrzymać zaproszenia do dołączenia do twojego zespołu.
Ujawnienie danych: Potencjalne ujawnienie wrażliwych informacji o projekcie osobom nieuprawnionym.
Chronione zakresy Git: Umożliwia dodanie do 5 zakresów Git do twojego zespołu, aby zapobiec innym zespołom Vercel wdrażania repozytoriów z chronionego zakresu. Wiele zespołów może określić ten sam zakres, co pozwala obu zespołom na dostęp.
Błąd w konfiguracji: Nie dodanie krytycznych zakresów Git do listy chronionej.
Ryzyka:
Nieautoryzowane wdrożenia: Inne zespoły mogą wdrażać repozytoria z zakresów Git twojej organizacji bez autoryzacji.
Ujawnienie własności intelektualnej: Własny kod mógłby zostać wdrożony i uzyskany poza twoim zespołem.
Polityki zmiennych środowiskowych: Egzekwuje polityki dotyczące tworzenia i edytowania zmiennych środowiskowych zespołu. W szczególności możesz egzekwować, aby wszystkie zmienne środowiskowe były tworzone jako Wrażliwe Zmienne Środowiskowe, które mogą być odszyfrowane tylko przez system wdrożeniowy Vercel.
Błąd w konfiguracji: Utrzymywanie wyłączenia egzekwowania wrażliwych zmiennych środowiskowych.
Ryzyka:
Ujawnienie sekretów: Zmienne środowiskowe mogą być przeglądane lub edytowane przez nieautoryzowanych członków zespołu.
Naruszenie danych: Wrażliwe informacje, takie jak klucze API i poświadczenia, mogą zostać wycieknięte.
Dziennik audytu: Zapewnia eksport aktywności zespołu za ostatnie 90 dni. Dzienniki audytu pomagają w monitorowaniu i śledzeniu działań członków zespołu.
Błąd w konfiguracji: Przyznawanie dostępu do dzienników audytu nieautoryzowanym członkom zespołu.
Ryzyka:
Naruszenia prywatności: Ujawnienie wrażliwych działań i danych użytkowników.
Manipulacja logami: Złośliwi aktorzy mogą zmieniać lub usuwać logi, aby zatuszować swoje ślady.
SAML Single Sign-On: Umożliwia dostosowanie autoryzacji SAML i synchronizacji katalogów dla twojego zespołu, umożliwiając integrację z dostawcą tożsamości (IdP) w celu centralnej autoryzacji i zarządzania użytkownikami.
Błąd w konfiguracji: Napastnik mógłby wprowadzić tylne drzwi do ustawienia zespołu, konfigurując parametry SAML, takie jak identyfikator encji, adres URL SSO lub odciski palców certyfikatu.
Ryzyko: Utrzymanie trwałości.
Widoczność adresów IP: Kontroluje, czy adresy IP, które mogą być uważane za dane osobowe zgodnie z niektórymi przepisami o ochronie danych, są wyświetlane w zapytaniach monitorujących i odpływach logów.
Błąd w konfiguracji: Pozostawienie widoczności adresów IP włączonej bez potrzeby.
Ryzyka:
Naruszenia prywatności: Nieprzestrzeganie przepisów o ochronie danych, takich jak RODO.
Konsekwencje prawne: Potencjalne grzywny i kary za niewłaściwe zarządzanie danymi osobowymi.
Blokowanie IP: Umożliwia konfigurację adresów IP i zakresów CIDR, z których Vercel powinien blokować żądania. Zablokowane żądania nie przyczyniają się do twojego rozliczenia.
Błąd w konfiguracji: Może być nadużywane przez napastnika do zezwolenia na złośliwy ruch lub zablokowania legalnego ruchu.
Ryzyka:
Odmowa usługi dla legalnych użytkowników: Blokowanie dostępu dla ważnych użytkowników lub partnerów.
Zakłócenia operacyjne: Utrata dostępności usługi dla niektórych regionów lub klientów.
Vercel Secure Compute umożliwia bezpieczne, prywatne połączenia między funkcjami Vercel a środowiskami backendowymi (np. bazami danych) poprzez ustanowienie izolowanych sieci z dedykowanymi adresami IP. To eliminuje potrzebę publicznego ujawniania usług backendowych, zwiększając bezpieczeństwo, zgodność i prywatność.
Nieprawidłowy wybór regionu AWS
Błąd w konfiguracji: Wybór regionu AWS dla sieci Secure Compute, który nie odpowiada regionowi usług backendowych.
Ryzyko: Zwiększone opóźnienia, potencjalne problemy z zgodnością z przepisami o rezydencji danych i pogorszenie wydajności.
Nakładające się bloki CIDR
Błąd w konfiguracji: Wybór bloków CIDR, które nakładają się na istniejące VPC lub inne sieci.
Ryzyko: Konflikty sieciowe prowadzące do nieudanych połączeń, nieautoryzowanego dostępu lub wycieku danych między sieciami.
Nieprawidłowa konfiguracja peeringu VPC
Błąd w konfiguracji: Nieprawidłowe skonfigurowanie peeringu VPC (np. błędne identyfikatory VPC, niekompletne aktualizacje tabeli tras).
Ryzyko: Nieautoryzowany dostęp do infrastruktury backendowej, nieudane bezpieczne połączenia i potencjalne naruszenia danych.
Nadmierne przypisania projektów
Błąd w konfiguracji: Przypisanie wielu projektów do jednej sieci Secure Compute bez odpowiedniej izolacji.
Ryzyko: Wspólne ujawnienie IP zwiększa powierzchnię ataku, co potencjalnie pozwala skompromitowanym projektom wpływać na inne.
Niewystarczające zarządzanie adresami IP
Błąd w konfiguracji: Nieprawidłowe zarządzanie lub rotacja dedykowanych adresów IP.
Ryzyko: Fałszowanie IP, luki w śledzeniu i potencjalne umieszczenie na czarnej liście, jeśli IP są powiązane z działalnością złośliwą.
Niepotrzebne włączanie kontenerów budowy
Błąd w konfiguracji: Dodawanie kontenerów budowy do sieci Secure Compute, gdy dostęp do backendu nie jest wymagany podczas budowy.
Ryzyko: Zwiększona powierzchnia ataku, wydłużone opóźnienia w przydzielaniu zasobów i niepotrzebne zużycie zasobów sieciowych.
Brak bezpiecznego zarządzania sekretami omijania
Błąd w konfiguracji: Ujawnianie lub niewłaściwe zarządzanie sekretami używanymi do omijania ochrony wdrożeń.
Ryzyko: Nieautoryzowany dostęp do chronionych wdrożeń, co pozwala napastnikom manipulować lub wdrażać złośliwy kod.
Ignorowanie konfiguracji awaryjnych regionów
Błąd w konfiguracji: Nie skonfigurowanie pasywnych regionów awaryjnych lub nieprawidłowe skonfigurowanie ustawień awaryjnych.
Ryzyko: Przestoje usług podczas awarii głównego regionu, co prowadzi do zmniejszonej dostępności i potencjalnej niespójności danych.
Przekroczenie limitów połączeń peeringu VPC
Błąd w konfiguracji: Próba nawiązania większej liczby połączeń peeringu VPC niż dozwolony limit (np. przekroczenie 50 połączeń).
Ryzyko: Niemożność bezpiecznego połączenia z niezbędnymi usługami backendowymi, co powoduje niepowodzenia wdrożeń i zakłócenia operacyjne.
Niebezpieczne ustawienia sieciowe
Błąd w konfiguracji: Słabe zasady zapory, brak szyfrowania lub niewłaściwa segmentacja sieci w sieci Secure Compute.
Ryzyko: Przechwytywanie danych, nieautoryzowany dostęp do usług backendowych i zwiększona podatność na ataki.
Cel: Zarządzaj zmiennymi i sekretami specyficznymi dla środowiska używanymi przez wszystkie projekty.
Ujawnianie wrażliwych zmiennych
Błąd w konfiguracji: Prefiksowanie wrażliwych zmiennych NEXT_PUBLIC_
, co czyni je dostępnymi po stronie klienta.
Ryzyko: Ujawnienie kluczy API, poświadczeń bazy danych lub innych wrażliwych danych publicznie, co prowadzi do naruszeń danych.
Wrażliwe wyłączone
Błąd w konfiguracji: Jeśli wyłączone (domyślnie), możliwe jest odczytanie wartości wygenerowanych sekretów.
Ryzyko: Zwiększone prawdopodobieństwo przypadkowego ujawnienia lub nieautoryzowanego dostępu do wrażliwych informacji.
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)