FixVibe
Covered by FixVibehigh

Lista de verificación de seguridad Supabase: claves y almacenamiento RLS, API

Este artículo de investigación describe las configuraciones de seguridad críticas para proyectos Supabase. Se centra en la implementación adecuada de la seguridad de nivel de fila (RLS) para proteger las filas de la base de datos, el manejo seguro de claves anon y service_role API y la aplicación del control de acceso a los depósitos de almacenamiento para mitigar los riesgos de exposición de datos y acceso no autorizado.

CWE-284CWE-668

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]