Analyse statique des applications mobiles



L'une des étapes du test d'une application mobile est une analyse statique. L'analyse statique de l'application est l'analyse de l'application sans effectuer aucune fonction d'application. Le plus pratique pour moi parmi les frameworks open source est MobSF. Peu importe, bienvenue au chat.

MobSF effectue une analyse statique des applications: Android, Apple iOS et Windows Phone et une analyse dynamique: uniquement les applications Android. Je vais vous expliquer comment mener une analyse dynamique dans le prochain article consacré à MobSF. Une description plus détaillée et un manuel d'installation peuvent être trouvés ici .

Après avoir installé MobSF, nous allons effectuer le fichier batch suivant pour démarrer le serveur (j'ai écrit moi-même, donc lecteur D).

d: cd .\MobSF\ python .\manage.py runserver 

Ensuite, vous devez aller à l'adresse http [:] // 127.0.0.1:8000 et la page principale s'ouvre (Fig. 1). Il n'y a pas grand chose de fonctionnel ici:

  • téléchargement de fichiers;
  • afficher les rapports sur les analyses passées;
  • Passer à la documentation de l'API
  • transition vers le projet github.


Fig. 1. La page principale

Une fois le fichier téléchargé et analysé, une page avec le résultat de l'analyse apparaît (Fig. 2). Sur la gauche se trouve un menu qui vous permet de sauter rapidement dans la page (le résultat est volumineux simplement). Quelles informations utiles figurent dans cette capture d'écran:

  • quantité de hachage d'application
  • Versions du système d'exploitation Android prises en charge
  • le nombre et les types de composants (exportés ou non), cela est important, car les composants exportés peuvent entraîner des vulnérabilités critiques;
  • la possibilité de visualiser et de télécharger des fichiers java et smali qui peuvent être analysés avec d'autres outils ou manuellement;
  • afficher le fichier manifeste pour analyse.


Fig. 2. Le résultat de l'analyse

Nous allons plus loin. Dans la fig. La figure 3 montre les informations de certificat par lesquelles l'application a été signée.


Fig. 3. Informations sur le certificat

Ce qui suit est une description de l'analyse des autorisations, qui sont décrites dans le fichier AndroidManifest.xml (Fig.4). MobSF analyse les autorisations de l'application, détermine son état, pour la criticité et la description des autorisations. Ici, vous devez comprendre l'architecture d'Android OS pour la véritable criticité de l'application.


Fig. 4. Analyse des autorisations Android

L'onglet Security Analysis -> Code Analysis (Fig. 5) montre le résultat de l'analyse de code java par un analyseur statique qui identifie les vulnérabilités potentielles, détermine leur gravité et les fichiers dans lesquels ce type de vulnérabilité a été trouvé. À bien des égards, ces résultats sont faux positifs, mais vous devez vérifier à nouveau.


Fig. 5. Analyse de code

L'onglet suivant (Fig. 6) est l'analyse des fichiers sur le service virustotal.com. Dans ce cas, le fichier n'a pas été détecté comme infecté.


Fig. 6. Analyse de fichiers

L'onglet URL (figure 7) affiche une liste d'URL, d'adresses IP et de fichiers dans lesquels ils sont stockés ou appelés. Cette section analyse où l'application envoie des données ou où elle stocke des informations.


Fig. 7. URL des onglets

L'onglet «Chaînes» (Fig. 8) analyse les fichiers texte qui se trouvent dans le répertoire res. Lors de l'analyse de l'application, ces fichiers peuvent contenir des comptes codés en dur et d'autres données sensibles. Bien que ce ne soit pas dans ma mémoire.


Fig. 8. Analyse des fichiers texte

L'onglet «Composants» (Fig. 9) affiche une liste complète des composants (activité, service, fournisseur de contenu et réception), bibliothèques et fichiers importés sans définir d'extension.


Fig. 9. Liste des composants

De plus, l'analyse du code source peut être effectuée à l'aide de l'analyseur statique du scanner VCG. VCG a besoin de code source. Le code source peut être téléchargé via le bouton Télécharger le code Java (Fig. 10). Le fichier est téléchargé dans une archive ZIP. Ensuite, vous devez extraire le dossier contenant les fichiers de l'archive (Fig. 11).


Fig. 10. Téléchargement du code source


Fig. 11. Extraire le code source

L'analyse du code source se fait comme suit:

  1. Dans l'onglet «Paramètres», sélectionnez «Java» - Figure 12.
  2. Dans l'onglet «Fichier», sélectionnez «Nouveau répertoire cible» - Figure 13.
  3. Dans l'onglet «Scan», sélectionnez «Full scan» - Figure 14.


Fig. 12. Sélection du code source


Fig. 13. Téléchargement d'un répertoire avec des fichiers


Fig. 14. Lancer l'analyse

Une fois l'analyse terminée, le scanner affiche les noms de la vulnérabilité, sa criticité, une brève description et la place dans le code source (Fig. 15). Vous pouvez obtenir une liste complète des vulnérabilités et les trier par leur criticité (Fig. 16).


Fig. 15. Description des vulnérabilités


Fig. 16. La liste complète des vulnérabilités

Conclusion

L'analyse statique de l'application et du code source fournit des concepts de base sur l'architecture de l'application et les vecteurs d'attaque potentiels. Selon la méthodologie utilisée par ByteCode, c'est de lui que commence l'analyse de toutes les candidatures du client venu au pentest.

Source: https://habr.com/ru/post/fr429252/


All Articles