Ce que nous, chez XDA, considérions autrefois comme une vulnérabilité de sécurité de preuve de concept a maintenant été confirmé par des informaticiens du Georgia Institute of Technology à Atlanta. L'équipe détaille ce qu'elle appelle "cape et poignard" exploits qui peuvent prendre le contrôle de l'interface utilisateur de la plupart des versions d'Android (y compris la 7.1.2). Compte tenu de sa nature, il est difficile à réparer et également difficile à détecter.
Cloak and Dagger est un exploit qui profite de deux autorisations afin de prendre le contrôle de l'interface utilisateur sans donner à l'utilisateur la possibilité de remarquer l'activité malveillante. L'attaque utilise deux autorisations: SYSTEM_ALERT_WINDOW ("dessiner par dessus") et BIND_ACCESSIBILITY_SERVICE ("a11y") qui sont très couramment utilisés dans les applications Android.
Nous avons je l'ai souligné dans le passé, mais ce qui rend cette vulnérabilité si aiguë est le fait que les applications demandant SYSTEM_ALERT_WINDOW se voient automatiquement accorder cette autorisation lorsqu'elles sont installées via le Google Play Store. Quant à l'activation d'un service d'accessibilité, une application malveillante est capable d'inciter assez facilement socialement un utilisateur à l'accorder. L'application malveillante pourrait même être configurée pour utiliser un service d'accessibilité dans un but semi-légitime, comme surveiller lorsque certaines applications sont ouvertes pour modifier certains paramètres.
Une fois ces deux autorisations accordées, le nombre d’attaques pouvant survenir est nombreux. Le vol de codes PIN, de jetons d'authentification à deux facteurs, de mots de passe ou même d'attaques par déni de service sont tous possibles. C'est grâce à la combinaison de superpositions pour faire croire à l'utilisateur qu'il interagit avec un application légitime et le service d'accessibilité étant utilisés pour intercepter du texte et des saisies tactiles (ou relayer ses propres saisir).
Nous avons théorisé une telle vulnérabilité il y a quelques mois, dans laquelle nous créerions une application de validation de principe utilisant SYSTEM_ALERT_WINDOW et BIND_ACCESSIBILITY_SERVICE afin de dessiner une superposition sur l'écran de saisie du mot de passe dans l'application XDA Labs et d'intercepter la saisie de la touche pour faire glisser mots de passe. Cette application que nous avions envisagée serait une application de gestion de rotation automatique qui utiliserait une superposition dans le but de dessiner une boîte invisible à l'écran pour contrôler la rotation (plutôt que de demander WRITE_SETTINGS qui soulèverait des drapeaux) et un service d'accessibilité pour permettre à l'utilisateur de contrôler la rotation automatique des profils sur une application par application base. En théorie, ce serait un exemple d’application utilisant « cape et poignard ». Cependant, aucun membre de notre équipe n'était prêt à risquer sa vie. comptes de développeurs en testant les systèmes automatisés d'analyse des applications de Google pour voir si notre exploit de preuve de concept serait autorisé sur Play. Magasin.
Quoi qu’il en soit, ces chercheurs ont fait le travail et soumis des applications de tests pour prouver que l’utilisation de ces deux autorisations peut effectivement constituer un problème de sécurité majeur :
Comme vous pouvez le constater, les attaques sont invisibles pour les utilisateurs et permettent un contrôle total sur l'appareil. Actuellement, toutes les versions d'Android, d'Android 5.1.1 à Android 7.1.2, sont vulnérables à cela. exploiter, étant donné qu’il profite de deux autorisations autrement utilisées à des fins tout à fait légitimes. fins.
Ne vous attendez pas à ce qu'une véritable solution à ce problème arrive sur votre appareil de sitôt, même s'il convient de noter que le modifications apportées à SYSTEM_ALERT_WINDOW dans Android O résoudra partiellement cette faille en empêchant les applications malveillantes de s'afficher complètement sur tout l'écran. De plus, Android O alerte désormais via une notification si une application dessine activement une superposition. Avec ces deux changements, il est moins probable qu'une application malveillante puisse échapper à l'exploit. si l'utilisateur est attentif.
Comment se protéger sur les versions antérieures à Android O? Comme toujours, installez uniquement les applications auxquelles vous faites confiance et provenant de sources fiables. Assurez-vous que les autorisations demandées correspondent à ce que vous attendez.
Quant aux centaines de millions d'utilisateurs réguliers, selon un porte-parole de Google Play Store Protéger fournira également les correctifs nécessaires pour empêcher les attaques de cape et de poignard. La manière exacte dont cela permettra d'y parvenir n'est pas claire, mais nous espérons que cela implique un moyen de détecter lorsque ces deux autorisations sont utilisées de manière malveillante. Je doute qu'il soit capable de détecter tous ces cas, donc dans tous les cas, il est préférable que vous surveilliez les autorisations accordées à chaque application que vous installez.