Comment afficher les autorisations des applications Android avant d'installer un APK
Lorsque vous installez une application depuis le Google Play Store, Android affiche un résumé simplifié de ce à quoi l'application peut accéder. Téléchargez latéralement un APK à partir d’une source non Play et vous ne disposez pas d’un tel filet de sécurité, à moins que vous ne lisiez le manifeste vous-même. « Une application de fond d'écran devrait-elle vraiment avoir besoin d'un accès aux SMS et au microphone? est exactement le genre de question à laquelle ce guide vous aidera à répondre.
Ce qui suit est le même flux de travail que notre équipe utilise lors du tri d'un APK inconnu : ouvrez-le, lisez les entrées uses-permission, décodez les niveaux de protection et comparez les besoins de l'application dit avec ceux de sa catégorie. Notre Outil d'information APK en ligne effectue le décodage binaire-XML pour vous, l'ensemble du processus prend donc environ dix secondes.
Pourquoi s'embêter à auditer les autorisations?
Les développeurs malveillants prennent des applications gratuites populaires, les modifient et les rééditent sur des sites tiers. Même si l'application semble et fonctionne normalement, son code caché peut copier votre liste de contacts ou enregistrer votre audio de fond. En affichant les autorisations pré-installation, vous pouvez repérer ces signaux d’alarme de « dérive des autorisations ».
Comment auditer n'importe quel fichier APK (en ligne)
Notre Outil d'informations APK lit entièrement le manifeste de votre fichier dans votre navigateur ; le fichier n'est jamais téléchargé sur un serveur et aucun code n'est exécuté. Voici comment l'utiliser :
Processus:
- Accédez au Page d'informations sur l'APK.
- Sélectionnez votre fichier .apk.
- Attendez la fin de l'analyse (généralement 5 secondes).
- Faites défiler jusqu'au Section des autorisations.
- Recherchez les indicateurs à haut risque tels que : READ_SMS, PROCESS_OUTGOING_CALLS ou ACCESS_FINE_LOCATION.
Liste des drapeaux rouges d’autorisation
Si une application Calculatrice ou Lampe de poche demande READ_CONTACTS ou RECORD_AUDIO, supprimez le fichier immédiatement. Il n’y a aucune raison légitime pour que ces applications disposent de ces données.
Comprendre les niveaux d'autorisation Android
Toutes les autorisations ne sont pas égales. Android les classe en trois niveaux :
- Normale: Autorisations à faible risque qui ne menacent pas directement la confidentialité (par exemple, SET_ALARM). Android les accorde automatiquement.
- Dangereux: Autorisations à haut risque (Contacts, Localisation, Caméra). Ces doit seront confirmés par vous lors de l'exécution de l'application.
- Signature/Système : Risque extrêmement élevé. Celles-ci ne sont disponibles que pour les applications signées par le fabricant de l'appareil ou par le système d'exploitation lui-même.
Méthode manuelle (à l'aide d'une visionneuse ZIP)
Si vous avez des compétences techniques, vous pouvez auditer vous-même les autorisations :
- Renommez app.apk en app.zip et ouvrez-le.
- Trouvez AndroidManifest.xml. (Remarque : il est au format binaire et ressemblera à du charabia dans un éditeur de texte).
- Utilisez un outil tel que Imprimante AXML pour le convertir en texte lisible.
- Recherchez des balises commençant par <uses-permission>.
Recommandation : Il est beaucoup plus rapide d'utiliser notre outil en ligne qui décode cela instantanément pour vous.
Auditez vos applications maintenant
Sachez exactement ce que demandent vos applications. Pas de secrets, pas de risques.
Vérifier les autorisations APKCe qui est réellement stocké dans AndroidManifest.xml
Le manifeste est la source de vérité pour chaque autorisation, composant et fonctionnalité déclarée par une application. Dans un APK, le fichier est au format XML binaire, et non dans le texte brut que vous voyez dans le code source, il ne peut donc pas être lu avec un éditeur de texte normal. Notre outil APK Info décode le XML binaire et fait apparaître les balises pertinentes. Les plus importants sont :
- <uses-permission android:name="..."/> : chaque autorisation que l'application pourrait demander. La liste complet se trouve ici, y compris celles que l'application ne pourra jamais utiliser au moment de l'exécution.
- <uses-permission-sdk-23 ... /> : idem, mais demandé uniquement lorsque l'application fonctionne sous Android 6 ou version ultérieure. Les appareils plus anciens sont autorisés en silence, sans invite.
- <uses-feature android:name="..." android:required="true|false"/> : fonctionnalités matérielles utilisées par l'application (appareil photo, GPS, NFC). Lorsqu'il est marqué requis, Play Store masque l'application des appareils dépourvus de cette fonctionnalité.
- <application android:debuggable="true"> : un drapeau rouge géant dans une release APK. Une application déboguable expose sa mémoire et son état de processus à toute personne disposant d'un accès ADB. Rejeter.
- <activity android:exported="true"> sur les activités sensibles : permet à d'autres applications de lancer cet écran. Pour une application de confidentialité, cela signale souvent un codage bâclé.
Niveaux de protection des autorisations : l'aide-mémoire
Android attribue à chaque autorisation un « niveau de protection ». Savoir à quel niveau appartient une requête vous indique le sérieux avec lequel le système d'exploitation la traitera.
| Niveau de protection | Expérience utilisateur | Exemples |
|---|---|---|
| normale | Accordé silencieusement au moment de l'installation. Aucune invite. | INTERNET, VIBRATE, ACCESS_NETWORK_STATE, WAKE_LOCK |
| dangereux | Invite d’exécution la première fois que la fonctionnalité est utilisée. Révocable dans les paramètres. | CAMÉRA, RECORD_AUDIO, READ_CONTACTS, ACCESS_FINE_LOCATION |
| signature | Accordé uniquement aux applications signées avec le même certificat que l'application qui l'accorde ou le système d'exploitation. | BIND_VPN_SERVICE, INSTALL_PACKAGES (système uniquement) |
| signature|privilégié | Disponible uniquement pour les applications préinstallées dans le répertoire priv-app de l'image système. | MANAGE_USERS, READ_LOGS (contrôle système) |
| application / rôle | Nécessite un flux de paramètres distinct pour l’activer. | SYSTEM_ALERT_WINDOW, BIND_ACCESSIBILITY_SERVICE, MANAGE_EXTERNAL_STORAGE (accès spécial) |
Que signifient réellement les autorisations « cachées »
Une idée fausse très répandue est que certaines autorisations sont secrètes. Ce n'est pas le cas : chaque autorisation qu'une application peut utiliser doit être déclarée dans AndroidManifest.xml, et le système d'exploitation refuse d'accorder toute autorisation qui n'y est pas répertoriée. Ce que les gens entendent généralement par « caché » est l’une des deux choses suivantes :
- Les autorisations de niveau normal sont silencieuses. Ils sont accordés au moment de l’installation sans aucune interaction de l’utilisateur. Le résumé du Play Store n’en montre même pas certains. Ils sont « cachés » dans le sens de « faciles à ignorer », et non dans le sens de « non divulgués ».
- Autorisations personnalisées définies par l'application. Les applications peuvent déclarer leurs propres balises <permission> et les exiger sur leurs composants internes. Celles-ci existent pour la communication entre applications et ne constituent pas un problème de confidentialité en soi, mais elles peuvent être utilisées de manière abusive si une application populaire déclare une autorisation personnalisée avec un niveau de protection incorrect et qu'une autre application l'utilise ensuite comme porte dérobée.
Quoi qu’il en soit, la réponse est la même : lisez le manifeste, ne vous fiez pas à une description du Play Store seule.
Exemple concret : auditer un véritable APK
Supposons que vous ayez example.apk dans votre dossier Téléchargements. Voici le flux de travail exact :
- Ouvrez le Outil d'informations APK dans votre navigateur.
- Déposez l’APK sur la zone de téléchargement. Le traitement s'effectue localement ; le fichier ne quitte pas votre appareil.
- Lisez la section Autorisations. Chaque entrée affiche le nom de la constante (android.permission.READ_CONTACTS et une description en langage clair de ce qu'elle autorise).
- Comparez la liste avec la catégorie de l'application. En gros, attendez-vous à :
- CAMÉRA Applications d'appareil photo :, RECORD_AUDIO (pour vidéo), écriture STORAGE/MEDIA
- Applications de messagerie : INTERNET, READ_CONTACTS, SEND_SMS (uniquement si basé sur SMS), RECORD_AUDIO (pour les notes vocales), CAMERA (pour l'envoi de photos)
- Jeux : INTERNET, sometimes RECORD_AUDIO (for in-game voice chat), billing-related permissions; rarement autre chose
- Applications utilitaires (calculatrice, lampe de poche, météo) : INTERNET (pour les annonces), ACCESS_NETWORK_STATE, éventuellement LOCATION (météo uniquement). Tout ce qui va au-delà est suspect.
- Si un élément de la liste ne correspond pas à la catégorie, ne l'installez pas. Il n’y a aucune bonne raison pour qu’une calculatrice ait besoin d’un accès SMS.
La même logique s'applique que le fichier soit un APK, un XAPK (où nous lisons l'APK de base interne) ou un bundle APKS (où nous lisons le manifeste de chaque division).
Le faire depuis la ligne de commande
Si vous préférez la route du terminal, le SDK Android fournit aapt2, qui extrait un manifeste de n'importe quel APK en XML brut :
aapt2 dump badging example.apk | grep "uses-permission"
Ou utilisez apksigner pour vérifier le certificat de signature en même temps :
apksigner verify --print-certs example.apk
L'outil de navigation fait la même chose pour les utilisateurs qui préfèrent ne pas installer de SDK uniquement pour vérifier un seul fichier.
Foire aux questions (FAQ)
Puis-je refuser une autorisation après avoir installé un APK?
Oui. Sur Android 6.0 et versions ultérieures, vous pouvez accéder à Paramètres > Applications > [Nom de l'application] > Autorisations pour activer ou désactiver les autorisations dangereuses individuelles.
Les fichiers XAPK ont-ils des autorisations différentes?
Un XAPK contient un ou plusieurs APK. Chaque APK à l’intérieur a son propre manifeste. Notre outil analysera le APK principal dans le bundle pour vous montrer les autorisations pertinentes.
Pourquoi chaque application demande-t-elle un « Accès réseau » ?
Presque toutes les applications ont besoin d'un accès à Internet pour les analyses, les rapports de bogues ou les publicités. Bien que cela soit courant, c'est aussi la façon dont les données volées sont envoyées au serveur d'un pirate informatique.
Inspecter les autorisations du manifeste avant d'appuyer sur Installer
Vous ne pouvez pas juger ce que vous ne pouvez pas voir. Passer dix secondes sur afficher les autorisations d'un APK avant de le charger fait la différence entre savoir ce qu'une application peut atteindre et simplement espérer qu'elle se comporte bien. Lisez d'abord la liste et installez ensuite.