5. Considerazioni sulla sicurezza (Security Considerations)
Vedere la discussione sopra nella sezione 3.
Principali considerazioni sulla sicurezza (Main Security Considerations)
Dati passivi (Passive Data)
I file CSV contengono dati di testo passivi e generalmente non dovrebbero (should) rappresentare un rischio diretto per la sicurezza. Come formato di testo semplice, il CSV non esegue codice o script da solo.
Rischi potenziali (Potential Risks)
1. Sovraccarichi del buffer (Buffer Overruns)
Dati binari dannosi potrebbero (may) teoricamente essere inclusi in un file CSV per sfruttare potenziali vulnerabilità di sovraccarico del buffer nei programmi che elaborano dati CSV.
Mitigazioni (Mitigations):
- Implementare un'appropriata validazione dell'input.
- Utilizzare funzioni sicure per la gestione delle stringhe.
- Impostare limiti ragionevoli sulla dimensione dei campi.
- Mantenere aggiornate le librerie di parsing CSV.
2. Privacy dei dati (Data Privacy)
I dati privati possono (may) essere condivisi tramite questo formato, come per qualsiasi dato di testo.
Mitigazioni (Mitigations):
- Applicare controlli di accesso appropriati ai file CSV sensibili.
- Utilizzare la crittografia durante il trasporto, come TLS.
- Crittografare i file CSV archiviati quando appropriato.
- Seguire i principi di minimizzazione dei dati.
3. Attacchi di iniezione (Injection Attacks)
I dati nei file CSV possono (may) innescare l'iniezione di formule o l'esecuzione di comandi quando vengono importati in programmi di fogli di calcolo.
Mitigazioni (Mitigations):
- Fare l'escape o validare i campi che iniziano con
=,+,-o@. - Disabilitare l'esecuzione automatica delle formule durante l'importazione quando possibile.
- Avvisare gli utenti del contenuto potenzialmente eseguibile.
4. Problemi di codifica dei caratteri (Character Encoding Issues)
Una gestione errata della codifica dei caratteri può (may) causare corruzione dei dati o vulnerabilità di sicurezza.
Mitigazioni (Mitigations):
- Specificare e validare esplicitamente le codifiche dei caratteri, utilizzando il parametro charset.
- Gestire correttamente i caratteri multibyte.
- Prevenire gli attacchi di confusione della codifica.
Raccomandazioni di implementazione (Implementation Recommendations)
- Validazione dell'input (Input validation): validare e sanificare sempre i dati di input CSV.
- Gestione degli errori (Error handling): implementare una gestione degli errori robusta.
- Limiti delle risorse (Resource limits): impostare limiti ragionevoli sulla dimensione dei file, sul numero di record e sulla lunghezza dei campi.
- Configurazione sicura (Secure configuration): eseguire i processori CSV con privilegi minimi.
- Registrazione (Logging): registrare le attività di elaborazione CSV anomale o sospette.
Linee guida generali (General Guidance)
Durante l'elaborazione di file CSV, le applicazioni dovrebbero (should) seguire le migliori pratiche di sicurezza standard, tra cui:
- Non fidarsi degli input degli utenti.
- Applicare la difesa in profondità.
- Eseguire revisioni e aggiornamenti di sicurezza regolari.
- Seguire il principio dell'RFC 793: «sii conservativo in ciò che fai, sii liberale in ciò che accetti dagli altri».