IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Cisco prédit une nouvelle vague de problèmes liés à Excel, les fichiers XLL des feuilles de calcul ajouteraient des fonctionnalités personnalisées,
Y compris des logiciels malveillants

Le , par Bruno

217PARTAGES

4  0 
Depuis des décennies, les applications Microsoft Office constituent l'un des points d'entrée les plus importants pour les codes malveillants. Les acteurs malveillants ont continué à utiliser les macros Visual Basic for Applications (VBA), malgré les avertissements automatiques adressés aux utilisateurs après l'ouverture de documents Office contenant du code.

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...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !