Introduction : Analyse automatisée des permissions mobiles
Dans le développement d'applications Android, le fichier AndroidManifest.xml déclare les permissions requises. Une analyse manuelle de ces déclarations est souvent laborieuse et sujette aux erreurs. Le modèle SecGPT-14B, spécialisé en cybersécurité, offre une évaluation rapide et précise des risques liés aux permissions. Cet article présente ses capacités à travers des cas concrets.
Capacités fondamentales du modèle
Caractéristiques techniques
Basé sur l'architecture Qwen2ForCausalLM, SecGPT-14B excelle dans :
- Compréhension contextuelle : Identification des combinaisons de permissions dangereuses.
- Corrélation de données : Détection des incohérences entre permissions et code.
- Classification des risques : Hiérarchisation des vulnérabilités par gravité.
- Recommandations pratiques : Propositions de correctifs applicables.
Scénarios d'analyse typiques
| Type d'analyse | Détection | Impact |
|---|---|---|
| Permissions excédentaires | Permissions non nécessaires déclarées | Prévention des abus de données |
| Combinaisons dangereuses | Ensembles de permissions exploitables | Blocage des chaînes d'attaque |
| Permissions manquantes | Autorisations requises non déclarées | Évitement des dysfonctionnements |
| Utilisation incorrecte | Décalage entre déclaration et usage réel | Amélioration de la conformité |
Démonstrations et analyses
Cas 1 : Risques dans une application de messagerie
Entrée fournie :
<manifest>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
</manifest>
Résultat du modèle :
Risques élevés détectés :
1. READ_SMS + SEND_SMS : Possibilité de collecte et envoi automatisé de messages.
2. CAMERA + READ_PHONE_STATE : Combinaison pouvant mener à une surveillance non autorisée.
Suggestions :
- Limiter l'accès aux SMS en utilisant les API ContentProvider spécifiques.
- Restreindre l'usage de la caméra à des contextes explicites avec consentement utilisateur.
- Ajouter des demandes de permissions au moment de l'exécution.
Cas 2 : Application e-commerce avec permissions insuffisantes
Entrée fournie :
<manifest>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
</manifest>
Résultat du modèle :
Permissions critiques manquantes :
1. Absence de VIBRATE pour les notifications de transactions.
2. Non-déclaration de INSTALL_SHORTCUT pour les raccourcis d'achat rapides.
Recommandations :
- Ajouter VIBRATE pour améliorer l'expérience utilisateur.
- Inclure INSTALL_SHORTCUT si des fonctionnalités de raccourci sont prévues.
- Intégrer un fichier de configuration réseau pour renforcer la sécurité.
Fonctionnalités avancées
Vérification croisée permissions-code
Entrée :
Déclaration :
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
Fragment de code :
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_CALENDAR) == PERMISSION_GRANTED) {
// Ajout d'événements au calendrier
}
Résultat du modèle :
Incohérence critique :
- Permission MOUNT_UNMOUNT_FILESYSTEMS déclarée mais inutilisée dans le code.
- Permission WRITE_CALENDAR utilisée sans déclaration préalable.
Niveau de risque : Critique
Actions recommandées :
1. Supprimer MOUNT_UNMOUNT_FILESYSTEMS pour réduire la surface d'attaque.
2. Ajouter WRITE_CALENDAR dans le manifest.
3. Évaluer la pertinence de l'accès au calendrier.
Corrélation avec les CVE connus
Entrée :
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
Résultat du modèle :
Permission sensible détectée :
- BLUETOOTH_ADMIN permet la gestion complète des connexions Bluetooth.
- Associée à des CVE historiques :
* CVE-2017-0785 : Vulnérabilité dans la pile Bluetooth menant à une exécution de code.
* CVE-2019-0217 : Fuite d'informations via les canaux Bluetooth.
* CVE-2020-0022 : Attaque par déni de service sur les appareils Android.
Alternative :
Utiliser les API Bluetooth modernes avec restrictions au niveau des appareils appairés.
Utilisation et bonnnes pratiques
Observations en conditions réelles
Lors des tests, SecGPT-14B démontre :
- Rapidité : Analyse complète en moins de 3 secondes.
- Clarté : Explications accessibles aux développeurs non-spécialistes en sécurité.
- Pragmatisme : Correctifs directement intégrables dans le code.
Conseils pour une optimisation
- Fournir l'intégralité du fichier AndroidManifest.xml.
- Inclure des métadonnées optionnelles :
- Catégorie de l'application (réseaux sociaux, finance, etc.).
- Description des fonctionnalités principales.
- Extraits de code pertinents.
- Valider manuellement les sorties du modèle.
- Réévaluer périodiquement les configurations de permissions.