Ces dernières années, les fichiers créés à l’aide de la technique polyglotte sont de plus en plus utilisés dans les cyberattaques. Ils permettent aux pirates informatiques de faire passer des programmes malveillants à travers les filtres de messagerie et les analyseurs de fichiers, de tromper leurs victimes lors d’attaques de phishing et de compliquer les enquêtes sur les incidents. Pour y parvenir, les pirates informatiques créent délibérément un fichier que le système peut interpréter comme différents formats selon l’application qui l’ouvre. Un exemple classique est celui d’un fichier pouvant être traité soit comme une image PNG, soit comme une archive ZIP. Il suffit de modifier l’extension du fichier ou d’utiliser simplement l’une ou l’autre application pour l’ouvrir.
Voyons pourquoi il est possible de créer des fichiers de ce type, quelles combinaisons de formats ont été découvertes dans des attaques réelles, et comment les entreprises peuvent se protéger contre cette menace.
Comment les fichiers polyglottes peuvent-ils exister ?
Les formats de données sur lesquels ils reposent ont rarement quoi que ce soit d’inhabituel. Tout tient à une combinaison astucieuse de formats courants dont les structures sont compatibles. Les fichiers polyglottes exploitent au moins l’une des particularités suivantes dans certains formats de fichiers :
- La plupart des formats de fichiers doivent être décodés à partir du tout premier octet, mais certains doivent être lus à partir de la fin. L’exemple le plus parlant est celui d’une archive ZIP : même si le début du fichier est corrompu ou manquant, rien n’empêche les applications de lire le fichier, car tous les en-têtes nécessaires se trouvent en réalité à la fin. Cela permet aux pirates informatiques de simplement fusionner deux fichiers : dans l’exemple ci-dessus, un fichier PNG et un fichier ZIP. Le début est interprété comme une image PNG valide, tandis que la fin est interprétée comme une archive ZIP valide.
- De nombreux formats fonctionnent à la manière des poupées russes : bien qu’ils aient en apparence une extension particulière correspondant à leur utilisation prévue, le fichier contient en réalité une archive ZIP renfermant les données nécessaires. Ce groupe comprend les documents Office modernes (DOCX/XLSX/PPTX), les paquets d’installation Android (fichier APK), les fichiers de bibliothèques Java (JAR) et bien d’autres encore.
- Certains formats n’ont pas d’exigences structurelles strictes ou leurs exigences sont suffisamment souples pour que l’application qui traite le fichier puisse localiser le fragment dont elle a besoin, même s’il ne se trouve pas au début.
Le dépôt GitHub de Polydet présente de nombreux exemples de combinaisons de fichiers possibles pour créer un fichier polyglotte. Selon la classification MITRE, cette technique relève de la catégorie « Masquerading » (T1036.008, Masquerade File Type).
Exemples de fichiers polyglottes utilisés dans des cyberattaques connues
Les analyses de campagnes de programmes malveillants disponibles publiquement révèlent l’existence de toutes sortes de fichiers polyglottes. Les pirates informatiques adaptent l’ensemble du scénario d’attaque à une combinaison particulière de types de fichiers.
Le groupe Head Mare a diffusé le programme malveillant PhantomPyramid sous la forme d’une pièce jointe au format ZIP. Le fichier était constitué d’un code exécutable Windows (EXE) auquel était ajoutée, à la fin, une petite archive ZIP. À l’ouverture de l’archive par la victime, celle-ci contenait un fichier avec l’extension PDF.LNK, qui lançait alors la même pièce jointe polyglotte, cette fois sous la forme d’un fichier exécutable.
Dans l’attaque documentée par JPCERT, les pirates informatiques ont créé un fichier qui, à première vue, semblait être un document PDF et était détecté comme tel par la plupart des logiciels antivirus, mais qui portait en réalité l’extension .DOC et s’ouvrait dans les logiciels Office comme un fichier DOC valide contenant des macros malveillantes.
Les attaques visant à propager les chevaux de Troie StrRAT et Ratty utilisaient un fichier polyglotte constitué d’un paquet d’installation Windows signé (MSI) auquel était ajouté, à la fin, un code Java malveillant (JAR).
Les attaques StrelaStealer utilisaient un fichier polyglotte portant une extension HTML : une bibliothèque Windows (DLL) à laquelle était ajouté, à la fin, un document HTML servant de leurre. Un raccourci présent dans l’archive lançait le fichier deux fois : une fois via la commande « start » (l’équivalent d’un double-clic, qui ouvrait un navigateur affichant le document HTML), et une fois via rundll32 (qui lançait le fichier DLL malveillant).
Dans le cadre d’une attaque simulée mais ingénieuse, des chercheurs ont fusionné deux fichiers ZIP ordinaires et ont constaté que différents outils d’archivage courants affichaient le fichier combiné de manière différente : certains n’affichaient que la première archive, d’autres uniquement la seconde, tandis que d’autres encore affichaient les deux à la fois, comme s’il s’agissait d’une seule et même archive au contenu partagé. Si le pirate informatique connaît bien l’infrastructure de la victime et sait quels logiciels celle-ci a installés, il peut profiter de cette situation pour présenter un fichier aux outils de sécurité tout en en montrant un autre à la victime.
Les pirates informatiques ont déployé un programme malveillant complexe sous forme de poupées russes dans le cadre d’une campagne visant à assurer la distribution du logiciel de vol d’informations IcedID. Ils ont joint une archive ZIP à des emails de phishing. Une fois décompressée, celle-ci générait un fichier ISO. Ce fichier ISO était ensuite décompressé en un fichier CHM (aide Windows) créé à l’aide de la technique polyglotte. Lorsque la victime l’ouvrait avec l’outil d’aide standard de Windows, le fichier exécutait un script JavaScript intégré au contenu de l’aide, qui lançait l’application standard mshta (Microsoft HTML Application Host) et lui indiquait d’ouvrir ce même fichier CHM. Les auteurs de la campagne ont intégré une application HTA dans le fichier CHM de manière à ce que sa présence n’empêche pas la lecture du fichier en tant que simple document d’aide inoffensif. De son côté, le gestionnaire HTA faisait gentiment l’impasse sur toutes les données inutiles au début du fichier jusqu’à ce qu’il trouve le script HTA.
Comment les outils de sécurité gèrent les fichiers polyglottes
Les exemples ci-dessus montrent clairement comment cette double lecture permet aux pirates informatiques de déployer des programmes malveillants sur l’ordinateur d’une victime. Mais que font réellement les filtres d’email et les systèmes EDR avec ce genre de fichiers ? La réponse dépend entièrement de la solution utilisée. Il convient donc de la vérifier, soit en passant en revue la documentation technique du fournisseur, soit en effectuant un test contrôlé au sein de l’infrastructure de l’entreprise, en prenant toutes les précautions nécessaires. D’une manière générale, seuls deux points s’appliquent dans tous les cas :
- La plupart des solutions de sécurité ne se fient pas à l’extension indiquée d’un fichier, mais en vérifient plutôt le début afin de déterminer sa structure réelle. C’est pourquoi, dans l’attaque décrite ci-dessus, le fichier PDF doté d’une extension DOC a été analysé comme un fichier PDF inoffensif, tandis que la macro malveillante se trouvait dans la partie DOC qui y avait été ajoutée.
- Si un fichier semble à première vue inoffensif (par exemple, une image) et que son extension semble correspondre, il est peu probable qu’il fasse l’objet d’une analyse plus approfondie. Les pirates informatiques peuvent exploiter cette faille : les instructions jointes au fichier peuvent notamment demander à la victime de le renommer, de sorte que le système réagisse à la deuxième charge utile plutôt qu’à l’image.
Comment protéger une organisation contre les attaques par fichiers polyglottes
Pour se préserver des dangers des fichiers polyglottes, il n’est pas nécessaire de recourir à des solutions techniques ou organisationnelles complexes. Il faut simplement mettre en place une hygiène de sécurité rigoureuse et cohérente à l’échelle de l’entreprise :
- Utilisez des listes d’autorisation fermées pour les applications autorisées à être exécutées sur les postes de travail des employés. Excluez les applications Windows obsolètes, les outils d’administration Microsoft inutilisés, les logiciels d’accès à distance et de transfert de fichiers, ainsi que tout autre élément jugé potentiellement dangereux ou obsolète.
- Utilisez des solutions avancées de protection des messageries dotées de la technologie CDR (Content Disarm and Reconstruction, qui neutralise les pièces jointes suspectes et les reconstitue sous une forme plus sûre) et de la technologie de détonation (qui exécute les pièces jointes suspectes dans un environnement isolé à des fins d’analyse). Configurez une analyse approfondie pour les pièces jointes présentant des signes extérieurs indiquant qu’elles sont polyglottes : tous les fichiers d’archive et de bureautique, les fichiers dotés d’extensions non standard, etc.
- De même, configurez la solution EDR pour qu’elle effectue également une analyse approfondie des fichiers potentiellement polyglottes.
- Créez des règles de surveillance qui signalent les combinaisons inhabituelles entre un processus et les fichiers qui lui sont transmis pour traitement, par exemple un fichier CHM lancé via mshta ou un fichier HTML lancé via rundll32, comme dans les exemples ci-dessus.
- Ajoutez des informations de base sur les fichiers polyglottes au programme de sensibilisation à la sécurité déjà en place, afin que les utilisateurs restent vigilants lorsqu’ils sont invités à modifier l’extension d’un fichier ou à manipuler ce dernier d’une façon inhabituelle, par exemple en l’ouvrant dans une application particulière.
programme malveillant
Conseils