FixVibe

// docs / baas security / umbrella scanner

Escáner de configuraciones erróneas de BaaS: encuentra rutas de datos públicas antes que los usuarios

Los proveedores Backend-as-a-Service — Supabase, Firebase, Clerk, Auth0, Appwrite, Convex — todos fallan en seguridad de la misma forma: la plataforma incluye valores predeterminados razonables, el desarrollador (o la herramienta de codificación con IA) coge un atajo y se abre una ruta pública entre un atacante no autenticado y los datos de los clientes. Un escáner de configuraciones erróneas de BaaS es la única herramienta que sondea esa ruta desde fuera como lo haría un atacante. Este artículo mapea las cinco clases recurrentes de configuración errónea, explica cómo funciona el escaneo paraguas de BaaS de FixVibe, compara los cuatro proveedores principales y contrasta el escáner consciente de BaaS contra las herramientas DAST generales.

Por qué las configuraciones erróneas de BaaS tienen una forma recurrente

Toda plataforma BaaS sigue la misma arquitectura: un backend gestionado con un SDK cliente fino que habla con él desde el navegador. El cliente de cara al navegador necesita alguna credencial — una clave anon, una clave publicable, un ID de proyecto Firebase — para identificarse ante el backend. Esa credencial es intencionalmente pública; la seguridad de la arquitectura recae en que los controles de acceso a nivel de plataforma (RLS, reglas, listas de permitidos) hagan su trabajo.

Las herramientas de codificación con IA construyen sobre esta arquitectura sin internalizar la capa de controles de la plataforma. Conectan el SDK cliente correctamente, aceptan las reglas permisivas por defecto de la plataforma (que existen para ser amigables con los tutoriales) y publican. La forma recurrente es: credencial pública + regla permisiva por defecto + override ausente = exposición de datos. Las cinco clases de configuración errónea de abajo son todas variantes de esta forma.

Las cinco clases recurrentes de configuración errónea

Aparecen en todos los proveedores BaaS. Un escaneo completo cubre los cinco contra cada proveedor en uso:

Clase 1: Clave incorrecta en el bundle del navegador

El navegador envía la clave secret/admin (Supabase service_role, clave privada del SDK Admin de Firebase, Clerk sk_*, secret de cliente de Auth0) en lugar del equivalente público/anon. El navegador se convierte en un cliente de administrador sin restricciones. Cubierto por la verificación de secretos en bundle de FixVibe.

Clase 2: Capa de control de acceso deshabilitada o permisiva

RLS apagado, reglas Firebase if true, lista de callbacks de Auth0 con comodín. La credencial en el navegador es la correcta — pero el límite a nivel de plataforma que debía constreñirla no está haciendo su trabajo.

Clase 3: Lecturas anónimas de recursos sensibles

Colecciones de Firestore legibles de forma anónima, buckets de Supabase Storage listables anónimamente, API de gestión de Auth0 accesible sin autenticación. El escaneo pregunta: "sin credenciales, ¿qué puedo leer?"

Clase 4: Artefactos de modo prueba en producción

Claves de prueba (pk_test_*, sb_test_*) en un despliegue de producción; aplicaciones Firebase en modo dev accesibles desde el dominio vivo; aplicaciones Auth0 de tenant de prueba con ajustes más débiles que producción. El escaneo compara las claves en tiempo de ejecución contra los prefijos esperados de producción.

Clase 5: Verificación de firma de webhook ausente

Los webhooks de Clerk, Stripe y Supabase firman sus payloads. Un handler que no verifica la firma es una primitiva de escritura en base de datos para cualquier atacante que adivine la URL. Se detecta por la forma de la respuesta — una solicitud sin firmar que recibe un 200 significa que la verificación se ha omitido.

Cómo funciona el escaneo paraguas de BaaS de FixVibe

La fase de BaaS de FixVibe se ejecuta en tres etapas, cada una produciendo hallazgos distintos:

  1. <strong>Stage 1 — provider fingerprinting.</strong> The scanner crawls the deployed app, parses every JavaScript chunk, and identifies which BaaS providers the app uses. Each provider has a distinctive runtime signature: Supabase uses <code>*.supabase.co</code>; Firebase uses <code>firebase.initializeApp({ projectId: ... })</code>; Clerk uses <code>pk_*</code> keys with a known prefix; Auth0 uses <code>clientId</code> and <code>domain</code>. The scanner records which providers are present and extracts the project identifiers.
  2. Etapa 2 — sondeos específicos por proveedor. Para cada proveedor detectado, el escáner ejecuta la verificación específica del proveedor: baas.supabase-rls sondea PostgREST; baas.firebase-rules sondea Firestore + RTDB + Storage; baas.clerk-auth0 valida el prefijo de las claves incrustadas; la verificación de secretos en bundle valida que no se ha filtrado ninguna credencial de nivel de servicio. Cada sondeo se ejecuta independientemente — un hallazgo de Supabase no bloquea el escaneo de Firebase.
  3. Etapa 3 — correlación entre proveedores. El escáner cruza los hallazgos. Una clave de rol de servicio filtrada de Supabase junto a RLS faltante es más grave que cualquiera de los dos hallazgos por separado — el reporte lo destaca. Varios proveedores de identidad (Clerk + Auth0 + autenticación personalizada) en la misma aplicación es un hallazgo estructural marcado para revisión.

Cada sondeo es pasivo: como máximo una lectura anónima por recurso, con la forma de la respuesta registrada pero el contenido de las filas nunca paginado o almacenado. Los sondeos de escritura y modificación están restringidos por la verificación de propiedad de dominio — nunca se ejecutan contra objetivos no verificados.

Qué encuentra el escáner por proveedor

Cada proveedor BaaS tiene una superficie diferente y una estrategia de escaneo diferente. Esto es lo que está cubierto:

