Apendice — Documentos Originais
Os tres documentos fonte desta auditoria: ANALISE_SISTEMA.md (achados e analise), LOGICA_SISTEMA.md (mapeamento de logica de negocio) e PLANO_ACAO.md (acoes priorizadas). Todo o conteudo do portal e derivado destes documentos.
Este conteudo e renderizado a partir dos dados estruturados extraidos do documento original.
Perguntas pendentes (a confirmar com equipe de desenvolvimento)
3. O banco de dados PostgreSQL de producao e gerenciado (ex: AWS RDS) ou self-hosted? Ha backups automaticos configurados? Afeta o plano de recuperacao em caso de incidente (CRIT-02) e a estrategia de migracao para maior disponibilidade.
5. Qual e o volume atual de registros na tabela AppOfertas? Ha algum mecanismo de arquivamento ou retencao configurado no banco?
Determina a urgencia dos indices ausentes (SCALE-H2) e da subquery O(n²) (SCALE-H1). Com poucos registros, o impacto e baixo; com milhoes de registros, pode ser o principal gargalo de performance.
6. O runner gemini mencionado no pipeline de producao (runs-on: gemini) e o mesmo servidor k3s de desenvolvimento ou e uma maquina dedicada?
Se for o mesmo servidor, ha risco de que o ambiente de desenvolvimento contamine o pipeline de producao.
10. Existe algum sistema de logging centralizado em uso (CloudWatch, Datadog, ELK)? Determina se os logs com PII (HIGH-04) estao sendo indexados e possivelmente expostos a terceiros.
11. A chave passphrase de criptografia das credenciais Galileu (testePassPhrase) e a mesma em producao, ou foi substituida via Kubernetes Secret?
O configmap de producao nao define GalileuCredentials__PassPhrase, sugerindo que o valor fraco do appsettings.json esta sendo usado. Confirmacao necessaria.
13. O AbpGdprModule esta ativo? Existe processo para atender solicitacoes LGPD Art. 18 (exclusao/portabilidade)?
Necessario para avaliar conformidade LGPD e risco regulatorio.
Perguntas da Segunda Passagem (a confirmar com equipe de desenvolvimento)
14. O RegistrarOfertasWorker esta ativo ou desativado em producao?
A analise da segunda passagem identificou que este worker (logica legada) esta registrado no DI e potencialmente ativo em paralelo ao ProcessarOfertasWorker (logica nova). A autenticacao invertida (P-02) sugere que pode estar sempre falhando — o que seria ironicamente uma "protecao" contra P-01. Confirmar com a equipe se este worker foi intencionalmente mantido ativo, se ha algum mecanismo de desativacao por feature flag, ou se o bug P-02 esta mascarando sua atividade.
15. Os contadores QuantidadeCarros e CargaAdicionalQuantidadeVeiculos chegam a valores negativos em producao?
O over-accept identificado como race condition (secao 8.2) pode ja estar ocorrendo silenciosamente. Existe alguma query de monitoramento ou alerta para contadores negativos? Existe algum processo manual de reconciliacao desses contadores?
16. O endpoint POST /api/app/ofertas/cotar (CotarOfertaAsync) e usado por usuarios do frontend ou apenas por processos internos?
O nivel de permissao necessario para esta operacao financeira depende de quem a usa. Se e apenas um processo interno, pode ser protegido de forma diferente de um endpoint exposto ao usuario final. A ausencia de permissao especifica (SEC2-07) e mais grave se usuarios comuns podem acessar.
17. O campo Senha retornado no GalileuCredentialDto (SEC2-04) e consumido pelo frontend? Para que finalidade?
Se o frontend nao usa este campo, ele pode ser removido imediatamente sem impacto. Se e usado para exibir ou pre-preencher formularios, a arquitetura de seguranca precisa ser redesenhada.
18. Qual e o volume atual de registros em AppApiStatuses? A retention policy esta funcionando corretamente?
O RegistrarOfertasWorker registra o status da API Galileu a cada ciclo (~5 minutos por tenant). Com 22 tenants, isso gera ~288 registros/dia/tenant = ~2.3 milhoes de registros/ano (todos os tenants). Confirmar se a tabela esta crescendo descontroladamente ou se a retention esta contendo o crescimento.
19. O bundle Angular de producao ja foi medido? Qual e o tamanho atual do bundle inicial? Com 15+ CSS bundled (Font Awesome, Bootstrap Icons, Lepton-X, Ionic, ngx-datatable), o bundle pode superar 3MB. Para um PWA mobile com conexao 4G variavel, isso impacta diretamente o tempo de carregamento inicial. O budget atual permite ate 2.5MB como erro — se ja esta sendo violado, o build de CI/CD deveria estar falhando.
20. A API Galileu tem limite de rate (throttling/rate limit) documentado?
Com 22 tenants cada executando multiplos ciclos de requisicoes HTTP em paralelo, o sistema pode ja estar proximos ao limite da API Galileu. Com 150 tenants e Task.WhenAll sem semaforo, o rate limit seria atingido com certeza. Esta informacao e critica para dimensionar o SemaphoreSlim correto nos workers.
21. O OfertaRecordController (api/%%entity-name-root-prefix%%/oferta-records) esta funcionando em producao? Usuarios conseguem acessar o historico de alteracoes de ofertas?
O placeholder nao substituido (SEC2-06) pode estar tornando este endpoint inacessivel em producao. Confirmar se ha impacto operacional real para os usuarios.
Perguntas da Varredura Final — Infraestrutura (a confirmar com equipe de infra/dev)
22. Os arquivos docker-compose-ec2-dev.yml e docker-compose-ec2-hom.yml sao atualmente usados em ambiente real (EC2)? Se sim, as senhas root e 1b64a555... estao em uso nos bancos de dados ativos?
A rotacao deve ser imediata se esses arquivos estiverem ativos em instancias EC2 rodando os ambientes dev e homolog.
23. A VonBraunLabs tem ciencia de que o ABP License Code esta publico no repositorio (INFRA-02)? O repositorio e publico ou privado? Se privado, quem alem da equipe de dev tem acesso? Necessario para avaliar o risco real de reutilizacao da licenca e para decidir se e necessario notificar a Volosoft.
24. O branch master tem branch protection rules configuradas no GitHub (requerir PR, requerir reviews)? Quantos desenvolvedores tem permissao de push direto para master (INFRA-04)?
Determina a urgencia de configurar o gate de aprovacao manual — se nenhum dev pode dar push direto sem PR, o risco e menor.
25. O Redis de producao (com emptyDir — INFRA-11) ja sofreu restart de pod? Usuarios relataram ser deslogados sem motivo aparente?
Logout massivo sem causa aparente seria explicado pela perda de sessao no Redis apos restart do pod.
26. O ECR da AWS (971422688330.dkr.ecr.us-east-1.amazonaws.com) e privado com politica de acesso restrita? As imagens Docker que contem o pfx do OpenIddict embutido (INFRA-01) sao acessiveis alem da equipe de infra?
Se o ECR for acessivel por qualquer conta AWS autenticada, o pfx hardcoded na imagem pode ja estar comprometido.
27. O CronJob ecr-token-renewal-devel (INFRA-19) esta ativo em producao? O Role com permissao sobre todos os secrets do namespace cargofleet afeta secrets de producao ou apenas do cluster de desenvolvimento?
Se o CronJob roda no cluster de producao (EKS) com esse Role, o risco e imediato — qualquer comprometimento do pod expoe todos os secrets de producao.
Referencias de Arquivos Auditados
Os arquivos abaixo foram lidos diretamente durante esta auditoria:
aspnet-core/src/cargo_fleet.HttpApi.Host/appsettings.jsonaspnet-core/src/cargo_fleet.HttpApi.Host/appsettings.secrets.jsonaspnet-core/src/cargo_fleet.HttpApi.Host/cargo_fleetHttpApiHostModule.csaspnet-core/src/cargo_fleet.HttpApi.Host/Controllers/HomeController.csaspnet-core/src/cargo_fleet.HttpApi.Host/BackgroundJobs/ProcessarOfertasWorker.csaspnet-core/src/cargo_fleet.HttpApi.Host/BackgroundJobs/AtualizarOfertasWorker.csaspnet-core/src/cargo_fleet.HttpApi.Host/BackgroundJobs/RegistrarOfertasWorker.csaspnet-core/src/cargo_fleet.HttpApi.Host/BackgroundJobs/RetentionPolicyWorker.csaspnet-core/src/cargo_fleet.HttpApi.Host/BackgroundJobs/VerificarRotasWorker.csaspnet-core/src/cargo_fleet.HttpApi/DeviceToken/DeviceTokenController.csaspnet-core/src/cargo_fleet.Application/GalileuCredentials/GalileuCredentialsAppService.csaspnet-core/src/cargo_fleet.Application/GalileuCredentials/GalileuCredentialsAppService.Extended.csaspnet-core/src/cargo_fleet.Application/CargasAdicionais/CargaAdicionalService.csaspnet-core/src/cargo_fleet.Application/CargaAdicionalScraper/CargaAdicionalScraperService.csaspnet-core/src/cargo_fleet.Application/Ofertas/Aceite/OfertasAceitePreparationService.csaspnet-core/src/cargo_fleet.Application/Scryber/PrintingAppService.csaspnet-core/src/cargo_fleet.Application/Metricas/MetricasAppService.csaspnet-core/src/cargo_fleet.EntityFrameworkCore/Ofertas/EfCoreOfertaRepository.csaspnet-core/src/cargo_fleet.Domain/cargo_fleet.Domain.csprojaspnet-core/src/cargo_fleet.Application.Contracts/cargo_fleet.Application.Contracts.csprojangular/src/environments/environment.prod.tsangular/android/app/google-services.jsonangular/src/app/ofertas-abertas/components/cotar/cotar.component.tsangular/package.jsonangular/nginx.conf.github/workflows/Production.yaml.github/kubernetes/production/configmap.yaml.github/kubernetes/production/redis.yml.github/kubernetes/production/dbmigrator.yml.github/kubernetes/develop/api.yml.github/kubernetes/ingress-k3s-gemini.yml.gitignore
Data da auditoria: 2026-03-14 (atualizado com respostas do usuario em 2026-03-14) Versao do sistema analisado: 1.3.1 Contexto: 22 tenants ativos, repositorio privado, meta de 150 tenants Disclaimer: Esta analise foi baseada no codigo-fonte do repositorio e em respostas parciais do responsavel pelo sistema. Nao houve acesso ao ambiente de producao, banco de dados ativo ou logs. Achados classificados como "risco provavel" ou "hipotese" devem ser validados no ambiente real. A ordem de prioridade e uma recomendacao tecnica ajustada com o contexto informado pelo usuario.
Nota
Os achados de seguranca, escalabilidade e arquitetura estao disponiveis no Catalogo de Achados com filtros avancados. O plano completo esta em Plano de Acao.
Referencias de Arquivos Auditados
Os arquivos abaixo foram lidos diretamente durante esta auditoria:
aspnet-core/src/cargo_fleet.HttpApi.Host/appsettings.jsonaspnet-core/src/cargo_fleet.HttpApi.Host/appsettings.secrets.jsonaspnet-core/src/cargo_fleet.HttpApi.Host/cargo_fleetHttpApiHostModule.csaspnet-core/src/cargo_fleet.HttpApi.Host/Controllers/HomeController.csaspnet-core/src/cargo_fleet.HttpApi.Host/BackgroundJobs/ProcessarOfertasWorker.csaspnet-core/src/cargo_fleet.HttpApi.Host/BackgroundJobs/AtualizarOfertasWorker.csaspnet-core/src/cargo_fleet.HttpApi.Host/BackgroundJobs/RegistrarOfertasWorker.csaspnet-core/src/cargo_fleet.HttpApi.Host/BackgroundJobs/RetentionPolicyWorker.csaspnet-core/src/cargo_fleet.HttpApi.Host/BackgroundJobs/VerificarRotasWorker.csaspnet-core/src/cargo_fleet.HttpApi/DeviceToken/DeviceTokenController.csaspnet-core/src/cargo_fleet.Application/GalileuCredentials/GalileuCredentialsAppService.csaspnet-core/src/cargo_fleet.Application/GalileuCredentials/GalileuCredentialsAppService.Extended.csaspnet-core/src/cargo_fleet.Application/CargasAdicionais/CargaAdicionalService.csaspnet-core/src/cargo_fleet.Application/CargaAdicionalScraper/CargaAdicionalScraperService.csaspnet-core/src/cargo_fleet.Application/Ofertas/Aceite/OfertasAceitePreparationService.csaspnet-core/src/cargo_fleet.Application/Scryber/PrintingAppService.csaspnet-core/src/cargo_fleet.Application/Metricas/MetricasAppService.csaspnet-core/src/cargo_fleet.EntityFrameworkCore/Ofertas/EfCoreOfertaRepository.csaspnet-core/src/cargo_fleet.Domain/cargo_fleet.Domain.csprojaspnet-core/src/cargo_fleet.Application.Contracts/cargo_fleet.Application.Contracts.csprojangular/src/environments/environment.prod.tsangular/android/app/google-services.jsonangular/src/app/ofertas-abertas/components/cotar/cotar.component.tsangular/package.jsonangular/nginx.conf.github/workflows/Production.yaml.github/kubernetes/production/configmap.yaml.github/kubernetes/production/redis.yml.github/kubernetes/production/dbmigrator.yml.github/kubernetes/develop/api.yml.github/kubernetes/ingress-k3s-gemini.yml.gitignore
Data da auditoria: 2026-03-14 (atualizado com respostas do usuario em 2026-03-14) Versao do sistema analisado: 1.3.1 Contexto: 22 tenants ativos, repositorio privado, meta de 150 tenants Disclaimer: Esta analise foi baseada no codigo-fonte do repositorio e em respostas parciais do responsavel pelo sistema. Nao houve acesso ao ambiente de producao, banco de dados ativo ou logs. Achados classificados como "risco provavel" ou "hipotese" devem ser validados no ambiente real. A ordem de prioridade e uma recomendacao tecnica ajustada com o contexto informado pelo usuario.
Perguntas respondidas
1. Os segredos expostos ja foram usados por pessoas fora da equipe?
2. O repositorio Git e publico ou privado?
4. Quantos tenants ativos? Taxa de crescimento?
7. ScraperOrchestrator: desativado permanentemente ou WIP?
8. URL Galileu
nestle-bre a URL real?9. Senha admin
1q2w3E*usada em producao?12. Existe processo de rotacao de secrets?