Legal
Segurança
Como protegemos seus dados. Sem marketing — detalhes técnicos verificáveis.
1. Nossa filosofia
O Marcly trata dados sensíveis do seu negócio e dos seus clientes. Segurança não é uma feature — é um requisito de base. Aplicamos defesa em profundidade: cada camada assume que a anterior pode falhar e adiciona seus próprios controles.
Esta página é um snapshot de práticas reais no código e na infraestrutura, não aspirações.
Atualizamos quando algo material muda (última atualização: 2026-05-02).
2. Criptografia de dados
Em trânsito
- TLS 1.3 obrigatório em todas as conexões públicas (com HSTS, max-age 1 ano).
- Validação estrita de certificados Postgres (
rejectUnauthorized: true) — sem downgrades. - Cookies de sessão com flags
Secure+HttpOnly+SameSite=Lax.
Em repouso
- Base de dados PostgreSQL criptografada no nível do disco (provido pelo Railway).
- Armazenamento de arquivos (Cloudflare R2) criptografado por padrão em cada bucket.
- Tokens WhatsApp por tenant criptografados com AES-256-GCM (envelope encryption com chave mestra), formato
v1.com suporte a rotação.
Hashes e segredos
- Senhas hasheadas com bcrypt cost 12 (binding nativo Rust, ~25 ms por hash).
- IPs registrados hasheadas com SHA-256 + sal (sem IPs em texto claro).
- Tokens de verificação: 256 bits de entropia, hasheados antes de persistir, single-use.
3. Autenticação e sessões
- NextAuth v5 com sessões JWT criptografadas (não JWS — usa A256CBC-HS512).
- Sessão ativa de 14 dias com renovação rolling a cada 24h (revogação automática pós-inatividade).
- Captcha (Cloudflare Turnstile) em signup e em booking público anônimo.
- Rate-limit por IP e email no login (5 falhas / 15 min por email, 20 / 15 min por IP).
- Verificação bcrypt antes de delegar a NextAuth — evita timing leaks.
- Lockout temporário automático após burst suspeito.
4. Isolamento multi-tenant
O Marcly é multi-tenant: muitos negócios compartilham infraestrutura mas nunca podem ver dados uns dos outros. Aplicamos um padrão estrito a cada nível de query mutação:
- Cada server action que toca dados derivados do usuário usa
where: { id, businessId }composto. - Helper
requireBusinessOwnership()deriva obusinessIdda sessão, NUNCA do input do cliente. - Helper
assertAffected()verifica que a mutação tocou exatamente a linha esperada — se tocou 0, registramos SecurityEvent: idor_attempt. - Auditoria externa (maio 2026) confirmou zero IDOR cross-tenant em 16 server actions.
5. Infraestrutura
- Hospedagem: Railway (Estados Unidos), contêiner Docker Node 22 hardened (USER non-root, multi-stage, sem dev deps em runtime).
- Base de dados: PostgreSQL gerenciado pelo Railway (backups automáticos diários + retenção 7 dias).
- Armazenamento de arquivos: Cloudflare R2 com domínio personalizado
images.marcly.app, allowlist estrito do bucket próprio. - CDN + WAF + DNS: Cloudflare (DDoS L3-7, bot management, geo-restrições disponíveis).
- E-mail: Resend (DKIM + SPF + DMARC alinhados em
marcly.app). - WhatsApp: Twilio Business API (assinatura HMAC-SHA1 verificada em cada webhook + idempotência por
MessageSid).
Cabeçalhos de segurança
Configurados em cada resposta:
Content-Security-Policycom allowlist estrito (apenas domínios próprios + R2 + Turnstile)Strict-Transport-Security(HSTS, 1 ano, includeSubDomains)X-Frame-Options: DENY,X-Content-Type-Options: nosniffCross-Origin-Opener-Policy: same-origin+Cross-Origin-Resource-Policy: same-originReferrer-Policy: strict-origin-when-cross-originPermissions-Policynegando câmera, microfone, geo, USB, bluetooth e sensores
6. Operadores e fornecedores
Os fornecedores nos quais confiamos para operar o serviço:
| Fornecedor | Finalidade | Localização |
|---|---|---|
| Railway Corp. | Hospedagem da aplicação e banco de dados PostgreSQL | Estados Unidos |
| Cloudflare, Inc. | Armazenamento de arquivos (R2), CDN, DNS, Turnstile (anti-bot) | Global / Estados Unidos |
| Twilio, Inc. | Envio e recebimento de mensagens WhatsApp Business | Estados Unidos |
| Meta Platforms, Inc. | Plataforma WhatsApp Business API (via Twilio) | Estados Unidos / Irlanda |
| Resend, Inc. | Envio de e-mails transacionais (verificação, lembretes) | Estados Unidos |
Cada um está obrigado por contrato a tratar dados apenas conforme nossas instruções e aplicar medidas de segurança equivalentes. Lista atualizada na Política de Privacidade.
7. Auditorias e testing contínuo
SAST + Dependency Scanning
- Semgrep CE em CI: bloqueia merge se encontra padrão vulnerável conhecido.
- OSV-Scanner em CI: bloqueia CVEs HIGH/CRITICAL em dependências.
- Dependabot: PRs automáticos semanais para deps + actions + Docker.
- Gitleaks: scan de segredos em pre-commit e CI.
Auditoria manual
- Auditoria completa contra OWASP Top 10 2021 + OWASP API Top 10 2023 + ASVS 4.0 Level 2 em maio 2026.
- Re-auditoria planejada antes de cada milestone maior.
- Code review obrigatório em cada mudança que toca auth, crypto, multi-tenant ou webhooks.
Observabilidade
- Tabela
SecurityEventregistra: tentativas IDOR, assinaturas Twilio inválidas, lookups de canais não-ACTIVE, login lockouts. - Retenção 90 dias, prune automático.
- Logs de aplicação com redação de segredos (emails, JWTs, API keys, Bearer tokens, telefones).
8. Resposta a incidentes
Se uma brecha de segurança que afete seus dados for confirmada:
- Notificação: avisaremos por e-mail dentro de 72 horas da confirmação (alinhado com GDPR Art. 33 e LGPD Art. 48).
- Informação incluída: que dados foram afetados, quando, o que fizemos para conter, o que você deveria fazer.
- Notificação a autoridades: quando aplicável (UE: APD competente; Brasil: ANPD; Califórnia: AG).
- Postmortem público: publicaremos um postmortem técnico (sem detalhes que facilitem exploits) no nosso blog em até 14 dias.
9. Divulgação responsável
Compromisso com pesquisadores de boa fé:
- Não iniciaremos ações legais se seguir nossas regras (sem DoS, sem acesso a dados de terceiros, sem destruição).
- Crédito público em hall of fame (com sua permissão).
- Não temos programa de bug bounty pago ainda — está no roadmap para quando ganhemos tração.
10. Roadmap de conformidade
O que temos hoje e o que vem:
- ✅ OWASP Top 10 2021 + ASVS L2: auditado, sem findings críticos abertos.
- ✅ GDPR / CCPA / LGPD: coberto nas políticas; mecanismos de direitos disponíveis.
- 🟡 SOC 2 Type I: avaliação de readiness Q3 2026.
- 🟡 SOC 2 Type II: objetivo 2027.
- 🟡 ISO 27001: quando alcançarmos 500+ clientes ativos.
- ⚪ HIPAA: não aplicável (não tratamos PHI). Se quiser usar Marcly para serviços médicos, contate-nos antes.
- ⚪ PCI-DSS: não aplicável (não armazenamos dados de cartões — o processador de pagamentos o faz).
11. Contato
Vulnerabilidades / divulgação responsável: security@marcly.app
Perguntas gerais de segurança: security@marcly.app
Assuntos de privacidade: privacy@marcly.app
Marcly · 75 avenida norte, local 3, San Salvador, El Salvador