Microsoft publie un outil pour bloquer les attaques de piratage de chargement de DLL
Il y a quelque temps, il y avait eu des rapports sur un problème de sécurité qui concernait environ 40 applications Windows différentes. Microsoft a rapidement réagi à de tels rapports d'attaques potentielles «zero day» contre de tels programmes Windows en publiant une mise à jour ou un outil pour bloquer ces exploits. Cependant, Microsoft a également précisé que la faille n’était pas dans Windows.
Outil pour bloquer les attaques de piratage de chargement de DLL
Microsoft a publié un avis de sécurité (2269637) intitulé Un chargement de bibliothèque non sécurisé pourrait permettre l'exécution de code à distance..
«Microsoft est conscient que des recherches ont été publiées détaillant un vecteur d'attaque à distance pour une classe de vulnérabilités affectant le chargement d'applications par des bibliothèques externes. Ce problème est dû à des pratiques de programmation non sécurisées spécifiques autorisant ce que l’on appelle «attaques binaires» ou «attaques de préchargement de DLL». Ces pratiques pourraient permettre à un attaquant d'exécuter du code arbitraire à distance dans le contexte de l'utilisateur exécutant l'application vulnérable lorsqu'il ouvrirait un fichier à partir d'un emplacement non approuvé. "
Microsoft a également publié une mise à jour qui bloquera le chargement des DLL à partir de répertoires distants, empêchant ainsi les détournements de DLL..
Cette mise à jour introduit une nouvelle clé de registre CWDIllegalInDllSearch qui permet aux utilisateurs de contrôler l'algorithme du chemin de recherche de DLL. L'algorithme de chemin de recherche de DLL est utilisé par l'API LoadLibrary et l'API LoadLibraryEx lorsque les DLL sont chargées sans spécifier de chemin d'accès complet..
Lorsqu'une application charge dynamiquement une DLL sans spécifier de chemin d'accès complet, Windows essaie de la localiser en recherchant dans un ensemble de répertoires bien défini. Ces ensembles de répertoires sont appelés chemins de recherche de DLL. Dès que Windows trouve la DLL dans un répertoire, Windows la charge. Si Windows ne trouve la DLL dans aucun des répertoires dans l'ordre de recherche de la DLL, Windows renvoie l'échec de l'opération de chargement de la DLL..
Plus de détails et liens de téléchargement sur KB2264107.