Anatomie d’un logiciel malveillant IIS natif

Les chercheurs d'ESET publient un white paper qui passe au crible les divers rmenaces du serveur web, ou logiciel malveillant IIS.

Les chercheurs d’ESET publient un white paper qui passe au crible les divers rmenaces du serveur web, ou logiciel malveillant IIS.

Les chercheurs d’ESET ont découvert un ensemble de familles de logiciels malveillants jusqu’alors non documentées, implémentées sous forme d’extensions malveillantes pour le logiciel de serveur web Internet Information Services (IIS). Ciblant à la fois les boîtes aux lettres gouvernementales et les transactions de commerce électronique, ainsi que l’aide à la distribution de logiciels malveillants, cette classe diverse de menaces fonctionne en écoutant et en altérant les communications du serveur.

Outre une analyse complète des familles récemment découvertes, notre nouveau document de recherche, Anatomy of native IIS malware, fournit un guide complet pour aider les chercheurs en sécurité et les défenseurs à détecter, disséquer et atténuer cette catégorie de menaces côté serveur. Dans ce billet de blog, nous résumons les conclusions du white paper.

Aujourd’hui, nous lançons également une série d’articles de blog dans lesquels nous présentons les familles de logiciels malveillants IIS les plus remarquables récemment découvertes, en tant qu’études de cas illustrant la manière dont ce type de logiciels malveillants est utilisé à des fins de cybercriminalité, de cyberespionnage et de fraude au référencement. En plus de cet article général, vous pouvez lire le premier des trois articles, IIStealer: A server-side threat to e-commerce transactions.

Les résultats de nos recherches sur les logiciels malveillants IIS ont été présentés pour la première fois à Black Hat USA 2021 et seront également partagés avec la communauté lors de la conférence Virus Bulletin 2021 du 8 octobre.

IIS est un logiciel serveur web Microsoft Windows doté d’une architecture extensible et modulaire qui, depuis la version 7.0, prend en charge deux types d’extensions : les modules natifs (DLL C++) et les modules gérés (assemblage .NET). En nous concentrant sur les modules IIS natifs malveillants, nous avons trouvé plus de 80 échantillons uniques utilisés dans la nature et les avons classés en 14 familles de logiciels malveillants – dont 10 n’étaient pas documentées auparavant. Les solutions de sécurité ESET détectent ces familles comme Win{32,64}/BadIIS et Win{32,64}/Spy.IISniff.

Comment fonctionne un logiciel malveillant IIS

Les logiciels malveillants IIS constituent une classe diverse de menaces utilisées pour la cybercriminalité, le cyberespionnage et la fraude au référencement – mais dans tous les cas, leur objectif principal est d’intercepter les requêtes HTTP entrant sur le serveur IIS compromis et d’affecter la façon dont le serveur répond à (certaines de) ces requêtes.

Avec l’installation par défaut, IIS lui-même est persistant, il n’est donc pas nécessaire pour les logiciels malveillants IIS basés sur des extensions de mettre en œuvre des mécanismes de persistance supplémentaires. Une fois configuré en tant qu’extension IIS, le module IIS malveillant est chargé par le processus IIS Worker (w3wp.exe), qui traite les requêtes envoyées au serveur – c’est là que le logiciel malveillant IIS peut interférer avec le traitement des requêtes.

Nous avons identifié cinq modes principaux dans lesquels les logiciels malveillants IIS opèrent, comme l’illustre la figure 1 :

  • Les backdoors IIS permettent à leurs opérateurs de contrôler à distance l’ordinateur compromis sur lequel est installé IIS.
  • Les infostealers IIS permettent à leurs opérateurs d’intercepter le trafic régulier entre le serveur compromis et ses visiteurs légitimes, afin de voler des informations telles que les identifiants de connexion et les informations de paiement. L’utilisation du protocole HTTPS n’empêche pas cette attaque, car les logiciels malveillants IIS peuvent accéder à toutes les données traitées par le serveur, c’est-à-dire aux données traitées en clair.
  • Les injecteurs IIS modifient les réponses HTTP envoyées aux visiteurs légitimes pour servir du contenu malveillant.
  • Les proxies IIS transforment le serveur compromis en une partie involontaire de l’infrastructure C&C d’une autre famille de logiciels malveillants et utilisent le serveur IIS pour relayer la communication entre les victimes de ces logiciels malveillants et le véritable serveur C&C.
  • Les logiciels malveillants ISS de fraude au référencement modifient le contenu transmis aux moteurs de recherche afin de manipuler les algorithmes SERP et d’améliorer le classement d’autres sites Web présentant un intérêt pour les attaquants.
