EstoqueMultimidia

RELATÓRIO TÉCNICO DE AUDITORIA E ENDURECIMENTO DE SEGURANÇA (HARDENING)

Sistema de Controle de Patrimônio, Estoque Multimídia e Biometria Facial — UniFAP


Metadado Detalhe
Projeto UniFAP — Estoque Multimídia & Reconhecimento Biométrico
Arquitetura Next.js 15.5.24 (App Router) + Prisma ORM (36 Models) + PostgreSQL (pgvector) + FastAPI + Redis 7 + Coolify / Cloudflare
Data da Avaliação 01 de Setembro de 2026
Status Geral 🟢 Aprovado para Produção com Endurecimento Contínuo
Cobertura de Testes 33 arquivos de teste / 303 testes automatizados (100% Passing)

1. Sumário Executivo de Segurança

Este relatório consolida a execução do plano completo de auditoria e endurecimento de segurança (P0 - Bloqueadores de Produção, P1 - Defesa em Profundidade, P2 - Higiene e Integridade Arquitetural) para publicação em produção via Coolify + Docker + Cloudflare Tunnel.

Todas as vulnerabilidades críticas, fragilidades de autenticação, autorização de API externa, vetores de SSRF, riscos de DoS em uploads multipart, liveness anti-spoofing biométrico, validação criptográfica de relatórios, integridade LGPD e higienização de segredos no repositório foram mitigadas e validadas por testes automatizados.


2. Tabela de Conformidade & Status dos Itens Auditados

ID Área / Componente Vulnerabilidade & Vetor Mitigado Status Verificação
P0-01 biometric-api/requirements.txt DoS em Headers Multipart: Atualizado python-multipart>=0.0.30 eliminando as CVEs CVE-2026-42561, CVE-2026-40347 e CVE-2026-53538. 🟢 Mitigado Verificação de dependências
P0-02 biometric-api/app/services/face_service.py Anti-Spoofing & Liveness Passivo: Implementada análise de textura de pele, verificação de espaço de cor YCrCb e detecção de reflexos/moiré de telas e impressões estáticas. 🟢 Mitigado Testes biométricos
P1-03 src/app/api/v1/public/validate/[code] Autenticidade Real de Relatórios: Substituída aprovação genérica de prefixo REL-* por assinatura digital criptográfica HMAC-SHA256 (src/lib/report-signature.ts). 🟢 Mitigado security-audit-fixes.test.ts
P1-04 docker-compose.yml Eliminação de Senhas Default: Removidas senhas hardcoded do Redis, exigindo REDIS_PASSWORD e REDIS_URL obrigatórias via variáveis de ambiente. 🟢 Mitigado Docker Compose Lint
P1-05 .github/workflows/ci.yml Gitleaks Bloqueante no CI: Removido continue-on-error: true para que o pipeline reprove imediatamente caso algum segredo seja detectado. 🟢 Mitigado CI/CD Workflow
P1-06 biometric-api/app/services/recognition_service.py Autenticação de Identidade de Operador: Validada a existência e o status ativo do operatorUserId no banco de dados, impedindo spoofing de operador. 🟢 Mitigado Testes FastAPI
P1-07 src/lib/presentation-guard.ts RBAC Contextual em Eventos: Restringido o bypass de apresentação exclusivamente a perfis autorizados (ADMIN, GESTOR, OPERADOR, EVENTOS). 🟢 Mitigado permissions-guard.test.ts
P2-08 src/app/api/v1/users/[id] Proteção Atômica contra Race Condition (TOCTOU): Execução atômica de verificação e alteração do último administrador via prisma.$transaction. 🟢 Mitigado users-api.test.ts
P2-09 src/lib/auth.ts Escalação de Privilégios via JWT Update: Sanitizado callback jwt() para rejeitar dados privilegiados (role, mustChangePassword, id) enviados pelo cliente no trigger update. 🟢 Mitigado Testes de unidade e token
P2-10 src/lib/api-guard.ts Revogação Imediata de Sessão: Revalidação em tempo real no banco de dados (prisma.user.findUnique) a cada requisição para invalidar instantaneamente usuários desativados. 🟢 Mitigado api-guard.test.ts
P2-11 src/lib/api-auth.ts API Keys com Hash SHA-256: Chaves de API individuais armazenadas com hash SHA-256 no banco e com verificação do status do proprietário. 🟢 Mitigado api-auth.test.ts
P2-12 src/app/api/v1/image-proxy Anti-SSRF Estrito & Bloqueio de SVG: redirect: "manual" com validação a cada salto, recusa de SVGs/XMLs e limite de stream de 2MB. 🟢 Mitigado security-edge.test.ts
P2-13 biometric-api/schemas/face.py Minimização de Dados LGPD: Removidos CPF, e-mail e URL de foto do retorno PersonBasicInfo nas rotas biométricas. 🟢 Mitigado lgpd-compliance.test.ts
P2-14 next.config.mjs Headers de Segurança & CSP: Implementação de HSTS, CSP, COOP, CORP, X-Frame-Options e nosniff. 🟢 Mitigado Build Next.js
P2-15 biometric-api/Dockerfile Execução Non-Root no Container: Criação de appuser:appgroup e limites de privilégios. 🟢 Mitigado Dockerfile

3. Recomendações de Governança e Ciclo de Vida

  1. Gestão de Segredos: Nunca comitar arquivos .env ou scripts em repositórios Git.
  2. Rotação de Chaves: Rotacionar NEXTAUTH_SECRET e BIOMETRIC_INTERNAL_TOKEN periodicamente no painel Coolify.
  3. Retenção LGPD: Aplicar rotina periódica de anonimização e exclusão de embeddings de participantes inativos.