Hirudo : un malware Android remplace les applis bancaires
Un nouveau cheval de Troie bancaire pour Android, baptisé Hirudo, supprime les applications bancaires légitimes des téléphones infectés et installe à leur place des copies trafiquées qui désactivent leurs propres contrôles de sécurité, selon la société de sécurité mobile ThreatFabric.
Les chercheurs ont découvert des versions malveillantes de huit applications bancaires. Chacune embarque un moteur de hooking qui contourne les vérifications de signature de l'application, d'Accessibilité et de Play Integrity. Pour cela, il renvoie des informations de certificat falsifiées ou des listes vides lorsque l'application demande ce qui tourne sur l'appareil. Play Integrity est le service de Google qui permet aux applications de vérifier qu'elles s'exécutent sans modification sur un véritable appareil Android.
Hirudo a été repéré en train d'usurper l'identité d'au moins sept banques indonésiennes. Il vise aussi des établissements financiers en Chine, en Inde, au Mexique, au Maroc et en Thaïlande.
Diffusé via des applications fonctionnelles
Le malware arrive généralement caché dans des applications qui semblent légitimes et qui font réellement ce qu'elles promettent. ThreatFabric cite une application de shopping (Shopora), une application de contenu pour adultes (1V1 X) et des applications de séries courtes (ZoyaTV, KoiShort).
Ces applications servent de chargeurs. Elles affichent un faux avis de "mise à jour", qui déclenche des demandes d'autorisations, dont l'accès aux services d'Accessibilité. Ces fonctions d'Android sont censées aider les personnes en situation de handicap, mais les logiciels malveillants les détournent souvent pour lire l'écran et appuyer sur des boutons à la place de l'utilisateur.
Une fois installé, Hirudo lance la désinstallation de la véritable application bancaire, télécharge une copie modifiée et utilise son autorisation d'Accessibilité pour l'installer. ThreatFabric souligne que cette étape est risquée pour les attaquants, car la victime a deux occasions d'interrompre le processus.
Les défenses de la banque retournées contre elle
L'application modifiée conserve la quasi-totalité du code d'origine. La différence tient à un moteur de hooking reposant sur les frameworks open source YAHFA et Dobby. Au démarrage de l'application, ce moteur :
- renvoie le véritable certificat de signature chaque fois que l'application le vérifie
- masque tous les services d'Accessibilité activés
- supprime la protection contre les captures d'écran, ce qui permet de voir et d'enregistrer l'écran à distance
- modifie les certificats d'attestation de clés et fait transiter les requêtes Play Integrity par un serveur contrôlé par les opérateurs
"Avec le moteur qui tourne dans le propre processus de l'application bancaire, les défenses de l'application sont retournées contre elle", expliquent les chercheurs.
Ces astuces ont leurs limites. La keybox d'attestation fournie avec le malware a déjà fuité publiquement, et Google répertorie deux de ses certificats comme compromis. Des contrôles de révocation effectués côté serveur peuvent donc repérer les attestations falsifiées.
Ce qu'il dérobe
Une fois actif, Hirudo peut capturer les mots de passe bancaires, les codes PIN de paiement, les secrets de déverrouillage de l'appareil et les SMS. Les opérateurs peuvent diffuser l'écran en direct, prendre le contrôle du téléphone en temps réel, faire des captures d'écran, enregistrer l'audio et utiliser les deux caméras.
Le malware affiche aussi de fausses pages de paiement qui demandent le code PIN. Une fois celui-ci saisi par la victime, un faux écran "paiement réussi" apparaît pendant que les données sont volées en arrière-plan.
ThreatFabric a trouvé un panneau d'administration non sécurisé contenant des milliers d'identifiants d'applications, ainsi que des données sur les appareils, les écrans de verrouillage et les profils financiers. Le nombre de victimes reste inconnu.
Les chercheurs décrivent Hirudo comme "une escalade délibérée dans la manière dont les chevaux de Troie bancaires Android s'attaquent aux applications renforcées". Les attaquants délaissent la tromperie des contrôles d'intégrité au niveau de l'appareil pour s'en prendre désormais aux protections intégrées aux applications bancaires elles-mêmes.
ThreatFabric conseille aux banques de valider l'intégrité et l'attestation côté serveur, de lier ces contrôles aux sessions et aux opérations sensibles, et de maintenir des contrôles comportementaux et d'analyse du risque des transactions. Les utilisateurs, eux, doivent installer les mises à jour, éviter les fichiers APK provenant de boutiques non officielles et lancer de temps en temps une analyse Play Protect.
Notre analyse
Hirudo montre les limites de la protection côté client. Si un attaquant contrôle le processus de l'application, chaque vérification qui s'y exécute peut être amenée à mentir. Les banques qui misent surtout sur la détection dans l'application auraient donc intérêt à transférer davantage de leurs décisions de confiance vers le serveur, comme le recommande ThreatFabric.
Le mode d'infection s'inscrit aussi dans une tendance plus large des menaces mobiles. Les malwares arrivent via des applications installées hors boutique officielle ou sont préinstallés sur des téléphones Android bon marché, et ces deux voies échappent au filtrage de Google Play. Les bonnes pratiques de base, comme l'application des dernières mises à jour de sécurité Android, restent importantes, mais elles n'arrêteront pas un utilisateur qui accorde l'accès à l'Accessibilité à une fausse mise à jour.
Reste à voir si les opérateurs remplaceront la keybox compromise et si Hirudo s'étendra au-delà de sa cible actuelle, l'Indonésie.