Figure 1. Overview of IIS malware mechanisms

Figure 1. Aperçu des mécanismes des logiciels malveillants IIS

Tous ces types de logiciels malveillants sont examinés en détail dans le document.

Comment (et où) se propagent-ils?

Les modules IIS natifs ont un accès illimité à toutes les ressources disponibles pour le processus de travail du serveur. Des droits d’administration sont donc nécessaires pour installer un logiciel malveillant IIS natif. Cela réduit considérablement les possibilités du vecteur d’attaque initial. Nous avons vu des preuves de deux scénarios :

  • Les logiciels malveillants IIS se propagent sous la forme d’une version trojanisée d’un module IIS légitime.
  • Les logiciels malveillants IIS se propagent par l’exploitation du serveur

Par exemple, entre mars et juin 2021, nous avons détecté une vague de backdoors IIS se propageant via la chaîne de vulnérabilité RCE de pré-authentification de Microsoft Exchange (CVE-2021-26855CVE-2021-26857CVE-2021-26858, et CVE-2021-27065), alias ProxyLogon. Les serveurs Exchange sur lesquels Outlook on the web (alias OWA) est activé étaient spécifiquement visés – comme IIS est utilisé pour mettre en œuvre OWA, ils constituaient une cible particulièrement intéressante pour l’espionnage.

Après que nos collègues aient signalé le premier cas de ce type en mars 2021, nous avons détecté quatre autres campagnes de diverses portes dérobées IIS se propageant vers les serveurs Microsoft Exchange via la même vulnérabilité. Pour compléter notre télémétrie, nous avons effectué des analyses à l’échelle de l’Internet pour détecter la présence de ces portes dérobées, ce qui nous a permis d’identifier et de notifier d’autres victimes du logiciel malveillant.

La figure 2 montre l’emplacement géographique des serveurs touchés par ces cinq campagnes, à partir des données de notre télémétrie et de nos analyses sur Internet.

Figure 2. Victims of native IIS backdoors spread via the ProxyLogon vulnerability chain

Figure 2. Victimes des backdoors IIS natives diffusées via la chaîne de vulnérabilité ProxyLogon

Les entités suivantes figurent au nombre des victimes :

  • Des institutions gouvernementales dans trois pays d’Asie du Sud-Est
  • Une grande entreprise de télécommunications au Cambodge
  • Une institution de recherche au Vietnam
  • Des dizaines d’entreprises privées dans divers secteurs, situées pour la plupart au Canada, au Vietnam et en Inde, et d’autres aux États-Unis, en Nouvelle-Zélande, en Corée du Sud et dans d’autres pays.

Il convient de noter que si les portes dérobées IIS sont bien adaptées à l’espionnage des boîtes aux lettres de personnalités, les victimes des logiciels malveillants IIS ne se limitent pas aux serveurs compromis. Tous les visiteurs légitimes des sites Web hébergés par ces serveurs sont des cibles potentielles, car les logiciels malveillants peuvent être utilisés pour voler des données sensibles aux visiteurs (infostealers IIS) ou diffuser du contenu malveillant (injecteurs IIS). Veuillez consulter le white paper intégral pour obtenir des détails sur les cibles des autres familles IIS analysées.

À l’intérieur d’un logiciel malveillant IIS natif

D’un point de vue technique, tous les types de logiciels malveillants IIS natifs sont mis en œuvre sous forme de bibliothèques de liens dynamiques (DLL), écrites à l’aide de l’IIS C++ API de IIS. Une telle DLL doit :

  • Implémenter une classe héritée de la classe CHttpModuleou CGlobalModule (ou les deux), et surcharger un certain nombre de méthodes de cette classe (gestionnaires d’événements).
  • Exporter la fonction RegisterModule, qui est le point d’entrée de la bibliothèque, responsable de la création des instances de ces classes et de l’enregistrement des gestionnaires d’événements de serveur mis en œuvre, comme illustré à la Figure 3.
