RIPD · Scan Engine
Este Relatório de Impacto à Proteção de Dados Pessoais (RIPD), equivalente ao Data Protection Impact Assessment (DPIA) previsto no GDPR, é elaborado pelo Controlador Natan Cardeal Rodrigues (MEI · CNPJ 30.118.700/0001-46 · Camboriú/SC) em cumprimento ao Art. 38 da Lei 13.709/18 (LGPD) e à Res. CD/ANPD 18/2024, que estabelece a estrutura mínima para tratamentos de alto risco envolvendo tecnologia inovadora (IA generativa) e análise sistemática de infraestrutura de terceiros.
Este documento é público — disponibilizado como ato de transparência (Art. 6º VI LGPD) e para acesso imediato pela ANPD em caso de fiscalização. O RIPD do fluxo de signup é documento separado, mantido internamente.
1. Identificação do tratamento
| Controlador | Natan Cardeal Rodrigues · MEI · CNPJ 30.118.700/0001-46 |
|---|---|
| Encarregado (DPO) | encarregado@indicia.com.br |
| Operador | IndiciaRobot · agente autônomo de diagnóstico (VM Hetzner CX23 · Frankfurt, DE) |
| Operação | Execução de diagnóstico de segurança + conformidade LGPD no domínio declarado pelo titular |
| Modalidade | Passiva (OSINT · passive_only por padrão) · ativa sujeita a autorização explícita e gates legais |
| Versão | 1.0 · 2026-05-14 |
| Revisão | Anual ou em mudança material (novo operador, nova ferramenta, mudança de modo) |
2. Finalidade do tratamento
O IndiciaRobot executa diagnóstico técnico no domínio declarado pelo titular no ato do cadastro, com autorização explícita registrada. As finalidades são:
- Diagnóstico de segurança aplicacional · identificar vulnerabilidades OWASP no domínio autorizado
- Verificação de conformidade LGPD · checar exposição de dados pessoais (CPF, CNPJ, email) em respostas públicas e cookies sem consentimento
- Geração de evidência forense · relatório SHA-256 assinado, cadeia de custódia, exportável pelo titular
- Prestação do serviço contratado · entrega dos resultados ao workspace do titular na plataforma Indícia
O diagnóstico opera em modo passive_only por padrão: subfinder (OSINT passivo),
httpx (fingerprinting), testes DAST controlados. Ferramentas de varredura ativa (nmap,
nikto, brute force) estão desabilitadas até a conclusão dos gates legais (Art. 38 §2º —
consulta prévia ANPD, parecer OAB, seguro E&O).
3. Necessidade e proporcionalidade
Cada dado coletado durante o scan é necessário e proporcional à finalidade declarada (Art. 6º III LGPD — princípio da necessidade):
| Dado | Necessidade | Proporcionalidade |
|---|---|---|
| Domínio e subdomínios encontrados (OSINT) | Objeto do contrato — sem o domínio o scan não pode executar | Escopo limitado ao domínio declarado pelo titular · subfinder não extrapola |
| Respostas HTTP (headers, status, tecnologia) | Fingerprinting para identificar stack e WAF — insumo obrigatório do DAST | Apenas metadados HTTP · sem captura de body completo · rate-limit 2 req/s |
| Findings de segurança (tipo, evidência, CVSS) | Entregável principal do serviço contratado | PII nos findings é redacted antes de persistir (CPF/email/JWT viram [REDACTED]) |
| Hash SHA-256 do relatório e findings | Cadeia de custódia — integridade forense exigida pelo contrato | Hash unidirecional · não permite reconstruir dado original |
| Timestamps (startedAt, completedAt, durationMs) | Audit trail Art. 37 · SLA e faturamento | Dados operacionais sem PII |
Dado jamais coletado intencionalmente: credenciais, tokens de sessão, dados de cartão,
dados de saúde, biometria ou qualquer dado sensível Art. 5º II. Se detectados em
respostas HTTP como achado de segurança (ex: exposição acidental), são redacted no
campo evidence antes de persistir no Firestore.
4. Bases legais
- Art. 7º V LGPD · execução de contrato — o scan é o objeto principal do contrato de prestação do Security Radar. Sem o tratamento descrito, o serviço não pode ser prestado.
- Art. 7º I LGPD · consentimento específico — o titular autoriza expressamente o diagnóstico no domínio declarado via AuthorizePentestForm (onboarding/authorize-pentest), que registra: timestamp, versão do termo, hash SHA-256 do aceite e IP hash. Este consentimento é revogável a qualquer momento via encarregado@indicia.com.br.
- Art. 7º IX LGPD · legítimo interesse — audit log das operações do robot (ação, duração, findings count) para prestação de contas (Art. 37) e detecção de abuso/misuse do serviço.
5. Fluxo de dados
Titular (workspace Indícia)
↓ autoriza scan via AuthorizePentestForm
↓
Cloud Function scanInitiate (GCP southamerica-east1)
↓ payload Fernet cifrado + JWT Bearer + HMAC-SHA256 anti-replay
↓
IndiciaRobot (Hetzner CX23 · Frankfurt, DE)
↓ executa scan passivo: subfinder → httpx → testes DAST
↓ PII redaction inline antes de estruturar findings
↓ gera PDF + JSON + SHA-256
↓
Firebase Storage (GCP southamerica-east1 · signed URL 24h TTL)
↓
Cloud Function scanComplete · webhook HMAC-SHA256 assinado
↓ persiste findings redacted + artifacts no Firestore
↓
Firestore workspaces/{wsId}/scans/{scanId} (GCP southamerica-east1)
↓
Dashboard titular (browser · HTTPS TLS 1.3)
6. Transferências internacionais
| Destinatário | País | Dados | Finalidade | Salvaguarda |
|---|---|---|---|---|
| Hetzner Online GmbH (IndiciaRobot VM) | Alemanha (UE) | Domínio, payload de scan cifrado (Fernet AES-128) | Execução do diagnóstico | Art. 33 II LGPD · SCCs UE · Alemanha adequada GDPR (não exige transferência adicional) |
| Google LLC (Firebase / GCP) | EUA (dado em repouso BR) | Findings redacted, artifacts, audit log | Armazenamento e entrega ao titular | SCCs Google Cloud + Data Privacy Framework EU-US · dados em repouso southamerica-east1 |
| Resend Inc. | EUA | Email do titular (notificação scan completo) | Notificação transacional | SCCs + DPA Resend |
7. Riscos identificados e mitigações
| # | Risco | Prob. | Gravidade | Mitigação |
|---|---|---|---|---|
| R1 | Scan em domínio não autorizado (autorização forjada) | Baixa | Alta | DNS TXT verification obrigatória antes do primeiro scan · apenas dono do DNS pode criar o token · AuthorizePentestForm com hash auditável |
| R2 | PII coletada inadvertidamente em evidência de finding | Média | Alta | redactFindings() inline antes de persistir · CPF/CNPJ/email/JWT/cookies viram [REDACTED:tipo] · dado bruto nunca toca Firestore |
| R3 | Robot envia payload para endpoint inválido (SSRF interno) | Baixa | Alta | RFC1918/loopback/reserved bloqueados em scanInitiate · robot rejeita alvos privados |
| R4 | Interceptação do payload em trânsito Robot → Functions | Muito baixa | Alta | Payload duplamente protegido: Fernet AES-128-CBC + HMAC-SHA256 no envelope · TLS 1.3 no transporte |
| R5 | Scan de domínio de terceiro sem consentimento do terceiro | Baixa | Alta | DNS TXT record só pode ser criado pelo controlador DNS do domínio · verificação dual-resolver (Google + Cloudflare) com quórum |
| R6 | Abuso de quota (scan como ferramenta de ataque) | Baixa | Média | Quota por plano (1-5 scans/7d) · rate-limit composto wsId+IP · passive_only elimina ferramentas destrutivas |
| R7 | Replay de webhook Robot → Functions | Muito baixa | Média | HMAC-SHA256 com janela anti-replay 300s · idempotency 3 camadas no scanComplete |
| R8 | Vazamento de relatório PDF via signed URL | Baixa | Média | Signed URL TTL 24h · V4 GCS · acesso apenas pelo titular autenticado |
Risco residual: Aceitável após mitigações. Nenhum risco P0 sem mitigação ativa. Modo passive_only elimina os riscos mais graves de varredura ativa.
8. Direitos dos titulares
O titular pode exercer todos os 9 direitos do Art. 18 LGPD via indicia.com.br/direitos ou por email encarregado@indicia.com.br (SLA 15 dias · Art. 19 LGPD):
- Acesso · exportação completa dos seus scans e findings via dashboard (XLSX/PDF)
- Eliminação · solicitação de exclusão de todos os dados de scan via DPO
- Portabilidade · export JSON estruturado de todos os findings e metadados
- Revogação do consentimento · cancela autorização de scan futuro imediatamente
- Correção · metadados do workspace (companyName, authEmail)
- Confirmação · confirmação do tratamento e quais dados estão armazenados
- Não-consentimento · informação sobre consequências de não autorizar o scan
- Anonimização/bloqueio · suspensão do tratamento durante investigação
- Informação compartilhamento · lista de todos os operadores acima (seção 6)
9. Retenção e eliminação
| Dado | Retenção | Base |
|---|---|---|
| Scan docs + findings (Firestore) | 18 meses · soft-delete automático via scheduler diário | Art. 16 LGPD · Art. 15 III (necessidade) |
| PDF/JSON artifacts (Firebase Storage) | 18 meses (mesmo ciclo do scan doc) | Contrato · entregável do serviço |
| Audit log de operações do robot | 5 anos | Art. 37 LGPD · prestação de contas pública |
| Hash de autorização (AuthorizePentestForm) | Vida do workspace + 5 anos post-delete | Prova de consentimento · Art. 8º §5º |
10. Consulta ao DPO
O Encarregado de Dados (DPO) foi consultado na elaboração deste RIPD e aprovou as medidas de mitigação descritas. Contato: encarregado@indicia.com.br.
O modo passive_only foi adotado como medida conservadora até a consulta
prévia à ANPD (Art. 38 §2º) ser concluída para o modo de scan ativo. Esta consulta
será iniciada quando os gates legais internos (parecer OAB + seguro E&O) forem
fechados.
11. Decisão do controlador
Após análise dos riscos e das mitigações, o Controlador decide prosseguir
com o tratamento no modo passive_only, por entender que:
- O risco residual é aceitável com as mitigações implementadas
- O serviço possui base legal adequada (contrato + consentimento específico)
- A transferência internacional para Hetzner DE (UE/GDPR) oferece proteção equivalente ou superior à exigida pela LGPD
- O modo passivo elimina os riscos mais graves de varredura ativa
- Os direitos dos titulares estão integralmente implementados na plataforma
12. Revisão e histórico
| Versão | Data | Mudança |
|---|---|---|
| 1.0 | 2026-05-14 | Versão inicial · cobertura scan engine IndiciaRobot · modo passive_only |
Próxima revisão obrigatória: 2027-05-14 ou em mudança material (habilitação de SCAN_MODE=full, novo operador, nova finalidade).