Cloak and Dagger : Android vulnérable à un détournement de permissions, Google réagit

Cloak and Dagger : Android vulnérable à un détournement de permissions, Google réagit

La solution complète pour plus tard

Avatar de l'auteur
Vincent Hermann

Publié dans

Société numérique

29/05/2017 6 minutes
23

Cloak and Dagger : Android vulnérable à un détournement de permissions, Google réagit

Des chercheurs du Georgia Institute of Technology, à Atlanta, ont montré qu’il était possible de piéger presque à coup sûr un utilisateur d’Android pour l’amener à installer une application malveillante. La faute à deux permissions détournées du système, dont l’une est donnée automatiquement par le Play Store.

En septembre 2016, l’équipe de XDA Developers avertissait d’un danger potentiel avec Android 6.0, alias Marshmallow. Les versions précédentes du système mobile avaient fait l’objet de travaux pour bloquer un type d’attaque spécifique, le tapjacking. Le concept était simple : intercaler une fausse fenêtre pour leurrer l’utilisateur et lui faire valider une demande qu’il n’aurait pas acceptée en temps normal.

Avec Marshmallow, les modifications du système de permissions (qui basculait sur un modèle proche de celui d’iOS, avec validation à l’acte) remettaient en partie en cause les progrès précédents. Suite aux travaux d’un chercheur et après des tests réalisés par leurs soins, nos confrères avaient conclu qu’il était théoriquement possible de remettre ces attaques au goût du jour. Ce qui est effectivement le cas.

Des fenêtres superposées

Des chercheurs du GIT d’Atlanta ont prouvé qu’il était tout à fait faisable de piéger un utilisateur pour l’amener à installer une application, qui aurait ensuite tout pouvoir sur l’appareil Android.

Cette attaque, nommée « Cloak and Dagger » (en référence au comics La Cape et l’Épée), fonctionne sur toutes les versions d’Android, jusqu’à la 7.1.2, soit la dernière. Elle se base sur deux permissions standards du système, SYSTEM_ALERT_WINDOW et BIND_ACCESSIBILITY_SERVICE (aussi appelée a11y). La première autorise une application à afficher une alerte au sein d’une petite fenêtre s’affichant au-dessus de ce qui est à l’écran, l’autre permet de déclarer un service spécial d’accessibilité.

C’est bien entendu par la première que viennent les soucis. Puisqu’elle permet d’afficher un message accompagné éventuellement d’une action, il est possible de repérer l’affiche d’une demande de permission légitime pour la recouvrir d’une fausse demande. L’utilisateur croit valider une action, mais donne en fait une autorisation à une application tierce.

La permission SYSTEM_ALERT_WINDOW a un autre problème : elle est donnée automatiquement par le Play Store à une application téléchargée si aucun fonctionnement malveillant n’a été détectée. Mais comme l’indiquent les chercheurs, ils ont pu proposer et faire valider une application par le Play Store, les routines automatiques de détection n’ayant manifestement pas repéré « une fonctionnalité non masquée téléchargeant et exécutant un code arbitraire », indiquent les chercheurs.

Pas de limites à ce que peut accomplir une application malveillante

La conjonction des deux permissions permet aux pirates d’envisager pratiquement tous les scénarios. Celui envisagé par les chercheurs est le plus direct : tromper l’utilisateur pour lui faire autoriser la récupération d’une application franchement malveillante qui, elle, n’aurait jamais passé les sas de validation du Play Store.

Cela étant, la deuxième application n’a pas besoin d’être téléchargée pour que des actions malveillantes soient mises en place. La première permission permet ainsi de demander l’autorisation pour la seconde, qui peut activer de son côté des modules entrainant une surveillance des frappes au clavier et plus généralement des vols d’informations.

Pour les chercheurs, ce cas de figure est d’ailleurs d’autant plus dangereux que durant une étude menée sur vingt « cobayes », aucun ne s’est douté à un quelconque moment qu’une action malveillante était en cours. Les fausses fenêtres d’informations ont rempli leur rôle, et même la récupération d’une deuxième application est passée inaperçue.

Pour Google, la situation est désormais sous contrôle

Le principal danger de cette méthode, outre le fait qu’elle est particulièrement discrète, est qu’elle repose sur des faiblesses du côté de Google. Le système de permissions de Marshmallow étant ce qu’il est, il n’est rien que l’utilisateur puisse faire, en dehors d’une grande prudence dans le choix des applications à installer.

Cependant, puisque le souci peut très bien résider dans une application validée par Google et donc présente sur le Play Store, il faudra redoubler de prudence. Le fait que l’éditeur ait durci le ton sur les permissions pendant la conférence de présentation d’Android O n’est pas un hasard.

