Attaques, prévention et détection des vulnérabilités liées au détournement de DLL
DLL est synonyme de bibliothèques de liens dynamiques et sont des composants externes d'applications s'exécutant sous Windows ou tout autre système d'exploitation. La plupart des applications ne sont pas complètes en elles-mêmes et stockent le code dans différents fichiers. Si le code est nécessaire, le fichier associé est chargé en mémoire et utilisé. Cela réduit la taille du fichier de l'application tout en optimisant l'utilisation de la RAM. Cet article explique ce qui est Détournement de DLL et comment le détecter et le prévenir.
Que sont les fichiers DLL ou les bibliothèques de liens dynamiques
Les fichiers DLL sont des bibliothèques de liens dynamiques et, comme son nom l'indique, sont des extensions d'applications différentes. Toute application que nous utilisons peut utiliser ou non certains codes. Ces codes sont stockés dans différents fichiers et sont invoqués ou chargés dans la RAM uniquement lorsque le code correspondant est requis. Ainsi, cela évite à un fichier d’application de devenir trop volumineux et d’empêcher le monopolisation des ressources par l’application..
Le chemin d'accès aux fichiers DLL est défini par le système d'exploitation Windows. Le chemin est défini à l'aide de variables d'environnement globales. Par défaut, si une application demande un fichier DLL, le système d'exploitation recherche dans le même dossier que celui dans lequel l'application est stockée. S'il ne s'y trouve pas, il se place dans d'autres dossiers définis par les variables globales. Des priorités sont attachées aux chemins et cela aide Windows à déterminer les dossiers dans lesquels rechercher les DLL. C'est là que le détournement de DLL intervient.
Qu'est-ce que le détournement de DLL?
Comme les DLL sont des extensions et sont nécessaires à l'utilisation de presque toutes les applications de vos machines, elles sont présentes sur l'ordinateur dans des dossiers différents, comme expliqué. Si le fichier DLL d'origine est remplacé par un faux fichier DLL contenant du code malveillant, il est appelé Détournement de DLL.
Comme mentionné précédemment, il existe des priorités concernant l'emplacement où le système d'exploitation recherche les fichiers DLL. Tout d'abord, il examine le même dossier que le dossier de l'application, puis effectue une recherche en fonction des priorités définies par les variables d'environnement du système d'exploitation. Ainsi, si un fichier good.dll se trouve dans le dossier SysWOW64 et que quelqu'un place un fichier bad.dll dans un dossier de priorité plus élevée que le dossier SysWOW64, le système d'exploitation utilisera le fichier bad.dll, car il porte le même nom que la DLL. demandé par l'application. Une fois dans la RAM, il peut exécuter le code malveillant contenu dans le fichier et compromettre votre ordinateur ou vos réseaux..
Comment détecter les détournements de DLL
La méthode la plus simple pour détecter et empêcher le détournement de DLL consiste à utiliser des outils tiers. Il existe de bons outils gratuits disponibles sur le marché qui aident à détecter et à prévenir une tentative de piratage de DLL.
DLL Hijack Auditor est un de ces programmes, mais il ne prend en charge que les applications 32 bits. Vous pouvez l'installer sur votre ordinateur et analyser toutes vos applications Windows pour voir quelles applications sont vulnérables au détournement de DLL. L'interface est simple et explicite. Le seul inconvénient de cette application est que vous ne pouvez pas numériser des applications 64 bits.
Un autre programme, DLL_HIJACK_DETECT, pour détecter les détournements de DLL est disponible via GitHub. Ce programme vérifie les applications pour voir si certaines d'entre elles sont vulnérables au détournement de DLL. Si c'est le cas, le programme en informe l'utilisateur. L'application comporte deux versions: x86 et x64, de sorte que vous pouvez utiliser chacune d'elles pour analyser les applications 32 bits et 64 bits, respectivement..Il convient de noter que les programmes ci-dessus ne font que rechercher les vulnérabilités dans les applications de la plate-forme Windows et n'empêchent pas le détournement de fichiers DLL..
Comment empêcher le détournement de DLL
Les programmeurs devraient commencer par s’attaquer au problème, car il n’ya rien que vous puissiez faire si ce n’est pour renforcer vos systèmes de sécurité. Si, au lieu d'un chemin relatif, les programmeurs commencent à utiliser un chemin absolu, la vulnérabilité sera réduite. La lecture du chemin absolu, de Windows ou de tout autre système d'exploitation ne dépendra pas des variables système pour le chemin et ira directement à la DLL souhaitée, ignorant ainsi les chances de charger la DLL du même nom dans un chemin de priorité plus élevée. Cette méthode aussi n’est pas infaillible, car si le système est compromis et que les cybercriminels connaissent le chemin exact de la DLL, ils remplaceront la DLL d’origine par la fausse DLL. Cela écraserait le fichier de sorte que la DLL d'origine devienne un code malveillant. Mais encore une fois, le cybercriminel devra connaître le chemin absolu exact mentionné dans l’application qui appelle la DLL. Le processus est difficile pour les cybercriminels et peut donc être pris en compte.
Pour en revenir à ce que vous pouvez faire, essayez simplement d’intensifier vos systèmes de sécurité pour mieux sécuriser votre système Windows. Utilisez un bon pare-feu. Si possible, utilisez un pare-feu matériel ou activez le pare-feu du routeur. Utilisez de bons systèmes de détection des intrusions pour savoir si quelqu'un essaie de jouer avec votre ordinateur..
Si vous souhaitez résoudre le problème des ordinateurs, vous pouvez également procéder comme suit pour renforcer votre sécurité:
- Désactiver le chargement de DLL à partir de partages réseau distants
- Désactiver le chargement des fichiers DLL à partir de WebDAV
- Désactiver complètement le service WebClient ou le définir en mode manuel
- Bloquez les ports TCP 445 et 139 car ils sont les plus utilisés pour compromettre des ordinateurs
- Installer les dernières mises à jour du système d'exploitation et du logiciel de sécurité.
Microsoft a publié un outil pour bloquer les attaques de piratage de chargement de DLL. Cet outil réduit le risque d'attaques par détournement de DLL en empêchant les applications de charger de manière non sécurisée le code à partir de fichiers DLL..
Si vous souhaitez ajouter quelque chose à l'article, veuillez commenter ci-dessous.