Vercel Security
Last updated
Last updated
Impara e pratica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
In Vercel un Team è l'intero ambiente che appartiene a un cliente e un progetto è un'applicazione.
Per una revisione di hardening di Vercel è necessario richiedere un utente con permesso di ruolo Viewer o almeno permesso di visualizzazione del progetto sui progetti da controllare (nel caso in cui sia necessario controllare solo i progetti e non la configurazione del Team).
Scopo: Gestire le impostazioni fondamentali del progetto come nome del progetto, framework e configurazioni di build.
Trasferimento
Misconfigurazione: Consente di trasferire il progetto a un altro team
Rischio: Un attaccante potrebbe rubare il progetto
Elimina progetto
Misconfigurazione: Consente di eliminare il progetto
Rischio: Eliminare il progetto
Scopo: Gestire domini personalizzati, impostazioni DNS e configurazioni SSL.
Errori di configurazione DNS
Misconfigurazione: Record DNS errati (A, CNAME) che puntano a server malevoli.
Rischio: Hijacking del dominio, intercettazione del traffico e attacchi di phishing.
Gestione dei certificati SSL/TLS
Misconfigurazione: Utilizzo di certificati SSL/TLS deboli o scaduti.
Rischio: Vulnerabile ad attacchi man-in-the-middle (MITM), compromettendo l'integrità e la riservatezza dei dati.
Implementazione di DNSSEC
Misconfigurazione: Mancata attivazione di DNSSEC o impostazioni DNSSEC errate.
Rischio: Maggiore suscettibilità a spoofing DNS e attacchi di cache poisoning.
Ambiente utilizzato per dominio
Misconfigurazione: Cambiare l'ambiente utilizzato dal dominio in produzione.
Rischio: Esporre potenziali segreti o funzionalità che non dovrebbero essere disponibili in produzione.
Scopo: Definire diversi ambienti (Sviluppo, Anteprima, Produzione) con impostazioni e variabili specifiche.
Isolamento dell'ambiente
Misconfigurazione: Condivisione di variabili ambientali tra ambienti.
Rischio: Leak di segreti di produzione negli ambienti di sviluppo o anteprima, aumentando l'esposizione.
Accesso a ambienti sensibili
Misconfigurazione: Consentire un accesso ampio agli ambienti di produzione.
Rischio: Modifiche non autorizzate o accesso ad applicazioni live, portando a potenziali downtime o violazioni dei dati.
Scopo: Gestire variabili e segreti specifici dell'ambiente utilizzati dall'applicazione.
Esposizione di variabili sensibili
Misconfigurazione: Prefissare variabili sensibili con NEXT_PUBLIC_
, rendendole accessibili sul lato client.
Rischio: Esposizione di chiavi API, credenziali di database o altri dati sensibili al pubblico, portando a violazioni dei dati.
Sensibile disabilitato
Misconfigurazione: Se disabilitato (predefinito) è possibile leggere i valori dei segreti generati.
Rischio: Maggiore probabilità di esposizione accidentale o accesso non autorizzato a informazioni sensibili.
Variabili ambientali condivise
Misconfigurazione: Queste sono variabili ambientali impostate a livello di Team e potrebbero contenere anche informazioni sensibili.
Rischio: Maggiore probabilità di esposizione accidentale o accesso non autorizzato a informazioni sensibili.
Scopo: Configurare integrazioni del repository Git, protezioni dei rami e trigger di distribuzione.
Passaggio di build ignorato (TODO)
Misconfigurazione: Sembra che questa opzione consenta di configurare uno script/ordini bash che verranno eseguiti quando un nuovo commit viene inviato in Github, il che potrebbe consentire RCE.
Rischio: TBD
Scopo: Collegare servizi e strumenti di terze parti per migliorare le funzionalità del progetto.
Integrazioni di terze parti insicure
Misconfigurazione: Integrazione con servizi di terze parti non affidabili o insicuri.
Rischio: Introduzione di vulnerabilità, leak di dati o backdoor attraverso integrazioni compromesse.
Integrazioni con permessi eccessivi
Misconfigurazione: Concessione di permessi eccessivi ai servizi integrati.
Rischio: Accesso non autorizzato alle risorse del progetto, manipolazione dei dati o interruzioni del servizio.
Mancanza di monitoraggio delle integrazioni
Misconfigurazione: Mancata monitorizzazione e audit delle integrazioni di terze parti.
Rischio: Rilevamento ritardato di integrazioni compromesse, aumentando l'impatto potenziale delle violazioni della sicurezza.
Scopo: Sicurezza delle distribuzioni attraverso vari meccanismi di protezione, controllando chi può accedere e distribuire nei tuoi ambienti.
Autenticazione Vercel
Misconfigurazione: Disabilitare l'autenticazione o non applicare controlli sui membri del team.
Rischio: Utenti non autorizzati possono accedere alle distribuzioni, portando a violazioni dei dati o uso improprio dell'applicazione.
Bypass della protezione per l'automazione
Misconfigurazione: Esporre il segreto di bypass pubblicamente o utilizzare segreti deboli.
Rischio: Gli attaccanti possono bypassare le protezioni della distribuzione, accedendo e manipolando distribuzioni protette.
Link condivisibili
Misconfigurazione: Condividere link indiscriminatamente o non revocare link obsoleti.
Rischio: Accesso non autorizzato a distribuzioni protette, bypassando autenticazione e restrizioni IP.
OPTIONS Allowlist
Misconfigurazione: Allowlisting di percorsi eccessivamente ampi o endpoint sensibili.
Rischio: Gli attaccanti possono sfruttare percorsi non protetti per eseguire azioni non autorizzate o bypassare controlli di sicurezza.
Protezione con password
Misconfigurazione: Utilizzo di password deboli o condivisione insicura.
Rischio: Accesso non autorizzato alle distribuzioni se le password vengono indovinate o leakate.
Nota: Disponibile nel piano Pro come parte della Protezione avanzata della distribuzione per un costo aggiuntivo di $150/mese.
Eccezioni alla protezione della distribuzione
Misconfigurazione: Aggiungere domini di produzione o sensibili all'elenco delle eccezioni inavvertitamente.
Rischio: Esposizione di distribuzioni critiche al pubblico, portando a leak di dati o accesso non autorizzato.
Nota: Disponibile nel piano Pro come parte della Protezione avanzata della distribuzione per un costo aggiuntivo di $150/mese.
IP fidati
Misconfigurazione: Specificare in modo errato indirizzi IP o intervalli CIDR.
Rischio: Utenti legittimi bloccati o IP non autorizzati che ottengono accesso.
Nota: Disponibile nel piano Enterprise.
Scopo: Configurare funzioni serverless, comprese impostazioni di runtime, allocazione della memoria e politiche di sicurezza.
Niente
Scopo: Gestire strategie e impostazioni di caching per ottimizzare le prestazioni e controllare l'archiviazione dei dati.
Purge Cache
Misconfigurazione: Consente di eliminare tutta la cache.
Rischio: Utenti non autorizzati che eliminano la cache portando a un potenziale DoS.
Scopo: Pianificare attività e script automatizzati da eseguire a intervalli specificati.
Disabilita Cron Job
Misconfigurazione: Consente di disabilitare i cron job dichiarati nel codice
Rischio: Potenziale interruzione del servizio (a seconda di cosa erano destinati i cron job)
Scopo: Configurare servizi di logging esterni per catturare e archiviare i log dell'applicazione per monitoraggio e auditing.
Niente (gestito dalle impostazioni dei team)
Scopo: Hub centrale per varie impostazioni di sicurezza relative all'accesso al progetto, protezione del codice sorgente e altro.
Log di build e protezione del codice sorgente
Misconfigurazione: Disabilitare la protezione o esporre i percorsi /logs
e /src
pubblicamente.
Rischio: Accesso non autorizzato ai log di build e al codice sorgente, portando a leak di informazioni e potenziale sfruttamento di vulnerabilità.
Protezione del fork di Git
Misconfigurazione: Consentire richieste di pull non autorizzate senza revisioni adeguate.
Rischio: Codice malevolo può essere fuso nel codice sorgente, introducendo vulnerabilità o backdoor.
Accesso sicuro al backend con federazione OIDC
Misconfigurazione: Configurazione errata dei parametri OIDC o utilizzo di URL di emittenti insicuri.
Rischio: Accesso non autorizzato ai servizi backend attraverso flussi di autenticazione difettosi.
Politica di retention delle distribuzioni
Misconfigurazione: Impostare periodi di retention troppo brevi (perdendo la cronologia delle distribuzioni) o troppo lunghi (retention di dati non necessaria).
Rischio: Impossibilità di eseguire rollback quando necessario o aumento del rischio di esposizione dei dati da distribuzioni vecchie.
Distribuzioni recentemente eliminate
Misconfigurazione: Non monitorare le distribuzioni eliminate o fare affidamento esclusivamente su eliminazioni automatiche.
Rischio: Perdita di cronologia critica delle distribuzioni, ostacolando audit e rollback.
Scopo: Accesso a impostazioni aggiuntive del progetto per ottimizzare le configurazioni e migliorare la sicurezza.
Elenco delle directory
Misconfigurazione: Abilitare l'elenco delle directory consente agli utenti di visualizzare i contenuti delle directory senza un file indice.
Rischio: Esposizione di file sensibili, struttura dell'applicazione e potenziali punti di ingresso per attacchi.
Abilita la modalità di sfida agli attacchi
Misconfigurazione: Abilitare questo migliora le difese dell'applicazione web contro DoS ma a scapito dell'usabilità
Rischio: Potenziali problemi di esperienza utente.
Misconfigurazione: Consente di sbloccare/bloccare il traffico
Rischio: Potenziale DoS consentendo traffico malevolo o bloccando traffico benigno
Misconfigurazione: Consente l'accesso per leggere l'intero codice sorgente dell'applicazione
Rischio: Potenziale esposizione di informazioni sensibili
Misconfigurazione: Questa protezione garantisce che l'applicazione client e server stiano sempre utilizzando la stessa versione, quindi non ci sono desincronizzazioni in cui il client utilizza una versione diversa dal server e quindi non si comprendono a vicenda.
Rischio: Disabilitare questo (se abilitato) potrebbe causare problemi di DoS in nuove distribuzioni in futuro
Trasferimento
Misconfigurazione: Consente di trasferire tutti i progetti a un altro team
Rischio: Un attaccante potrebbe rubare i progetti
Elimina progetto
Misconfigurazione: Consente di eliminare il team con tutti i progetti
Rischio: Eliminare i progetti
Limite di costo Speed Insights
Misconfigurazione: Un attaccante potrebbe aumentare questo numero
Rischio: Aumento dei costi
Aggiungi membri
Misconfigurazione: Un attaccante potrebbe mantenere persistenza invitando un account che controlla
Rischio: Persistenza dell'attaccante
Ruoli
Misconfigurazione: Concedere troppi permessi a persone che non ne hanno bisogno aumenta il rischio della configurazione di Vercel. Controlla tutti i possibili ruoli in https://vercel.com/docs/accounts/team-members-and-roles/access-roles
Rischio: Aumentare l'esposizione del Team Vercel
Un Gruppo di accesso in Vercel è una raccolta di progetti e membri del team con assegnazioni di ruolo predefinite, che consente una gestione centralizzata e semplificata dell'accesso attraverso più progetti.
Potenziali misconfigurazioni:
Over-Permissioning dei membri: Assegnare ruoli con più permessi del necessario, portando a accesso o azioni non autorizzate.
Assegnazioni di ruolo improprie: Assegnare in modo errato ruoli che non si allineano con le responsabilità dei membri del team, causando escalation dei privilegi.
Mancanza di segregazione dei progetti: Mancata separazione dei progetti sensibili, consentendo un accesso più ampio del previsto.
Gestione insufficiente del gruppo: Non rivedere o aggiornare regolarmente i Gruppi di accesso, risultando in permessi di accesso obsoleti o inappropriati.
Definizioni di ruolo incoerenti: Utilizzare definizioni di ruolo incoerenti o poco chiare tra diversi Gruppi di accesso, portando a confusione e lacune di sicurezza.
Log Drains a terzi:
Misconfigurazione: Un attaccante potrebbe configurare un Log Drain per rubare i log
Rischio: Persistenza parziale
Dominio email del team: Quando configurato, questa impostazione invita automaticamente gli account personali Vercel con indirizzi email che terminano nel dominio specificato (ad es., mydomain.com
) a unirsi al tuo team al momento della registrazione e nel dashboard.
Misconfigurazione:
Specificare il dominio email errato o un dominio scritto male nell'impostazione del dominio email del team.
Utilizzare un dominio email comune (ad es., gmail.com
, hotmail.com
) invece di un dominio specifico dell'azienda.
Rischi:
Accesso non autorizzato: Gli utenti con indirizzi email di domini non previsti potrebbero ricevere inviti a unirsi al tuo team.
Esposizione dei dati: Potenziale esposizione di informazioni sensibili del progetto a individui non autorizzati.
Ambiti Git protetti: Ti consente di aggiungere fino a 5 ambiti Git al tuo team per impedire ad altri team Vercel di distribuire repository dall'ambito protetto. Più team possono specificare lo stesso ambito, consentendo l'accesso a entrambi i team.
Misconfigurazione: Non aggiungere ambiti Git critici all'elenco protetto.
Rischi:
Distribuzioni non autorizzate: Altri team potrebbero distribuire repository dagli ambiti Git della tua organizzazione senza autorizzazione.
Esposizione della proprietà intellettuale: Codice proprietario potrebbe essere distribuito e accessibile al di fuori del tuo team.
Politiche delle variabili ambientali: Impone politiche per la creazione e modifica delle variabili ambientali del team. In particolare, puoi imporre che tutte le variabili ambientali siano create come Variabili Ambientali Sensibili, che possono essere decrittografate solo dal sistema di distribuzione di Vercel.
Misconfigurazione: Mantenere disabilitata l'applicazione delle variabili ambientali sensibili.
Rischi:
Esposizione dei segreti: Le variabili ambientali potrebbero essere visualizzate o modificate da membri del team non autorizzati.
Violazione dei dati: Informazioni sensibili come chiavi API e credenziali potrebbero essere leakate.
Audit Log: Fornisce un'esportazione dell'attività del team per un massimo di 90 giorni. I log di audit aiutano a monitorare e tracciare le azioni eseguite dai membri del team.
Misconfigurazione: Concedere accesso ai log di audit a membri del team non autorizzati.
Rischi:
Violazioni della privacy: Esposizione di attività e dati sensibili degli utenti.
Manomissione dei log: Attori malevoli potrebbero alterare o eliminare i log per coprire le proprie tracce.
SAML Single Sign-On: Consente la personalizzazione dell'autenticazione SAML e della sincronizzazione della directory per il tuo team, abilitando l'integrazione con un fornitore di identità (IdP) per l'autenticazione centralizzata e la gestione degli utenti.
Misconfigurazione: Un attaccante potrebbe inserire un backdoor nel Team impostando parametri SAML come Entity ID, SSO URL o impronte digitali del certificato.
Rischio: Mantenere persistenza
Visibilità degli indirizzi IP: Controlla se gli indirizzi IP, che potrebbero essere considerati informazioni personali ai sensi di alcune leggi sulla protezione dei dati, sono visualizzati nelle query di monitoraggio e nei Log Drains.
Misconfigurazione: Lasciare abilitata la visibilità degli indirizzi IP senza necessità.
Rischi:
Violazioni della privacy: Non conformità alle normative sulla protezione dei dati come il GDPR.
Ripercussioni legali: Potenziali multe e sanzioni per gestione impropria dei dati personali.
Blocco IP: Consente la configurazione di indirizzi IP e intervalli CIDR da cui Vercel dovrebbe bloccare le richieste. Le richieste bloccate non contribuiscono alla tua fatturazione.
Misconfigurazione: Potrebbe essere abusata da un attaccante per consentire traffico malevolo o bloccare traffico legittimo.
Rischi:
Negazione del servizio agli utenti legittimi: Blocco dell'accesso per utenti o partner validi.
Interruzioni operative: Perdita di disponibilità del servizio per determinate regioni o clienti.
Vercel Secure Compute consente connessioni sicure e private tra le Funzioni Vercel e gli ambienti backend (ad es., database) stabilendo reti isolate con indirizzi IP dedicati. Questo elimina la necessità di esporre pubblicamente i servizi backend, migliorando la sicurezza, la conformità e la privacy.
Selezione errata della regione AWS
Misconfigurazione: Scegliere una regione AWS per la rete Secure Compute che non corrisponde alla regione dei servizi backend.
Rischio: Maggiore latenza, potenziali problemi di conformità alla residenza dei dati e prestazioni degradate.
Blocchi CIDR sovrapposti
Misconfigurazione: Selezionare blocchi CIDR che si sovrappongono a VPC esistenti o altre reti.
Rischio: Conflitti di rete che portano a connessioni non riuscite, accesso non autorizzato o leak di dati tra le reti.
Configurazione impropria del peering VPC
Misconfigurazione: Configurazione errata del peering VPC (ad es., ID VPC errati, aggiornamenti incompleti della tabella di routing).
Rischio: Accesso non autorizzato all'infrastruttura backend, connessioni sicure non riuscite e potenziali violazioni dei dati.
Assegnazioni eccessive di progetti
Misconfigurazione: Assegnare più progetti a una singola rete Secure Compute senza adeguata isolamento.
Rischio: L'esposizione IP condivisa aumenta la superficie di attacco, potenzialmente consentendo a progetti compromessi di influenzare altri.
Gestione inadeguata degli indirizzi IP
Misconfigurazione: Mancata gestione o rotazione appropriata degli indirizzi IP dedicati.
Rischio: Spoofing IP, vulnerabilità di tracciamento e potenziale blacklisting se gli IP sono associati ad attività malevole.
Inclusione non necessaria di contenitori di build
Misconfigurazione: Aggiungere contenitori di build alla rete Secure Compute quando l'accesso backend non è richiesto durante le build.
Rischio: Superficie di attacco espansa, ritardi nell'approvvigionamento e consumo non necessario delle risorse di rete.
Mancata gestione sicura dei segreti di bypass
Misconfigurazione: Esporre o gestire in modo improprio i segreti utilizzati per bypassare le protezioni della distribuzione.
Rischio: Accesso non autorizzato a distribuzioni protette, consentendo agli attaccanti di manipolare o distribuire codice malevolo.
Ignorare le configurazioni di failover della regione
Misconfigurazione: Non impostare regioni di failover passive o configurare in modo errato le impostazioni di failover.
Rischio: Downtime del servizio durante le interruzioni della regione primaria, portando a disponibilità ridotta e potenziale incoerenza dei dati.
Superamento dei limiti di connessione del peering VPC
Misconfigurazione: Tentare di stabilire più connessioni di peering VPC del limite consentito (ad es., superando 50 connessioni).
Rischio: Impossibilità di connettere in modo sicuro i servizi backend necessari, causando fallimenti nelle distribuzioni e interruzioni operative.
Impostazioni di rete insicure
Misconfigurazione: Regole del firewall deboli, mancanza di crittografia o segmentazione inadeguata della rete all'interno della rete Secure Compute.
Rischio: Intercettazione dei dati, accesso non autorizzato ai servizi backend e maggiore vulnerabilità agli attacchi.
Scopo: Gestire variabili e segreti specifici dell'ambiente utilizzati da tutti i progetti.
Esposizione di variabili sensibili
Misconfigurazione: Prefissare variabili sensibili con NEXT_PUBLIC_
, rendendole accessibili sul lato client.
Rischio: Esposizione di chiavi API, credenziali di database o altri dati sensibili al pubblico, portando a violazioni dei dati.
Sensibile disabilitato
Misconfigurazione: Se disabilitato (predefinito) è possibile leggere i valori dei segreti generati.
Rischio: Maggiore probabilità di esposizione accidentale o accesso non autorizzato a informazioni sensibili.
Impara e pratica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)