Guide de sécurisation de Windows face aux menaces des périphériques amovibles

Par Gof

Vaccination à l’aide des noms réservés Windows

Nous avons vu que manipuler les attributs de fichier ne suffit pas à protéger de l’écrasement -à terme- un autorun.inf vaccin inoffensif. La gestion de permissions sur les fichiers d’un périphérique amovible bien souvent en FAT ou FAT32 n’est pas envisageable [Certains formatent ou convertissent leurs disques externes en NTFS ; un nouveau format très performant exFAT est apparu spécialement pour les volumes amovibles, il gère les ACL, et son driver est disponible pour XP2-cela ne sera pas abordé ici]. A défaut, nous pouvons utiliser une autre astuce valable sur toutes les versions Windows, à savoir l’emploi des noms réservés Windows.

De quoi s’agit-il ? Il existe des noms réservés que Windows ne vous permettra pas d’allouer à des fichiers ou des répertoires ; ces derniers sont (étaient plutôt) utilisés pour envoyer des donnés à des périphériques matériels et versions du DOS. Afin de préserver toute compatibilité, ces noms ne sont donc pas autorisés par Windows. En voici une liste non exhaustive : NUL, COM1, AUX, COM2, COM3, COM4, CON, LPT1, PRN, LPT2, etc. Vous pouvez vous amuser à essayer de créer un répertoire avec un des noms de cette liste, l’explorateur Windows ne vous le permettra pas. C’est cette particularité que nous allons exploiter.

Grâce à l’invite de commande, nous allons pouvoir forcer la création d’un fichier avec l’emploi d’un de ces noms. Quel rapport avec notre fichier Autorun.inf ? me direz vous. Il n’y a rien d’interdit d’emploi dans ce nom là, et si on rajoute au mot l’un de ceux de la liste, le terme nouvellement acquis ne sera plus homonymique du fichier autorun.inf… et donc aucun intérêt ! Vous aurez raison.

Pour pallier à cela, nous allons donc créer un répertoire homonymique autorun.inf, qui lui même contiendra un fichier vide créé à l’aide des noms réservés Windows. L’astuce est là. Nous créons ainsi un répertoire qui n’est pas écrasable par une infection, car ces dernières ne sont pas en mesure de supprimer ce répertoire sur le périphérique amovible. Elles ne pourront que copier-coller les fichiers infectieux, pas le fichier de propagation.

A la prochaine insertion du périphérique sur un système sain, la propagation automatique de l’infection ne s’effectuera pas, et -normalement- les fichiers annexes infectieux (non exécutés automatiquement grâce au répertoire vaccin) seront traités par l’antivirus à leur détection. Même en l’absence de réaction de l’antivirus sur le système hôte, tant que vous n’irez pas par vous-même cliquer sur les fichiers infectieux, ils ne seront pas exécutés ni interprétés : la propagation en est ainsi très réduite. Afin de créer un fichier à l’aide des noms réservés Windows, nous allons utiliser l’invite de commande cmd.exe. Pour pouvoir créer ce fichier, il est impératif de connaître son emplacement précis, et d’utiliser une certaine syntaxe. Voici celle que je vous propose à titre d’exemple (illustration 37) :

type nul > “\\\?\c:\con.repertoire vaccin”

Illustration 37 – Exemple de création d’un fichier avec un nom réservé

L’exemple proposé créé ainsi un fichier nommé con.repertoire vaccin à la racine du lecteur C. Vous constaterez que vous ne pourrez pas -via l’explorateur Windows- le supprimer, ni le renommer. Vous ne pourrez que le déplacer en le glissant-déposant dans un autre répertoire. Pour le supprimer, nous utiliserons sensiblement la même syntaxe (illustration 38), qui, ici aussi, nécessite de connaître son emplacement précis, la commande ne supportant pas l’emploi de variables. Vous pouvez, en revanche, utiliser là des outils tiers pour la suppression de ces fichiers ; certains utilitaires prennent en charge ce type de fichiers créés à l’aide des noms réservés Windows, comme Unlocker par exemple.

del /q “\\\?\c:\con.repertoire vaccin”

Illustration 38 – Exemple de suppression d’un fichier avec un nom réservé

Je vous suggère l’emploi d’un petit batch (illustration 39) qui va automatiser donc la création d’un répertoire autorun.inf à la racine de chacune des partitions et périphériques amovibles, contenant un fichier créé à l’aide des noms réservés Windows. C’est une suggestion, libre à vous de l’adapter.