C’est d’ailleurs le cœur de la réponse de l’entreprise à Softpedia : « Nous avons été en contact étroit avec les chercheurs et, comme toujours, nous apprécions les efforts pour aider à protéger nos utilisateurs. Nous avons mis à jour Google Play Protect pour détecter et prévenir l’installation de ces applications. Avec ce rapport, nous avions déjà mis au point de nouvelles défenses dans Android O, qui vont encore renforcer notre protection contre ces problèmes ».

Rappelons que Protect est simplement un nouveau nom donné à l’ensemble des services de sécurité du Play Store, sur lesquels Google communique d’ailleurs davantage depuis quelques mois. Mais la vraie solution ne viendra que d’une évolution des permissions, qui n’interviendra qu’avec Android O. Et là, bien entendu, se poseront d’autres difficultés.

Des permissions corrigées dans Android O, oui mais...

Quiconque suit l’évolution du monde mobile sait bien qu’il n’existe aucune garantie pour un smartphone d’obtenir la dernière révision majeure d’Android, à moins d’un appareil raisonnablement milieu ou haut de gamme sorti moins de 18 mois avant. Même si Google publiait une mise à jour spécifique pour Nougat (Android 7.0), seuls 5 % environ des appareils mobiles seraient concernés aujourd’hui.

Notez bien cependant que les travaux des chercheurs sont de type académique et que les informations ont été confiées à Google, qui a pu mettre à jour son Play Store Protect, comme indiqué. Il n’y a pas pour l’instant de signe clair d’une attaque active basée sur ces méthodes, mais rien ne permet non plus d’affirmer le contraire. Comme toujours, la prudence reste de mise : si des chercheurs ont pu mettre la main sur ce type de faiblesse, des pirates ont pu faire de même.

Enfin, on ne sait pas vraiment comment Google a renforcé ses barrières. Les chercheurs ont probablement mis en lumière une faiblesse dans les mécanismes de protection, puisque Protect couvre surtout les actions automatiques côté serveurs. S’il ne s’agissait que de découvrir un détournement de certaines fonctionnalités, on peut considérer le problème comme réglé, en espérant qu’il s’agisse du seul « oubli » sur ces fameuses deux permissions.

23

Écrit par Vincent Hermann

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Des fenêtres superposées

Pas de limites à ce que peut accomplir une application malveillante

Pour Google, la situation est désormais sous contrôle

Des permissions corrigées dans Android O, oui mais...

Le brief de ce matin n'est pas encore là

Partez acheter vos croissants
Et faites chauffer votre bouilloire,
Le brief arrive dans un instant,
Tout frais du matin, gardez espoir.

Commentaires (23)


A quoi sert une permission si elle est accordée d’office à tout le monde? Dans l’autre sens, ça veut dire que google peut détecter des actions malveillantes mais distribuer quand même l’appli avec pour seule sanction de ne pas accorder automatiquement une permission ?


Google va-t-il reprendre l’idée du “secure desktop” de Microsoft ?



Vous le saurez dans le prochain numéro de Marvel’s Cloak and Dagger : “Panic in Android City ! “


Les vidéos donnent des frissons ! C’est quand même dingue qu’une app puisse avoir une emprise pareille sur le système ! n’importe qu’elle app fait ce qu’elle veut sur Android (vraie question) ?


Une petite pensée pour le milliard+ de terminaux sous Android qui ne sont jamais mis à jour…<img data-src=" />








Ricard a écrit :



Une petite pensée pour le milliard+ de terminaux sous Android qui ne sont jamais mis à jour…<img data-src=" />







Vivement le propriétaire

<img data-src=" />

ok ok je suis déja dehors

<img data-src=" />



Si je comprends bien, l’overlay doit avoir connaissance du type de clavier virtuel utilisé.

(Pour la récupération des données, ce n’est pas nécessaire, on peut retrouver les caractères d’après les coordonnées des touches en post-traitement sur un serveur. Mais pour afficher la bonne donnée partielle sur l’écran, c’est nécessaire.)

&nbsp;

D’où ma question: Est-ce une information disponible aux applications Android ?

&nbsp;


Un peu en fait.

Par exemple si une application demande les droits de lire les SMS, elle peut recevoir absolument tous les SMS, y compris si l’appli est éteinte (c’est ça le plus fort). Il suffit qu’elle soit installée.

Tu comprends pourquoi tant d’applis demandent à accéder aux SMS, etc. C’est open-bar pour la collecte de données, et biensûr tu n’es pas averti.


Certes le modèle de sécurité d’Android est perfectible (litote), mais pourquoi un utilisateur autoriserait-il une application à lire les SMS (hors celle directement concernée) ?

Ah oui, pour pouvoir faire tourner quand même l’application ?

Les gens raisonnables que je connait, compétence technique zéro en informatique, ont bien compris que si une application demande des droits «en trop», alors:




  • Si elle est bien codée, c’est louche, donc méfiance, car l’application pourrait bien être malveillante et faire fuir des données

  • Si on est sûr que l’application n’est pas malveillante, c’est donc qu’il y a de l’incompétence, donc méfiance car l’application pourrait bien être buggée au point de faire fuir des données

    Et qu’en conclusion, la réponse est «non, on n’installe pas»


