Les chercheurs d’ESET publient aujourd'hui un white paper actualisant notre compréhension du groupe Winnti. En mars dernier, les chercheurs d'ESET ont mis en garde contre une nouvelle attaque de la chaîne d'approvisionnement visant les développeurs de jeux vidéo d'Asie. Après cette publication, nous avons poursuivi ces enquêtes dans deux directions. Nous voulions trouver toutes les étapes ultérieures de l'attaque, et nous avons également essayé de trouver comment les développeurs et éditeurs ciblés avaient été compromis pour diffuser les logiciels malveillants du groupe Winnti dans leurs applications.

Tout en poursuivant notre enquête sur le groupe Winnti, nous avons publié d'autres rapports sur ses activités. Kaspersky a publié des détails sur le logiciel malveillant ShadowHammer, qui a été trouvé dans l'utilitaire Asus Live Update. Ce rapport mentionnait également certaines des techniques que nous décrivons en détail dans ce nouveau white paper, comme l'existence d'un emballeur VMProtect et une brève description de la porte dérobée de PortReuse. FireEye a également publié un article sur un groupe qu'il appelle APT41. Nos recherches confirment certaines de leurs conclusions concernant les étapes ultérieures de certaines attaques de la chaîne d'approvisionnement, telles que l'utilisation d'hôtes compromis pour l'extraction de cryptomonnaies.

Le white paper que nous mettons aujourd’hui en ligne fournit une analyse technique des récents logiciels malveillants utilisés par le groupe Winnti. Cette analyse nous permet de mieux comprendre leurs techniques et de déduire les relations entre les différents incidents de la chaîne d'approvisionnement.

Nous espérons que ce white paper et les indicateurs de compromis que nous publions aujourd'hui aideront les organisations ciblées à déterminer si elles sont victimes ou à prévenir de futurs compromis.

Note sur la dénomination

Il y a beaucoup de rapports sur les activités de ce groupe - ou peut-être de ces groupes. Il semble que chaque rapport donne de nouveaux noms au groupe et au logiciel malveillant. Parfois, c'est parce que le lien avec la recherche existante n'était pas assez fort pour classer les logiciels malveillants et les activités d'intérêt sous un nom antérieur, ou parce que les fournisseurs ou les groupes de recherche ont leurs propres classifications et noms et les utilisent dans leurs rapports publics. Pour quelqu'un qui n'analyse pas réellement les échantillons de logiciels malveillants, il peut être difficile de confirmer les alias, ce qui peut donc ajouter à la confusion.

Nous avons choisi de conserver le nom « groupe Winnti » car c'est le nom utilisé pour la première fois, en 2013, par Kaspersky. Nous comprenons que Winnti est aussi une famille de logiciels malveillants : c'est pourquoi nous écrivons toujours Winnti Group quand nous faisons référence aux malfaiteurs derrière les attaques. Depuis 2013, il a été démontré que Winnti n'est qu'une des nombreuses familles de logiciels malveillants utilisées par le groupe Winnti.

Précisons tout de suite que nous n'excluons pas l'idée qu'il puisse y avoir plusieurs groupes utilisant le logiciel malveillant Winnti. Dans le cadre de notre recherche, nous les appelons sous-groupes potentiels du groupe Winnti, puisque nous n’avons aucune preuve qu'ils agissent de façon complètement isolée. Notre définition du Groupe Winnti est suffisamment large pour inclure tous ces sous-groupes car elle est basée principalement sur les logiciels malveillants et les techniques qu'ils utilisent.

Notre white paper comporte une section décrivant les noms que nous utilisons et leurs alias.

Relier les événements visant la chaîne d'approvisionnement

Figure 1 - Aperçu des artefacts et techniques utilisés par le Groupe Winnti, des événements et des relations entre ceux-ci

