Outre les macros VBA, les acteurs de la menace, qu'il s'agisse d'acteurs de la cybercriminalité ou de groupes parrainés par l'État, ont également exploité les vulnérabilités des applications Office afin de lancer du code malveillant sans intervention de l'utilisateur.
Microsoft décrit les fichiers XLL comme « un type de fichier de bibliothèque de liens dynamiques (DLL) qui ne peut être ouvert que par Excel ». Ils existent pour permettre aux applications tierces d'ajouter des fonctionnalités supplémentaires au tableur. Les cybercriminels utilisent les XLL dans les attaques depuis plusieurs années, les premiers échantillons malveillants ayant été soumis à VirusTotal à la mi-2017.
« Pendant un certain temps, l'utilisation des fichiers XLL n'est que sporadique et n'augmente pas de manière significative jusqu'à la fin de 2021, lorsque des familles de logiciels malveillants de base comme Dridex et Formbook ont commencé à les utiliser », écrit Vanja Svajcer, chercheur pour Talos.
Cisco Talos est l'une des plus grandes équipes commerciales de renseignement sur les menaces au monde, composée de chercheurs, d'analystes et d'ingénieurs de classe mondiale. Grâce à sa visibilité de pointe, à ses renseignements exploitables et à ses recherches sur les vulnérabilités, elle assure la détection rapide et la protection des clients de Cisco contre les menaces connues et émergentes, et s’attaque aux menaces en cours pour protéger l'Internet en général. « Actuellement, un nombre important d'acteurs de menaces persistantes utilisent les XLL comme vecteur d'infection et ce nombre continue de croître. »
- Cisco Talos étudie un autre vecteur d'introduction de code malveillant dans Microsoft Excel : les add-ins malveillants, plus précisément les fichiers XLL ;
- Microsoft supprime progressivement la prise en charge de l'exécution des macros VBA dans les documents Office téléchargés ;
- Bien que les fichiers XLL soient pris en charge depuis les premières versions d'Excel, y compris Excel 97, les acteurs malveillants ont commencé à les utiliser relativement récemment ;
- Actuellement, un nombre important d'acteurs de menaces persistantes avancées et de familles de logiciels malveillants de base utilisent les XLL comme vecteur d'infection et ce nombre ne cesse d'augmenter.
Les add ins pour Excel sont différents de ceux d'une application comme Word. Avec Excel, si un utilisateur veut ouvrir un fichier avec une extension .XLL dans l'Explorateur Windows, le système essaie automatiquement de lancer Excel et d'ouvrir le fichier. Avant de le charger, Excel affiche un avertissement concernant un code potentiellement dangereux, similaire à celui qui s'affiche après l'ouverture d'un document Office contenant du code macro VBA.
Que sont les fichiers XLL ?
En termes de type de fichier, les fichiers XLL sont tout simplement des bibliothèques de chargement dynamique (DLL) standard de Windows. La différence entre une DLL ordinaire et un fichier XLL est que les XLL peuvent mettre en œuvre certaines fonctions exportées qui seront appelées par le gestionnaire de compléments Excel lors de certains événements déclenchés par l'application Excel.
En ce qui concerne la fonctionnalité, les compléments créés en code natif permettent aux développeurs d'étendre les fonctionnalités d'Excel et de créer des fonctions définies par l'utilisateur (UDF) qui seraient capables d'exécuter des calculs et d'autres activités en vitesse native.
XLLs basés sur C/C++
Les modules complémentaires XLL natifs sont développés à l'aide du kit de développement logiciel (SDK) Microsoft Excel XLL. La dernière version du SDK est publiée pour Office 2013, mais elle peut également être utilisée pour développer des modules complémentaires XLL pour les versions plus récentes d'Office.
Pour qu'un add-in XLL soit chargé avec succès par le gestionnaire d'add-in, le XLL doit implémenter au moins une fonction exportée, appelée xlAutoOpen, afin que le code de l'add-in soit appelé lorsque l'add-in est chargé par Excel.
Les exportations XLL et les événements lorsqu'elles sont appelées
Le SDK Excel XLL consiste en des fichiers d'en-tête C/C++ et des bibliothèques qui permettent aux fichiers XLL d'utiliser l'API Excel pour accéder aux données des classeurs et appeler les fonctions Excel. L'API est basée sur l'ancienne API macro d'Excel 4. Un fichier nommé macrofun.hlp dans l'ancien format de fichier d'aide de Windows est encore disponible dans certains dépôts mais il existe également un fichier PDF Excel 4 Macro Reference créé par Mynda Treacy qui peut aider à comprendre l'API.
La plupart des échantillons de logiciels malveillants XLL observés ne sont pas créés avec la fonctionnalité d'accès à l'API d'Excel mais plutôt pour exécuter leur code malveillant lorsque le gestionnaire de modules complémentaires Excel appelle les fonctions xlAutoOpen ou xlAutoClose.
Bien que les XLL soient censées être des DLL natives, le développement dans des langages compilés plus anciens n'est peut-être pas familier à de nombreux développeurs, surtout depuis que .NET est devenu la norme de facto pour le développement d'applications utilisateur sous Windows. C'est peut-être la raison pour laquelle il existe quelques projets qui permettent aux développeurs de créer des compléments XLL à l'aide de langages .NET tels que C# ou VB.NET. Les deux frameworks les plus populaires sont Add-In Express et Excel-DNA.
En particulier, comme il est gratuit, les auteurs de logiciels malveillants ont adopté Excel-DNA comme l'un des outils courants pour créer des fichiers XLL malveillants. Un fichier XLL écrit dans un langage .NET est compilé dans un fichier autonome contenant des fonctions de shim qui mappent les exportations natives aux fonctions CLR contenues dans une DLL d'assemblage définie par l'utilisateur et intégrée dans la section ressources du fichier généré par Excel-DNA.
Outre la DLL de l'assemblage défini par l'utilisateur, la section des ressources du module complémentaire généré par Excel-DNA peut contenir un certain nombre de DLL utilisées pour traduire les appels de fonctions natives en appels de fonctions .NET et vice-versa. Par exemple, l'assemblage EXCELDNA.LOADER est chargé de charger le cadre .NET et de le connecter à la DLL définie par l'utilisateur.
Excel-DNA exige du développeur qu'il instancie une interface IExcelAddIn qui sera appelée par le chargeur Excel-DNA. Le développeur peut ensuite implémenter une classe qui hérite de IExcelAddIn et définir des fonctions pour surcharger les implémentations par défaut des fonctions qui correspondent aux fonctions appelées automatiquement par Excel. Par exemple, la fonction xlAutoOpen correspond à IExcelAddIn.AutoOpen().
Évolution des XLL malveillantes
Recherche de XLL dans VirusTotal
VirusTotal est un service en ligne appartenant à Google qui permet l'analyse de fichiers suspects et facilite la détection rapide des virus, vers, chevaux de Troie et toutes sortes de logiciels malveillants détectés par les moteurs antivirus.
Avec la connaissance de ce que sont les fichiers XLL, il ne sera pas très difficile de rechercher les fichiers malveillants en utilisant l'interface de VirusTotal ainsi que les dépôts d'échantillons internes. Sur VirusTotal, la méthode de base pour rechercher des fichiers XLL malveillants soumis pour la première fois, par exemple, en novembre est la suivante :
exports: xlAutoOpen positives:5+ fs:2022-11-01+
Peut-être aussi en incluant les XLL qui mettent en œuvre xlAutoClose :
exports: xlAutoClose positives 5+ fs:2022-11-01+
Pour les fichiers Excel-DNA, la situation est quelque peu différente. Un fichier Excel-DNA compilé étant un shim, il contient plus de 10 000 exportations. Toutes les exportations ne seront pas indexées par VirusTotal, qui inclut toutes les fonctions xlAuto. Cela signifie que la recherche standard de l'exportation xlAutoOpen ne donnera aucun fichier Excel-DNA dans le résultat de la recherche. Pour rechercher les XLLs Excel-DNA, nous pouvons rechercher les noms de fonctions exportées qui n'apparaissent que dans les DLLs compilées Excel-DNA, par exemple :
exports:CalculationCanceled exports:SyncMacro fs:2022-11-01+
Les recherches peuvent facilement être converties en règles YARA pour la chasse :
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 | import "pe" rule gen_Excel_xll_addin_AutoOpen { condition: filesize < 30MB and uint16(0) == 0x5a4d and pe.characteristics & pe.DLL and pe.exports("xlAutoOpen") and new_file and positives > 3 } |
pour les fichiers XLL natifs, et
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 | import "pe" rule gen_Excel_ExcelDNA_Exports { condition: filesize < 30MB and uint16(0) == 0x5a4d and pe.characteristics & pe.DLL and pe.exports("CalculationCanceled") and pe.exports("SyncMacro") and new_file and positives > 3 } |
pour les XLL malveillants basés sur Excel-DNA.
En utilisant les capacités de recherche, on est en mesure de suivre le nombre de fichiers natifs et de fichiers Excel-DNA malveillants soumis au fil du temps, sur une base mensuelle.
Soumissions mensuelles de fichiers XLL natifs malveillants à partir de janvier 2021.
La recherche sur VirusTotal a montré que les acteurs malveillants étaient bien conscients de l'existence des fichiers XLL et les utilisaient bien avant que Microsoft ne décide de commencer à bloquer les documents contenant des macros VBA. Les chercheurs ont décidé de mener une recherche approfondie d'échantillons de XLL afin de créer une chronologie pour voir quand exactement les premiers XLL malveillants ont commencé à apparaître, ainsi que pour comprendre quels groupes et familles de logiciels malveillants les utilisaient au fil du temps.
Ils ont ciblé les échantillons soumis pour la première fois au début de l'année 2010. Bien qu'une vingtaine de XLL aient été soumises en 2010, nous n'avons pu classer aucune d'entre elles comme malveillante de manière concluante. En fait, aucun échantillon potentiellement malveillant n'a été soumis avant juillet 2017. En juillet 2017, un échantillon de test avec SHA256 09271afc6f7ac254b4942a14559a0015fb4893d9bb478844ced2f78c0695929e, utilisé pour lancer calc.exe, a été soumis. Le même mois, un échantillon de reverse shell Meterpreter, fdfdfc8878f39424920d469bcd05060a6f7c95794aa2422941913553d3dd01f, a été soumis.
Ainsi, la mi-2017 semble marquer le début de l'utilisation par les acteurs des fichiers XLL comme l'un des vecteurs d'exécution de code malveillant. Pendant un certain temps ensuite, l'utilisation des fichiers XLL n'est que sporadique et n'augmente pas de manière significative jusqu'à la fin de 2021, lorsque des familles de logiciels malveillants de base comme Dridex et Formbook ont commencé à les utiliser.
Acteurs et familles de logiciels malveillants notables utilisant les XLL
APT10 (menuPass, Chessmaster, Potassium)
APT10 est un groupe de menaces originaire de Chine qui s'intéresse particulièrement aux secteurs de l'éducation, de la fabrication et de la pharmacie. Le groupe est connu pour cibler des organisations au Japon et dans d'autres pays. Il est actif depuis au moins le début de l'année 2017. L'échantillon a5d46912f0767ae30bc169a85c5bcb309d93c3802a2e32e04165fa25740afac1 a été soumis à VirusTotal en décembre 2017 et il contient une fonctionnalité permettant d'injecter la charge utile Backdoor Anel dans l'espace processus de svchost.exe. Les opérateurs d'APT10 sont connus pour utiliser exclusivement cette porte dérobée.
TA410
TA410 est un groupe parapluie de cyberespionnage vaguement lié à APT10, connu principalement pour cibler des organisations basées aux États-Unis dans le secteur des services publics, et des organisations diplomatiques au Moyen-Orient et en Afrique. TA410 est actif depuis au moins 2018 et a été révélé publiquement pour la première fois en août 2019 par Proofpoint.
Les chercheurs d'ESET ont rédigé une analyse approfondie de la boîte à outils employée par TA410, qui comprend également une étape XLL découverte en 2020. L'un des composants de l'attaque, une DLL d'injection de processus nommée onkeytoken_keb.dll (9dd2425c1a40b8899b2a4ac0a85b047bede642c5dfd3b5a2a2f066a853b49e2d), contient également une exportation xlAutoOpen, bien qu'aucune fonctionnalité malveillante ne soit exécutée lors de son appel (l'injecteur est déclenché par l'appel de la fonction exportée OnKeyT_ContextInit).
Donot
L'équipe DoNot est connue pour cibler les organisations à but non lucratif du Cachemire et les responsables du gouvernement pakistanais. La région du Cachemire fait l'objet de litiges permanents entre l'Inde, la Chine et le Pakistan concernant sa propriété. L'équipe DoNot a utilisé des implants mobiles ainsi que des charges utiles de bureau personnalisées qui s'installent sur les systèmes par le biais de documents malveillants.
Le 7 octobre 2022, une DLL d8286133d3d21b7e2b83a6c071147b8ef993e963ad6bdb0f95d665869557a444, portant le nom 1.xll, a été téléchargée par un utilisateur du Pakistan. La DLL contient deux exportations. Le nom de la première exportation est pdteong, qui a été vu dans les implants Donot depuis au moins juin de cette année. Le second nom d'exportation est xlAutoOpen, qui fait de l'implant une charge utile XLL native entièrement fonctionnelle.
FIN7
FIN7 est un groupe de menaces à motivation financière opérant depuis la Russie. FIN7 utilise un certain nombre de charges utiles et différentes techniques d'infection, notamment des assemblages .NET et PowerShell. L'objectif principal de FIN7 est d'obtenir des gains financiers pour le groupe. FIN7 utilise le plus souvent le malware Carbanak.
Au début de l'année, FIN7 a commencé à utiliser des fichiers XLL envoyés en pièces jointes dans des campagnes d'e-mails malveillants. Par exemple, le fichier XLL d'une campagne de février était 7a234d1a2415834290a3a9c7274aadb7253dcfe24edb10b22f1a4a33fd027a08. nommé Quickbooks - 40127.xll. Ce fichier sert de téléchargeur pour l'étape suivante.
Les téléchargeurs XLL de FIN7 sont intéressants car ils semblent avoir été créés avec le framework Excel-DNA .NET. En y regardant de plus près, on peut constater que les fichiers sont des bibliothèques de shim Excel-DNA modifiées, dont les fonctions xlAutoOpen ont été changées par rapport à l'original pour inclure du code qui se connectera à un hôte contrôlé par un attaquant pour télécharger des composants supplémentaires.
Suite à la décision de Microsoft d'empêcher l'exécution du code macro VBA contenu dans les documents téléchargés depuis Internet, « nous assisterons probablement à une diminution progressive du nombre de documents malveillants nouvellement découverts. Toutefois, il faudra un certain temps avant que tous les utilisateurs puissent bénéficier de ce changement, car un nombre important d'anciennes versions de Microsoft Office encore en circulation prennent en charge l'exécution de VBA à partir de fichiers téléchargés », déclare Cisco.
Pour les versions plus récentes, les acteurs de la menace sont capables d'utiliser d'autres formats pour lancer du code malveillant à l'aide d'applications Office. Même si les add-ins XLL existent depuis un certain temps, les chercheurs n'ont pas été en mesure de détecter leur utilisation par des acteurs malveillants avant la mi-2017, lorsque certains groupes APT ont commencé à les utiliser pour mettre en œuvre une porte dérobée entièrement fonctionnelle.
Ils ont également identifié que leur utilisation a considérablement augmenté au cours des deux dernières années, car davantage de familles de logiciels malveillants de commodité ont adopté les XLL comme vecteur dans leur processus.
Comme de plus en plus d'utilisateurs adoptent les nouvelles versions de Microsoft Office, il est probable que les acteurs de la menace se détournent des documents malveillants basés sur VBA pour se tourner vers d'autres formats tels que les XLL ou s'appuient sur l'exploitation de vulnérabilités récemment découvertes pour lancer du code malveillant dans l'espace de processus des applications Office.
Source : Cisco
Et vous ?
Quel est votre avis sur le sujet ?
Utilisez-vous le logiciel tableur de la suite bureautique Microsoft Office ? Sinon, lequel utilisez-vous ?
Cette prédiction de Cisco est-elle pertinente ?
Voir aussi :
Cisco renforce ses capacités dans le domaine du cloud : aider les clients à adopter le cloud intelligent pour de meilleures expériences numériques
LastPass : vos infos et vos données de coffre-fort de MdP sont désormais entre les mains de pirates. Le gestionnaire de MdP révèle que la violation qu'il a reconnu en août est pire que prévu