Vercel

Reading time: 13 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Osnovne informacije

U Vercelu, Tim je kompletno okruženje koje pripada klijentu, a projekat je aplikacija.

Za pregled učvršćivanja Vercela potrebno je zatražiti korisnika sa Viewer role permission ili barem Project viewer permission over the projects da bi se proverilo (u slučaju da je potrebno proveriti samo projekte, a ne i konfiguraciju Tima).

Podešavanja projekta

Opšte

Svrha: Upravljanje osnovnim podešavanjima projekta kao što su naziv projekta, okvir i konfiguracije izgradnje.

Konfiguracije bezbednosti:

  • Transfer
  • Pogrešna konfiguracija: Omogućava prenos projekta na drugi tim
  • Rizik: Napadač bi mogao ukrasti projekat
  • Obriši projekat
  • Pogrešna konfiguracija: Omogućava brisanje projekta
  • Rizik: Obriši projekat

Domeni

Svrha: Upravljanje prilagođenim domenima, DNS podešavanjima i SSL konfiguracijama.

Konfiguracije bezbednosti:

  • Greške u DNS konfiguraciji
  • Pogrešna konfiguracija: Neispravni DNS zapisi (A, CNAME) koji upućuju na zlonamerne servere.
  • Rizik: Otmica domena, presretanje saobraćaja i phishing napadi.
  • Upravljanje SSL/TLS sertifikatima
  • Pogrešna konfiguracija: Korišćenje slabih ili istečenih SSL/TLS sertifikata.
  • Rizik: Ranljivost na napade "man-in-the-middle" (MITM), kompromitovanje integriteta i poverljivosti podataka.
  • Implementacija DNSSEC
  • Pogrešna konfiguracija: Neaktiviranje DNSSEC ili pogrešna DNSSEC podešavanja.
  • Rizik: Povećana podložnost napadima DNS spoofing i cache poisoning.
  • Okruženje korišćeno po domenu
  • Pogrešna konfiguracija: Promena okruženja koje koristi domen u produkciji.
  • Rizik: Izlaganje potencijalnih tajni ili funkcionalnosti koje ne bi trebale biti dostupne u produkciji.

Okruženja

Svrha: Definisanje različitih okruženja (Razvoj, Pregled, Produkcija) sa specifičnim podešavanjima i varijablama.

Konfiguracije bezbednosti:

  • Izolacija okruženja
  • Pogrešna konfiguracija: Deljenje varijabli okruženja između okruženja.
  • Rizik: Curjenje produkcijskih tajni u razvojna ili pregledna okruženja, povećavajući izloženost.
  • Pristup osetljivim okruženjima
  • Pogrešna konfiguracija: Omogućavanje širokog pristupa produkcijskim okruženjima.
  • Rizik: Neovlašćene promene ili pristup aktivnim aplikacijama, što može dovesti do potencijalnih prekida rada ili curenja podataka.

Varijable okruženja

Svrha: Upravljanje varijablama i tajnama specifičnim za okruženje koje koristi aplikacija.

Konfiguracije bezbednosti:

  • Izlaganje osetljivih varijabli
  • Pogrešna konfiguracija: Prefiksiranje osetljivih varijabli sa NEXT_PUBLIC_, čineći ih dostupnim na klijentskoj strani.
  • Rizik: Izlaganje API ključeva, kredencijala baze podataka ili drugih osetljivih podataka javnosti, što dovodi do curenja podataka.
  • Osetljivo onemogućeno
  • Pogrešna konfiguracija: Ako je onemogućeno (podrazumevano) moguće je pročitati vrednosti generisanih tajni.
  • Rizik: Povećana verovatnoća slučajnog izlaganja ili neovlašćenog pristupa osetljivim informacijama.
  • Deljene varijable okruženja
  • Pogrešna konfiguracija: Ovo su varijable okruženja postavljene na nivou Tima i mogu takođe sadržati osetljive informacije.
  • Rizik: Povećana verovatnoća slučajnog izlaganja ili neovlašćenog pristupa osetljivim informacijama.

Git

Svrha: Konfigurišite integracije Git repozitorijuma, zaštitu grana i okidače za implementaciju.

