Vercel Security
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
En Vercel, un Equipo es el entorno completo que pertenece a un cliente y un proyecto es una aplicación.
Para una revisión de endurecimiento de Vercel, necesitas solicitar un usuario con permiso de rol de Visualizador o al menos permiso de visualizador de proyecto sobre los proyectos a revisar (en caso de que solo necesites revisar los proyectos y no la configuración del Equipo también).
Propósito: Administrar configuraciones fundamentales del proyecto, como el nombre del proyecto, el marco y las configuraciones de construcción.
Transferencia
Mala Configuración: Permite transferir el proyecto a otro equipo
Riesgo: Un atacante podría robar el proyecto
Eliminar Proyecto
Mala Configuración: Permite eliminar el proyecto
Riesgo: Eliminar el proyecto
Propósito: Administrar dominios personalizados, configuraciones de DNS y configuraciones de SSL.
Errores de Configuración de DNS
Mala Configuración: Registros DNS incorrectos (A, CNAME) apuntando a servidores maliciosos.
Riesgo: Secuestro de dominio, interceptación de tráfico y ataques de phishing.
Gestión de Certificados SSL/TLS
Mala Configuración: Uso de certificados SSL/TLS débiles o caducados.
Riesgo: Vulnerable a ataques de hombre en el medio (MITM), comprometiendo la integridad y confidencialidad de los datos.
Implementación de DNSSEC
Mala Configuración: No habilitar DNSSEC o configuraciones incorrectas de DNSSEC.
Riesgo: Mayor susceptibilidad a ataques de suplantación de DNS y envenenamiento de caché.
Entorno utilizado por dominio
Mala Configuración: Cambiar el entorno utilizado por el dominio en producción.
Riesgo: Exponer secretos o funcionalidades potenciales que no deberían estar disponibles en producción.
Propósito: Definir diferentes entornos (Desarrollo, Vista previa, Producción) con configuraciones y variables específicas.
Aislamiento de Entorno
Mala Configuración: Compartir variables de entorno entre entornos.
Riesgo: Filtración de secretos de producción en entornos de desarrollo o vista previa, aumentando la exposición.
Acceso a Entornos Sensibles
Mala Configuración: Permitir acceso amplio a entornos de producción.
Riesgo: Cambios no autorizados o acceso a aplicaciones en vivo, lo que puede llevar a tiempos de inactividad o filtraciones de datos.
Propósito: Administrar variables y secretos específicos del entorno utilizados por la aplicación.
Exposición de Variables Sensibles
Mala Configuración: Prefijar variables sensibles con NEXT_PUBLIC_
, haciéndolas accesibles en el lado del cliente.
Riesgo: Exposición de claves API, credenciales de base de datos u otros datos sensibles al público, lo que lleva a filtraciones de datos.
Sensibles deshabilitados
Mala Configuración: Si está deshabilitado (por defecto) es posible leer los valores de los secretos generados.
Riesgo: Mayor probabilidad de exposición accidental o acceso no autorizado a información sensible.
Variables de Entorno Compartidas
Mala Configuración: Estas son variables de entorno establecidas a nivel de Equipo y también podrían contener información sensible.
Riesgo: Mayor probabilidad de exposición accidental o acceso no autorizado a información sensible.
Propósito: Configurar integraciones de repositorios Git, protecciones de ramas y desencadenadores de implementación.
Paso de Construcción Ignorado (TODO)
Mala Configuración: Parece que esta opción permite configurar un script/commandos bash que se ejecutará cuando se empuje un nuevo commit en Github, lo que podría permitir RCE.
Riesgo: TBD
Propósito: Conectar servicios y herramientas de terceros para mejorar las funcionalidades del proyecto.
Integraciones de Terceros Inseguras
Mala Configuración: Integrarse con servicios de terceros no confiables o inseguros.
Riesgo: Introducción de vulnerabilidades, filtraciones de datos o puertas traseras a través de integraciones comprometidas.
Integraciones con Permisos Excesivos
Mala Configuración: Otorgar permisos excesivos a servicios integrados.
Riesgo: Acceso no autorizado a recursos del proyecto, manipulación de datos o interrupciones del servicio.
Falta de Monitoreo de Integraciones
Mala Configuración: No monitorear ni auditar integraciones de terceros.
Riesgo: Detección tardía de integraciones comprometidas, aumentando el impacto potencial de las brechas de seguridad.
Propósito: Asegurar implementaciones a través de varios mecanismos de protección, controlando quién puede acceder y desplegar en tus entornos.
Autenticación de Vercel
Mala Configuración: Deshabilitar la autenticación o no hacer cumplir las verificaciones de miembros del equipo.
Riesgo: Usuarios no autorizados pueden acceder a implementaciones, lo que lleva a filtraciones de datos o mal uso de la aplicación.
Bypass de Protección para Automatización
Mala Configuración: Exponer el secreto de bypass públicamente o usar secretos débiles.
Riesgo: Los atacantes pueden eludir las protecciones de implementación, accediendo y manipulando implementaciones protegidas.
Enlaces Compartibles
Mala Configuración: Compartir enlaces indiscriminadamente o no revocar enlaces obsoletos.
Riesgo: Acceso no autorizado a implementaciones protegidas, eludiendo autenticación y restricciones de IP.
Opciones de Lista Blanca
Mala Configuración: Permitir listas blancas de rutas demasiado amplias o puntos finales sensibles.
Riesgo: Los atacantes pueden explotar rutas no protegidas para realizar acciones no autorizadas o eludir verificaciones de seguridad.
Protección por Contraseña
Mala Configuración: Usar contraseñas débiles o compartirlas de manera insegura.
Riesgo: Acceso no autorizado a implementaciones si las contraseñas son adivinadas o filtradas.
Nota: Disponible en el plan Pro como parte de Protección Avanzada de Implementación por un adicional de $150/mes.
Excepciones de Protección de Implementación
Mala Configuración: Agregar dominios de producción o sensibles a la lista de excepciones inadvertidamente.
Riesgo: Exposición de implementaciones críticas al público, lo que lleva a filtraciones de datos o acceso no autorizado.
Nota: Disponible en el plan Pro como parte de Protección Avanzada de Implementación por un adicional de $150/mes.
IPs de Confianza
Mala Configuración: Especificar incorrectamente direcciones IP o rangos CIDR.
Riesgo: Usuarios legítimos siendo bloqueados o IPs no autorizadas ganando acceso.
Nota: Disponible en el plan Enterprise.
Propósito: Configurar funciones sin servidor, incluyendo configuraciones de tiempo de ejecución, asignación de memoria y políticas de seguridad.
Nada
Propósito: Administrar estrategias y configuraciones de caché para optimizar el rendimiento y controlar el almacenamiento de datos.
Purgar Caché
Mala Configuración: Permite eliminar toda la caché.
Riesgo: Usuarios no autorizados eliminando la caché, lo que lleva a un potencial DoS.
Propósito: Programar tareas y scripts automatizados para que se ejecuten en intervalos especificados.
Deshabilitar Tarea Programada
Mala Configuración: Permite deshabilitar tareas programadas declaradas dentro del código.
Riesgo: Interrupción potencial del servicio (dependiendo de para qué estaban destinadas las tareas programadas).
Propósito: Configurar servicios de registro externos para capturar y almacenar registros de aplicaciones para monitoreo y auditoría.
Nada (gestionado desde la configuración de equipos)
Propósito: Centro central para varias configuraciones relacionadas con la seguridad que afectan el acceso al proyecto, la protección de la fuente y más.
Registros de Construcción y Protección de Fuente
Mala Configuración: Deshabilitar la protección o exponer rutas /logs
y /src
públicamente.
Riesgo: Acceso no autorizado a registros de construcción y código fuente, lo que lleva a filtraciones de información y potencial explotación de vulnerabilidades.
Protección de Fork de Git
Mala Configuración: Permitir solicitudes de extracción no autorizadas sin revisiones adecuadas.
Riesgo: Código malicioso puede ser fusionado en la base de código, introduciendo vulnerabilidades o puertas traseras.
Acceso Seguro al Backend con Federación OIDC
Mala Configuración: Configurar incorrectamente los parámetros de OIDC o usar URLs de emisor inseguras.
Riesgo: Acceso no autorizado a servicios de backend a través de flujos de autenticación defectuosos.
Política de Retención de Implementaciones
Mala Configuración: Establecer períodos de retención demasiado cortos (perdiendo el historial de implementaciones) o demasiado largos (retención innecesaria de datos).
Riesgo: Incapacidad para realizar retrocesos cuando sea necesario o mayor riesgo de exposición de datos de implementaciones antiguas.
Implementaciones Recientemente Eliminadas
Mala Configuración: No monitorear implementaciones eliminadas o depender únicamente de eliminaciones automatizadas.
Riesgo: Pérdida de historial crítico de implementaciones, dificultando auditorías y retrocesos.
Propósito: Acceso a configuraciones adicionales del proyecto para ajustar configuraciones y mejorar la seguridad.
Listado de Directorios
Mala Configuración: Habilitar el listado de directorios permite a los usuarios ver el contenido del directorio sin un archivo índice.
Riesgo: Exposición de archivos sensibles, estructura de la aplicación y posibles puntos de entrada para ataques.
Habilitar Modo de Desafío de Ataque
Mala Configuración: Habilitar esto mejora las defensas de la aplicación web contra DoS, pero a costa de la usabilidad.
Riesgo: Problemas potenciales de experiencia del usuario.
Mala Configuración: Permite desbloquear/bloquear tráfico.
Riesgo: Potencial DoS permitiendo tráfico malicioso o bloqueando tráfico benigno.
Mala Configuración: Permite acceso para leer el código fuente completo de la aplicación.
Riesgo: Exposición potencial de información sensible.
Mala Configuración: Esta protección asegura que la aplicación del cliente y del servidor siempre estén usando la misma versión, por lo que no hay desincronizaciones donde el cliente usa una versión diferente del servidor y, por lo tanto, no se entienden entre sí.
Riesgo: Deshabilitar esto (si está habilitado) podría causar problemas de DoS en nuevas implementaciones en el futuro.
Transferencia
Mala Configuración: Permite transferir todos los proyectos a otro equipo.
Riesgo: Un atacante podría robar los proyectos.
Eliminar Proyecto
Mala Configuración: Permite eliminar el equipo con todos los proyectos.
Riesgo: Eliminar los proyectos.
Límite de Costo de Speed Insights
Mala Configuración: Un atacante podría aumentar este número.
Riesgo: Aumento de costos.
Agregar miembros
Mala Configuración: Un atacante podría mantener persistencia invitando a una cuenta que controla.
Riesgo: Persistencia del atacante.
Roles
Mala Configuración: Otorgar demasiados permisos a personas que no los necesitan aumenta el riesgo de la configuración de Vercel. Verifica todos los roles posibles en https://vercel.com/docs/accounts/team-members-and-roles/access-roles.
Riesgo: Aumentar la exposición del Equipo de Vercel.
Un Grupo de Acceso en Vercel es una colección de proyectos y miembros del equipo con asignaciones de roles predefinidas, lo que permite una gestión de acceso centralizada y simplificada a través de múltiples proyectos.
Posibles Mala Configuraciones:
Sobre-Permisos a Miembros: Asignar roles con más permisos de los necesarios, lo que lleva a acceso o acciones no autorizadas.
Asignaciones de Rol Incorrectas: Asignar incorrectamente roles que no se alinean con las responsabilidades de los miembros del equipo, causando escalada de privilegios.
Falta de Segregación de Proyectos: No separar proyectos sensibles, permitiendo un acceso más amplio del que se pretendía.
Gestión Insuficiente de Grupos: No revisar o actualizar regularmente los Grupos de Acceso, resultando en permisos de acceso obsoletos o inapropiados.
Definiciones de Rol Inconsistentes: Usar definiciones de rol inconsistentes o poco claras en diferentes Grupos de Acceso, llevando a confusión y brechas de seguridad.
Drenajes de Registro a terceros:
Mala Configuración: Un atacante podría configurar un Drenaje de Registro para robar los registros.
Riesgo: Persistencia parcial.
Dominio de Correo Electrónico del Equipo: Cuando se configura, esta configuración invita automáticamente a Cuentas Personales de Vercel con direcciones de correo electrónico que terminan en el dominio especificado (por ejemplo, mydomain.com
) a unirse a tu equipo al registrarse y en el panel de control.
Mala Configuración:
Especificar el dominio de correo electrónico incorrecto o un dominio mal escrito en la configuración del Dominio de Correo Electrónico del Equipo.
Usar un dominio de correo electrónico común (por ejemplo, gmail.com
, hotmail.com
) en lugar de un dominio específico de la empresa.
Riesgos:
Acceso No Autorizado: Usuarios con direcciones de correo electrónico de dominios no deseados pueden recibir invitaciones para unirse a tu equipo.
Exposición de Datos: Exposición potencial de información sensible del proyecto a individuos no autorizados.
Ámbitos de Git Protegidos: Te permite agregar hasta 5 ámbitos de Git a tu equipo para evitar que otros equipos de Vercel implementen repositorios del ámbito protegido. Múltiples equipos pueden especificar el mismo ámbito, permitiendo el acceso a ambos equipos.
Mala Configuración: No agregar ámbitos de Git críticos a la lista protegida.
Riesgos:
Implementaciones No Autorizadas: Otros equipos pueden implementar repositorios de los ámbitos de Git de tu organización sin autorización.
Exposición de Propiedad Intelectual: Código propietario podría ser implementado y accesado fuera de tu equipo.
Políticas de Variables de Entorno: Hace cumplir políticas para la creación y edición de las variables de entorno del equipo. Específicamente, puedes hacer cumplir que todas las variables de entorno se creen como Variables de Entorno Sensibles, que solo pueden ser desencriptadas por el sistema de implementación de Vercel.
Mala Configuración: Mantener la aplicación de variables de entorno sensibles deshabilitada.
Riesgos:
Exposición de Secretos: Las variables de entorno pueden ser vistas o editadas por miembros no autorizados del equipo.
Filtración de Datos: Información sensible como claves API y credenciales podría ser filtrada.
Registro de Auditoría: Proporciona una exportación de la actividad del equipo por hasta los últimos 90 días. Los registros de auditoría ayudan en el monitoreo y seguimiento de acciones realizadas por los miembros del equipo.
Mala Configuración: Otorgar acceso a registros de auditoría a miembros no autorizados del equipo.
Riesgos:
Violaciones de Privacidad: Exposición de actividades y datos sensibles de usuarios.
Manipulación de Registros: Actores maliciosos podrían alterar o eliminar registros para encubrir sus huellas.
SAML Single Sign-On: Permite la personalización de la autenticación SAML y la sincronización de directorios para tu equipo, habilitando la integración con un Proveedor de Identidad (IdP) para autenticación y gestión de usuarios centralizadas.
Mala Configuración: Un atacante podría crear una puerta trasera en la configuración del Equipo estableciendo parámetros SAML como ID de Entidad, URL de SSO o huellas digitales de certificados.
Riesgo: Mantener persistencia.
Visibilidad de Direcciones IP: Controla si las direcciones IP, que pueden considerarse información personal bajo ciertas leyes de protección de datos, se muestran en consultas de Monitoreo y Drenajes de Registro.
Mala Configuración: Dejar habilitada la visibilidad de direcciones IP sin necesidad.
Riesgos:
Violaciones de Privacidad: No cumplimiento con regulaciones de protección de datos como GDPR.
Repercusiones Legales: Posibles multas y sanciones por manejo inadecuado de datos personales.
Bloqueo de IP: Permite la configuración de direcciones IP y rangos CIDR que Vercel debería bloquear. Las solicitudes bloqueadas no contribuyen a tu facturación.
Mala Configuración: Podría ser abusada por un atacante para permitir tráfico malicioso o bloquear tráfico legítimo.
Riesgos:
Denegación de Servicio a Usuarios Legítimos: Bloqueo de acceso para usuarios o socios válidos.
Interrupciones Operativas: Pérdida de disponibilidad del servicio para ciertas regiones o clientes.
Vercel Secure Compute permite conexiones seguras y privadas entre Funciones de Vercel y entornos de backend (por ejemplo, bases de datos) estableciendo redes aisladas con direcciones IP dedicadas. Esto elimina la necesidad de exponer servicios de backend públicamente, mejorando la seguridad, el cumplimiento y la privacidad.
Selección Incorrecta de Región de AWS
Mala Configuración: Elegir una región de AWS para la red de Cómputo Seguro que no coincida con la región de los servicios de backend.
Riesgo: Aumento de latencia, posibles problemas de cumplimiento de residencia de datos y degradación del rendimiento.
Bloques CIDR Superpuestos
Mala Configuración: Seleccionar bloques CIDR que se superpongan con VPC existentes u otras redes.
Riesgo: Conflictos de red que llevan a conexiones fallidas, acceso no autorizado o filtración de datos entre redes.
Configuración Incorrecta de Peering de VPC
Mala Configuración: Configurar incorrectamente el peering de VPC (por ejemplo, IDs de VPC incorrectos, actualizaciones incompletas de la tabla de rutas).
Riesgo: Acceso no autorizado a la infraestructura de backend, conexiones seguras fallidas y posibles filtraciones de datos.
Asignaciones Excesivas de Proyectos
Mala Configuración: Asignar múltiples proyectos a una sola red de Cómputo Seguro sin el aislamiento adecuado.
Riesgo: La exposición compartida de IP aumenta la superficie de ataque, permitiendo que proyectos comprometidos afecten a otros.
Gestión Inadecuada de Direcciones IP
Mala Configuración: No gestionar o rotar adecuadamente las direcciones IP dedicadas.
Riesgo: Suplantación de IP, vulnerabilidades de seguimiento y posible inclusión en listas negras si las IP están asociadas con actividades maliciosas.
Incluir Contenedores de Construcción Innecesariamente
Mala Configuración: Agregar contenedores de construcción a la red de Cómputo Seguro cuando no se requiere acceso al backend durante las construcciones.
Riesgo: Superficie de ataque expandida, retrasos en la provisión y consumo innecesario de recursos de red.
Falta de Manejo Seguro de Secretos de Bypass
Mala Configuración: Exponer o manejar incorrectamente secretos utilizados para eludir protecciones de implementación.
Riesgo: Acceso no autorizado a implementaciones protegidas, permitiendo a los atacantes manipular o implementar código malicioso.
Ignorar Configuraciones de Failover de Región
Mala Configuración: No configurar regiones de failover pasivas o configurar incorrectamente las configuraciones de failover.
Riesgo: Tiempo de inactividad del servicio durante interrupciones en la región principal, lo que lleva a una disponibilidad reducida y posible inconsistencia de datos.
Exceder Límites de Conexión de Peering de VPC
Mala Configuración: Intentar establecer más conexiones de peering de VPC de las permitidas (por ejemplo, exceder 50 conexiones).
Riesgo: Incapacidad para conectar de manera segura los servicios de backend necesarios, causando fallos en las implementaciones y interrupciones operativas.
Configuraciones de Red Inseguras
Mala Configuración: Reglas de firewall débiles, falta de cifrado o segmentación de red inadecuada dentro de la red de Cómputo Seguro.
Riesgo: Intercepción de datos, acceso no autorizado a servicios de backend y mayor vulnerabilidad a ataques.
Propósito: Administrar variables y secretos específicos del entorno utilizados por todos los proyectos.
Exposición de Variables Sensibles
Mala Configuración: Prefijar variables sensibles con NEXT_PUBLIC_
, haciéndolas accesibles en el lado del cliente.
Riesgo: Exposición de claves API, credenciales de base de datos u otros datos sensibles al público, lo que lleva a filtraciones de datos.
Sensibles deshabilitados
Mala Configuración: Si está deshabilitado (por defecto) es posible leer los valores de los secretos generados.
Riesgo: Mayor probabilidad de exposición accidental o acceso no autorizado a información sensible.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)