chcp 1252
@echo off
del /q %temp%\rapportVacUSB.txt
echo %date% – %time% – Vaccin USB – Gof>%temp%\rapportVacUSB.txt
echo>>%temp%\rapportVacUSB.txt
goto lecteur
:vaccon
echo Répertoires et fichiers vaccins :>>%temp%\rapportVacUSB.txt
echo>>%temp%\rapportVacUSB.txt
FOR /f %%g in (%temp%\lecteur.txt) do for /f %%h in (%temp%\nomrep.txt) do (
if exist “%%g\%%h” echo %%g\%%h Present >> %temp%\rapportVacUSB.txt
if exist “%%g\%%h” attrib.exe -h -r -s -a “%%g\%%h
if exist “%%g\%%h” del /q “%%g\%%h
rd /s /q “%%g\%%h
md “%%g\%%h
type nul > “\\\?\%%g\%%h\con.Repertoire vaccin”
if exist “\\\?\%%g\%%h\con.Repertoire vaccin” echo %%g\%%h – Vaccin Ok >> %temp%\rapportVacUSB.txt
attrib.exe +h +r +s +a “%%g\%%h
)
goto sortie
:sortie
echo.>> %temp%\rapportVacUSB.txt
echo %date% – %time% : Fin.>> %temp%\rapportVacUSB.txt
start %temp%\rapportVacUSB.txt
exit
:lecteur
del /q %temp%\lecteur.txt
echo Lecteur détectés :>>%temp%\rapportVacUSB.txt
echo>>%temp%\rapportVacUSB.txt
for %%i in (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z) do (
vol %%i:
if not errorlevel 1 echo %%i>>%temp%\lecteur.txt
vol %%i:
if not errorlevel 1 vol %%i>>%temp%\rapportVacUSB.txt
)
echo>>%temp%\rapportVacUSB.txt
goto nomrep
:nomrep
echo autorun.inf > %temp%\nomrep.txt
goto vaccon

Illustration 39 – Création d’un répertoire vaccin à la racine des partitions et périphériques amovibles

Vous pouvez directement le télécharger si vous le désirez. Pour supprimer ces répertoires, il suffira de modifier quelques commandes dans le batch, disponibles également au téléchargementsi vous le souhaitez. Ainsi, le batch proposé permet -comme déjà écrit- de créer un répertoire autorun.inf sur chacune des partitions et des périphériques amovibles branchés (quel que soit l’emplacement d’exécution du Batch), avec un fichier au nom réservé de sorte de gêner sa suppression par une infection. A des fins de confort d’utilisation, on lui alloue des attributs cachés, système, etc.

Vous constaterez que le batch est modifiable de sorte de pouvoir insérer d’autres noms de répertoires vaccins. Quel est l’intérêt de rajouter des répertoires vaccins ? Je vous l’accorde, il ne sera évidemment pas possible de vacciner contre toutes les menaces, c’est impossible. En revanche, pour les amateurs de cybercafés ou autres lieux publics, vous remarquerez peut-être l’insertion de toujours les mêmes fichiers infectieux sur vos périphériques amovibles. Cela arrive quand les systèmes sont infectés, et que l’administrateur ne s’en soucie pas d’avantage. Ainsi, en plus de stopper la propagation (via l’autorun.inf), nous pouvons vacciner le support par rapport à une infection spécifique que vous rencontrez très régulièrement -et sous réserve que le nom de cette infection ne soit pas généré aléatoirement. Ce sont les dernières lignes du Batch qui vont nous intéresser, celles après la ligne : nomrep (illustration 40) :

:nomrep
echo autorun.inf > %temp%\nomrep.txt
goto vaccon

Illustration 40 – Partie du batch que nous pouvons modifier pour rajouter des répertoires vaccins

Le rajout de répertoires se fera simplement par l’insertion de lignes (illustration 41) à la suite de la deuxième ligne de l’extrait isolé sur la capture précédente.

:nomrep
echo autorun.inf > %temp%\nomrep.txt
echo Nom_du_répertoire_supplémentaire_1 >> %temp%\nomrep.txt
echo Nom_du_répertoire_supplémentaire_2 >> %temp%\nomrep.txt
echo Nom_du_répertoire_supplémentaire_3 >> %temp%\nomrep.txt
goto vaccon

Illustration 41 – Insertion de répertoires vaccins personnalisés

L’exemple proposé vous montre comment insérer dans le code vos propres répertoires vaccins personnalisés, en fonction de ceux que vous rencontrez le plus souvent. Il vous suffira de juste rajouter au code, en copiant collant la ligne contenant autorun.inf et de remplacer ce nom par le répertoire que vous souhaitez voir apparaître. En lieu et place donc de Nom_du_répertoire_supplémentaire_1 ; etc. pour chacune des lignes. A l’identique, si vous souhaitez modifier le batch de suppression des répertoires vaccins, il vous faudra également insérer les lignes supplémentaires dans le code. Il est construit de la même manière, de sorte que vous n’ayez que les dernières lignes à modifier.

Vos supports sont ainsi, par défaut, vaccinés contre tout autorun infectieux, ce qui vous permettra d’éviter de ramener des infections sur vos systèmes. La personnalisation du batch me semble être un plus, car elle vous permet de  s’adapter aux infections du moment sur vos lieux de fréquentation habituels. Cette méthode simple, réactive et personnalisable, me semble être un moyen préventif intéressant pour les supports amovibles.

S’abonner
Notifier de
guest
12 Commentaires
plus ancien
plus récent Le plus populaire
Commentaires en ligne
Voir tous les commentaires
arkanax

très bon travail d’information,merci 😉

Gof

Merci du commentaire arkanax 🙂

