El gancho
Proteger un proyecto Supabase requiere un enfoque de múltiples capas centrado en la administración de claves API, la seguridad de la base de datos y los permisos de almacenamiento. [S1] La seguridad de nivel de fila configurada incorrectamente (RLS) o las claves confidenciales expuestas pueden provocar incidentes importantes de exposición de datos. [S2] [S3]
¿Qué cambió?
Esta investigación consolida los controles de seguridad básicos para entornos Supabase basados en pautas de arquitectura oficiales. [S1] Se centra en la transición de las configuraciones de desarrollo predeterminadas a posturas reforzadas en producción, específicamente en lo que respecta a los mecanismos de control de acceso. [S2] [S3]
¿Quién se ve afectado?
Las aplicaciones que utilizan Supabase como backend como servicio (BaaS) se ven afectadas, en particular aquellas que manejan datos específicos del usuario o activos privados. [S2] Los desarrolladores que incluyen la clave service_role en paquetes del lado del cliente o que no habilitan RLS corren un alto riesgo. [S1]
Cómo funciona el problema
Supabase aprovecha la seguridad de nivel de fila de PostgreSQL para restringir el acceso a los datos. [S2] De forma predeterminada, si RLS no está habilitado en una tabla, cualquier usuario con la clave anon, que suele ser pública, puede acceder a todos los registros. [S1] De manera similar, el almacenamiento Supabase requiere políticas explícitas para definir qué usuarios o roles pueden realizar operaciones en depósitos de archivos. [S3]
Lo que obtiene un atacante
Un atacante que posea una clave pública API puede explotar las tablas a las que les falta RLS para leer, modificar o eliminar datos que pertenecen a otros usuarios. [S1] [S2] El acceso no autorizado a los depósitos de almacenamiento puede provocar la exposición de archivos privados del usuario o la eliminación de activos críticos de la aplicación. [S3]
Cómo lo prueba FixVibe
FixVibe ahora cubre esto como parte de sus comprobaciones Supabase. baas.supabase-security-checklist-backfill revisa los metadatos públicos del depósito de almacenamiento Supabase, la exposición de listados de objetos anónimos, la denominación de depósitos confidenciales y las señales de almacenamiento anónimos del límite público anónimo. Las comprobaciones en vivo relacionadas inspeccionan la exposición de claves de función de servicio, la postura de Supabase REST/RLS y las migraciones de SQL del repositorio en busca de RLS faltantes.
Qué arreglar
Habilite siempre la seguridad de nivel de fila en las tablas de la base de datos e implemente políticas granulares para los usuarios autenticados. [S2] Asegúrese de que solo se utilice la clave 'anon' en el código del lado del cliente, mientras que la clave 'service_role' permanece en el servidor. [S1] Configure el control de acceso al almacenamiento para garantizar que los depósitos de archivos sean privados de forma predeterminada y que el acceso se otorgue solo a través de políticas de seguridad definidas. [S3]