Cette faille, vous en avez déjà fait une news (que je ne retrouve plus <img data-src=" />) il y a quelques mois non ?


On parle d’android faut pas en attendre grande chose d’autre :(


La permission permet d’alerter l’utilisateur qui souhaite vérifier ce que son appli peut faire ou pas, même si c’est accordé par défaut.



Typiquement l’accès à internet est basique maintenant pour une application, donc la permission est accordée par défaut. Mais si tu vas dans la liste des applis et qu’une de tes applis n’a pas la permission “INTERNET” (parce qu’elle ne l’a pas demandée), tu peux être certain qu’elle n’envoie aucune info en ligne.


A partir d’Android 6.0, toutes applications compatible (et suivant les préconisations de Google) doit s’installer sans aucune permission d’activée. Après en lançant l’appli ça te demande d’activer telles ou telles permissions pour accéder à certaines fonctionnalités. Si tu refuses l’appli se lance quand même, mais tu es restreint sur certaines fonctionnalités (pas forcément derangeant). Alors qu’avant soit tu autorisais toutes les fonctionnalités soit tu ne l’installais pas.

De plus depuis Android 6.0 tu peux désactiver dans les paramètres de l’appli quelles permissions tu accordes ou pas.



Par exemple sur l’application appareil photo, j’ai désactivé la permission de localisation et laissé l’accès à l’appareil photo, au micro et au stockage. Donc ce que je trouve inutile ça dégage.

Ainsi une appli qui demande l’accès aux sms (facebook messenger par exemple) mais que tu ne veux pas y laisser l’accès tu désactives (cette appli est compatible avec les préconisations de google, donc c’est par défaut désactivé et ca te demande l’accès quand tu t’en sers pour la 1ère fois) et ainsi t’es tranquille.


Voilà tout va bien, le problème est corrigé dans la prochaine version dont votre smartphone ne verra jamais la couleur. <img data-src=" />



Avoir un smartphone c’est comme se balader à poils au milieu d’une guerre civile… On est tout aussi protégé des rafales perdues.


Justement niveau MAJ, vu qu’on ne peut que rarement compter sur Google et les constructeurs, et que Cyanogen est mort, quelqu’un connait des Roms alternatives qui sont régulièrement mises à jour avec les patch de sécurité?


Petite précision, c’est plutôt Android qui ne donne aucune permission aux applications, et Android va demander l’autorisation à l’utilisateur dès que l’application va vérifier si elle a le droit d’accéder à “cette permission”.



Sinon, ce n’est pas pour toute les applications. Celles compatibles pour les anciennes versions demandent toujours la totalité des permissions au moment de l’installation, mais je ne sait pas si on peut encore en diffuser sur le Play Store. Il est dans tous les cas possible de désactiver après coup les permissions, mais ça risque de beuguer.








levhieu a écrit :



mais pourquoi un utilisateur autoriserait-il une application à lire les SMS (hors celle directement concernée) ?&nbsp;



tu as vu les permissions des applis comme facebook, clash of candies ou autre application ultra courante du playstore ? C’est quasiment open bar, et “tout le monde” trouve ça normal



Alors que «tout le monde» cesse de se plaindre.

Les «paranos» autour de moi n’installent pas ces applications, basta.

J’ai bien dit que le modèle de sécurité d’Android est loin d’être parfait, mais je cite Isaac Asimov

«contre la stupidité, les dieux eux-même ne peuvent rien»



Edit: J’ajoute que certes on peut tous faire une chose stupide de temps en temps, c’est contre ça que l’OS doit (tenter de) nous protéger, mais que c’est contre la stupidité à jet continu qu’il est vain de lutter.








RaoulDukeHST a écrit :



Justement niveau MAJ, vu qu’on ne peut que rarement compter sur Google et les constructeurs, et que Cyanogen est mort, quelqu’un connait des Roms alternatives qui sont régulièrement mises à jour avec les patch de sécurité?





Sailfish ?









levhieu a écrit :



je cite Isaac Asimov

«contre la stupidité, les dieux eux-même ne peuvent rien»



je l’ai lu, il est bien.<img data-src=" />

(ça a été traduit par : les dieux eux-mêmes luttent en vain, je crois bien)



Mais oui, clairement j’ai désactivé tous les google play *, j’ai mis fdroid et yalp store, et je te garantis que je vérifie les permissions de ce que je télécharge les rares fois que ça m’arrive.



Ceux qui ont le root peuvent normalement retirer la permission que Google utilise pour accorder cette permission aux applications


Pourquoi il n’y a pas d’exploit pour défoncer les vieux android partout vu le nombre de failles dévoillées chaque mois par Google?