Ce support s'adresse à tout informaticien ainsi qu'à toute personne intéressée par la sécurité du système d'exploitation Android et de ses applications installées sur un smartphone ou sur une tablette. Il donne au lecteur les connaissances de base sur les différents types d'attaque, les différentes vulnérabilités et les différents moyens de s'en protéger, ainsi que sur la façon de mener des...
Ce support s'adresse à tout informaticien ainsi qu'à toute personne intéressée par la sécurité du système d'exploitation Android et de ses applications installées sur un smartphone ou sur une tablette. Il donne au lecteur les connaissances de base sur les différents types d'attaque, les différentes vulnérabilités et les différents moyens de s'en protéger, ainsi que sur la façon de mener des tests.
L'auteur commence par présenter l'architecture du système Android, ses différents composants internes et la façon dont ils interagissent entre eux, puis il invite le lecteur à installer un environnement virtuel de test avec les outils indispensables pour mener à bien les tests d'intrusion sur Android.
Pour mieux appréhender les tests qui seront illustrés tout au long du livre, un chapitre est consacré à la présentation des attaques les plus populaires et les plus prisées par les cybercriminels : attaques physiques, attaques locales, logiciels malveillants…
La suite du livre est dédiée à la réalisation de différents tests. Le lecteur découvre ainsi comment tester des applications mobiles pour rechercher des vulnérabilités et les exploiter, que ce soit dans environnement virtuel Windows, dans une architecture ARM ou sous Linux avec Kali Linux.
Un petit chapitre traite de l'analyse forensique reposant sur la collecte des données d'un smartphone ou sur la récupération de données supprimées. Pour finir, l'auteur propose un chapitre rappelant les bonnes pratiques à respecter pour sécuriser son smartphone ou sa tablette Android, tant pour l'utilisateur que pour le développeur.
La sécurité sous Android
1. Introduction
2. Petite histoire
3. Les besoins de sécurité sur les appareils mobiles
4. L'architecture Android
5. Les sandboxes et les autorisations
5.1 Les signatures d'applications
5.2 Les autorisations des API
5.3 La communication sécurisée inter-processus
6. Android rooting
7. Les packages d'application Android (APK)
8. Les composants d'une application
8.1 Les intentions
8.2 Les activités
8.3 Les vues
8.4 Les services
8.5 Les récepteurs de diffusion
8.6 Les fournisseurs de contenu
9. Comment fonctionne une application ?
10. Les différents types d'applications
10.1 Les applications natives
10.2 Les applications web
10.3 Les applications hybrides
11. Les niveaux d'API Android
12. Conclusion
Préparation de l'environnement de test Android
1. Introduction
2. Création de services virtuels Android (AVD)
2.1 L’installation du JDK (Java Development Kit) Android
2.2 Le SDK d'Android
2.3 L’installation du SDK Android
2.4 L’installation et la configuration d'un service Android virtuel
2.5 Genymotion
2.5.1 Installation
2.5.2 Comment installer une application sur Genymotion
2.5.3 Installation d'une application vulnérable sur Genymotion
2.5.4 Les plugins de Genymotion
2.5.5 L'architecture ARM
2.5.6 Les Open Gapps et le Google Play Store
2.6 Les outils du pentester
2.6.1 Drozer
2.6.2 ADB (Android Debug Bridge)
2.6.3 Apktool
2.6.4 dex2jar
2.6.5 JD-GUI
2.6.6 Burp Suite
2.7 L’installation et la configuration d’applications vulnérables
2.7.1 Première application
2.7.2 Seconde application
2.7.3 Troisième application
3. Conclusion
Les différents types d'attaques
1. Introduction
2. Les attaques physiques
3. Les attaques locales
4. Les attaques à distance
5. Les fausses applications
6. Les logiciels malveillants
7. Les conséquences d'une attaque réussie
8. Les méthodologies reconnues
9. Le top 10 des vulnérabilités Android
10. Conclusion
Tester des applications mobiles
1. Introduction
2. Méthodologie
2.1 Découverte de l'environnement
2.2 Analyse
2.2.1 Analyse statique
2.2.2 Analyse dynamique
2.3 Plan d'exécution
2.4 Exploitation
2.5 Remise du rapport de test
3. Recherche de vulnérabilités et exploitation
3.1 Drozer
3.1.1 Analyse
3.1.2 Rappel sur les composants Android
3.1.3 Test sur les activités
3.1.4 Test sur les services
3.1.5 Test sur les récepteurs de diffusion
3.1.6 Test sur les fournisseurs de contenus
3.1.7 L'injection SQL
3.1.8 Le gestionnaire de mots de passe
3.1.9 Analyser les logs
3.2 ADB (Android Debug Bridge)
3.2.1 Analyse du stockage des données
3.2.2 Élévation de privilèges
4. Décompilation d'une application pour analyse
5. Analyse du trafic Android
6. Un autre outil intégré au SDK
7. Conclusion
Test d'applications avec Kali Linux
1. Introduction
2. Pourquoi Kali Linux ?
3. Préparation et installation de l'environnement de test
3.1 Installation de Kali Linux
3.2 Création du service virtuel Android (AVD)
3.3 Outils du pentester Android
3.3.1 Drozer
3.3.2 ADB
3.3.3 APKTool
3.3.4 QARK
4. Simulation de test
4.1 Scan Android avec Nmap
4.2 Exploitation Android avec Metasploit
5. Qu'est-ce que le fuzzing ?
6. Santoku-Linux
7. Conclusion
Tests sous l'architecture ARM
1. Introduction
2. Le processeur ARM
3. Notions fondamentales
3.1 Les différents modes de fonctionnement
3.2 Les registres
3.3 La notion de pile
3.4 Les registres d'états
3.5 Les différents modes ARM
4. Un peu d'assembleur
4.1 Les instructions de traitement de données
4.2 Les instructions d'accès à la mémoire
4.3 Les instructions conditionnelles
4.4 Les instructions de branchement ARM
5. Préparation de l'environnement
6. Buffer overflow
7. Return to Libc (Ret2Libc)
7.1 Première approche
7.2 Les techniques plus récentes
8. Conclusion
Analyse forensique sous Android
1. Introduction
2. Les méthodes d'extraction de données
2.1 L'acquisition manuelle
2.2 L'acquisition logique
2.3 L'acquisition physique
3. Le système de fichiers
4. L'extraction des données
4.1 Les SMS/MMS
4.2 Le journal d'appels
4.3 L'historique de navigation web
4.4 Les e-mails
5. Conclusion
Sécurité et bonnes pratiques
1. Introduction
2. Comment ne pas se faire pirater, alors ?
2.1 Les bonnes pratiques, c'est logique !
2.2 Antivirus... ou pas ? Le grand débat
2.3 Android rooting
2.4 Les réseaux VPN
2.5 Firewall
2.6 Les efforts de Google
2.7 Les sources sûres
2.8 Les fausses applications
3. Notre impuissance face à certaines attaques
4. Sécuriser son code source
5. Pour aller plus loin
6. Conclusion
Index
Michael MARETTE
Passionné par les nouvelles technologies, Michaël MARETTE estconsultant indépendant et propose à ses clients la réalisation de tests d'intrusion ainsi que des formations en sécurité. Certifié CEH (Certified Ethical Hacker), il a à cœur de transmettre dans ce livre toutes ses connaissances sur les fondamentaux de la sécurité d'un système Android.