Blog | Pradeo

Analyse d’un malware exploitant les services d’accessibilité sur mobile

Rédigé par Roxane Suau | 9 juil. 2024 14:41:38

Sur Android et iOS, les services d’accessibilité offrent des fonctionnalités pour aider à l’utilisation d’un smartphone : commentaires audio, sous-titre, affichage personnalisé… Certaines applications mobiles conçues dans une démarche inclusive sont compatibles avec les services d’accessibilité.

Pour activer ces services dans une application, celle-ci requiert la permission Accessibilité. Seulement voilà, cette permission offre aux applications un accès complet à l’appareil de l’utilisateur. Aujourd’hui, de plus en plus de cybercriminels l’exploitent pour prendre le contrôle des smartphones et tablettes. Lorsque c’est le cas, les utilisateurs se retrouvent dans une impasse, incapables de désinstaller ou même de réinitialiser leur appareil.

Récemment, la solution Pradeo Security a neutralisé une application utilisant les services d’accessibilité d’Android à des fins malveillantes sur un mobile protégé. Le malware identifié a été installé via un lien de phishing. Il se fait passer pour une application de scan de code QR mais exploite en réalité la permission d’accessibilité afin de procéder à des transactions bancaires frauduleuses.

 

Les risques liés aux services d’accessibilité sur mobile

Une application peut utiliser la permission android.permission.BIND_ACCESSIBILITY_SERVICE afin de bénéficier de fonctionnalités avancées facilitant l’accessibilité à des utilisateurs ayant des déficiences auditives, visuelles, etc. Avec cette permission, une application peut contrôler l’intégralité de l’écran (clics, mouvements…) ainsi que le clavier, lire ce qui est affiché et fermer ou ouvrir des applications.

Ces fonctionnalités sont sensibles puisqu’elles permettent de contrôler quasiment toutes les couches d’un appareil. Lorsqu’une application malveillante se voit octroyer la permission d’accessibilité par l’utilisateur, elle peut envoyer vers un serveur distant toutes les informations affichées sur l’écran et tapées sur le clavier, empêcher sa propre désinstallation ou une réinitialisation du système, et même se lancer automatiquement au redémarrage de l’appareil. Malheureusement, les canaux de distribution utilisés par les pirates tels que les stores d’applications non-officiels et les messageries (SMS) n’apportent aucune protection pour faire face au problème.

 

Etude de cas : QR-Code Scanner

Nom de l’application analysée : QR-Code Scanner

Nom de package : com.square.boss

Environnement : Android

L’application QR-Code Scanner est en apparence une application de scan de code QR. Son icône et son nom n’attirent pas les soupçons. Cependant, au lancement on s’aperçoit qu’aucune fonctionnalité de scan de code QR n’est proposée. Immédiatement, l’application envoie une notification qui pousse à octroyer l’option d’accessibilité, qui est nécessaire à l’exécution de son attaque. Tant que l’utilisateur ne donne pas son consentement, elle envoie en continu la même demande de permission.

 

 

 

Une fois autorisée, le malware peut approuver ses propres demandes de permissions à la place de l’utilisateur et ce de manière invisible. Ainsi, il s’octroie toutes les permissions qui lui permettront de perpétrer son attaque en temps voulu.

En l’occurrence, notre analyse du malware laisse transparaître que l’objectif du pirate derrière l’application est de commettre des fraudes, en récoltant des données que l’utilisateur tape ou affiche sur son écran (identifiant, mot de passe, numéros de carte bancaire…) et en interceptant le code temporaire d’authentification envoyé.

Premièrement, l’application QR-Code Scanner accède à la liste des applications installées sur l’appareil de la victime afin d’identifier un potentiel intérêt. Lorsque des applications bancaires ou de e-commerce sont utilisées, il y a plus de chance que des données bancaires soit manipulées par l’utilisateur. Lorsque c’est le cas, le pirate l’espionne à son insu et collecte les informations.

Pour entrer dans le compte client de la victime ou effectuer un paiement avec sa carte bancaire, le pirate intercepte le code temporaire contenu dans un SMS ou une notification. Il contourne ainsi toutes les mesures de sécurité qui authentifient les paiements et connexions via un code. Seuls les protocoles de vérification utilisant les données biométriques y résistent.

Finalement, l’application utilise l’appareil de la victime pour se répandre sur d’autres appareils. Pour ce faire, elle envoie un SMS contenant un lien de phishing à toute la liste de contacts. Ainsi, le message provient d’un numéro connu et a plus de chance de convaincre les destinataires d’installer le malware.

Tout au long de l’attaque, le malware exploite les services d’accessibilité pour :

  • Espionner l’activité du smartphone
  • S’octroyer et empêcher le retrait des permissions dont il a besoin
  • Empêcher la désinstallation de l’application, via l’accueil ou dans les paramètres
  • Empêcher la réinitialisation aux paramètres d’usine, et ce même depuis un appareil tiers
  • Empêcher la mise en veille ou l’arrêt de son processus
  • Se lancer automatiquement au démarrage

 

Les permissions exploitées par le malware sont les suivantes :

android.permission.QUERY_ALL_PACKAGES

android.permission.QUICKBOOT_POWERON

android.permission.RECEIVE_LAUNCH_BROADCASTS

android.permission.GET_TASKS

android.permission.SYSTEM_ALERT_WINDOW

android.permission.RECEIVE_SMS

android.permission.READ_SMS

android.permission.WRITE_SMS

android.permission.SEND_SMS

android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS

android.intent.action.BOOT_COMPLETED

com.htc.intent.action.QUICKBOOT_POWERON

android.intent.action.QUICKBOOT_POWERON

android.permission.RECEIVE_BOOT_COMPLETED

android.permission.QUICKBOOT_POWERON

 

Mesures de protection

Malgré la nécessité indéniable des services d’accessibilité, les droits avancés qu’ils offrent sur le système font qu’ils doivent être utilisés (côté développeur) et autorisés (côté utilisateur) avec une attention toute particulière.

Aujourd’hui, seulement quelques outils et actions de remédiation sont efficaces pour désinstaller le malware analysé :

  • Le blocage de l’application avant son lancement avec Pradeo Security
  • La désinstallation forcée de l’application avec Pradeo Security for Samsung
  • La désinstallation via une solution de gestion des terminaux (UEM, MDM)
  • La désinstallation via ADB command