Lorsque l’on parle de tests d’intrusion sur Android, l’esprit de la plupart des auditeurs s’envole vers les outils apktool ou encore dex2jar pour la partie analyse statique. Mais qu’en est-il lorsque les applications ne sont pas développées en Java ou Kotlin ? L’objectif de cet article est de présenter une méthodologie alternative pour les cas de figure moins courants. La méthodologie « classique » des tests d'intrusion mobiles se décompose généralement en 3 parties : l’analyse statique, l’analyse dynamique ainsi que l’analyse des flux réseau. Au sein de cet article, nous nous concentrerons sur une petite partie de l’analyse statique : l’audit du code source de l’application. Le décor étant planté, dépêchons-nous, je n’ai que quelques heures !
1. Introduction
À l’heure actuelle, deux systèmes d’exploitation, iOS et Android, dominent le marché du mobile avec environ 20% et 80% des parts du marché. Bien que le système d’exploitation Android soit nettement plus répandu que celui de la pomme (la piquette Jack !), les éditeurs d’applications ne prennent que rarement le risque d’exclure de potentiels utilisateurs obligeant ainsi à réaliser un double développement… ou pas !
En effet, les applications mobiles se découpent maintenant en deux parties : les applications natives et les applications non natives.
2. Les applications natives
À l’heure actuelle, il existe deux principaux langages de programmation permettant de développer des applications natives sous Android : Java et Kotlin. Il en est de même sous iOS : Objective-C et Swift. Les applications natives représentent la grande majorité des applications téléchargées quotidiennement sur les magasins officiels.
Une application...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première
[Apache Cordova] https://cordova.apache.org/
[apkFram] https://github.com/rsenet/apkfram
[Dart] https://dart.dev/
[dex2jar] https://sourceforge.net/projects/dex2jar/
[DnSpy] https://github.com/dnSpy/dnSpy
[Doc Cordova] https://cordova.apache.org/docs/en/10.x/guide/appdev/security/index.html
[Flutter Reverse1] https://blog.tst.sh/reverse-engineering-flutter-apps-part-1/
[Flutter Reverse2] https://blog.tst.sh/reverse-engineering-flutter-apps-part-2/
[Hermes] https://reactnative.dev/docs/hermes
[hbcdump] https://github.com/facebook/hermes/blob/master/doc/BuildingAndRunning.md#other-tools
[hbctool] https://github.com/bongtrop/hbctool
[ILSpy] https://github.com/icsharpcode/ILSpy/releases/tag/v5.0.2
[Jadx] https://github.com/skylot/jadx
[JD-GUI] http://java-decompiler.github.io/
[PhoneGap] https://blog.phonegap.com/
[Xamarin] https://github.com/xamarin