Figure 3. A typical RegisterModule function of native IIS malware

Figure 3. Une fonction RegisterModule typique d’un logiciel malveillant IIS natif

Les événements de serveur font référence aux étapes que le serveur IIS entreprend pendant le traitement de la demande (voir Figure 4), mais aussi à d’autres actions effectuées par le serveur (par exemple, l’envoi d’une réponse HTTP). Ces événements génèrent des notifications d’événements, qui sont traitées par des gestionnaires d’événements implémentés dans les modules du serveur (voir Figure 5).

Figure 4. HTTP request-processing pipeline in IIS

Figure 4. Pipeline de traitement des requêtes HTTP dans IIS

En bref, les gestionnaires d’événements (ou les méthodes des classes de base des modules IIS) sont l’endroit où la fonctionnalité des logiciels malveillants IIS est mise en œuvre et où les ingénieurs inversés doivent concentrer leur analyse. Pour un examen approfondi des éléments essentiels des logiciels malveillants IIS et de la manière d’analyser ces binaires, reportez-vous à la section the Anatomy of native IIS malware  de notre white paper.

Figure 5. Gestionnaires d’événements : méthodes des classes de modules,CHttpModule etCGlobalModule

Communication réseau

Une caractéristique notable des logiciels malveillants IIS est la manière dont ils communiquent avec leurs opérateurs. Les modules IIS malveillants, en particulier les portes dérobées IIS, ne créent généralement pas de nouvelles connexions avec leurs serveurs C&C. Ils fonctionnent comme des implants passifs, permettant à l’utilisateur de se connecter à son serveur. Ils fonctionnent comme des implants passifs, permettant aux attaquants de les contrôler en fournissant un certain « secret » dans une requête HTTP envoyée au serveur Web IIS compromis. C’est pourquoi les backdoors IIS disposent généralement d’un mécanisme permettant de reconnaître les requêtes des attaquants qui sont utilisées pour contrôler le serveur et qui ont une structure prédéfinie, comme par exemple :

  • Une URL ou un corps de requête correspondant à une regex spécifique
  • Présence d’un en-tête HTTP personnalisé spécifique
  • Un jeton intégré (dans l’URL, le corps de la requête ou l’un des en-têtes) correspondant à un mot de passe codé en dur
  • Une valeur de hachage d’un token intégré correspondant à une valeur codée en dur

Une condition plus complexe – par exemple, une relation entre tous les éléments ci-dessus.

Figure 6. Passive C&C communication channel (IIS backdoors)

Figure 6. Canal de communication C&C passif (backdoors IIS)

D’autre part, certaines catégories de logiciels malveillants IIS mettent en œuvre un canal C&C alternatif – utilisant des protocoles tels que HTTP ou DNS – pour obtenir la configuration actuelle à la volée. Par exemple, un injecteur IIS contacte son serveur C&C chaque fois qu’il y a une nouvelle requête d’un visiteur légitime du site Web compromis, et utilise la réponse du serveur pour modifier le contenu servi à ce visiteur (comme un code malveillant ou un logiciel publicitaire).

Figure 7. Alternative C&C communication mechanism (IIS injectors)

Figure 7. Autre mécanisme de communication du C&C (injecteurs IIS)

Le tableau 1 résume la manière dont les canaux C&C, ainsi que d’autres techniques notables, sont mis en œuvre par les 14 familles de logiciels malveillants IIS analysées.

Tableau 1. Résumé des techniques d’obscurcissement mises en œuvre et des fonctionnalités prises en charge par les familles de logiciels malveillants IIS analysées

