Aller au contenu principal

5. Considérations de sécurité (Security Considerations)

Voir la discussion ci-dessus dans la section 3.

Principales considérations de sécurité (Main Security Considerations)​

Données passives (Passive Data)​

Les fichiers CSV contiennent des données texte passives et ne devraient (should) généralement pas poser de risque de sécurité direct. En tant que format de texte brut, le CSV n'exécute pas de code ni de script par lui-même.

Risques potentiels (Potential Risks)​

1. Dépassements de tampon (Buffer Overruns)​

Des données binaires malveillantes pourraient (may) théoriquement être incluses dans un fichier CSV pour exploiter des vulnérabilités potentielles de dépassement de tampon dans les programmes qui traitent les données CSV.

Mesures d'atténuation (Mitigations) :

  • Mettre en œuvre une validation d'entrée appropriée.
  • Utiliser des fonctions de manipulation de chaînes sûres.
  • Définir des limites raisonnables sur la taille des champs.
  • Maintenir les bibliothèques d'analyse CSV à jour.

2. Confidentialité des données (Data Privacy)​

Des données privées peuvent (may) être partagées via ce format, comme c'est le cas pour toute donnée texte.

Mesures d'atténuation (Mitigations) :

  • Appliquer des contrôles d'accès appropriés aux fichiers CSV sensibles.
  • Utiliser le chiffrement pendant le transport, tel que TLS.
  • Chiffrer les fichiers CSV stockés lorsque cela est approprié.
  • Suivre les principes de minimisation des données.

3. Attaques par injection (Injection Attacks)​

Les données des fichiers CSV peuvent (may) déclencher une injection de formule ou une exécution de commande lors de leur importation dans des programmes de tableur.

Mesures d'atténuation (Mitigations) :

  • Échapper ou valider les champs qui commencent par =, +, - ou @.
  • Désactiver l'exécution automatique des formules lors de l'importation lorsque c'est possible.
  • Avertir les utilisateurs du contenu potentiellement exécutable.

4. Problèmes d'encodage des caractères (Character Encoding Issues)​

Un traitement incorrect de l'encodage des caractères peut (may) provoquer une corruption des données ou des vulnérabilités de sécurité.

Mesures d'atténuation (Mitigations) :

  • Spécifier et valider explicitement les encodages de caractères, en utilisant le paramètre charset.
  • Traiter correctement les caractères multi-octets.
  • Prévenir les attaques de confusion d'encodage.

Recommandations d'implémentation (Implementation Recommendations)​

  1. Validation des entrées (Input validation) : toujours valider et assainir les données d'entrée CSV.
  2. Gestion des erreurs (Error handling) : mettre en œuvre une gestion des erreurs robuste.
  3. Limites de ressources (Resource limits) : définir des limites raisonnables sur la taille des fichiers, le nombre d'enregistrements et la longueur des champs.
  4. Configuration sécurisée (Secure configuration) : exécuter les processeurs CSV avec le moindre privilège.
  5. Journalisation (Logging) : journaliser les activités de traitement CSV anormales ou suspectes.

Conseils généraux (General Guidance)​

Lors du traitement de fichiers CSV, les applications devraient (should) suivre les meilleures pratiques de sécurité standard, notamment :

  • Ne pas faire confiance aux entrées utilisateur.
  • Appliquer une défense en profondeur.
  • Effectuer des revues et mises à jour de sécurité régulières.
  • Suivre le principe du RFC 793 : « soyez conservateur dans ce que vous faites, soyez libéral dans ce que vous acceptez des autres ».