Konfiguracije bezbednosti:

  • Ignorisani korak izgradnje (TODO)
  • Pogrešna konfiguracija: Čini se da ova opcija omogućava konfiguraciju bash skripte/komandi koje će se izvršiti kada se novi commit pošalje na Github, što bi moglo omogućiti RCE.
  • Rizik: TBD

Integracije

Svrha: Povezivanje usluga i alata trećih strana za poboljšanje funkcionalnosti projekta.

Konfiguracije bezbednosti:

  • Neosigurane integracije trećih strana
  • Pogrešna konfiguracija: Integracija sa nepouzdanim ili neosiguranim uslugama trećih strana.
  • Rizik: Uvođenje ranjivosti, curenje podataka ili backdoor-ova kroz kompromitovane integracije.
  • Prekomerno ovlašćene integracije
  • Pogrešna konfiguracija: Dodeljivanje prekomernih ovlašćenja integrisanim uslugama.
  • Rizik: Neovlašćen pristup resursima projekta, manipulacija podacima ili prekidi usluga.
  • Nedostatak praćenja integracija
  • Pogrešna konfiguracija: Nepratiti i neauditovati integracije trećih strana.
  • Rizik: Odloženo otkrivanje kompromitovanih integracija, povećavajući potencijalni uticaj bezbednosnih povreda.

Zaštita implementacije

Svrha: Osiguranje implementacija kroz različite mehanizme zaštite, kontrolišući ko može pristupiti i implementirati u vaša okruženja.

Konfiguracije bezbednosti:

Vercel autentifikacija

  • Pogrešna konfiguracija: Onemogućavanje autentifikacije ili neprovođenje provere članova tima.
  • Rizik: Neovlašćeni korisnici mogu pristupiti implementacijama, što dovodi do curenja podataka ili zloupotrebe aplikacija.

Zaobilaženje zaštite za automatizaciju

  • Pogrešna konfiguracija: Javna izloženost tajne zaobilaženja ili korišćenje slabih tajni.
  • Rizik: Napadači mogu zaobići zaštitu implementacije, pristupajući i manipulišući zaštićenim implementacijama.

Deljivi linkovi

  • Pogrešna konfiguracija: Deljenje linkova bez razmišljanja ili neukidanje zastarelih linkova.
  • Rizik: Neovlašćen pristup zaštićenim implementacijama, zaobilazeći autentifikaciju i IP ograničenja.

OPTIONS Allowlist

  • Pogrešna konfiguracija: Prekomerno široko dozvoljavanje putanja ili osetljivih krajnjih tačaka.
  • Rizik: Napadači mogu iskoristiti nezaštićene putanje za izvršavanje neovlašćenih radnji ili zaobilaženje bezbednosnih provera.

Zaštita lozinkom

  • Pogrešna konfiguracija: Korišćenje slabih lozinki ili njihovo nesigurno deljenje.
  • Rizik: Neovlašćen pristup implementacijama ako se lozinke pogode ili procure.
  • Napomena: Dostupno na Pro planu kao deo Napredne zaštite implementacije za dodatnih $150/mesečno.

Izuzeci zaštite implementacije

  • Pogrešna konfiguracija: Nehotice dodavanje produkcijskih ili osetljivih domena na listu izuzetaka.
  • Rizik: Izlaganje kritičnih implementacija javnosti, što dovodi do curenja podataka ili neovlašćenog pristupa.
  • Napomena: Dostupno na Pro planu kao deo Napredne zaštite implementacije za dodatnih $150/mesečno.

Poverljivi IP-ovi

  • Pogrešna konfiguracija: Pogrešno određivanje IP adresa ili CIDR opsega.
  • Rizik: Legitimni korisnici mogu biti blokirani ili neovlašćeni IP-ovi mogu dobiti pristup.
  • Napomena: Dostupno na Enterprise planu.

Funkcije

Svrha: Konfigurišite serverless funkcije, uključujući podešavanja vremena izvršavanja, alokaciju memorije i bezbednosne politike.

Konfiguracije bezbednosti:

  • Ništa

Keš podataka

