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.
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.
A varredura de malware falha em modo fechado
A produção exigeclamd 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údoMALWARE_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.
Criptografia, WORM e legal hold
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. Pararecords 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/readyverifica os provedores configurados e exige um canário profundo recente de write/read/copy/delete emephemeral.- A resposta expõe somente categorias sanitizadas:
configuration,authentication,tls,storage,capabilityoucanary_stale.