Cómo se compara un escáner de BaaS con DAST y SAST generales

Un escáner consciente de BaaS hace un trabajo específico que otras herramientas no. La comparación:

AspectoFixVibe (DAST consciente de BaaS)DAST general (Burp / ZAP)SAST / SCA (Snyk / Semgrep)
Cobertura de BaaSVerificaciones nativas para Supabase, Firebase, Clerk, Auth0, AppwriteRastreo web genérico; sin sondeos específicos de proveedorAnálisis estático del repo solo; sin validación de producción
Tiempo de configuraciónURL → ejecutar → resultados en 60 segundosHoras: configurar spider, autenticación, alcanceDía: integrar en CI del repo
Lo que demuestraExposición en producción con evidencia a nivel HTTPVulns de app web (XSS, SQLi); BaaS vía config manualPatrones de código que pueden o no llegar a producción
Inspección de bundle de JavaScriptDecodifica JWTs, compara prefijos de secret, recorre chunksLimitada — solo grep basado en cadenasSí, pero solo en el repo, no desplegado
Escaneo continuoMensual / por despliegue vía API + MCPManual; configura tú la programaciónPor commit (bueno para código, ciego al runtime)
Precio para solo / equipo pequeñoPlan gratuito; de pago desde $19/mesBurp Pro $499/año; ZAP gratis pero con muchos falsos positivosSnyk gratis / Semgrep gratis; planes de pago desde $25/dev

Alcance honesto: lo que este escáner no reemplaza

Un escáner DAST consciente de BaaS es una herramienta enfocada, no un programa de seguridad completo. No:

  • Reemplaza SAST o SCA. El análisis estático encuentra CVEs en dependencias (Snyk, Semgrep) y vulnerabilidades a nivel de código (SonarQube) que un escáner DAST no puede. Ejecuta ambos.
  • Reemplaza las pruebas de penetración manuales. Un pentester humano encuentra fallos de lógica de negocio, casos límite de autorización y vulnerabilidades encadenadas que ningún escáner puede. Contrata un pentester antes de un lanzamiento importante o auditoría de cumplimiento.
  • Audita tu código o repo en busca de secretos en el historial git. La verificación de secretos en bundle cubre lo que está desplegado actualmente, no lo que se confirmó históricamente. Usa git-secrets o gitleaks para la higiene del repo.
  • Cubre servicios backend no-BaaS. Si tu aplicación usa un backend personalizado (Express, Rails, Django, FastAPI), FixVibe escanea su superficie HTTP pero no sondea la base de datos o infraestructura detrás. Eso es territorio de DAST + SAST general.

Preguntas frecuentes

¿Funciona el escaneo paraguas si mi aplicación usa dos proveedores BaaS (por ej., Supabase + Clerk)?

Sí — la identificación de proveedores y los sondeos por proveedor son independientes. El escáner detecta ambos, ejecuta ambos conjuntos de verificación y reporta correlaciones entre proveedores (por ej., una plantilla JWT de Supabase desde Clerk que envía email como claim junto con RLS faltante).

¿En qué se diferencia esto de ejecutar Burp Suite Pro contra mi aplicación?

Burp es un banco de trabajo DAST general. De serie, Burp no sabe qué es PostgREST, Firestore o la ruta de callback de Auth0 — tienes que configurar manualmente el alcance, escribir extensiones e interpretar respuestas. FixVibe viene con sondeos BaaS incorporados y formato de evidencia con forma BaaS. Burp gana en cobertura general de apps web (XSS, SQLi, lógica de negocio); FixVibe gana en hallazgos específicos de BaaS.

¿Qué hay de App Check (Firebase) o atestación (Apple / Google)?

App Check hace que los escaneos externos oportunistas devuelvan 403 en cada sondeo — el resultado correcto para un bot malicioso. Un escaneo de FixVibe desde un cliente sin atestación se comporta igual. Si tienes App Check habilitado y FixVibe todavía reporta hallazgos, significa que tus reglas están abiertas también para clientes atestados, lo cual es el riesgo real. App Check + reglas correctas es el patrón de defensa en profundidad.

¿Puede el escáner verificar mi corrección?

Sí — vuelve a ejecutarlo tras aplicar la corrección. Los IDs de verificación (por ej., baas.supabase-rls) son estables entre ejecuciones, por lo que puedes comparar hallazgos: un hallazgo que era open en la ejecución 1 y ausente en la ejecución 2 es prueba de que la corrección se aplicó.

Próximos pasos

Ejecuta un escaneo gratuito de FixVibe contra tu URL de producción — las verificaciones de fase BaaS están en todos los planes, incluido el gratuito. Para profundizaciones específicas por proveedor, los artículos individuales de esta sección cubren cada proveedor en detalle: RLS de Supabase, Exposición de clave de servicio de Supabase, Storage de Supabase, Reglas de Firebase, Firebase if-true, Clerk, y Auth0.

// escanea tu superficie de baas

Encuentra la tabla abierta antes que otra persona lo haga.

Introduce una URL de producción. FixVibe enumera los proveedores de BaaS con los que habla tu aplicación, identifica sus endpoints públicos y reporta lo que un cliente no autenticado puede leer o escribir. Gratis, sin instalación, sin tarjeta.

  • Plan gratuito — 3 escaneos al mes, sin tarjeta de registro.
  • Identificación pasiva de BaaS — no se requiere verificación de dominio.
  • Supabase, Firebase, Clerk, Auth0, Appwrite y más.
  • Prompts de corrección con IA en cada hallazgo — pégalos de vuelta en Cursor / Claude Code.
Escáner de configuraciones erróneas de BaaS: encuentra rutas de datos públicas antes que los usuarios — Docs · FixVibe