Sécurité

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

Fermeture du système aux périphériques non autorisés

Une petite astuce va nous permettre de verrouiller le système aux périphériques non autorisés ; la partie (section "Nettoyage de l'Historique USB" du chapitre "Les mesures de protection sur le système") de nettoyage de l'Historique USB va donc se révéler pertinent dans la mise en oeuvre de ce verrouillage. En effet, il n'est pas possible de désigner à l'avance au système quels sont les périphériques que nous allons autoriser ou non. Nous allons donc filouter en indiquant au système que nous n'autoriserons que les périphériques déjà insérés et installés au préalable, et que tout nouveau périphérique sera dorénavant interdit. Vous comprenez donc pourquoi il était précédemment important de procéder à un nettoyage de l'Historique USB.

Au premier branchement d'un périphérique, Windows l'identifie (Historique USB) afin de le reconnaître aux branchements ultérieurs. C'est cette première phase de reconnaissance de périphérique que nous pouvons inhiber, Windows ne pouvant plus identifier à quoi il a à faire, il n'est plus en mesure de l'installer et de l'exploiter. Cela sous entend donc que nous devons, sur le système et après avoir procédé au nettoyage de l'Historique USB, procéder au branchement de tous les périphériques que nous souhaitons autoriser ; de sorte d'inhiber ensuite la fonctionnalité.

Le fichier clé se nomme ici usbstor.inf et nous le trouverons dans le répertoire système Windows dans le sous-répertoire inf. Le plus simple est de l'ouvrir avec le Bloc-notes de Windows afin de le modifier. Ce sont les lignes ici en bleues qui vont nous intéresser (Illustration 27).

[Version]
Signature="$CHICAGO$"
Class=USB
ClassGUID={36FC9E60-C465-11CF-8056-444553540000}
provider=%MSFT%
LayoutFile=LAYOUT.INF
DriverVer=07/01/2001,5.1.2600.0

[ControlFlags]
ExcludeFromSelect = *

[Manufacturer]
; sorted by VID
%Generic.Mfg%=Generic
%Mitsumi.Mfg%=Mitsumi
%HP.Mfg%=HP
%NEC.Mfg%=NEC
%SMSC.Mfg%=SMSC

(...)

[Generic]
%GenericBulkOnly.DeviceDesc%=USBSTOR_BULK, USB\Class_08&SubClass_02&Prot_50
%GenericBulkOnly.DeviceDesc%=USBSTOR_BULK, USB\Class_08&SubClass_05&Prot_50
%GenericBulkOnly.DeviceDesc%=USBSTOR_BULK, USB\Class_08&SubClass_06&Prot_50


(...)

Illustration 27 - Contenu du fichier USBSTOR.INF sous Windows XP.

Sous Windows 7, l'affichage est légèrement différent, mais nous retrouvons sensiblement les mêmes entrées (Illustration 28).

(...)

[Generic.NTx86]
%GenericBulkOnly.DeviceDesc%=USBSTOR_BULK, USB\Class_08&SubClass_02&Prot_50
%GenericBulkOnly.DeviceDesc%=USBSTOR_BULK, USB\Class_08&SubClass_05&Prot_50
%GenericBulkOnly.DeviceDesc%=USBSTOR_BULK, USB\Class_08&SubClass_06&Prot_50
%GenericBulkOnly.DeviceDesc%=USBSTOR_BULK, USB\Class_08&SubClass_08&Prot_50
%GenericBulkOnly.DeviceDesc%=USBSTOR_BULK, USB\Class_08&SubClass_08&Prot_52


(...)

Illustration 28 - Contenu du fichier USBSTOR.INF sous Windows 7.

Il va donc nous suffire d'insérer en début de chacune de ces entrées (lignes bleues), un ; afin de rendre inopérante la ligne associée (Illustration 29). L'insertion d'un point-virgule ( ; ) en début d'entrée équivaut à l'insertion d'un commentaire dans le fichier, non interprété par le système. C'est comme si nous avions supprimé les lignes, mais en les conservant afin de pouvoir les rétablir au besoin, au cas où (en supprimant le point-virgule inséré en début de ligne).

[Version]
Signature="$CHICAGO$"
Class=USB
ClassGUID={36FC9E60-C465-11CF-8056-444553540000}
provider=%MSFT%
LayoutFile=LAYOUT.INF
DriverVer=07/01/2001,5.1.2600.0

[ControlFlags]
ExcludeFromSelect = *

[Manufacturer]
; sorted by VID
; %Generic.Mfg%=Generic
%Mitsumi.Mfg%=Mitsumi
%HP.Mfg%=HP
%NEC.Mfg%=NEC
%SMSC.Mfg%=SMSC

(...)

[Generic]
; %GenericBulkOnly.DeviceDesc%=USBSTOR_BULK, USB\Class_08&SubClass_02&Prot_50
; %GenericBulkOnly.DeviceDesc%=USBSTOR_BULK, USB\Class_08&SubClass_05&Prot_50
; %GenericBulkOnly.DeviceDesc%=USBSTOR_BULK, USB\Class_08&SubClass_06&Prot_50


(...)

Illustration 29 - Insertion des points-virgule [en vert] en début de ligne (XP).

