Coyote : le tout premier logiciel malveillant qui exploite UI Automation
Synthèse
Les chercheurs d'Akamai ont précédemment souligné le potentiel d'utilisation malveillante d'UIA.
Les chercheurs d'Akamai ont analysé une nouvelle variante du logiciel malveillant Coyote, qui constitue le premier cas confirmé d'utilisation malveillante de l'infrastructure UI Automation (UIA) de Microsoft en conditions réelles.
La nouvelle variante Coyote cible les utilisateurs brésiliens et utilise UIA pour extraire les identifiants liés aux adresses Web de 75 établissements bancaires et plateformes d'échange de cryptomonnaies.
Afin de contribuer à prévenir les infections par Coyote et les abus liés à UIA de manière plus générale, nous avons inclus des indicateurs de compromission et des mesures de détection supplémentaires dans cet article de blog.
Introduction
En décembre 2024, nous avons publié un article de blog qui soulignait comment les pirates pouvaient exploiter l'infrastructure UIA de Microsoft pour voler des identifiants, exécuter du code, etc. Jusqu'à présent, l'exploitation n'était qu'une démonstration de faisabilité.
Environ deux mois après la publication de cet article, nos inquiétudes se sont confirmées lorsqu'une variante du cheval de Troie bancaire Coyote a été observée en train d'utiliser UIA à mauvaise escient en conditions réelles, marquant ainsi le premier cas connu d'une telle exploitation.
Cet abus d'UIA est le dernier en date des agissements malveillants de Coyote dans son habitat digital depuis sa découverte en février 2024.
Dans cet article de blog, nous examinons de plus près cette variante afin de mieux comprendre comment UIA est exploitée à des fins malveillantes et ce que cela signifie pour les défenseurs.
Qu'est-ce que le logiciel malveillant Coyote ?
Coyote est une famille de logiciels malveillants bien connue qui a été découverte en février 2024 et qui a causé depuis lors des dommages importants dans la région d'Amérique latine. Coyote est un logiciel malveillant de type cheval de Troie qui utilise diverses techniques malveillantes, telles que l'enregistrement des frappes clavier et les superpositions d’hameçonnage, pour voler des informations bancaires.
Il utilise le programme d'installation Squirrel pour se propager (d'où le nom « Coyote », qui rend hommage à la nature des coyotes, « squirrel » en anglais, qui chassent les écureuils). Au cours de l'une de ses campagnes les plus connues, Coyote a ciblé des entreprises brésiliennes dans le but de déployer un cheval de Troie d'accès à distance destiné à voler des informations au sein de leurs systèmes.
Après la découverte initiale de Coyote, de nombreux chercheurs en sécurité ont découvert des informations sur son fonctionnement et ont fourni des analyses techniques approfondies. L'une de ces analyses, publiée par Fortinet en janvier 2025, a mis en lumière le fonctionnement interne et la chaîne d'attaque de Coyote.
Abus de UIA
Nous avons développé ces analyses et découvert un nouveau détail clé : Coyote utilise désormais la technologie UIA dans le cadre de son fonctionnement. Comme tout autre cheval de Troie bancaire, Coyote recherche des informations bancaires, mais ce qui le distingue, c'est la manière dont il obtient ces informations, qui implique l'utilisation (abusive) d'UIA.
Le coyote attrape la rage
Au cours de son processus d'infection, Coyote envoie au serveur de commande et de contrôle des informations détaillées sur chaque victime. Cela inclut le nom de l'ordinateur, le nom d'utilisateur et divers autres attributs du système. Cependant, les informations les plus importantes, celles que Coyote s'efforce d'obtenir, sont les services financiers utilisés par la victime.
Au départ, le logiciel malveillant utilisera une approche classique et très courante : Coyote appelle l'API Windows GetForegroundWindow() pour obtenir un descripteur vers la fenêtre actuellement active. Une fois qu'il a récupéré le descripteur de fenêtre, le logiciel malveillant compare le titre de la fenêtre à une liste d'adresses Web codées en dur appartenant à des banques et des plateformes d'échange de cryptomonnaies ciblées.
La logique intéressante d'UIA entre en jeu lorsque le titre ne correspond à aucune des adresses recherchées par Coyote. Si aucune correspondance n'est trouvée, Coyote utilisera alors UIA pour analyser les éléments enfants de l'interface utilisateur de la fenêtre afin d'identifier les onglets du navigateur ou les barres d'adresse. Le contenu de ces éléments de l'interface utilisateur sera ensuite recoupé avec la même liste d'adresses que celle utilisée lors de la première comparaison.
Pour ce faire, Coyote crée l'objet UIAutomation COM avec la fenêtre au premier plan comme élément supérieur (Figure 1).
Coyote va ensuite parcourir chaque sous-élément de l'application au premier plan pour trouver l'adresse Web d'un onglet (Figure 2).
Une fois l'adresse Web trouvée, Coyote tentera de la faire correspondre à sa liste prédéfinie (Figure 3).
Le tableau montre comment Coyote classe les banques et les plateformes d'échange de cryptomonnaies à partir de leur nom ou de leur adresse Web. Dans chaque classe, Coyote recherche un certain nombre d'adresses différentes ; selon nos recherches, il existe 75 adresses différentes.
Nom |
Type |
---|---|
Banco do Brasil |
0 |
CaixaBank |
1 |
Banco Bradesco |
2 |
Cryptomonnaie (Binance, Electrum, Bitcoin, Foxbit et autres) |
3 |
Santander |
4 |
Application-routeur |
5 |
Banque d'origine |
6 |
Sicredi |
7 |
Banco do Nordeste |
8 |
Applications étendues |
9 |
Banques et type de numéro correspondant pour les tentatives de correspondance de Coyote
Sans UIA, l'analyse des sous-éléments d'une autre application est une tâche complexe. Pour pouvoir lire efficacement le contenu des sous-éléments dans une autre application, un développeur doit avoir une très bonne compréhension de la structure spécifique de l'application cible.
Coyote peut effectuer des vérifications, que le logiciel malveillant soit en ligne ou hors ligne. Cela augmente les chances d'identifier avec succès la banque ou la plateforme d'échange cryptographique d'une victime et de voler ses identifiants.
UIA offre plusieurs possibilités aux attaquants, notamment une solution simple permettant aux développeurs de logiciels malveillants d'analyser les sous-éléments d'une autre application.
Tactiques, techniques et procédures supplémentaires d'UIA
C'est la première fois que nous voyons un logiciel malveillant utiliser UIA, ce qui montre à quelle vitesse les développeurs de logiciels malveillants intègrent de nouvelles techniques dans leurs créations. Remarque : ce n'est qu'un exemple de l'utilisation malveillante potentielle d'UIA.
La figure 4 montre comment UIA peut être utilisé non seulement pour identifier les composants stratégiques de l'interface utilisateur, mais aussi pour en extraire les données sensibles.
Dans la figure 5, nous montrons comment les attaquants peuvent manipuler les composants de l'interface utilisateur pour mener des attaques d'ingénierie sociale furtives. L'attaquant modifie la barre d'adresse du navigateur et simule un clic, redirigeant ainsi la victime vers un serveur malveillant, le tout avec un minimum d'indications visuelles.

