Une faille Windows vieille de 10 ans exploitée dans l’attaque de l’application 3CX
La semaine passée a été marquée par l'incident de cybersécurité qui affecte l'application de téléphonie de chez 3CX. Désormais, on sait qu'une faille de sécurité vieille de 10 ans et présente dans Windows est aussi impliquée : à cause d'elle, l'exécutable a conservé une signature valide même après modification.
Pour rappel, plusieurs versions de l'exécutable 3CXDesktopApp.exe de chez 3CX ont été infectées à cause de deux DLL utilisées par l'application qui ont été remplacées par des versions malveillantes. Cette version infectée apparaît légitime sur les machines Windows et pourtant elle intègre un logiciel malveillant capable de dérober des informations sur la machine locale, notamment des identifiants enregistrés dans les navigateurs. Heureusement, elle affole de nombreuses solutions de sécurité.
L'une des DLL malveillantes utilisées dans cette attaque supply chain s'appelle "d3dcompiler_47.dll". Elle est signée par Microsoft et même si les cybercriminels l'ont modifiée pour inclure du code malveillant, elle apparaît toujours comme légitime aux yeux de Windows. La signature reste valide malgré les modifications. Mais, pourquoi ? C'est normalement l'intérêt d'une signature : ne plus être valide si l'exécutable ou la DLL subit des modifications.
L'explication : la vulnérabilité CVE-2013-3900
D'après l'analyste en vulnérabilités Will Dormann, c'est la faille de sécurité CVE-2013-3900 qui est en cause : elle fait justement référence à un défaut de vérification de la signature, où cette dernière reste valide même après modification de l'exécutable. On parle d'une vulnérabilité divulguée pour la première fois par Microsoft le 10 décembre 2013.
Microsoft a pris la décision d'intégrer à Windows un correctif pour cette vulnérabilité, tout en laissant la protection désactivée par défaut, car cela peut perturber le fonctionnement d'exécutables légitimes. En effet, Will Dormann a expliqué sur Twitter que certains installeurs légitimes venaient ajouter des données à la signature.
Par exemple, Google Chrome ajoute des données à la structure Authenticode pour déterminer si vous avez coché l'option "Aidez-nous à améliorer Google Chrome en nous envoyant automatiquement des statistiques d'utilisation et des rapports d'erreur." Au moment de télécharger le navigateur sur le site de Google. Comme cela, au moment de l'installation, l'installeur lit la signature pour savoir si oui ou non il faut activer ces fonctions.
Une pratique étonnante, mais qui a poussée Microsoft à ne pas activer la protection par défaut, car cela pourrait invalider de nombreux installeurs... Mais pour le coup, cela joue en faveur des cybercriminels. Si l'on active cette protection sur Windows, alors une modification d'un exécutable invalide la signature numérique et permet de se protéger.
De ce fait, pour se protéger il est nécessaire de configurer les deux valeurs de Registre suivantes :
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Wintrust\Config] "EnableCertPaddingCheck"="1" [HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Cryptography\Wintrust\Config] "EnableCertPaddingCheck"="1"
Attention tout de même, si vous mettez à niveau votre machine vers Windows 11, cela désactive de nouveau cette protection donc il faut effectuer la manipulation dans le Registre une seconde fois.
La mauvaise nouvelle, c'est qu'aujourd'hui c'est désactivé par défaut donc une majorité d'utilisateurs resteront exposés... Espérons que cette affaire fasse bouger les choses !
Pour ceux qui utilisent l'application 3CX, sachez qu'une nouvelle version saine (18.12.422) est disponible depuis la fin de semaine dernière !
Comment expliquer que les systèmes MacOS sont également touchés si l’attaque passe par une dll ?
Bonjour,
Je crois qu’ils ont dit que la version 18.12.422 est « sécuriséé » mais pas garantie.
En attendant une version beaucoup plus fiable, j’ai désinstallé l’application des Pcs des utilisateurs.
Merci pour cet article.