Svrha: Upravljanje strategijama i podešavanjima keširanja za optimizaciju performansi i kontrolu skladištenja podataka.

Konfiguracije bezbednosti:

  • Očisti keš
  • Pogrešna konfiguracija: Omogućava brisanje celog keša.
  • Rizik: Neovlašćeni korisnici brišu keš, što može dovesti do potencijalnog DoS.

Cron poslovi

Svrha: Zakazivanje automatizovanih zadataka i skripti da se izvršavaju u određenim intervalima.

Konfiguracije bezbednosti:

  • Onemogući Cron posao
  • Pogrešna konfiguracija: Omogućava onemogućavanje cron poslova deklarisanih unutar koda.
  • Rizik: Potencijalno prekidanje usluge (u zavisnosti od toga za šta su cron poslovi bili namenjeni).

Log Drains

Svrha: Konfigurišite spoljne usluge za logovanje kako biste zabeležili i čuvali logove aplikacije za praćenje i reviziju.

Konfiguracije bezbednosti:

  • Ništa (upravljano iz podešavanja timova)

Bezbednost

Svrha: Centralno mesto za različita podešavanja vezana za bezbednost koja utiču na pristup projektu, zaštitu izvora i još mnogo toga.

Konfiguracije bezbednosti:

Logovi izgradnje i zaštita izvora

  • Pogrešna konfiguracija: Onemogućavanje zaštite ili izlaganje /logs i /src putanja javno.
  • Rizik: Neovlašćen pristup logovima izgradnje i izvoru koda, što dovodi do curenja informacija i potencijalne eksploatacije ranjivosti.

Zaštita Git forkova

  • Pogrešna konfiguracija: Omogućavanje neovlašćenih pull zahteva bez odgovarajućih pregleda.
  • Rizik: Zlonamerni kod može biti spojen u kodnu bazu, uvodeći ranjivosti ili backdoor-ove.

Siguran pristup backend-u sa OIDC federacijom

  • Pogrešna konfiguracija: Pogrešno postavljanje OIDC parametara ili korišćenje nesigurnih URL-ova izdavača.
  • Rizik: Neovlašćen pristup backend uslugama kroz neispravne tokove autentifikacije.

Politika zadržavanja implementacije

  • Pogrešna konfiguracija: Postavljanje perioda zadržavanja prekratko (gubitak istorije implementacije) ili predugo (nepotrebno zadržavanje podataka).
  • Rizik: Nemogućnost vraćanja na prethodne verzije kada je to potrebno ili povećan rizik od izlaganja podataka iz starih implementacija.

Nedavno obrisane implementacije

  • Pogrešna konfiguracija: Nepratiti obrisane implementacije ili oslanjanje isključivo na automatska brisanja.
  • Rizik: Gubitak kritične istorije implementacije, otežavajući revizije i vraćanja.

Napredno

Svrha: Pristup dodatnim podešavanjima projekta za fino podešavanje konfiguracija i poboljšanje bezbednosti.

Konfiguracije bezbednosti:

Lista direktorijuma

  • Pogrešna konfiguracija: Omogućavanje liste direktorijuma omogućava korisnicima da vide sadržaj direktorijuma bez indeksnog fajla.
  • Rizik: Izlaganje osetljivih fajlova, strukture aplikacije i potencijalnih ulaznih tačaka za napade.

Firewall projekta

Firewall

Konfiguracije bezbednosti:

Omogući izazov napada

  • Pogrešna konfiguracija: Omogućavanje ovoga poboljšava odbranu web aplikacije protiv DoS, ali na račun upotrebljivosti.
  • Rizik: Potencijalni problemi sa korisničkim iskustvom.

Prilagođena pravila i blokiranje IP-a

  • Pogrešna konfiguracija: Omogućava otključavanje/blokiranje saobraćaja.
  • Rizik: Potencijalni DoS omogućavajući zlonamerni saobraćaj ili blokirajući benigni saobraćaj.

Implementacija projekta

Izvor

  • Pogrešna konfiguracija: Omogućava pristup za čitanje kompletnog izvornog koda aplikacije.
  • Rizik: Potencijalno izlaganje osetljivih informacija.

