Aller au contenu

Insecure Shared Preferences Permissions

Autorisations non sécurisées des Shared Preferences

Description

La configuration des Shared Preferences avec des autorisations non sécurisées, telles que lisible par tous (world-readable) ou inscriptible par tous (world-writable), peut exposer les informations sensibles stockées dans les préférences partagées à une lecture ou une écriture arbitraire par un attaquant malveillant.

Recommandation

Les Shared Preferences sont des fichiers XML utilisés pour stocker des données primitives privées sous forme de paires clé-valeur. Les types de données incluent les booléens, les flottants, les entiers (ints), les entiers longs (longs) et les chaînes de caractères (strings).

Les Shared Preferences ne doivent jamais être configurées avec l'autorisation MODE_WORLD_READABLE ou MODE_WORLD_READABLE (inscriptible par tous), à moins que cela ne soit explicitement requis pour le partage d'informations entre applications.

Au lieu de cela, les autorisations partagées doivent utiliser le mode MODE_PRIVATE (mode par défaut). Ce mode signifie que seule l'application ayant créé les Shared Preferences peut y accéder ou les modifier.

  SharedPreferences sharedPreferences = getSharedPreferences("MyPreferences", Context.MODE_PRIVATE);
  SharedPreferences.Editor editor = sharedPreferences.edit();
  editor.putString("language", "en-US");
  editor.apply();

Liens

Normes

  • OWASP_MASVS_L1:
    • MSTG_PLATFORM_4
  • OWASP_MASVS_L2:
    • MSTG_PLATFORM_4
  • CWE_TOP_25:
    • CWE_276
  • GDPR:
    • ART_5
    • ART_32
  • PCI_STANDARDS:
    • REQ_2_2
    • REQ_6_2
    • REQ_6_3
    • REQ_7_3
    • REQ_11_3
  • OWASP_MASVS_v2_1:
    • MASVS_PLATFORM_1
  • SOC2_CONTROLS:
    • CC_2_1
    • CC_4_1
    • CC_6_1
    • CC_7_1
    • CC_7_2
    • CC_7_4
    • CC_7_5
  • HIPAA_CONTROLS:
    • SECURITY251
    • SECURITY221
    • SECURITY212
    • SECURITY213