Skip to main content
Aplique esta linha de base a cada perfil de armazenamento de produção e valide-a no ambiente do cliente.

Armazenamento externo e identidade

  • Use somente buckets ou contêineres externos pré-criados, de propriedade do cliente.
  • Negue acesso público e administração em toda a conta.
  • Use cadeias de identidade de carga de trabalho/credenciais padrão com as permissões mais restritas de bucket/contêiner e prefixo exigidas por web e worker.
  • Mantenha administração, atestação de preflight, operações de objeto em runtime, migração e responsabilidades de retenção separadas quando a plataforma permitir.
  • Armazene segredos no gerenciador de segredos da plataforma. Nunca os coloque em código-fonte, ConfigMaps, imagens, argumentos/histórico do shell, logs, telemetria, pacotes de suporte ou evidência de certificação.
  • Mantenha a verificação TLS habilitada. Monte arquivos de CA privada somente leitura e rotacione-os com um procedimento de sobreposição.
Os adaptadores de runtime executam somente operações de data-plane. Eles não devem criar, excluir nem configurar locais de armazenamento.

Três perfis de propósito

  • quarantine: todos os uploads controlados pelo usuário entram aqui.
  • records: somente uploads de usuário aprovados pelo scanner e exportações geradas pelo servidor, definidas de forma restrita, tornam-se disponíveis aqui.
  • ephemeral: canários profundos e dados de curta duração com ciclo de vida limitado.
Use buckets/contêineres diferentes quando a separação de políticas for exigida. Não conceda aos usuários finais acesso direto ao object store.

A varredura de malware falha em modo fechado

A produção exige clamd externo por CLAMD_SOCKET_PATH ou CLAMD_HOST. O TLS do scanner remoto usa CLAMD_TLS=true e CLAMD_CA_FILE; uma exceção de rede privada em texto simples é uma exceção explícita de risco, não o padrão. O CaseBender calcula o SHA-256, grava uma intenção de upload, relê o objeto exato e enfileira a verificação. Se o scanner estiver indisponível, expirar, retornar saída malformada ou não puder analisar o tamanho configurado, o objeto permanece em quarentena. As retentativas são duráveis; o esgotamento torna-se um dead letter. Somente um veredito terminal CLEAN permite a cópia para records. Um resultado INFECTED permanece em quarentena e cria um evento de auditoria de segurança sensível. Nunca baixe uma amostra de malware viva para solução de problemas.

Amostras intencionais de malware

Testes autorizados podem armazenar uma amostra com confiança de conteúdo MALWARE_SAMPLE e quarantineOnly. Ela permanece em quarentena, nunca é promovida e tem estado de varredura SKIPPED. Use fixtures inertes equivalentes a EICAR sempre que possível. Exija autorização por escrito, tratamento isolado, retenção/destruição aprovadas e nenhum anexo em ticket de suporte. Não enfraqueça a política de varredura para fazer um teste passar.

Integridade e versões exatas

  • Persista o SHA-256 da aplicação, o tamanho, o checksum do provedor e a versão/geração do provedor quando disponíveis.
  • Verifique os bytes baixados após upload, promoção, migração, backup e restauração.
  • Trate ETags como opacos; ETags multipart/criptografados podem não ser MD5.
  • Use create condicional para impedir corridas de sobrescrita.
  • Enderece retenção, legal hold, restauração e migração pela versão exata do objeto — não por um objeto latest flutuante.
  • Alerte em storage.checksum_mismatch, objetos esperados ausentes e órfãos confirmados.
Exija TLS e criptografia no servidor gerenciada pelo provedor. Use chaves gerenciadas pelo cliente quando mandatório e verifique a rotação/recuperação de chaves separadamente. Para records regulamentados, defina requireWorm: true e STORAGE_REQUIRE_WORM=true e, em seguida, qualifique versionamento do provedor, retenção/ imutabilidade de objeto e legal hold. A prontidão falha com a categoria capability quando esses controles estão ausentes. O CaseBender não contorna a retenção de governança por padrão, e a retenção de conformidade bloqueia intencionalmente a exclusão antecipada. Capacidade WORM em um SDK não é prova de que o bucket/contêiner foi criado com as configurações imutáveis exigidas.

Sem URLs assinadas

Os adaptadores de armazenamento do CaseBender não geram URLs S3 pré-assinadas, URLs assinadas do GCS nem URLs SAS do Azure. Os downloads devem passar pela autenticação, autorização, verificações de tenant, verificações de ciclo de vida, aprovação do scanner e limites de auditoria do CaseBender.

Saúde

  • /api/health/live é somente de processo e não tem dependência externa.
  • /api/health/ready verifica os provedores configurados e exige um canário profundo recente de write/read/copy/delete em ephemeral.
  • A resposta expõe somente categorias sanitizadas: configuration, authentication, tls, storage, capability ou canary_stale.
Nunca inclua credenciais de endpoint, chaves de objeto, nomes de bucket, nomes de clientes ou mensagens de exceção do provedor em uma resposta pública de health.

Telemetria e privacidade

Monitore métricas agregadas de provedor, operação, resultado, latência, bytes, scanner, quarentena, outbox, migração, reconciliação e prontidão. Aplique controles de menor acesso e retenção aos dados de observabilidade. Logs e rótulos de métricas podem incluir um provedor canônico e uma operação. Eles não devem incluir credenciais, tokens, URLs assinadas, connection strings, chaves privadas, conteúdos de arquivos, nomes de objetos do cliente ou chaves de objeto sensíveis. Sanitize erros antes da persistência e da exportação de suporte. Consulte Saúde e solução de problemas do armazenamento e Backup e restauração.