Formations

Prochaine session le 21 janvier 2019

Objectifs

Être capable d'analyser des applications Android et de comprendre les interactions avec le système sous-jacent.

Synopsis

Cette formation vise à fournir les outils et les connaissances nécessaires à l'analyse d'applications Android, ainsi que de détailler la manière dont elles interagissent avec ce système.
La première partie de la formation est orientée sur l'analyse d'applications, la seconde se concentre sur le système interne d'Android, enfin la troisième est axée sur un sujet comprenant à la fois le système et la partie applicative.

Public cible

Reverse engineers et analystes familiers avec l'environnement Android qui souhaitent comprendre son fonctionnement interne ainsi que le reversing d'applications.

Durée de la formation

5 jours

Pré-requis

Des connaissances basiques sur Linux et les applications Android.

Modules

Premier jour

  • Introduction :
    • L'écosystème Android
    • Kit de développement système (SDK) / Kit de développement natif (NDK)
    • Projet Open-Source Android (AOSP)
    • Mise en place de l'environnement
  • Applications Android :
    • Composants des fichiers Android (Manifest, Resources, Libraries, …)
    • Composants des applications Android (Activities, Services, …)
    • Points d'entrée
    • Interface Native Java (JNI)

Deuxième jour

  • Applications Android :
    • Technique de reverse engineering (analyse statique, analyse dynamique, hooking, …)
    • Protections logicielles (obfuscation, packing, anti-debug, …)

Troisième jour

  • Fonctionnement interne d'Android :
    • Aperçu général
    • L'architecture ARM
    • [Optionnel] Reversing de code JNI
    • Système de fichiers (/system/app, /user/data, etc.)
    • Processus Zygote
    • Permissions et gestionnaire de services

Quatrième jour

  • Fonctionnement interne d'Android :
    • Android Runtime (ART) et formats de fichiers (DEX, ART, OAT, ODEX, VDEX, ELF)
    • IPC et Binder
    • Processus de démarrage (boot)
    • Mécanismes de sécurité (dm-verity, SELinux, …)

Cinquième jour

  • [Optionnel] Analyse de logiciels malveillants
    • Analyses de techniques utilisées par des logiciels malveillants tels que Chrysaor
  • [Optionnel] Analyse de ROM
    • De quelles manières elles sont structurées, comment identifier les composants ajoutés par le constructeur, …
  • [Optionnel] Recherche de vulnérabilités
    • Aperçu de vulnérabilités affectant Android (desérialisation, utilisation d'algorithmes de cryptographie faibles, composants Android non-sécurisés, …)