Storage esterno e identità
- Usa solo bucket o container esterni pre-creati di proprietà del cliente.
- Nega l’accesso pubblico e l’amministrazione a livello di account.
- Usa identità del workload/catene di credenziali predefinite con i permessi di bucket/container e prefisso più ristretti richiesti da web e worker.
- Mantieni separate le responsabilità di amministrazione, attestazione preflight, operazioni oggetto runtime, migrazione e retention dove la piattaforma lo consente.
- Conserva i secret nel secret manager della piattaforma. Non inserirli mai nel codice sorgente, nei ConfigMap, nelle immagini, negli argomenti/cronologia della shell, nei log, nella telemetria, nei bundle di supporto o nelle evidenze di certificazione.
- Mantieni abilitata la verifica TLS. Monta i file CA privati in sola lettura e ruotali con una procedura di sovrapposizione.
Tre profili di scopo
quarantine: tutti gli upload controllati dall’utente entrano qui.records: solo gli upload utente approvati dallo scanner e gli export generati dal server, strettamente definiti e fidati, diventano disponibili qui.ephemeral: deep canary e dati a vita breve con un ciclo di vita delimitato.
La scansione malware fallisce in chiusura
La produzione richiedeclamd esterno tramite CLAMD_SOCKET_PATH o
CLAMD_HOST. Il TLS dello scanner remoto usa CLAMD_TLS=true e
CLAMD_CA_FILE; un’eccezione plaintext su rete privata è un’eccezione di rischio
esplicita, non il default.
CaseBender calcola SHA-256, scrive un intent di upload, rilegge l’oggetto esatto
e accoda la verifica. Se lo scanner non è disponibile, va in timeout,
restituisce output malformato o non può scansionare la dimensione configurata, l’oggetto resta
in quarantine. I retry sono persistenti; l’esaurimento diventa un dead letter. Solo un
verdetto CLEAN terminale consente la copia in records.
Un risultato INFECTED resta in quarantine e crea un evento di audit di sicurezza
sensibile. Non scaricare mai un campione malware live per il troubleshooting.
Campioni malware intenzionali
I test autorizzati possono memorizzare un campione con content trustMALWARE_SAMPLE e
quarantineOnly. Resta in quarantine, non viene mai promosso e ha stato di scan
SKIPPED. Usa fixture inerti equivalenti a EICAR dove possibile. Richiedi
autorizzazione scritta, gestione isolata, retention/distruzione approvate e nessun
allegato a ticket di supporto. Non indebolire la policy di scansione per far passare un test.
Integrità e versioni esatte
- Persisti SHA-256 applicativo, dimensione, checksum del provider e versione/generazione del provider quando disponibili.
- Verifica i byte scaricati dopo upload, promotion, migrazione, backup e ripristino.
- Tratta gli ETag come opachi; gli ETag multipart/crittografati potrebbero non essere MD5.
- Usa create condizionale per impedire race di sovrascrittura.
- Indirizza retention, legal hold, ripristino e migrazione per versione esatta dell’oggetto—non un oggetto latest fluttuante.
- Genera alert su
storage.checksum_mismatch, oggetti attesi mancanti e orphan confermati.
Crittografia, WORM e legal hold
Richiedi TLS e crittografia server-side gestita dal provider. Usa chiavi gestite dal cliente quando è obbligatorio e verifica separatamente la rotazione/recovery delle chiavi. Per irecords regolamentati, imposta requireWorm: true e
STORAGE_REQUIRE_WORM=true, quindi qualifica versioning del provider, object
retention/immutabilità e legal hold. La readiness fallisce con categoria
capability quando questi controlli sono assenti. CaseBender non aggira
la retention di governance per default e la retention di compliance blocca intenzionalmente
l’eliminazione anticipata.
La capability WORM in un SDK non è prova che il bucket/container sia stato creato
con le impostazioni di immutabilità richieste.
Nessun URL firmato
Gli adapter di storage CaseBender non generano URL S3 pre-firmati, URL firmati GCS o URL SAS Azure. I download devono passare attraverso autenticazione CaseBender, autorizzazione, controlli tenant, controlli di ciclo di vita, approvazione dello scanner e confini di audit.Health
/api/health/liveè solo di processo e non ha dipendenze esterne./api/health/readyverifica i provider configurati e richiede un deep canary fresco di write/read/copy/delete suephemeral.- La risposta espone solo categorie sanitizzate:
configuration,authentication,tls,storage,capabilityocanary_stale.