Cloak and Dagger : une faille sur toutes les versions Android

Comment quelques autorisations discrètes ont permis à une application de détourner des mots de passe, des identifiants d’utilisateurs et bien d’autres choses encore.

Attention : ceci n’est pas un exercice. Ceci s’applique à toutes les versions Android, et au moment où nous publions cet article, Google n’a toujours pas corrigé la vulnérabilité. Par le biais de cette vulnérabilité, il est possible de détourner des données comprenant des mots de passe ; d’installer des applications dotées d’un ensemble complet d’autorisations ; et de surveiller ce qu’un utilisateur fait et ce qu’il tape sur un clavier de n’importe quel smartphone, Android ou tablette. Attention : ceci n’est pas un exercice…

L’attaque surnommée « Cloak and Dagger » (sûrement en l’honneur des héros de BD de Marvel) a été découverte par des employés de l’Institut de Technologie de Géorgie et de l’Université de Californie. Ils ont essayé d’attirer trois fois l’attention de Google sur le problème, mais à chaque fois Google répondait que tout fonctionnait normalement. Les chercheurs n’ont pas eu d’autre choix que de publier leurs découvertes : ils ont même créé un site web spécial cloak-and-dagger.org pour se faire.

L’essence de l’attaque Cloak and Dagger

En résumé, l’attaque consiste à utiliser une application de Google Play : tandis que l’application ne demande aucune autorisation spécifique de l’utilisateur, les hackers obtiennent les droits de montrer l’interface de cette application au-dessus d’autres applications et de sélectionner des boutons à l’insu de l’utilisateur de façon à ce qu’il ne s’en rende pas compte.

L’attaque est possible du fait que l’utilisateur n’est pas explicitement invité à autoriser les applications à accéder aux fonctions de SYSTEM_ALERT_WINDOW lors de l’installation des applications sur Google Play, et l’autorisation d’accéder à ACCESSIBILITY_SERVICE (A11Y) est plutôt simple à obtenir.

De quels types d’autorisations s’agit-il ? La première autorisation permet de montrer l’interface d’une application sur n’importe quelle autre application, et la seconde donne accès à un ensemble de fonctions pour les personnes atteintes d’une déficience visuelle ou auditive. Une application dotée d’un accès au Service d’Accessibilité est capable d’effectuer beaucoup de choses différentes voire dangereuses sur l’appareil, dans la mesure où cette fonction permet à une application de surveiller à la fois ce qui se passe sur d’autres applications et d’interagir avec elles pour le compte de l’utilisateur.

Qu’est-ce qui pourrait éventuellement mal tourner ?

Une couche invisible

D’une façon générale, l’essence des attaques qui utilisent la première autorisation, SYSTEM-ALERT_WINDOW, est la suivante : cette autorisation, que Google Play donne effectivement par défaut à l’insu de l’utilisateur, permet à une application de recouvrir n’importe quelle autre. En outre, les fenêtres qu’elle peut afficher peuvent avoir une forme quelconque, y compris des formes avec des trous. De plus, elles peuvent soit taper sur l’écran ou les laisser passer afin que l’application du dessous l’enregistre.

Par exemple, il est possible de créer une couche transparente qui recouvre le clavier virtuel d’un appareil Android et de capturer toutes les tentatives de frappes sur l’écran. En mettant en corrélation la position où l’utilisateur a appuyé sur l’écran et la position des touches sur le clavier, le hacker a la capacité de savoir ce que l’utilisateur tape exactement sur ce clavier. Les programmes malveillants de ce type sont des enregistreurs de frappe. Il s’agit d’un des exemples qui a été présenté par les chercheurs pour démontrer l’attaque.

D’une manière générale, SYSTEM_ALERT_WINDOW est aussi une autorisation dangereuse, et Google admet lui-même qu’elle devrait être utilisée sur un petit nombre d’applications. Cependant, depuis que des applications populaires, telles que Facebook Messenger, Skype et Twitter demandent cette autorisation, l’équipe de Google a apparemment décidé qu’il serait plus facile si Google Play accordait cette autorisation sans consulter explicitement l’utilisateur. Simplicité et sécurité, malheureusement, ne vont pas toujours de pair.

Les dangers des fonctionnalités d’Accessibilité

La seconde autorisation, l’Accessibilité avait été conçue à l’origine en partant d’une bonne attention : elle facilite aux personnes atteintes d’une déficience visuelle ou auditive l’interaction avec des appareils Android. Cependant, cet ensemble de fonctionnalités donne un grand nombre d’autorisations aux applications, qui sont utilisées plus souvent à des fins complètement différentes (des applications qui effectuent des actions généralement non autorisées sur Android).