A la suite de cette manipulation, et après un redémarrage du système, tout périphérique USB qui n'a jamais été au préalable inséré sur le système ne pourra être reconnu et installé.

Les utilisateurs XP peuvent, s'ils le souhaitent, là aussi télécharger un utilitaire qui procédera automatiquement à la modification du fichier usbstor.inf ; il s'agit de UsbStor de Nicolas Coolman. Il suffira de télécharger l'utilitaire et de l'exécuter (il s'agit d'un utilitaire portable), il vous sera proposé de procéder à l'activation (enable Generic USB Storage) ou à la désactivation (Disable Generic USB Storage). Puis de valider par OK (Illustration 30).

UsbStore
Illustration 30 - UsbStore de Nicolas Coolman (XP).

Par la suite et quel que soit le système, si vous désirez autoriser un nouveau périphérique, il vous faudra corriger les entrées que nous avons modifiées, puis brancher le périphérique (éventuellement installer un pilote s'il s'agit d'un matériel très spécifique). Passé cette première insertion, vous pourrez à nouveau verrouiller le système, le nouveau
périphérique sera toléré.

Si vous ne redémarrez pas entre les manipulations de désactivation et d'activation, Windows ne saura trouver seul les pilotes génériques pour installer un nouveau périphérique. Il faudra alors lui indiquer le répertoire suivant (Illustration 31) afin qu'il retrouve ses petits :

%systemroot%\Inf\

Illustration 31 -Emplacement des pilotes génériques pour les supports amovibles.

Alors que si vous prenez le soin de redémarrer à chaque fois, le système retrouvera aisément ses marques et vous n'aurez pas à lui indiquer où trouver les pilotes génériques pour installer un périphérique amovible générique.

Vos commentaires
Laissez un commentaire !
A découvrir également :
  1. ZebIxe en tant qu'invité
    le 20 février 2011 à 12h24

    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 réparation W7 inopérant (redémarre continuellement), copie de réinstallation W7 inopérante (je savais déjà le pourquoi mais maintenant surtout comment y remédier... lorsque je pourrai le faire évidemment), impossibilité d'appliquer aucune action avancée par F8 (retombe inévitablement sur l'écran bleue ou redémarre), impossibilité d'entrer dans le bios afin d'écrire certaines commandes clées qui pourraient régler mon problème(chksdk /r, fixboot, bootrec /fixmbc, ...).

    Rien n'y fait... de ce que j'ai essayé du moins mais il existe certainement une solution.

    Évidemment, si j'expose ainsi et ici mon problème, c'est qu'il va y avoir une suite à cette phrase style supplication:

    «POURRIEZ-VOUS M'AIDER S'IL-VOUS-PLAÎT???»

    Merci à l'avance pour les réponses qui, j'en suis certain (comprendre ici «espérance») ne manqueront pas de parvenir,

    ZebIxe

    répondre
  2. Gof en tant qu'invité
    le 27 janvier 2011 à 06h00

    Merci à Jean-Michel

    répondre
  3. Yann en tant qu'invité
    le 25 janvier 2011 à 09h32

    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

    CitationLes 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 désinstaller VaccinUSB.

    Suite à un probléme quand l'on vaccine plus d'une clef USB ajout du nettoyage du "temp" des anciens nomrep.txt, lecteur.txt et rapportVacUSB.txt en début de script pour éviter que l'ancienne vaccination soit répété, en cas de d'ajout ou de retrait de "signature" (nomrep).

    Voilà je pense avoir fait le tour des modifications du script d'origine. Merci pour votre article et à l'auteur du script original qui m'a beaucoup aidé à résoudre un soucis

    Cordialement

    Jean-Michel

    répondre
  4. Gof en tant qu'invité
    le 08 janvier 2011 à 11h00

    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.

    répondre
  5. Gof en tant qu'invité
    le 08 janvier 2011 à 10h48

    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

    répondre
  6. hossec en tant qu'invité
    le 06 janvier 2011 à 21h57

    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"
    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, y, 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 driver > %temp%\nomrep.txt
    echo myfolder > %temp%\nomrep.txt
    echo autorun.inf > %temp%\nomrep.txt
    goto vaccon

    RIEN Y FAIT, IL NE CREE QUE LE REPERTOIRE AUTORUN.INF

    Pouvez vous me précisez ou j'ai fait une erreur

    Merci d'avance

    répondre
  7. dzork en tant qu'invité
    le 06 janvier 2011 à 12h03

    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.

    répondre
  8. Gof en tant qu'invité
    le 22 juin 2010 à 22h21

    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.

    répondre
  9. Gof en tant qu'invité
    le 16 mai 2010 à 20h45

    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 conviendra parfaitement.

    USB-SET est disponible ici sur Zebulon, ou sur l'hébergement de l'auteur Loup blanc ici. La version au moment où j'écris ces lignes est la 1.4.1.

    En cas de soucis, un support peut être assuré sur le forum, dans Optimisation, Sécurisation, Prévention.

    A bientôt

    répondre
  10. jeje cordao en tant qu'invité
    le 12 mai 2010 à 15h54

    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

    répondre
Ecrire un commentaire