Aller au contenu

Android Class Load Hijacking

Détournement de chargement de classe Android

Description

L'application charge un jar/apk stocké dans un emplacement non sécurisé.

Ce processus de chargement peut être détourné, permettant l'accès à des données privées et l'exécution de code arbitraire inattendu par des applications malveillantes.

Recommandation

Si vous utilisez DexClassLoader pour charger et exécuter du code DEX supplémentaire :

  • N'utilisez PAS un répertoire accessible en écriture par tous (comme la carte SD) pour le dexPath
  • N'utilisez PAS un répertoire accessible en écriture par tous (comme la carte SD) pour l'ODEX (DEX optimisé qui est le deuxième paramètre du constructeur DexClassLoader)

Si vous utilisez PathClassLoader pour charger et exécuter des jar/ressources supplémentaires :

  • N'utilisez PAS un répertoire accessible en écriture par tous (comme la carte SD) pour le chemin (path)
  • N'utilisez PAS un répertoire accessible en écriture par tous (comme la carte SD) pour le libpath. Par défaut, le stockage externe est monté avec l'indicateur noexec pour empêcher l'exécution de tout binaire natif sur le système de fichiers monté.

Liens

Normes

  • OWASP_MASVS_L1:
    • MSTG_PLATFORM_2
  • OWASP_MASVS_L2:
    • MSTG_PLATFORM_2
  • CWE_TOP_25:
    • CWE_22
  • PCI_STANDARDS:
    • REQ_2_2
    • REQ_3_5
    • REQ_6_2
    • REQ_6_3
    • REQ_11_3
  • OWASP_MASVS_v2_1:
    • MASVS_CODE_4
  • SOC2_CONTROLS:
    • CC_2_1
    • CC_4_1
    • CC_7_1
    • CC_7_2
    • CC_7_4
    • CC_7_5
  • HIPAA_CONTROLS:
    • SECURITY251
    • SECURITY212
    • SECURITY213