Sommaire
A quoi sert une permissionResponsabilité individuellePourquoi ces permissionsLes précautions d'usageLe théorème HortefeuxPrendre la main sur les permissionsConclusionCommentairesNous allons ici faire le point sur ces fameuses permissions, ces pop-ups que la grande majorité des utilisateurs d’Android acceptent sans jamais prendre le temps de les lire. Voici pourquoi vous devez absolument vérifier vos permissions avant d’installer une application sur Android.
La pratique est bien connue : plus un système d’exploitation est populaire et plus il est la cible de logiciels et de développeurs malveillants. Si Windows est la cible d’un nombre incalculable d’attaques de pirates, ce n’est pas uniquement parce que c’est une passoire, c’est parce que c’est l’OS le plus couramment utilisé dans le monde. Le principe s’applique de la même façon à Android. Tout le monde a entendu parler de cette application de wallpapers qui minait des bitcoins en arrière-plan sans prévenir l’utilisateur. Dans ce cas précis la faute n’incombe pas à une quelconque faille présente au sein d’Android mais bien à celui qui l’a installé. Pour permettre à cette application de miner des bitcoins, il lui a en effet donné l’autorisation de se connecter à Internet. Et Google n’est même pas en cause puisqu’avant même d’installer ce Wallpaper l’utilisateur a accepté – et donc théoriquement lu – les permissions de l’application. C’est un point central du fonctionnement d’Android : vous avez entre les mains un OS sécurisé et c’est à vous d’assouplir ses contraintes de sécurité en donnant des permissions.
L’occasion pour nous de vous expliquer pourquoi faire attention aux permissions que vous accordez est crucial sur votre terminal Android.
Avant de rentrer dans le vif du sujet, il est bon de rappeler ce qu’est exactement une permission. Vous n’êtes pas sans savoir que Android est issu d’un noyau Linux. Il lui reprend en particulier une chose extrêmement importante : son modèle de sécurité. Ce système de sécurité est très bien pensé puisque, vous l’aurez deviné, il est basé sur un système de permissions.
Revenons quelques instants à Linux. Lorsque l’on crée un utilisateur, celui-ci se voit attribuer immédiatement un userID et un groups ID. Un utilisateur peut ainsi appartenir à plusieurs ou aucun groupe et un groupe peut avoir zéro ou plusieurs utilisateurs. Utilisateurs et groupes possèdent chacun des permissions. Par exemple, un utilisateur A peut avoir accès à un ensemble de permissions défini par le groupe B. Concrètement, j’autorise Albert à avoir accès à tous les fichiers du dossier Photo. Mais ce dossier photo n’autorise pas Albert à, par exemple, ouvrir le sous-dossier “Photos de Poney”, dont l’accès est réservé à autre utilisateur. En cloisonnant ainsi les droits d’accès, on s’assure de la sécurité des données. Enfin, suivant les droits donné à l’utilisateur ou au groupe, il sera ainsi possible de lire et/ou d’écrire et/ou d’exécuter les fichiers autorisés.
L’idée derrière tout cela est cloisonner les accès aux données suivant les utilisateurs. Et ce principe, Android l’a poussé un peu plus loin encore avec les applications. Lors de l’installation d’une application sur un téléphone, un UserID va être créé. Et non seulement l’application en question lui sera rattachée, mais en plus tous les fichiers, accès au processus, à la mémoire et aux périphériques liés à l’application utiliseront cet UserID. En d’autres termes, une application a – en théorie – un accès exclusif à ses propres fichiers et aucune autre application n’est capable de venir fouiller dans ses affaires. Sauf si… vous lui donnez la permission (ou s’il s’agit d’un ContentProvider exporté, mais nous n’entrerons pas dans les détails). Et c’est bien là notre problème.
En soit, Android a été conçu pour assurer un maximum de sécurité à ses utilisateurs. L’idée sous-jacente, c’est de donner à l’utilisateur un système très contraignant au niveau de la sécurité et du cloisonnement des données. C’est à lui, ensuite, que revient de prendre la décision (ou non) de l’assouplir. Vous ne désirez pas que l’application Messenger de Facebook fouille votre historique de navigateur web ? Ne lui donnez alors pas l’autorisation. Mais dans ce cas, et si votre téléphone n’est pas rooté (on y revient), l’application refusera de s’installer, purement et simplement. C’est un choix effectué par les concepteurs d’Android : vous acceptez entièrement les permissions ou vous n’installez pas l’application.
Le saviez-vous ? Facebook demande 58 permissions pour s’installer sur Android. Soit plus d’un tiers du total des permissions proposées par Android.
Ces permissions, quelles sont-elles ? Elles sont nombreuses (un peu moins de 150 au total) et elles sont toutes affichées publiquement sur le site d’Android. Si vous avez la flemme de tout vérifier, un courageux membre du forum Android Forum s’est amusé à reprendre les permissions les plus courantes et à décrire leur fonctionnement. Si vous êtes anglophobes, un membre du forum de Génération Mobiles a tenté – avec plus ou moins de réussite – de traduire les posts du forum anglais en français. Attention toutefois, la liste des permissions change régulièrement avec les diverses mises à jour de l’OS.
Si vous avez bien suivi la logique de sécurité d’Android, vous avez compris que plus le nombre de permission total est élevé, plus la sécurité est assurée. Pour un développeur d’application, cela signifie qu’il n’a qu’à piocher dans ces permissions de façon à ce que son application fonctionne avec le minimum de permissions possibles. Cette démarche a d’ailleurs un nom : le principe de séparation des privilèges (ou en anglais : principle of least privilege). Voici ce que dit Wikipedia de ce principe : « chaque fonctionnalité ne doit posséder que les privilèges et ressources nécessaires à son exécution, et rien de plus ». Si, par exemple, vous décidez de concevoir une application gratuite d’explorateur de fichier de téléphone financé par des bannières publicitaires, vous n’aurez besoin que de deux autorisations : l’accès à la mémoire du téléphone ainsi que l’accès à Internet pour afficher les bannières de pubs. Dans les faits, une minorité d’applications applique ce principe.
La raison, je l’ai eue en posant la question à Edouard Marquez, un développeur d’applications sur Android et un rédacteur bien connu de FrAndroid. « Tous les développeurs s’efforcent d’appliquer le principe de séparation des privilèges : on utilise uniquement les permissions dont on a besoin pour le bon fonctionnement de l’application. Mais quand on développe un programme, on sait déjà quelles évolutions futures on pourrait lui apporter. Il peut donc arriver que l’on rajoute quelques autorisations supplémentaires qui pourraient servir plus tard à l’application. Ce qu’il faut savoir, c’est que si on rajoute après-coup des permissions supplémentaires à une application, il faut que l’utilisateur les re-valide. C’est quelque chose qui peut augmenter la fragmentation des versions d’une application et que l’on souhaite éviter ».
Cette application permettant d’afficher de simples fonds d’écrans d’un célèbre chanteur canadien demande d’accéder aux sms, à votre position, au réseau, à vos informations sur les réseaux et surtout à votre mauvais goût.
Ce qu’il faut aussi comprendre avec ce système de permissions contraignantes, c’est qu’une permission prise seule n’est jamais dangereuse pour le téléphone ou la confidentialité de vos données. En revanche, les synergies créées par de multiples permissions peuvent entraîner des conséquences désastreuses de la part d’un développeur ou d’une application mal-intentionnée. Souvenez-vous de notre explorateur de fichiers dont nous parlions un peu plus haut. Il avait besoin d’accéder à la mémoire du téléphone ainsi qu’à une connexion Internet. Lui donner ces deux autorisations va donc lui permettre de remplir convenablement son rôle mais peut aussi potentiellement lui donner l’autorisation d’exporter vos données sur Internet et de les utiliser à des fins frauduleuses. Il peut le faire, mais si vous avez fait les recherches nécessaires, il ne fera sûrement jamais.
On ne le rappellera jamais assez : c’est à l’utilisateur de se renseigner sur les applications qu’il va installer. Et pour ce faire, Google a mis un certain nombre d’outils à sa disposition. La première vérification a réaliser, avant même d’installer l’application, consiste à aller lire les commentaires des utilisateurs. La note moyenne est inférieure à 3 étoiles ? Les utilisateurs ne comprennent pas comment fonctionne l’application ? Le service annoncé ne correspond pas à celui constaté par les malheureux commentateurs ? Dans ce cas, et même si l’application est gratuite, il vaut mieux se méfier. Un autre bon réflexe est d’aller voir les autres application du développeur : si celui-ci a multiplié les clones, les applications de wallpaper paresseux, les sonneries pourries, bref a codé des petits trucs sans importance avec des notes médiocres ou mauvaises, il est sérieusement temps de chercher une autre application.
Attention, il y a un piège sur cette capture d’écran. Malgré les notes désastreuses et les innombrables permissions nécessaires à son installation, Home n’est pas une application malveillante.
Enfin, et c’est le conseil le plus important que l’on puisse vous donner, posez-vous la question : pourquoi est-ce que cette application a besoin de ces permissions ? Vous n’avez pas forcément besoin d’avoir fait de longues études d’informatique pour vous poser les bonnes questions. Une application qui va modifier votre sonnerie de téléphone n’a pas besoin d’un accès complet à Internet. Un lecteur de QR Code n’a pas non plus besoin d’avoir accès à vos contacts ou de lire vos SMS. Si la réflexion est insuffisante, il existe alors deux solutions pour répondre à vos interrogations : la première consiste à se rendre sur le site web du développeur et voir s’il a expliqué l’utilisation des permissions. Soyons honnêtes, peu de développeurs le font. Mais les derniers scandales liés à la NSA ont cela de bons qu’ils ont développé une petite vague de paranoïa chez certains utilisateurs et forcé des entreprises à s’expliquer un peu plus sur leurs pratiques. L’application Any.do, qui utilise pas moins de 19 permissions (!), explique par exemple très clairement sur son site web à quoi servent chacune d’entres elles. Firefox le fait aussi très bien sur une page dédiée. Enfin, la très grande majorité des fiches d’applications sur le Google Play affiche en bas à droite de la page un lien pour contacter directement le ou les développeurs par email. Même en bredouillant un franglais qui provoquerait un AVC foudroyant de votre bon vieux prof d’anglais, il y a de bonnes chances que le développeur prenne le temps de vous répondre à ce sujet. Du moins s’il n’a rien à cacher…
Encore une fois, si au moment d’installer une application, vous constatez qu’elle a des mauvaises notes de la part des utilisateurs, que les permissions s’accordent mal au service annoncé et que vous ne trouvez aucune explication à propos de ces permissions, alors allez voir ailleurs. Mais sachez par exemple qu’à l’exception de la lecture et de l’écriture des SMS, toutes les permissions demandées par l’application Messenger de Facebook (il y en a 44 au total) sont en parfait accord avec les fonctionnalités annoncées. La confiance envers les marques que l’on utilise au quotidien fausse évidemment énormément notre jugement envers les permissions.
On le disait un peu plus haut, une permission n’est jamais dangereuse prise seule. Le problème est similaire aux Auvergnats de Brice Hortefeux : c’est quand il y en a beaucoup qu’il y a des problèmes. Alors quelles sont les permissions à surveiller ? En voici une liste absolument non exhaustive des permissions dont il vaut mieux se méfier lors de l’installation d’une application :
Ces quelques exemples sont purement indicatifs. D’une manière générale, surveillez toutes les permissions relatives à votre vie privée contenue sur votre téléphone.
Sur ces questions de permissions, Android n’est pas exempt de défaut. Le premier et principal reproche que l’on peut adresser à l’OS de Google est certainement son manque de clarté et d’information sur ces permissions. Impossible par exemple de savoir quels types de permissions ont été données aux applications installées sur son téléphone sans utiliser une application tierce. Le seul moyen de vérifier les permissions est de se rendre dans le gestionnaire d’applications au fin fond des menus d’Android et de vérifier une à une les permissions des applications. De la même manière, la liste des permissions que va utiliser une application n’est pas jamais consultable sur la fiche d’une application sur le Google Play sans cliquer sur le bouton installer. Et elles sont purement indisponibles sur la version web classique. Bref, si Google est bien conscient que Android est un OS sécurisé de base, il ne fait pas grand chose pour inciter l’utilisateur à connaître les droits qu’il va octroyer à ses logiciels.
L’application PermissionDog, bien que très laide, permet de savoir quelles sont les applications qui demandent le plus de permissions. Sur mon téléphone, c’est Skype avec 35 permissions. Notez que certains jeux peuvent envoyer des SMS ou des MMS…
On le disait un peu plus haut, le refus d’une seule permission entraîne le refus d’installer une application. Il existe toutefois des méthodes pour passer outre cette limitation et retirer des permissions à certaines applications. Des applications permettent en effet de gérer une à une les permissions données aux applications installées sur son téléphone. Attention toutefois, toutes ces applications nécessitent d’avoir rooté son téléphone au préalable, avec tous les risques que cela comporte. Ces applications sont donc réservées à un public de connaisseurs. Si vous décidez d’enlever l’accès à Internet à Chrome, ne vous plaignez pas d’avoir une application qui ne fonctionne plus !
Les applications pour vérifier les permissions :
On ne va pas vous montrer des tonnes d’applications pour vérifier les permissions. PermissionDog est une application très simple qui montre à la fois le nombre de permissions qu’utilisent chacune des applications installées sur le téléphone, permet de voir quelles applications utilisent les permissions les plus dangereuses et permet surtout de les classer. Idéal pour se rendre compte que l’on possède une dizaine d’applications qui peuvent envoyer des SMS à votre place, ou pour se rendre compte que cette application météo peut appeler des numéro de téléphone sans votre consentement. Son seul défaut, c’est qu’elle n’a pas été mise à jour depuis 2011 et que son interface est devenue très laide.
Les applications pour gérer et modifier les permissions :
Pour changer modifier les permissions, il vous faut obligatoirement un téléphone rooté. La raison est simple, si vous n’êtes pas considéré comme un administrateur de votre téléphone (ou un super utilisateur) vous ne pourrez pas toucher aux permissions. La référence en la matière pour modifier une à une les permissions est LBE Privacy Guard. Mais autant vous prévenir, si vous n’avez jamais mis les mains dans le cambouis de votre téléphone et qu’un « simple » root vous semble insurmontable, on vous conseille de sauter immédiatement ce paragraphe et le suivant et d’oublier cette solution. Si, en revanche vous avez déjà rooté un téléphone et que vous êtes du genre patient et persévérant, alors voici la marche à suivre. Il existe aujourd’hui deux versions de LBE. La première et la plus facilement accessible est une vieille version datant de mars 2012 que l’on peut retrouver sur le Google Play. On ne vous garantit absolument pas qu’elle fonctionne encore (à essayer du moins), tout ce que l’on sait c’est qu’il faut une version rootée de son téléphone pour la faire fonctionner :
La deuxième version est mise à jour régulièrement (la dernière modification en date est du 19 avril 2014) et s’avère être le plus gros couteau suisse de la sécurité sur Android. C’est bien simple, la version 5.2 de LBE est capable de gérer tout ce qui entre, sort et s’installe sur votre téléphone. C’est à la fois un pare-feu, un anti-virus et un gestionnaire de permissions très poussé. Mais comme le développeur est chinois et qu’il n’a rien à faire des pauvres occidentaux que nous sommes, son application est entièrement en chinois. Aujourd’hui, la seule manière d’installer ce must-have gratuit est de se rendre sur le forum XDA Developpers et de prendre le temps de fouiller les topics dédiés pour retrouver l’apk puis le traduire en français. Bon courage !
Enfin, si vous ne voulez pas vous arracher les cheveux et que vous possédez un téléphone assez ancien, il est toujours possible de ré-activer AppOps. Il s’agit d’un gestionnaire de permissions allégé développé par Google lui-même et que la société de Mountain View avait diffusé par erreur avant de le retirer. En fait, Google ne l’a pas retiré, il l’a simplement caché dans ses menus. Des petits malins ont créé des applications pour créer un raccourcis directement vers ce menu caché. S’il n’y a pas besoin de rooter son téléphone pour gérer les permissions, AppOps ne semble pas fonctionner avec toutes les version d’Android. La version 4.4.2 de Android KitKat n’affiche plus du tout le menu. Enfin, on insiste sur le fait qu’il s’agit d’un gestionnaire de permission très léger : vous ne pourrez pas retirer toutes les permissions que vous désirez !
Les permissions sont présentes 99 % du temps pour exploiter le potentiel de votre téléphone. Le 1 % restant sont là pour vous ennuyer.
On terminera ce dossier en rappelant que la très grande majorité des applications présentes sur Google Play ne sont pas là pour vous voler vos données, pour infecter votre téléphone ou vous faire appeler des numéros surtaxés sans votre consentement. Plus que jamais, c’est à vous de faire attention à ce que vous téléchargez et c’est à vous de prendre l’initiative en cas de doute : posez-vous des questions et interrogez le développeur ! Encore une fois, faites simplement attention à ce que vous installez : si cette très belle horloge numérique vous demande un accès complet à Internet, à votre stockage et aux outils système, il y a de bonnes chances pour qu’elle mine du bitcoin sans vous demander votre avis.
Pour nous suivre, nous vous invitons à télécharger notre application Android et iOS. Vous pourrez y lire nos articles, dossiers, et regarder nos dernières vidéos YouTube.