Zaštita od pomeranja

  • Pogrešna konfiguracija: Ova zaštita osigurava da klijentska i serverska aplikacija uvek koriste istu verziju kako ne bi došlo do desinkronizacije kada klijent koristi drugačiju verziju od servera i stoga se ne razumeju.
  • Rizik: Onemogućavanje ovoga (ako je omogućeno) moglo bi izazvati DoS probleme u novim implementacijama u budućnosti.

Podešavanja tima

Opšte

Konfiguracije bezbednosti:

  • Transfer
  • Pogrešna konfiguracija: Omogućava prenos svih projekata na drugi tim.
  • Rizik: Napadač bi mogao ukrasti projekte.
  • Obriši projekat
  • Pogrešna konfiguracija: Omogućava brisanje tima sa svim projektima.
  • Rizik: Obriši projekte.

Fakturisanje

Konfiguracije bezbednosti:

  • Limit troškova Speed Insights
  • Pogrešna konfiguracija: Napadač bi mogao povećati ovaj broj.
  • Rizik: Povećani troškovi.

Članovi

Konfiguracije bezbednosti:

  • Dodaj članove
  • Pogrešna konfiguracija: Napadač bi mogao održati postojanost pozivajući nalog koji kontroliše.
  • Rizik: Postojanost napadača.
  • Uloge
  • Pogrešna konfiguracija: Dodeljivanje previše ovlašćenja ljudima kojima to nije potrebno povećava rizik od konfiguracije Vercela. Proverite sve moguće uloge na https://vercel.com/docs/accounts/team-members-and-roles/access-roles.
  • Rizik: Povećava izloženost Vercel Tima.

Grupe pristupa

Grupa pristupa u Vercelu je kolekcija projekata i članova tima sa unapred definisanim dodelama uloga, omogućavajući centralizovano i pojednostavljeno upravljanje pristupom kroz više projekata.

Potencijalne pogrešne konfiguracije:

  • Prekomerno ovlašćivanje članova: Dodeljivanje uloga sa više ovlašćenja nego što je potrebno, što dovodi do neovlašćenog pristupa ili radnji.
  • Pogrešne dodela uloga: Pogrešno dodeljivanje uloga koje se ne poklapaju sa odgovornostima članova tima, uzrokujući eskalaciju privilegija.
  • Nedostatak segregacije projekata: Neodvajanje osetljivih projekata, omogućavajući širi pristup nego što je planirano.
  • Nedovoljno upravljanje grupama: Nepravilno pregledanje ili ažuriranje Grupa pristupa, što rezultira zastarelim ili neprimerenim pristupnim dozvolama.
  • Nepodudarne definicije uloga: Korišćenje nepodudarnih ili nejasnih definicija uloga kroz različite Grupe pristupa, što dovodi do konfuzije i bezbednosnih praznina.

Log Drains

Konfiguracije bezbednosti:

  • Log Drains ka trećim stranama:
  • Pogrešna konfiguracija: Napadač bi mogao konfigurisati Log Drain da ukrade logove.
  • Rizik: Delimična postojanost.

Bezbednost i privatnost

