Audit sécurité d'applications mobiles Android et iOS
Audit sécurité d'applications mobiles Android et iOS
Objectifs
- Appréhender les problématiques sécurité des applications mobiles.
- Savoir effectuer une analyse statique.
- Utiliser Frida pour réaliser une analyse dynamique.
- Intercepter le trafic d’une application mobile.
Le programme de la formation
iOS
Présentation de l'écosystème iOS
Architecture iOS et fonctionnalités de sécurité
OWASP MSTG et MASVS
Techniques utilisées pour auditer une application
Jailbreak : histoire, types et évolution
Mise en place d'un environnement de test
Signature d'applications
Présentation de Corellium
Analyse statique d'applications iOS
Analyse des méta-données liées aux applications
Déchiffrement d'une application
Décompilation avec Hopper
- Travaux Pratiques
Automatisation de l'analyse statique avec MobSF
Déchiffrement d'une application récupérée de l'AppStore
Décompilation et retro-ingénierie d'une application
Android
Présentation de l'écosystème Android
Architecture d'Android (Composants et Sandboxing)
Structure et contenu d'un APK
Présentation de l'Android Manifest
Mise en place d'un environnement de test
- Travaux Pratiques : Développement d'une application Android
Analyse statique et modification d'applications Android
Décompilation d'une application avec JADX
Analyse statique avec apktool
Modification d’une application Android avec apktool
Signature d’une application Android
- Travaux Pratiques
Recherche et identification de secrets au sein d'une application
Modification d’une application Android
iOS
Analyse des données d'applications iOS
Les données sauvegardées par iTunes
- Travaux Pratiques : Récupération d'informations sensibles à partir d'une sauvegarde
Les données stockées sur le terminal
- Travaux Pratiques : Récupération d'informations sensibles / via les journaux
Analyse dynamique d'applications iOS
Interfaces et implémentations en Objective-C
Rétro-ingénierie d'une application pour contourner des fonctions de sécurité
- Travaux Pratiques : Décompilation, retro-ingénierie puis modification en mémoire d'une application avec Frida pour contourner une fonction de sécurité
Android
Analyse dynamique d'applications Android
Revue des différentes méthodes de stockage de données
- Shared Preferences
- Bases de données (SQLite)
- Stockage interne et externe
- Travaux Pratiques : Exploitation des faiblesses de chaque méthode
Comparaison de l'utilisation d'un émulateur ou d'un terminal physique
Techniques de détection d’un émulateur ou d'un équipement "rooté"
Revue des contrôles d’accès des composants Android
- Activities
- Content Providers
- Travaux Pratiques : Exploitation des faiblesses de contrôle d'accès
- Travaux Pratiques : Décompilation, rétro-ingénierie puis modification en mémoire d'une application avec Objection pour contourner une fonction de sécurité
iOS
Sécurité des communications des applications iOS
Interception du trafic réseau
Fonctionnement et implémentation du Certificate Pinning
Techniques de contournement du Certificate Pinning
- Travaux Pratiques
Interception de trafic non chiffré
Interception de trafic chiffré
Contournement du Certificate Pinning
Que faire sans terminal iOS jailbreaké ?
Analyse des sauvegardes et des journaux
Interception du trafic réseau
Side-loading d'application pour embarquer un framework d'analyse (Frida/Cycript/Objection)
Android
Sécurité des communications des applications
Revue des faiblesses courantes
Interception du trafic réseau
Fonctionnement et implémentation du Certificate Pinning
Techniques de contournement du Certificate Pinning
- Travaux Pratiques : Inteception de trafic chiffré et contournement du Certificate Pinning
Instrumentation d'applications Android avec Frida
Présentation de Frida
Création de scripts Frida pour instrumenter du code Java
Utilisation de Frida pour instrumenter du code natif
- Travaux Pratiques : Utilisation de Frida pour contourner des routines de détection de "root"
Public et Pré-requis de la formation
Administrateurs système ou réseau, Développeurs et Consultant en sécurité souhaitant acquérir des compétences en audit d’applications mobiles.
Avoir de bonne connaissance en informatique, connaissances en réseau (TCP/IP et HTTP) et Linux (savoir utiliser le terminal) et connaissances de base en sécurité.
Méthode pédagogique de la formation
Cours magistral.
Travaux pratiques.