Pour plus de détails, consultez notre article de blog original sur UIA.
Détecter une utilisation anormale d'UIA
En ce qui concerne la détection d'UIA, les administrateurs peuvent surveiller l'utilisation du fichier UIAutomationCore.dll. Le chargement de ce fichier dans un processus inconnu devrait susciter des inquiétudes légitimes.
De même, les administrateurs réseau peuvent surveiller les canaux nommés ouverts sur un point de terminaison par UIA comme autre indicateur de son utilisation. Les figures 6 et 7 sont des requêtes qui peuvent être utilisées pour détecter ce type d'activité.
SELECT DISTINCT pid, name, proc.path FROM process_memory_map AS pmm JOIN processes AS proc USING(pid) WHERE pmm.path LIKE '%uiautomationcore.dll'
Fig. 6 : processus qui chargent UIAutomationCore.dll
WITH uia_pipes AS (SELECT name AS pipe_name, SUBSTR(name, 10, INSTR(SUBSTR(name, 10), '_')-1) AS pid FROM pipes WHERE name LIKE 'UIA_PIPE_%' ) SELECT DISTINCT pid, name AS process_name, path, pipe_name FROM uia_pipes JOIN processes USING(pid)
Fig. 7 : processus qui ont ouvert le canal nommé UIA
Akamai Hunt, le service géré de recherche de menaces d'Akamai, offre à ses clients une protection sous la forme d'un vaste ensemble de techniques de détection des anomalies qui surveillent constamment l'environnement pour tenter de détecter l'activité malveillante. Les clients d'Akamai Hunt ont été analysés afin d'identifier toute utilisation anormale d'UIA et ont été alertés en cas d'activité suspecte.
Conclusion
Les logiciels malveillants évoluent constamment, et dans ce jeu du chat et de la souris (ou, dans ce cas, du coyote et de l'écureuil), il est crucial pour les défenseurs comme pour les attaquants de garder une longueur d'avance en suivant de près les menaces nouvelles et émergentes.
Bien qu'UIA semble être un outil inoffensif, comme nous l'avons souligné dans notre précédent article de blog, l'utilisation abusive de ses fonctionnalités peut avoir des conséquences graves pour les organisations. En dévoilant les tactiques de Coyote, nous espérons que les défenseurs seront mieux équipés pour détecter et répondre à cette menace de multiples façons.
Nous pensons qu'UIA représente un vecteur d'attaque viable et dangereux qui mérite une attention particulière, et dont l'utilisation abusive devrait s'intensifier à l'avenir.
Nous remercions tout particulièrement @johnk3r d'avoir attiré notre attention sur ce logiciel malveillant.