/ TL;DR

SaaS que atende múltiplos clientes tem risco LGPD específico — vazamento cross-tenant é o pior cenário. Auditor B2B enterprise foca em 8 pontos técnicos antes de assinar contrato. Este guia mostra quais e como responder.

Em SaaS B2B multi-tenant, "vazamento" pode significar duas coisas: (a) atacante externo pega dados de um cliente; (b) cliente A vê dado de cliente B. O segundo é pior — arruína contrato imediatamente. Este guia lista os 8 pontos que auditor de compliance pede primeiro.

1. Isolamento de dados por tenant

Pergunta do auditor: "Como você garante que cliente A não vê dado de cliente B?"

Resposta esperada:

  • Coluna tenant_id em toda tabela relevante.
  • Row-Level Security no banco (PostgreSQL RLS ou similar).
  • Middleware que injeta tenant_id em toda query.
  • Teste automatizado: usuário do tenant A tenta acessar recurso do B, precisa receber 404.

2. Isolamento de storage

Pergunta: "Uploads de cliente A ficam separados dos de cliente B?"

Resposta: buckets ou prefixos por tenant. URLs assinadas com curta expiração. Nunca URL pública compartilhada.

3. Isolamento em cache

Pergunta: "Cache Redis/Memcached separa por tenant?"

Resposta: chave inclui tenant:xxx: como prefixo. Invalidação por tenant, nunca global.

4. Isolamento em background jobs

Pergunta: "Quando job roda em background, ele sabe de qual tenant é?"

Resposta: job recebe tenant_id como parâmetro obrigatório. Sem isso, falha.

5. Isolamento em logs

Pergunta: "Logs de erro contêm dado de qual tenant?"

Resposta: logs marcados com tenant_id, roteados por cliente enterprise (pode ser exigência contratual).

6. Isolamento em telas de suporte interno

Pergunta: "Suporte pode ver dado de qualquer cliente?"

Resposta: acesso auditado, com motivo (ticket), timeout automático (revoke após 4h), aprovação de segundo par para dado sensível.

7. Data Processing Agreement (DPA)

Pergunta: "Você tem DPA que o comprador enterprise possa assinar?"

Resposta: template pronto no site. Bilíngue se atende internacional. Cláusulas cobrindo sub-processadores, incidente, exportação de dados, direito de auditoria.

8. Direitos do titular por tenant

Pergunta: "Se um usuário de cliente A pede exclusão, você exclui só o dele?"

Resposta: endpoint de exclusão com escopo tenant + usuário. Não exclui dado do cliente (empresa contratante) — só o registro do funcionário/usuário final.

Anti-padrão comum

"Compartilhamos dados agregados anonimizados entre clientes para benchmarking."

Se "anonimizado" significa "removi o nome" mas o CPF ainda está lá, não é anonimização. Auditor sério recusa. Anonimização real = teste de re-identificação passa.

Como testar isolamento sistematicamente

Escreva teste:

Tenant A: cria usuário, cria pedido X.
Tenant B: cria usuário, tenta ler pedido X.
Espera: 404.
Repete pra: pedido, upload, mensagem, log, notificação.
Repete pra: API GET, PUT, DELETE, batch export.

Rode no CI. Um falso positivo derruba PR.

TL;DR

  • 8 pontos que auditor B2B enterprise pergunta.
  • Isolamento em: DB, storage, cache, jobs, logs, suporte.
  • DPA pronto no site.
  • Direitos do titular escopo tenant+usuário.
  • Teste automatizado de isolamento no CI.

A Varredura testa isolamento cross-tenant como parte da varredura de autorização. Rodar agora.

EV

Equipe Varredura

Time de pesquisa de segurança · Varredura

Sua app em produção passa por essa análise?

Rode uma varredura autônoma em ~60 segundos. Sem cadastro.

Analisar minha aplicação →