Nous avons été intrigués par le packer unique utilisé dans les récentes attaques de la chaîne d'approvisionnement contre l'industrie du jeu en Asie. Nous avons décrit sa structure dans notre article précédent, et après la publication, nous avons continué la chasse pour savoir si elle était utilisée ailleurs. La réponse a été positive. Cet emballeur est utilisé dans une porte dérobée que les malfaiteurs appellent PortReuse. Après une enquête plus poussée, nous avons trouvé d'autres échantillons de cette backdoor avec un contexte supplémentaire confirmant qu'elle est réellement utilisée dans les organisations ciblées.

Cela nous a conduits sur la voie de trouver comment il est déployé sur des hôtes compromis. Nous avons découvert un packer VMProtected qui décrypte le code indépendant de la position à l'aide de RC5, avec une clé basée sur une chaîne statique et le numéro de série du volume du disque dur de la victime, et l'exécute directement. C'est exactement le même algorithme que celui utilisé par le logiciel malveillant de deuxième étape des jeux compromis par le groupe Winnti en 2018. Il y a aussi d'autres façons de dissimuler la porte dérobée de PortReuse, mais cette encaisseuse VMProtected utilisant le même chiffrement et la même technique de génération de clé renforce les liens entre les incidents.

Nous avons vu une autre charge utile livrée avec le même packer VMProtected : le logiciel malveillant ShadowPad. ShadowPad a été vu pour la première fois lors de l'incident touchant la chaîne d'approvisionnement NetSarang, où leur logiciel avait été livré avec ce logiciel malveillant. De nos jours, nous voyons des variantes de ShadowPad, sans le module d'algorithme de génération de domaine (DGA), dans les organisations ciblées par le groupe.

Nous avons été intrigués par le packer unique utilisé dans les récentes attaques de la chaîne d'approvisionnement contre l'industrie du jeu en Asie. Nous avons décrit sa structure dans notre article précédent, et après la publication, nous avons continué la chasse pour savoir si elle était utilisée ailleurs. La réponse a été positive. Cet emballeur est utilisé dans une porte dérobée que les malfaiteurs appellent PortReuse. Après une enquête plus poussée, nous avons trouvé d'autres échantillons de cette backdoor avec un contexte supplémentaire confirmant qu'elle est réellement utilisée dans les organisations ciblées.

Cela nous a conduits sur la voie de trouver comment il est déployé sur des hôtes compromis. Nous avons découvert un packer VMProtected qui décrypte le code indépendant de la position à l'aide de RC5, avec une clé basée sur une chaîne statique et le numéro de série du volume du disque dur de la victime, et l'exécute directement. C'est exactement le même algorithme que celui utilisé par le logiciel malveillant de deuxième étape des jeux compromis par le groupe Winnti en 2018. Il y a aussi d'autres façons de dissimuler la porte dérobée de PortReuse, mais cette encaisseuse VMProtected utilisant le même chiffrement et la même technique de génération de clé renforce les liens entre les incidents.

Nous avons vu une autre charge utile livrée avec le même packer VMProtected : le logiciel malveillant ShadowPad. ShadowPad a été vu pour la première fois lors de l'incident touchant la chaîne d'approvisionnement NetSarang, où leur logiciel avait été livré avec ce logiciel malveillant. De nos jours, nous voyons des variantes de ShadowPad, sans le module d'algorithme de génération de domaine (DGA), dans les organisations ciblées par le groupe.

Dernière étape de l'attaque de la chaîne d'approvisionnement: XMRig

Quelques semaines après la publication de notre article de mars, nous avons pu acquérir la troisième et dernière étape de l'attaque de la chaîne d'approvisionnement que nous avons décrite. Une fois décryptée, la charge utile était une version personnalisée de XMRig, un populaire mineur de cryptomonnait open source. Ce n'était pas tout à fait ce à quoi nous nous attendions parce que le groupe Winnti est connu pour ses opérations d'espionnage, et non pour mener des opérations qui génèrent des gains financiers. C'est peut-être grâce à cet argent virtuel qu'ils financent leur infrastructure (serveurs C&C, noms de domaine, etc.), mais ce n'est qu'une hypothèse.

