Introduction à Objection pour les tests de sécurité en temps réel
Objection est un outil spécialisé dans l'analyse de sécurité des applications mobiles durant leur exécution, compatible avec les environnements iOS et Android. Basé sur le framework Frida, il offre une interface en ligne de commande efficace pour inspecter, modifier et interagir avec le fonctionnement interne d'une application cible. Sa modularité permet de détecter les problématiques liées au stockage des données sensibles, au contournement des protections réseau comme le SSL Pinning, ou à l'analyse de la logique applicative.
Installation et préparation de l'environnement
Pour installer Objection, commencez par récupérer les sources depuis le dépôt officiel et configurez l'environnement Python :
git clone https://gitcode.com/gh_mirrors/ob/objection
cd objection
pip install -e .
Une fois l'installation terminée, lancez la console interactive en ciblant une application spécifique :
objection explore -g com.exemple.appli
Après connexion, une invite de commande interactive apparaît, permettant d'exécuter des commandes spécifiques à la plateforme mobile.
Fonctionnalités clés pour l'analyse de sécurité
1. Contournement des protections SSL/TLS
Les applications utilisent souvent le SSL Pinning pour sécuriser les communications. Objection permet de désactiver cette protection afin d'analyser le trafic réseau :
Pour Android :
android sslpinning disable
Pour iOS :
ios sslpinning disable
Cette commande intercepte les mécanismes de validation des certificats, facilitant l'inspection avec des outils comme Burp Suite.
2. Extraction de données stockées
Accès au trousseau iOS (Keychain)
Les données sensibles stockées dans le trousseau peuvent être listées via :
ios keychain dump
La commande affiche les identifiants, tokens et autres informations protégées.
Exploration des bases de données SQLite
De nombreuses applications stockent des données localement dans des bases SQLite. Objection offre un accès direct :
# Recherche des fichiers de base de données
ls | grep .sqlite
# Connexion à une base spécifique
sqlite connect donnees_utilisateur.sqlite
# Affichage de la structure des tables
sqlite execute schema
# Exécution de requêtes
sqlite execute query "SELECT * FROM comptes"
# Fermeture de la connexion
sqlite disconnect
3. Intégration pour l'automatisation
Objection propose une API REST pour intégrer ses fonctionnalités dans des scripts d'automatisation. Pour activer le serveur API :
objection explore --enable-api
Ensuite, il est possible d'interroger l'API via des requêtes HTTP standard :
curl -s http://127.0.0.1:8888/rpc/invoke/iosCookiesGet | jq
L'implémentation de l'API se trouve dans le répertoire objection/api/ et peut être étendue selon les besoins.
Recommandations pratiques
- Auto-complétion des commandes : La console supporte la touche Tab pour compléter les commandes partielles.
- Gestion des tâches d'arrière-plan : Utilisez
jobs listpour visualiser les processus actifs etjobs kill <id>pour les terminer. - Extensions via plugins : Le répertoire
plugins/permet d'ajouter des fonctionnalités complémentaires. La communauté propose des intégrations pour Flex ou Stetho. - Sauvegarde des sessions : La commande
commands save <fichier>enregistre l'historique des commandes pour référence future.
Approfondissement des connaissances
La documentation intégrée est accessible via la commande help dans la console. Les fichiers d'aide se trouvent dans objection/console/helpfiles/. Le code source, organisé dans objection/commands/, illustre l'implémentation des fonctionnalités. Les tests automatisés situés dans le répertoire tests/ fournissent des exemples concrets d'utilisation.