Aller au contenu

Symboles de débogage présents dans l'application Android

Description

L'application est livrée avec des symboles de débogage et des informations de débogage telles que les informations de débogage, les numéros de ligne et les noms descriptifs de fonctions ou de méthodes, ce qui facilite la rétro-ingénierie (reverse engineering).

Il est à noter que la plupart des outils de rapport de plantage (crash reporting) prennent en charge le téléchargement de symboles pour effectuer la symbolisation des traces d'exécution (stack trace) et n'exigent pas que les symboles soient présents dans l'application.

Pour vérifier que les bibliothèques natives ne sont pas livrées avec des symboles de débogage, utilisez la commande suivante :

readelf --debug-dump=info <library>

Recommandation

Supprimez tous les symboles et données de débogage de l'application.

Pour ce faire, voici quelques recommandations :

  • Configurez le type de build pour exclure les informations de débogage en compilant en mode release.
  android {
      ...
      buildTypes {
          release {
              debuggable false
              ...
          }
      }
  }
  • Utilisez ProGuard pour supprimer les symboles de débogage natifs.
buildTypes {
        ...
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            ...
        }
    }
  • Utilisez la commande strip pour supprimer les symboles des bibliothèques natives :
strip -s <library>

Détectez ce problème avec Ostorlab

Ostorlab recherche ce problème dans les applications Android et iOS.

Scanner votre app gratuitement

Liens

Normes

  • OWASP_MASVS_L1:
    • MSTG_CODE_3
  • OWASP_MASVS_L2:
    • MSTG_CODE_3
  • PCI_STANDARDS:
    • REQ_2_2
    • REQ_6_2
  • OWASP_MASVS_v2_1:
    • MASVS_RESILIENCE_3
  • HIPAA_CONTROLS:
    • SECURITY212
    • SECURITY213
  • OWASP_MOBILE_TOP_10:
    • M8_2024