Une nouvelle backdoor utilisée contre les organisations ciblées : PortReuse

Figure 2. Architecture de la backdoor PortReuse

La porte dérobée PortReuse n'utilise pas de serveur C&C; elle attend une connexion entrante qui envoie un paquet « magique ». Pour ce faire, il n'ouvre pas un port TCP supplémentaire; il injecte dans un processus existant pour « réutiliser » un port déjà ouvert. Pour pouvoir analyser les données entrantes pour rechercher le paquet magique, deux techniques sont utilisées : le branchement de la fonction de réception (WSARecv  ou même le NtDeviceIoControlFile de niveau inférieur) ou l'enregistrement d'un gestionnaire pour une ressource URL spécifique sur un serveur IIS utilisant HttpAddUrl  avec un URLPrefix.

Il existe des variantes qui ciblent différents services et ports. Parmi ceux-ci, mentionnons DNS (53), HTTP (80), HTTPS (443), RDP (3389) et WinRM (5985).

Grâce à Censys, les chercheurs d'ESET ont pu avertir un important fabricant asiatique de logiciels et de matériel mobile qu'ils avaient été compromis par la porte dérobée de PortReuse. Nous avons collaboré avec Censys pour effectuer une analyse à l'échelle d'Internet de la variante de PortReuse qui s'injecte dans IIS.

Plus de détails sur le fonctionnement interne de PortReuse sont décrits dans notre white paper.

Mise à jour de ShadowPad

En plus de la nouvelle backdoor PortReuse, le Groupe Winnti met à jour et utilise activement sa porte dérobée phare, ShadowPad. L'un des changements est la randomisation des identificateurs de module. Les horodatages trouvés dans chaque module des échantillons indiquent qu'ils ont été compilés en 2019.

ShadowPad récupère l'adresse IP et le protocole du serveur C&C à utiliser en analysant le contenu du Web mis en place par les attaquants, et hébergé sur des ressources populaires et accessibles au public comme les dépôts GitHub, les profils Steam, les profils Microsoft TechNet ou les documents Google Docs. Il a également un identifiant de campagne dans sa configuration. Ces deux techniques sont également utilisées par la famille de logiciels malveillants Winnti.

Conclusion

Les chercheurs d'ESET sont toujours à l'affût de nouvelles attaques dans la chaîne d'approvisionnement. Ce n'est pas une tâche facile: identifier un code petit, bien caché, ajouté à une base de code existante parfois énorme, c'est comme trouver une aiguille dans une botte de foin. Nous pouvons, cependant, compter sur les comportements et la similarité du code pour nous aider à repérer l'aiguille.

Nous avons été très surpris par la dernière étape que nous avons trouvée dans l'incident récent de la chaîne d'approvisionnement dans les jeux. Ce groupe est connu pour sa capacité d'espionnage, et non pour l'extraction de cryptomonnaies à l'aide de son réseau de zombies. Peut-être qu'ils utilisent l'argent virtuel qu'ils exploitent pour financer leurs autres opérations. Peut-être qu'ils l'utilisent pour louer des serveurs et enregistrer des noms de domaine. Mais à ce stade, nous ne pouvons exclure qu'eux, ou l'un de leurs sous-groupes, puissent être motivés par le gain financier.

Les chercheurs d'ESET continueront de suivre ce groupe et fourniront des détails supplémentaires au fur et à mesure que l'équipe les trouvera. Si vous pensez être victime de ce groupe ou si vous avez d'autres questions, n'hésitez pas à contacter notre équipe (à l'adresse threatintel@eset.com) pour plus de détails.

Des indicateurs de compromission sont disponibles dans notre white paper, ainsi que dans notre dépôt d'IOC de logiciels malveillants sur GitHub.