jeje cordao

super travail, bien détaillé, par contre j’ai trouvé un logiciel qui apparemment pourrait réaliser toutes ses actions : USB-set 1.2 ou 1.3?
Qu’elle est votre opinion sur ce petit utilitaire.

et encore merci aux nomx de tous

Gof

Bonsoir jeje cordao 🙂 Merci du commentaire. En effet, ce petit logiciel permet d’automatiser quasiment tous les éléments recensés et indiqués dans le tutoriel. Le logiciel en question a été créé par Loup blanc, un ami, pour permettre d’automatiser facilement les conseils suggérés du PDF. J’en avais parlé en commentaire du billet de ce Guide, sur le blog La mare du Gof. Ainsi, pour ceux qui veulent comprendre et faire les manipulations manuellement, je leur suggère de consulter le PDF et d’appliquer par eux-mêmes les suggestions qui leur conviennent. Pour les autres, moins à l’aise ou plus pressés, l’outil USB-SET… Lire la suite »

Gof

Bonsoir,

Le document est à présent disponible sur le lien suivant : cliquer ici.

Suite à la mise à jour du forum, le lien a changé. Pour ceux qui ont inséré ce billet sur leur site/blog, pensez à changer/modifier le lien de téléchargement, merci.

dzork

Bonjour et merci pour cette info.
Par contre, j’aimerais savoir s’il est possible de bloquer l’écriture d’un seul port usb sans bloquer les autres ports.

cordialement.

hossec

Bonsoir, Tout d’abord merci pour votre tuto. Cependant je rencontre un problème pour créé le bat. J’ai rajouté des lignes comme vous l’avez préconisé, pour créé plusieurs répertoire mais sans succès. il ne me créé qu’un seul répertoire Voici mon bat: chcp 1252 @echo off del /q %temp%rapportVacUSB.txt echo %date% – %time% – Vaccin USB – Gof>%temp%rapportVacUSB.txt echo. >>%temp%rapportVacUSB.txt goto lecteur :vaccon echo Répertoires et fichiers vaccins :>>%temp%rapportVacUSB.txt echo. >>%temp%rapportVacUSB.txt FOR /f %%g in (%temp%lecteur.txt) do for /f %%h in (%temp%nomrep.txt) do ( if exist "%%g%%h" echo %%g%%h Present >> %temp%rapportVacUSB.txt if exist "%%g%%h" attrib.exe -h -r -s -a "%%g%%h"… Lire la suite »

Gof
hossec a dit :

(…) Pouvez vous me précisez ou j’ai fait une erreur

Bonjour hossec 🙂

Pour les lecteurs, il est préférable de poser vos questions éventuelles sur le forum, ici je risque de passer à côté et ne pas voir les questions.

Je réponds dans ton sujet hossec 😉

Gof
dzork a dit :

(…) Par contre, j’aimerais savoir s’il est possible de bloquer l’écriture d’un seul port usb sans bloquer les autres ports.
cordialement.

Bonjour 🙂

Dans la méthode proposée, tous les périphériques ne seront pas disponibles en écriture. Je n’ai pas la réponse à ta question, à savoir isoler un seul périphérique afin d’interdire l’écriture sur tous les autres. Il faudrait pour cela trouver une solution différente de celle que j’ai proposée, car cette dernière ne permet pas cette distinction.

Yann

Bonjour, Voici deux scripts supplémentaires envoyé par Jean-Michel, un de nos lecteur. Merci à lui ! – VaccinUSB_On-Off_Select_Drive.bat – VaccinUSB_On-Off_All_Drive_and_Registre.bat Citation Les 2 versions vaccinent contre les mêmes "virus/trojan" que VaccinUSB.exe, avec en plus l’option d’installer ou de désinstaller le vaccin. Le nomrep à la fin des scripts pour simplifier l’ajout (la liste de nomrep est la même que l’actuel VaccinUSB.exe ) La version "All Drive" installe ou désinstalle VaccinUSB sur les 26 lecteurs possibles, ainsi que l’affichage registre au sujet de l’autorun (section :examreg du script). La version "Select Drive" demande le lecteur sur lequel l’on veut installer ou… Lire la suite »

Gof

Merci à Jean-Michel 🙂

ZebIxe

Cette information vaut de l’or pour moi: je n’ai lu aucune réponse-solution qui approchait celle-ci, même en anglais. De l’or… sauf qu’il est un peu tard pour moi pour l’appliquer. Éprouvant actuellement un problème d’amorçage sous OS W7 32 bits et comme tout bon internaute, j’ai fait différentes recherches, appliqué différentes solutions «post-mortem» qui n’ont malheureusement pas réglé mon problème qui consiste: message d’erreur sur écran bleu mais tellement rapide que je dois désactiver la fonction de démarrage automatique de W7 pour parvenir à le lire soit «UNMOUNTABLE_BOOT_VOLUME, code d’erreur STOP: OX…ED et la suite) Rien n’y fait: disque de… Lire la suite »

12
0
Nous serions ravis d'avoir votre avis, laissez un commentaire !x