Ce cours traitera de tous les aspects pertinents liés à la sécurité des systèmes mobiles. Les appareils mobiles ont révolutionné la vie des utilisateurs et plus de deux milliards d'appareils mobiles ont été vendus à ce jour. Malheureusement, ces périphériques, leurs systèmes d'exploitation et les applications qui les utilisent sont affectés par des problèmes de sécurité et de confidentialité.
Ce cours sera pratique et couvrira des sujets tels que l'écosystème mobile, la conception et l'architecture des systèmes d'exploitation mobiles, l'enracinement et le jailbreaking, l'analyse des applications, l'ingénierie inverse des logiciels malveillants, la détection des logiciels malveillants, l'évaluation de la vulnérabilité, l'analyse statique et dynamique automatique, les techniques d'exploitation et de réduction.
Bien que ce cours se concentrera principalement sur l'OS Android de Google (sa nature ouverte permet d'avoir des exercices et des projets plus intéressants), il couvrira également les détails techniques de l'iOS d'Apple.
Modalités pédagogiques : Cours magistraux et challenges sur une application web dédiée au cours.
Règles du cours : L'assiduité aux cours n'est pas vérifiée, mais elle est généralement nécessaire pour réussir.
- Matériel personnel
- Ressources en ligne (mise à disposition des étudiants).
Il est recommandé d'avoir des connaissances de base en programmation C / Java et d'être familier avec les environnements basés sur Linux.
- Introduction aux appareils mobiles et à la sécurité mobile
- API de développement d'applications et de framework Android
- Architecture Android et conception de la sécurité
- L'attaque des appareils mobiles : la surface d'attaque
- Logiciels malveillants mobiles
- Analyse d'applications et rétro-ingénierie
- Analyse statique et dynamique
- Analyse et détection des logiciels malveillants
- Détection et correction des vulnérabilités
- Recherche en sécurité mobile
Objectifs d'apprentissage:
- Comprendre de façon autonome et critique les sujets liés aux systèmes de sécurité mobiles et y réfléchir sur le plan théorique et technique.
- Savoir effectuer de façon indépendante l'analyse des logiciels malveillants, la rétro-ingénierie d'applications à code source fermé, l'évaluation des vulnérabilités et le développement d'outils d'analyse de programmes simples.
- Savoir modifier le système d'exploitation interne d'Android, afin de développer et d’exécuter des versions personnalisées de l'OS sur des appareils.
Nombre d'heure : 42 heures
Evaluation :
- Examen final écrit (60% de la note finale)
- Devoirs à la maison sous forme de challenges (40% de la note finale)