Disons que, pour lire à haute voix ce qui se passe sur l’écran pour les personnes étant atteintes d’une déficience auditive, une application ayant accès à l’Accessibilité peut obtenir des informations relatives à ce qui se passe sur l’appareil : quelle application a été ouverte, ce que l’utilisateur a tapé ou lorsqu’une notification apparaît. Cela signifie que l’application connaît le contexte global de ce qui se passe. Et ce n’est pas tout : l’application n’est pas uniquement capable de surveiller des activités mais aussi de réaliser plusieurs actions à l’insu de l’utilisateur.

Au total, Google est conscient que l’autorisation d’Accessibilité donne aux applications la possibilité de faire pratiquement tout ce qui est possible sur l’appareil ; par conséquent, il est nécessaire d’activer l’Accessibilité pour chaque application individuelle dans un menu spécial dans la section des paramètres d’un smartphone.

Le problème est qu’en utilisant la première autorisation, SYSTEM_ALERT_WINDOW, et en montrant habilement les fenêtres qui chevauchent la plus grande partie de l’écran en dehors du bouton « OK », les hackers peuvent convaincre les utilisateurs d’accepter quelque chose d’inoffensif, tandis qu’ils accorderont l’accès aux services d’Accessibilité de l’application.

Ainsi, puisque l’Accessibilité peut percevoir le contexte et agir au nom des utilisateurs, comme faire des achats sur la boutique en ligne de Google Play, il ne sera pas difficile pour les hackers de se servir de Google Play pour télécharger une application d’espionnage avec un accès à n’importe quoi et lui donner toutes les autorisations possibles et inimaginables. De plus, cela peut se faire quand l’écran est éteint, par exemple, et que l’utilisateur ne soupçonne rien.

Ultime hameçonnage

Aussi, accéder à SYSTEM_ALERT_WINDOW et ACCESSIBILITY_SERVICE permet aux fraudeurs d’exécuter des attaques d’hameçonnage sans éveiller les soupçons de l’utilisateur.

Par exemple, lorsqu’un utilisateur ouvre une application Facebook et tente de saisir son identifiant et son mot de passe, une autre application avec les autorisations d’Accessibilité est capable de comprendre ce qui se passe et d’interférer. Puis, en utilisant SYSTEM_ALERT_WINDOW et la possibilité d’afficher des couches au-dessus d’autres, l’application peut montrer à l’utilisateur une fenêtre d’hameçonnage avec les couleurs de Facebook, dans laquelle l’utilisateur peu méfiant saisira l’identifiant et le mot de passe de son compte.

Dans ce cas, les connaissances du contexte permettent aux développeurs de montrer l’écran d’hameçonnage au bon endroit uniquement lorsque l’utilisateur va saisir le mot de passe. Etant donné que l’utilisateur se connecte à Facebook après avoir entré le mot de passe comme prévu, il n’aura aucune raison de suspecter que quelque chose de non voulu s’est produit.

Des attaques de la sorte ne sont pas nouvelles pour les chercheurs en sécurité. Elles ont même un nom – tapjacking. Google a donné la possibilité aux développeurs d’applications Android de réagir : une option pour vérifier si une application est recouverte, auquel cas les utilisateurs ne seraient pas autorisés à accomplir quelques actions. C’est la raison pour laquelle la plupart des applications bancaires sont protégées contre les attaques de revêtement telles que Cloak and Dagger. La seule manière cependant d’être sûr à 100% qu’une application n’est pas vulnérable est de contacter le développeur.

Comment protéger votre appareil de Cloak and Dagger

Les auteurs de l’étude ont testé l’attaque sur les trois versions Android les plus populaires : Android 5, Android 6, et Android 7, qui ensemble représentent 70% de tous les appareils Android. Il en a été déduit que toutes les versions sont vulnérables à cette attaque et que le plus probable, est que les précédentes versions le soient aussi. Cela veut dire que si vous avez un appareil Android, cela vous concerne également.

Voici donc ce que vous pouvez faire pour vous en protéger :

1. Essayez de ne pas installer d’applications inconnus de Google Play et d’autres boutiques en ligne. Plus particulièrement trois applications. Si vous n’avez pas installé ou lancé aucune application suspicieuse, il n’y a rien qui puisse vous attaquer par le biais de Cloak and Dagger. Néanmoins, la question de savoir comment distinguer une application suspecte d’une application inoffensive reste ouverte.

2. Vérifiez régulièrement les accès de vos applications sur votre appareil et supprimez les autorisations inutiles. Pour vous aider, vous pouvez lire cet article.

Enfin, n’oubliez pas d’installer des solutions de sécurité pour les appareils Android. Il existe une version gratuite de Kaspersky Internet Security for Android. Si vous ne disposez pas d’une solution de sécurité sur votre smartphone ou tablette, nous vous recommandons d’installer au moins cette application, ce sera déjà un bon début.

Conseils