🧠Mémoire

L'analyse de la mémoire peut être un bon moyen pour les développeurs d'identifier et comprendre certains problèmes liées au fonctionnement d'une application. Cependant, cela peut être à double tranchant lorsque des informations sensibles sont stockées en mémoire par celle-ci.

Il existe plusieurs façons d'analyser la mémoire pour une application données. On peut soit faire un dump de mémoire pour faire une analyse statique hors ligne, soit faire cette analyse de façon dynamique à l'aide d'un debugger. Mais pour cela, il faut au préalable que le la fonctionnalité de deboggage soit active (android:debuggable=true).

Dynamique avec Android Studio

Ici, nous allons voir comment faire une analyse avec la première méthode à l'aide de Android Studio.

Android Studio dispose d'une fonctionnalité nommée Android Profiler capable d'analyser en temps réel la consommation de CPU, mémoire et énergie d'une application.

Parmis les fonctionnalités du profiler, le dump de mémoire permet de faire une capture de la mémoire d'une application de manière dynamique pendant son utilisation qui pourra être analysé dans Android Studio directement.

Pour cela il suffit de double cliquer sur l'interface "MEMORY" et de choisir "Capture heap dump" puis cliquer sur "Record" pour terminer la capture de la mémoire qui a été lancé au démarrage de la session.

Une fois la capture faite, on peut alors arréter la session en cliquant sur le carré rouge de l'interface "SESSIONS".

Une fois cela fait, l'analyse peut commencer.

Statique avec Fridump

Dump des données liés à une application spécifique

Pour dump les données liées à une application spécifique on peut utiliser:

$ fridump -U com.example.xyz -o path/to/output/directory

On peut également utiliser strings directement avec fridump avec l'argument -s:

$ fridump -U -s com.example.xyz -o path/to/output/directory

Il est ensuite possible d'analyser le fichier de dump avec des outils spécialisés.

Les éléments d'intérêt pour l'investigation étant:

  • Les noms de champs indicatifs tels que: password, pass, pin, private, secret...

  • Des patterns sensibles dans les chaînes de caractères, char arrays, bytes arrays...

  • Des données personnelles et sensibles tels que des numéros de carte de crédit, des tokens...

  • ...

Outils

Eclipse MAT (Memory Analyzer Tool)

Eclipse MAT est un standalone de Eclipse fait explicitement pour l'analyse de mémoire JAVA incluant un système de language semblabe au SQL pour rechercher des informations spécifiques dans une capture mémoire.

ressource: https://eclipse.dev/mat/downloads.php

Fridump

Fridump est un outil de capture mémoire pour mobile utilisant Frida.

ressource: https://github.com/Nightbringer21/fridump

Dernière mise à jour