Group #
Functionality
C&C channel
Detection evasion and obfuscation techniques
BackdoorInfostealerProxySEO fraudInjectorAttacker request verification (e.g. specific header present, specific URI, query string parameter)Encryption/
encoding
Alternative channel protocol
Group 1HTTP header with hardcoded passwordbase64
Group 2HTTP header with hardcoded passwordRSA + AES-CBC
Group 3HTTP header presentbase64
Group 4HTTP header with hardcoded passwordXOR + base64Anti-logging
Group 5URI and HTTP header with hardcoded passwordString stacking
Group 6Query string parameter
Group 7Relationship between HTTP headers, HTTP body formatAES-CBCAnti-logging
Group 8HTTP header with hardcoded password
Group 9No support for attacker requestsHTTPEncrypted strings (XOR 0x56)
Group 10No support for attacker requestsHTTP to obtain JavaScript config
Group 11HTTP header with hardcoded passwordDNS TXT to obtain config, HTTP for C&CString encryption (ADD 0x02)
Group 12, variant AHTTP header with password whose MD5 hash is hardcodedHTTPString encryption (ADD 0x01)
Group 12, variant BHTTPUPX packing
Group 12, variant CNo support for attacker requestsHTTPString encryption (XOR 0x0C)
Group 13Query string parameterHTTP
Group 14No support for attacker requestsHTTP

Atténuation

Les modules natifs d’IIS ne pouvant être installés qu’avec des privilèges administratifs, les attaquants doivent d’abord obtenir un accès élevé au serveur IIS. Les recommandations suivantes pourraient leur compliquer la tâche :

  • Utilisez des comptes dédiés avec des mots de passe forts et uniques pour l’administration du serveur IIS. Exigez une authentification multifactorielle (MFA) pour ces comptes. Surveillez l’utilisation de ces comptes
  • Appliquez régulièrement des correctifs à votre système d’exploitation et examinez attentivement quels services sont exposés à l’Internet afin de réduire le risque d’exploitation du serveur
  • Envisagez l’utilisation d’un pare-feu pour les applications Web ou d’une solution de sécurité des points d’accès sur votre serveur IIS
  • Les modules IIS natifs ont un accès illimité à toute ressource disponible pour le processus de travail du serveur. Vous ne devez installer les modules IIS natifs qu’à partir de sources fiables pour éviter de télécharger leurs versions trojanisées. Faites particulièrement attention aux modules promettant des fonctionnalités trop belles pour être vraies, comme l’amélioration magique du référencement.
  • Vérifiez régulièrement la configuration du serveur IIS pour vous assurer que tous les modules natifs installés sont légitimes (signés par un fournisseur de confiance ou installés volontairement).

Pour plus de détails sur la manière de détecter et de supprimer les logiciels malveillants IIS, reportez-vous à la section Atténuation du white paper. Nous publions également un ensemble de règles YARA que vous pouvez exploiter pour détecter les 14 familles de logiciels malveillants IIS analysées.

Conclusion

Les serveurs web Internet Information Services ont été la cible de divers acteurs malveillants, tant pour la cybercriminalité que pour le cyberespionnage. L’architecture modulaire du logiciel, conçue pour offrir une extensibilité aux développeurs Web, peut être un outil utile pour les attaquants, qui peuvent ainsi s’intégrer au serveur IIS et intercepter ou modifier son trafic.

Il est encore assez rare que les logiciels de sécurité des points de terminaison (et autres) soient exécutés sur les serveurs IIS, ce qui permet aux attaquants de passer inaperçus pendant de longues périodes. Cela devrait être inquiétant pour tous les portails web sérieux qui veulent protéger les données de leurs visiteurs, y compris les informations d’authentification et de paiement. Les organisations qui utilisent OWA doivent également faire attention, car il dépend d’IIS et pourrait être une cible intéressante pour l’espionnage.

Bien que les menaces contre les serveurs IIS ne se limitent pas aux logiciels malveillants natifs d’IIS, nous pensons que ce document sera un point de départ utile pour les défenseurs pour comprendre, identifier et supprimer les menaces IIS, et un guide pour nos collègues chercheurs pour faire de l’ingénierie inverse de cette classe de menaces et comprendre leurs tactiques, techniques et procédures communes.

Des détails techniques supplémentaires sur les logiciels malveillants et les indicateurs de compromission peuvent être trouvés dans notre white paper complet, et sur GitHub. Pour toute demande de renseignements, ou pour soumettre des échantillons liés au sujet, contactez-nous à l’adresse suivante : threatintel@eset.com.

Soulignons le travail de nos collègues chercheurs d’ESET Marc-Étienne Léveillé et Mathieu Tartare pour leur collaboration dans cette recherche.

Infolettre

Discussion