Il y a eu du bruit autour de CVE-2025-56383 (publié le 26 septembre 2025), une vulnérabilité de détournement dans Notepad++ v8.8.3 dans laquelle un fichier DLL peut être échangé pour exécuter du code malveillant.

La CVE a été contestée par plusieurs parties, mais nous ne sommes pas là pour commenter cela. Cependant, nous sommes là pour parler du détournement de DLL et discuter de la menace très réelle qu'il représente pour une organisation. Examinons ce qu'est le détournement de DLL et les mesures que vous pouvez prendre pour protéger vos DLL.

Ce qu'est le détournement de DLL et comment il se produit

Le détournement de DLL (également connu sous le nom d'attaque de préchargement de DLL) est une vulnérabilité de sécurité dans laquelle un fichier Dynamic Link Library (DLL) légitime et de confiance dans une application Windows est remplacé par un fichier malveillant.

Cette méthode exploite la façon dont les applications chargent les fichiers DLL, qui contiennent du code et des données utilisés par plusieurs programmes. En chargeant une DLL malveillante, un acteur de menace peut exécuter son propre code avec les mêmes privilèges que l'application légitime, conduisant à une escalade de privilèges, à la persistance et à l'évasion des défenses.

Lorsqu'un programme démarre, il doit souvent charger diverses DLL pour effectuer des fonctions spécifiques, généralement à partir de répertoires système de confiance. Cependant, si une application n'est pas prudente quant à l'endroit où elle recherche ces DLL, elle pourrait charger une DLL malveillante à partir d'un emplacement non sécurisé ou prévisible (c'est-à-dire le répertoire de travail actuel ou un partage réseau). Cela peut se produire si l'application ne spécifie pas le chemin complet vers la DLL ou si elle recherche la DLL dans un répertoire accessible ou modifiable par un attaquant.

Organigramme montrant la séquence de chargement de DLL. Une case violette intitulée 'L'application démarre et demande une DLL' se connecte à trois dossiers : 'Répertoire de travail actuel', 'Partage réseau' et 'System32'. Le répertoire de travail actuel pointe vers une case rouge intitulée 'DLL malveillante' avec une icône d'avertissement, tandis que Partage réseau et System32 pointent vers des cases orange intitulées 'DLL légitime' avec des icônes de coche.

Bien que ce type d'attaque ne soit pas nouveau, il reste efficace en raison de sa simplicité. Et bien que ce problème spécifique concerne les applications Windows, il est important de noter que des vulnérabilités similaires peuvent affecter d'autres systèmes d'exploitation (comme Linux et macOS, qui utilisent le chargement dynamique pour les bibliothèques partagées).

Le détournement de DLL introduit plusieurs risques de sécurité, notamment :

  • Vol de données : La DLL malveillante peut intercepter et voler des données sensibles, telles que des mots de passe ou des informations personnelles.
  • Systèmes compromis : L'attaquant peut prendre le contrôle du système, conduisant potentiellement à d'autres attaques ou à l'installation de logiciels malveillants supplémentaires.
  • Malware : La DLL malveillante peut servir de canal pour propager des logiciels malveillants, infectant d'autres parties du système ou du réseau.

Une DLL peut être détournée de plusieurs manières différentes ; voici quelques-unes des techniques les plus courantes :

  • Ordre de recherche DLL non sécurisé : Les attaquants placent des DLL malveillantes dans des répertoires recherchés avant l'emplacement de la DLL légitime.
  • Manipulation de chemin relatif : Des DLL malveillantes sont chargées lorsque les applications utilisent des chemins relatifs.
  • Redirection de DLL : Des techniques telles que la manipulation de chemin redirigent le processus de chargement de DLL.
  • Autorisations faibles : Les attaquants remplacent les DLL légitimes par des DLL malveillantes dans des répertoires avec des autorisations faibles.
  • Détournement de DLL fantôme : Les attaquants exploitent les applications chargeant des DLL inexistantes en plaçant des DLL malveillantes avec le même nom dans les répertoires recherchés.

Diagramme circulaire divisé en six segments colorés autour d'un centre intitulé 'Techniques de détournement de DLL'. Les segments incluent 'Détournement de DLL fantôme', 'Ordre de recherche DLL non sécurisé', 'Manipulation de chemin relatif', 'Redirection de DLL', 'Autorisations faibles', chacun avec une petite icône représentant le concept.Ces vulnérabilités potentielles soulignent l'importance des pratiques de codage sécurisées et de la gestion des autorisations de répertoire en matière de prévention de cette forme d'attaque.

Comment prévenir le détournement de DLL et protéger vos DLL

Bien que le détournement de DLL reste une menace, il existe des bonnes pratiques que vous pouvez suivre et mettre en œuvre pour réduire votre risque et créer un environnement informatique plus sûr et plus sécurisé.

Cinq cercles concentriques en dégradé de couleurs allant de l'orange au violet, représentant les couches de sécurité. Le cercle le plus intérieur indique 'Chargement DLL sécurisé', suivi de 'Vérifications d'intégrité', 'Autorisations utilisateur', 'App Control et logiciels de sécurité', et le cercle le plus extérieur intitulé 'Gestion des patchs'.

Chargement DLL sécurisé :

  • Utiliser des chemins complets : Spécifiez toujours le chemin complet vers la DLL lors du chargement. Cela garantit que l'application charge la DLL à partir d'un emplacement de confiance (et non à partir d'un répertoire non sécurisé).
  • Définir le chemin de recherche sécurisé : Utilisez la fonction SetDllDirectory dans Windows pour ajouter des répertoires de confiance au chemin de recherche et exclure ceux qui ne sont pas sécurisés. Cela peut aider à empêcher l'application de charger des DLL à partir d'emplacements inattendus.

Vérifications d'intégrité des fichiers :

  • Signatures numériques : Assurez-vous que les DLL sont signées avec une signature numérique et vérifiez la signature avant de charger la DLL. Cela peut aider à confirmer que la DLL n'a pas été altérée.
  • Vérification du hash : Utilisez des fonctions de hachage cryptographiques pour vérifier l'intégrité des fichiers DLL. Si le hash de la DLL ne correspond pas à la valeur attendue, le fichier a peut-être été modifié.

Autorisations utilisateur :

  • Principe du moindre privilège : Exécutez les applications avec le minimum de privilèges nécessaires. Cela limite les dommages potentiels d'un détournement de DLL, car le code malveillant aura moins d'autorisations pour exécuter des actions nuisibles.
  • Contrôle de compte d'utilisateur (UAC) : Activez UAC sur les systèmes Windows pour demander aux utilisateurs l'autorisation avant d'exécuter des applications avec des privilèges élevés. Cela peut aider à empêcher les modifications non autorisées des fichiers système.

Application Control et gestion des privilèges :

  • Applications connues et de confiance : Application Control garantit que seules les applications connues et de confiance peuvent être lancées, éliminant le risque d'introduction d'applications non autorisées.
  • Contrôle des privilèges : Une gestion efficace des privilèges est cruciale pour prévenir le détournement de DLL. En vous assurant que les applications disposent des droits et privilèges corrects pour se lancer, vous limitez la capacité des utilisateurs non autorisés à introduire des fichiers malveillants. Ce contrôle agit comme une barrière clé, restreignant l'accès dont un attaquant a besoin pour exploiter le mécanisme de recherche de DLL et renforçant ainsi la sécurité de votre environnement.

Logiciels de sécurité :

  • Antivirus et anti-malware : Utilisez des logiciels antivirus et anti-malware réputés pour détecter et empêcher le chargement de DLL malveillantes. Ces outils peuvent analyser les fichiers et comportements malveillants connus.
  • Systèmes de détection d'intrusion (IDS) : Mettez en œuvre des IDS pour surveiller les activités inhabituelles, telles que les modifications inattendues des fichiers DLL ou les tentatives de chargement de DLL à partir d'emplacements non sécurisés.

Gestion des patchs :

  • Maintenir les logiciels à jour : Mettez régulièrement à jour les applications et les systèmes d'exploitation avec les derniers correctifs de sécurité. De nombreuses vulnérabilités de détournement de DLL sont corrigées via des mises à jour, restez donc à jour pour vous protéger contre les menaces connues.
  • Correction automatisée : Utilisez un outil de gestion automatisée des patchs pour vous assurer que tous les systèmes sont maintenus à jour sans intervention manuelle. Cela réduit la fenêtre d'opportunité pour les attaquants d'exploiter des vulnérabilités connues, y compris celles qui pourraient être utilisées pour le détournement de DLL. Cette approche proactive aide à maintenir l'intégrité de vos applications et systèmes d'exploitation, rendant beaucoup plus difficile pour les attaquants d'injecter des DLL malveillantes.

En mettant en œuvre ces bonnes pratiques, vous pouvez réduire considérablement le risque de détournement de DLL et améliorer la sécurité globale de vos applications et systèmes.

Combinez les bons outils et tactiques pour prévenir les détournements de DLL

Le détournement de DLL est une forme d'attaque persistante depuis des années, prouvant qu'elle est toujours efficace et continuera donc d'être un problème pour les organisations.

Préparez votre organisation pour l'avenir en utilisant les bonnes pratiques mentionnées ci-dessus combinées à des solutions éprouvées comme Ivanti Neurons for App Control pour aider à protéger vos DLL. Des capacités comme Trusted Ownership détectent et refusent l'exécution d'une DLL détournée en s'assurant que la propriété des éléments correspond à votre liste approuvée de propriétaires de confiance.

Et maintenez vos applications à jour pour limiter l'exposition aux vulnérabilités connues. Éliminez le risque d'erreur humaine en automatisant les correctifs avec Ivanti Neurons for Patch Management, garantissant que les systèmes sont automatiquement mis à jour et sécurisés.