Konfiguracije bezbednosti:

  • Domen e-pošte tima: Kada je konfigurisano, ovo podešavanje automatski poziva Vercel lične naloge sa adresama e-pošte koje se završavaju na specificiranom domenu (npr. mydomain.com) da se pridruže vašem timu prilikom registracije i na kontrolnoj tabli.
  • Pogrešna konfiguracija:
  • Određivanje pogrešnog domena e-pošte ili pogrešno napisani domen u podešavanju domena e-pošte tima.
  • Korišćenje uobičajenog domena e-pošte (npr. gmail.com, hotmail.com) umesto domena specifičnog za kompaniju.
  • Rizici:
  • Neovlašćen pristup: Korisnici sa adresama e-pošte iz nepredviđenih domena mogu primiti pozivnice da se pridruže vašem timu.
  • Izlaganje podataka: Potencijalno izlaganje osetljivih informacija o projektu neovlašćenim osobama.
  • Zaštićeni Git opsezi: Omogućava vam da dodate do 5 Git opsega vašem timu kako biste sprečili druge Vercel timove da implementiraju repozitorijume iz zaštićenog opsega. Više timova može odrediti isti opseg, omogućavajući pristup obema timovima.
  • Pogrešna konfiguracija: Ne dodavanje kritičnih Git opsega na zaštićenu listu.
  • Rizici:
  • Neovlašćene implementacije: Drugi timovi mogu implementirati repozitorijume iz Git opsega vaše organizacije bez odobrenja.
  • Izlaganje intelektualne svojine: Proprietarni kod može biti implementiran i dostupan izvan vašeg tima.
  • Politike varijabli okruženja: Sprovodi politike za kreiranje i uređivanje varijabli okruženja tima. Konkretno, možete sprovoditi da se sve varijable okruženja kreiraju kao Osetljive varijable okruženja, koje može dekriptovati samo Vercelov sistem implementacije.
  • Pogrešna konfiguracija: Održavanje onemogućavanja sprovodjenja osetljivih varijabli okruženja.
  • Rizici:
  • Izlaganje tajni: Varijable okruženja mogu biti pregledane ili uređene od strane neovlašćenih članova tima.
  • Curanje podataka: Osetljive informacije kao što su API ključevi i kredencijali mogli bi procuriti.
  • Revizijski log: Pruža izvoz aktivnosti tima za poslednjih do 90 dana. Revizijski logovi pomažu u praćenju i praćenju radnji koje su izvršili članovi tima.
  • Pogrešna konfiguracija:
    Dodeljivanje pristupa revizijskim logovima neovlašćenim članovima tima.
  • Rizici:
  • Povrede privatnosti: Izlaganje osetljivih korisničkih aktivnosti i podataka.
  • Manipulacija logovima: Zlonamerni akteri mogli bi izmeniti ili obrisati logove kako bi prikrili svoje tragove.
  • SAML jedinstveno prijavljivanje: Omogućava prilagođavanje SAML autentifikacije i sinhronizacije direktorijuma za vaš tim, omogućavajući integraciju sa provajderom identiteta (IdP) za centralizovanu autentifikaciju i upravljanje korisnicima.
  • Pogrešna konfiguracija: Napadač bi mogao postaviti backdoor u Tim podešavanjem SAML parametara kao što su Entity ID, SSO URL ili otisci sertifikata.
  • Rizik: Održavanje postojanosti.
  • Vidljivost IP adresa: Kontroliše da li se IP adrese, koje se mogu smatrati ličnim informacijama prema određenim zakonima o zaštiti podataka, prikazuju u upitima za praćenje i Log Drains.
  • Pogrešna konfiguracija: Ostaviti vidljivost IP adresa omogućenom bez potrebe.
  • Rizici:
  • Povrede privatnosti: Neusklađenost sa zakonima o zaštiti podataka kao što je GDPR.
  • Pravne posledice: Potencijalne kazne i sankcije za nepravilno rukovanje ličnim podacima.
  • Blokiranje IP adresa: Omogućava konfiguraciju IP adresa i CIDR opsega koje Vercel treba da blokira. Blokirani zahtevi ne doprinose vašem fakturisanju.
  • Pogrešna konfiguracija: Može biti zloupotrebljeno od strane napadača da omogući zlonamerni saobraćaj ili blokira legitimni saobraćaj.
  • Rizici:
  • Odbijanje usluge legitimnim korisnicima: Blokiranje pristupa validnim korisnicima ili partnerima.
  • Operativni prekidi: Gubitak dostupnosti usluga za određene regione ili klijente.

Sigurno računanje

Vercel Secure Compute omogućava sigurne, privatne veze između Vercel funkcija i backend okruženja (npr. baza podataka) uspostavljanjem izolovanih mreža sa posvećenim IP adresama. Ovo eliminiše potrebu za javnim izlaganjem backend usluga, poboljšavajući bezbednost, usklađenost i privatnost.

