FixVibe
Covered by FixVibehigh

Lista de verificação de segurança Supabase: chaves RLS, API e armazenamento

Este artigo de pesquisa descreve configurações críticas de segurança para projetos Supabase. Ele se concentra na implementação adequada da segurança em nível de linha (RLS) para proteger as linhas do banco de dados, no manuseio seguro de chaves API anon e service_role e na aplicação do controle de acesso para buckets de armazenamento para mitigar os riscos de exposição de dados e acesso não autorizado.

CWE-284CWE-668

O gancho

Proteger um projeto Supabase requer uma abordagem multicamadas com foco no gerenciamento de chaves API, segurança de banco de dados e permissões de armazenamento. [S1] Segurança em nível de linha configurada incorretamente (RLS) ou chaves confidenciais expostas podem levar a incidentes significativos de exposição de dados. [S2] [S3]

O que mudou

Esta pesquisa consolida os principais controles de segurança para ambientes Supabase com base nas diretrizes oficiais de arquitetura. [S1] Centra-se na transição de configurações de desenvolvimento padrão para posturas reforçadas de produção, especificamente em relação aos mecanismos de controle de acesso. [S2] [S3]

Quem é afetado

Os aplicativos que utilizam Supabase como backend como serviço (BaaS) são afetados, especialmente aqueles que lidam com dados específicos do usuário ou ativos privados. [S2] Os desenvolvedores que incluem a chave service_role em pacotes do lado do cliente ou não conseguem ativar RLS correm alto risco. [S1]

Como funciona o problema

Supabase aproveita a segurança em nível de linha do PostgreSQL para restringir o acesso aos dados. [S2] Por padrão, se RLS não estiver habilitado em uma tabela, qualquer usuário com a chave anon — que geralmente é pública — poderá acessar todos os registros. [S1] Da mesma forma, o armazenamento Supabase requer políticas explícitas para definir quais usuários ou funções podem executar operações em depósitos de arquivos. [S3]

O que um invasor obtém

Um invasor que possui uma chave pública API pode explorar tabelas sem RLS para ler, modificar ou excluir dados pertencentes a outros usuários. [S1] [S2] O acesso não autorizado a buckets de armazenamento pode levar à exposição de arquivos privados de usuários ou à exclusão de ativos críticos de aplicativos. [S3]

Como FixVibe testa isso

FixVibe agora cobre isso como parte de suas verificações Supabase. baas.supabase-security-checklist-backfill analisa metadados de bucket de armazenamento públicos Supabase, exposição anônima de listagem de objetos, nomenclatura de bucket confidencial e sinais de armazenamento não vinculados do limite anon público. As verificações ao vivo relacionadas inspecionam a exposição da chave da função de serviço, a postura Supabase REST/RLS e as migrações SQL do repositório para RLS ausentes.

O que consertar

Sempre habilite a segurança em nível de linha nas tabelas do banco de dados e implemente políticas granulares para usuários autenticados. [S2] Certifique-se de que apenas a chave 'anon' seja usada no código do lado do cliente, enquanto a chave 'service_role' permanece no servidor. [S1] Configure o controle de acesso ao armazenamento para garantir que os buckets de arquivos sejam privados por padrão e o acesso seja concedido somente por meio de políticas de segurança definidas. [S3]