Nettoyage du cache USB
A chaque insertion d’un support amovible et de l’exécution automatique associée, le système sauvegarde la fonction d’exécution de l’application sur le support concerné. Ainsi, même après avoir désactivé l’exécution automatique, il peut arriver que le système persiste à vouloir exécuter une application à l’insertion d’un support amovible (qui avait auparavant inséré et que le système a reconnu). Ce cas de figure peut entraîner ainsi un problème d’ouverture de lecteur au double-clic, car le système persistera à vouloir exécuter une application (appelée par le fichier autorun.inf même si ce dernier n’est plus présent) même si elle n’est plus là. Par conséquent, le système donne l’illusion de ne plus pouvoir ouvrir le lecteur.
Indépendamment du souci évoqué, conserver des traces d’exécution d’applications à l’insertion de supports amovibles n’est pas sain, même si ces traces ne sont plus opérantes. Bien souvent, une application appelée à l’insertion d’un support est une infection. Nous allons donc faire le ménage dans ces entrées afin d’y voir plus clair. Nous trouverons ces entrées (en fait sous-clés, valeurs et données de valeurs) dans l’Editeur du Registre sous la clé suivante :
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2 |
Nous trouvons des sous-clés en quantité impressionnante, identifiées par un identificateur de classe (CLSID), qui correspond à l’insertion d’un support amovible. En faisant dérouler ces sous-clés, nous constatons la présence de sous-clés-enfants supplémentaires contenant chacune des valeurs et données particulières. Ainsi, à titre d’exemple, à l’insertion d’une clé USB contaminée par l’infection basique Adober.exe et son fichier Autorun.inf de propagation, la sous-clé avec les valeurs et données de valeurs suivantes a été crée (Illustration 17) :
Illustration 17 (Windows XP) – Clé, valeurs et données de valeurs crées à l’insertion du support infecté
Ainsi, si à l’insertion du support infecté votre antivirus a réagi et a neutralisé et supprimé le fichier infectieux Adober.exe, l’autorun.inf étant toujours présent sur le support, à chacune des insertions du-dit support, le système cherchera à exécuter le fichier Adober.exe qui n’existe plus. Résultat : vous obtiendrez un message d’erreur indiquant que l’application est introuvable au double-clic pour ouvrir le lecteur, et l’explorateur Windows ne s’ouvrira pas (Illustration 18). CQFD.
Illustration 18 (Windows Vista) – Application introuvable à l’insertion d’un support
Vous avez saisi ce que j’appelle arbitrairement le ‘Cache USB‘. Nous allons donc nous appliquer à nettoyer ces entrées, en les distinguant les unes des autres. Nous allons considérer que toute entrée appelant un programme exécutable (.exe, .com) ou susceptible de contenir des informations exécutables (.bat, .vbs, .vbe, .cmd, .pif, .scr, .jpg, .dll, .js) est potentiellement malsaine et sera à supprimer. Bien entendu, si un fichier Autorun.inf contenant les informations d’appel se trouve encore sur un de vos supports, la sous-clé se reconstituera à l’insertion du support si l’exécution automatique est toujours activée ; il faudra donc prendre soin de supprimer le fichier .inf en question (cf partie “Rétablir le double-clic pour ouvrir un volume” des Annexes), puis de procéder au nettoyage des sous-clés comme indiqué ici.
Que se passera-t-il si une entrée était saine et que nous l’avons supprimée ? Pas de panique, le système reconstituera la sous-clé et toutes les valeurs et données de valeurs associées à la prochaine réinsertion du support en question. Il est possible que cela prenne un tout petit peu plus de temps pour exécuter les informations à l’insertion du support, mais cela reste négligeable en terme de durée (de quelques millisecondes à secondes, en fonction de votre système, de sa configuration et de ses capacités).
Plusieurs méthodes peuvent s’offrir à nous pour nettoyer ce Cache USB. La première, la plus basique, est la méthode manuelle. Via l’Editeur du Registre, vous prendrez soin de dérouler chacune des clés, sous-clés, et de consulter les données associées aux valeurs jusqu’à ce que vous tombiez sur un appel à un fichier exécutable ou susceptible d’être interprété comme tel. Il faut reconnaître que c’est laborieux. En cas de trouvaille, il faudra supprimer la clé parente associée, c’est à dire la clé contenant le CLSID directement dans la branche Mountpoints2.
Une deuxième méthode consisterait à automatiser cette tâche de recherche afin de vous révéler et de supprimer automatiquement les entrées, via un batch (fichier à l’extension .bat). En s’inspirant du code de UsbFix réalisé par Chiquitine29 et adapté ici avec son aimable autorisation, nous pourrions nous nous orienter sur un batch tel que celui qui suit (Illustration 19).
Notre batch adapté va donc chercher tous les appels à des fichiers aux extensions citées plus haut, dans toutes les sous-clés contenant les termes Autorun, Explore, Open, Auto, elles-mêmes dans toutes les sous-clés sous la clé Mountpoints2. Puis, ce dernier va extraire les sous-clés à supprimer afin de rédiger un fichier .reg prêt à l’emploi ; c’est à dire prêt à être double-cliqué afin d’être fusionné. Si aucune sous-clé n’est recensée, le batch vous en informera et se fermera. Notez que l’exécution du fichier .reg n’est pas automatique, et que son lancement nécessite votre interaction : ceci afin de pallier à toute éventuelle erreur et que vous puissiez contrôler le résultat obtenu au préalable. N’oubliez pas que vous devez obtenir l’icône suivante à l’enregistrement du batch (illustration 20), sinon ce dernier ne sera pas opérationnel.
Illustration 20 (XP) – Icône d’un fichier .bat
Cela dit, il vous sera aisé d’automatiser la fusion automatique du fichier .reg si vous le souhaitez. Note : vous avez des numéros en entrée de ligne ; ils doivent vous permettre de visualiser où sont les retours à la ligne des faux retours imposés par la mise en page du PDF. Ils ne sont bien sûr pas à copier-coller pour obtenir un batch opérationnel. Note : le batch est disponible au téléchargement sur la page suivante.
|
Illustration 19 – batch suggéré pour automatiser la suppression de restes en clés Mountpoints2.
Illustration 20 – Exécution du batch – Cliquer sur l’image pour agrandir
Ainsi, si aucune occurrence n’est trouvée, le batch vous l’annoncera (Illustration 21).
Illustration 21 – le batch annonce qu’il n’a rien trouvé
Alors qu’à l’inverse si des occurrences se sont révélées, à l’appui sur une touche (Illustration 22), le Bloc-notes s’ouvrira avec le résultat de la recherche (Illustration 23).
Illustration 22 – le batch annonce qu’il a trouvé des occurrences
Illustration 23 – Et vous ouvre le fichier .reg à consulter, puis à fermer et double-cliquer pour enregistrer les modifications
Le batch proposé n’est qu’une suggestion, libre à vous si vous le souhaitez de rédiger à votre convenance votre propre code. Vous pouvez si vous le désirez le télécharger directement. La recherche ici se cantonne aux sous-clés Explore, Auto, Autorun, Open. Il est possible de trouver dans certains cas des sous-clés aux noms différents (Find, Install, etc.) ; il est alors possible de modifier le batch en conséquence.
Nous venons donc de voir ce que l’on pourrait appeler le “cache USB” et comment on pourrait -manuellement ou automatiquement- procéder au tri et au nettoyage des entrées (sous-clés) révélées. Certains outils de désinfection s’appliquent aussi à nettoyer ces entrées parfois illégitimes ; nous les aborderons succinctement dans les Annexes.
Dernière mise à jour le 17 mars 2019