Potencijalne pogrešne konfiguracije i rizici

  1. Pogrešan izbor AWS regiona
  • Pogrešna konfiguracija: Odabir AWS regiona za Secure Compute mrežu koji se ne poklapa sa regionom backend usluga.
  • Rizik: Povećana latencija, potencijalni problemi sa usklađenošću podataka i degradacija performansi.
  1. Preklapanje CIDR blokova
  • Pogrešna konfiguracija: Odabir CIDR blokova koji se preklapaju sa postojećim VPC-ima ili drugim mrežama.
  • Rizik: Mrežni konflikti koji dovode do neuspešnih veza, neovlašćenog pristupa ili curenja podataka između mreža.
  1. Pogrešna konfiguracija VPC peeringa
  • Pogrešna konfiguracija: Pogrešno postavljanje VPC peeringa (npr. pogrešni VPC ID-ovi, nepotpune izmene tabele ruta).
  • Rizik: Neovlašćen pristup backend infrastrukturi, neuspešne sigurne veze i potencijalna curenja podataka.
  1. Prekomerna dodela projekata
  • Pogrešna konfiguracija: Dodeljivanje više projekata jednoj Secure Compute mreži bez odgovarajuće izolacije.
  • Rizik: Izloženost zajedničkog IP-a povećava površinu napada, potencijalno omogućavajući kompromitovanim projektima da utiču na druge.
  1. Neadekvatno upravljanje IP adresama
  • Pogrešna konfiguracija: Neupravljanje ili nerotiranje posvećenih IP adresa na odgovarajući način.
  • Rizik: IP spoofing, ranjivosti praćenja i potencijalno stavljanje na crnu listu ako su IP adrese povezane sa zlonamernim aktivnostima.
  1. Nepravilno uključivanje kontejnera za izgradnju
  • Pogrešna konfiguracija: Dodavanje kontejnera za izgradnju u Secure Compute mrežu kada pristup backend-u nije potreban tokom izgradnje.
  • Rizik: Proširena površina napada, povećani kašnjenja u snabdevanju i nepotrebna potrošnja mrežnih resursa.
  1. Neuspeh u sigurnom rukovanju tajnama zaobilaženja
  • Pogrešna konfiguracija: Izlaganje ili nepravilno rukovanje tajnama korišćenim za zaobilaženje zaštite implementacije.
  • Rizik: Neovlašćen pristup zaštićenim implementacijama, omogućavajući napadačima da manipulišu ili implementiraju zlonamerni kod.
  1. Ignorisanje konfiguracija za prebacivanje regiona
  • Pogrešna konfiguracija: Neuspostavljanje pasivnih regiona za prebacivanje ili pogrešno konfigurisanje postavki prebacivanja.
  • Rizik: Downtime usluge tokom prekida primarnog regiona, što dovodi do smanjene dostupnosti i potencijalne neusklađenosti podataka.
  1. Prekoračenje limita veza VPC peeringa
  • Pogrešna konfiguracija: Pokušaj uspostavljanja više VPC peering veza nego što je dozvoljeno (npr. prekoračenje 50 veza).
  • Rizik: Nemogućnost sigurne povezanosti potrebnih backend usluga, uzrokujući neuspehe implementacije i operativne prekide.
  1. Neosigurana mrežna podešavanja
  • Pogrešna konfiguracija: Slaba pravila vatrozida, nedostatak enkripcije ili nepravilna segmentacija mreže unutar Secure Compute mreže.
  • Rizik: Presretanje podataka, neovlašćen pristup backend uslugama i povećana ranjivost na napade.

Varijable okruženja

Svrha: Upravljanje varijablama i tajnama specifičnim za okruženje koje koriste svi projekti.

Konfiguracije bezbednosti:

  • Izlaganje osetljivih varijabli
  • Pogrešna konfiguracija: Prefiksiranje osetljivih varijabli sa NEXT_PUBLIC_, čineći ih dostupnim na klijentskoj strani.
  • Rizik: Izlaganje API ključeva, kredencijala baze podataka ili drugih osetljivih podataka javnosti, što dovodi do curenja podataka.
  • Osetljivo onemogućeno
  • Pogrešna konfiguracija: Ako je onemogućeno (podrazumevano) moguće je pročitati vrednosti generisanih tajni.
  • Rizik: Povećana verovatnoća slučajnog izlaganja ili neovlašćenog pristupa osetljivim informacijama.

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks