Verouillage par GPO des périphériques de stockage USB sous Windows XP

Cet article traite du verrouillage des périphériques de stockage USB sous Windows XP (cette méthode fonctionne aussi sous Windows Vista/Seven).

Les périphériques de stockage USB sont actuellement le moyen le plus pratique pour transférer de gros volumes de données sans passer par un réseau. C'est aussi le moyen le plus communément employé pour les vols de données, installation de logiciels pirates et copies de contenus illicites. Enfin, on constate souvent que les attaques virales (ou pire, l'installation volontaire de logiciels espions ou troyens) se font à partir de clefs USB.

La solution la plus usitée dans ce domaine consiste à implémenter un dispositif logiciel de contrôle des périphériques connectés aux postes (la désactivation pure et simple de l'usb est une méthode trop radicale : Dans ce cas, impossible de connecter les indispensables souris, claviers, imprimantes locales, scanner…). Ce type de logiciel, qui doit être déployé sur l'ensemble du parc de postes de travail, est le plus souvent couteux, pas toujours fiable et dispose de fonctions parfois inutiles (quelle utilité de pouvoir verrouiller le port parallèle ou les ports série sur les postes actuels, alors que le plus souvent ils n'en sont plus dotés ?..). Or le besoin de base consiste à interdire le recourt aux périphériques de stockage USB - C'est à dire : Empêcher le chargement du pilote "USBSTOR". Idéalement il convient de conserver la possibilité d'utiliser les clefs USB pour les utilisateurs expressément autorisés à utiliser ce support de stockage et pour les techniciens et administrateurs. C'est ce que je vous propose de réaliser à l'aide de ce tutoriel. Et ce, sans faire appel à un logiciel dédié, simplement en utilisant Active Directory et les GPOs.

1_Création du modèle d'administration du driver "USBSTOR" :
Sous Windows XP, aucun modèle d'administration natif ne permet la gestion des pilotes. Nous allons donc en créer un nouveau.

Voici le contenu de ce modèle d'administration (ADM), notez que ce dernier s'applique exclusivement à la classe machine : On appliquera donc la GPO crée à partir de cet ADM à des objets machine.

[…]"
CLASS MACHINE
CATEGORY "USBSTOR Disabled"
KEYNAME "SYSTEM\ControlSet001\Services\USBSTOR"
POLICY "Start"
PART "Start" NUMERIC
VALUENAME "Start"
DEFAULT 4
END PART
END POLICY
END CATEGORY
CLASS USER
"[…]

Copiez-collez le contenu situé entre les guillemets dans un fichier que vous nommerez "GPO_MASS-STORAGE.ADM". Stockez ce fichier sur un poste de travail doté des consoles d'administration "Active Directory Users and Computers" et "Group Policy Management" ou sur un contrôleur de domaine.

2_Contrôlez le bon fonctionnement du pilote "USBSTOR" sur un poste de test :
NB : Le poste de test qui sera utilisé ici, se nomme "DESKTOP1".

En tant qu'administrateur du poste, insérez une clef USB. Patientez durant le chargement du pilote (cela prend un peu de temps, si c'est la première fois que vous utilisez un tel périphérique sur ce poste, cela deviendra "instantané" par la suite).


Puis, lancez "REGEDIT" et contrôlez la valeur de la clef [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\USBSTOR\Start]. Si celle-ci à pour valeur "3", le démarrage du pilote USBSTOR est autorisé, si la valeur est "4", son utilisation est proscrite. Notez que vous pouvez modifier la valeur de cette clef en l'éditant : Vous pouvez faire des tests en retirant la clef USB entre chaque modification.


Notez que la clef USB insérée (ici "F:") est bien disponible dans l'explorateur de fichiers.
En fin de test, retirez la clef USB du poste utilisé pour les tests.

3_Création de la GPO permettant de désactiver l'USB sur vos postes de travail :
Nous allons maintenant créer la GPO qui va permettre la désactivation du pilote USBSTOR sur l'ensemble du parc : Ouvrez la console "Group Policy Management".


Créez une GPO nommée "USB_DISABLE" dans le magasin à GPOs, puis éditez la.


Ajoutez le modèle d'administration (ADM) créé précédemment à cette GPO : "GPO_MASS-STORAGE.ADM"


Modifiez l'affichage afin de faire apparaître notre nouveau modèle d'administration.


Pour cela, décochez l'option "Afficher uniquement les paramètres de stratégie pouvant être entièrement gérés".


Les paramètres disponibles dans le modèle d'administration "GPO_MASS-STORAGE.ADM" sont maintenant disponibles et peuvent être modifiés.


Passez le paramétrage en "Activé" avec "4" comme code de démarrage (c'est à dire : Démarrage du pilote USBSTOR proscrit). Puis fermez l'éditeur.

NB : Attention, ce modèle d'administration n'étant pas natif, les modifications qu'il apporte ne sont pas réversibles simplement en cochant "Non configuré". Pour annuler ses effets, il faut maintenir activée cette GPO et rétablir l'option d'origine (c'est à dire l'option 3). Procédez toujours à la mise en place d'un pilote avant de mettre en fonction une nouvelle GPO.


Nous allons ensuite modifier les privilèges pour l'écriture sur les clefs situées sous [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\USBSTOR]. Ceci afin de permettre à un groupe global de sécurité constitué de comptes de techniciens et d'administrateurs (nommé "ADMIN_TECHS" dans ce tutoriel) de pouvoir temporairement outrepasser cette GPO.


Saisissez le chemin "MACHINE\SYSTEM\CurrentControlSet\services\USBSTOR" (sans guillemets).


Ajoutez le groupe "ADMIN_TECHS". Supprimez les groupes inutiles. ATTENTION : Ne supprimez pas le groupe "SYSTEM", les membres de ce groupe sont chargés d'appliquer cette GPO.
Donnez "Contrôle total" au groupe "ADMIN_TECHS". Ce privilège étant trop élevé, nous allons limiter les droits accordés : Cliquez sur paramètres avancés.


Cliquez sur "Modifier".


Appliquez les droits listés ci-dessus.


Vérifiez que les droits désormais accordés sont corrects.


Autorisez la propagation des privilèges aux sous-clefs.


Les droits qui seront appliqués à la branche [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\USBSTOR] de la base de registre ont maintenant été mis en place.


Contrôlez que la GPO "USB_DISABLE" à été correctement paramétrée.


Modifiez ensuite le filtrage appliqué à cette GPO : Appliquez la uniquement au groupe global "Ordinateurs du domaine".

Liez la GPO "USB_DISABLE" à l'unité organisationnelle contenant les micro-ordinateurs sur lesquels elle devra s'appliquer.


Notez que nous créerons des exceptions par la suite, inutile de remanier lourdement votre annuaire pour mettre en place ce paramétrage si une partie de vos postes doivent être en mesure de charger le pilote pour le support des périphériques de stockage USB.


Les paramètres apportés par cette nouvelle GPO étant exclusivement appliqués aux postes de travail, inutile de maintenir activé le traitement des paramètres utilisateurs : Désactivez les.

4_Création de la GPO permettant d'activer l'USB sur les postes de travail de votre choix :


Nommez la nouvelle GPO "USB_ENABLE".

Une fois cette nouvelle GPO crée, modifiez son filtrage de sécurité afin que celle-ci ne s'applique à aucun objet de l'annuaire (c'est temporaire).


Comme la précédente, cette GPO contient des paramètres exclusivement appliqués au contexte "machine" : Désactivez les paramètres utilisateurs.

Ensuite, éditez la GPO "USB_ENABLE".

Puis, ajoutez à cette GPO le modèle d'administration "GPO_MASS-STORAGE.ADM".


Puis, modifiez l'affichage afin de pouvoir éditer les paramètres liés au modèle d'administration "GPO_MASS-STORAGE.ADM".


Afin de permettre le démarrage du pilote "USBSTOR", vous devez activer ce modèle d'administration et positionner le code de démarrage sur "3".


Contrôlez ensuite le paramétrage de la GPO "USB_ENABLE".

5_Contrôlez le bon fonctionnement de l'application de la GPO "USB_DISABLE" sur un poste de test :
Redémarrez le poste de test afin que les GPOs puissent s'appliquer. Puis, ouvrez une session en tant qu'administrateur (n'utilisez pas le compte de l'administrateur du domaine, nous avons donné les privilèges à ce dernier pour qu'il puisse modifier la valeur de la clef de registre [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\USBSTOR], ni celui d'un membre du groupe "ADMIN_TECHS"). Puis, insérez une clef USB.

Ouvrez "regedit" et allez jusqu'à la clef [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\USBSTOR].
Notez que le compte d'utilisateur utilisé pour ce test est l'administrateur local du poste.


Notez que la clef "START" à bien pour valeur "4".

Essayez maintenant de modifier la valeur de cette clef.

La modification est refusée : Seuls les utilisateurs autorisés peuvent modifier la valeur de cette clef (c'est à dire : L'administrateur du domaine et les membres du groupe de techniciens/administrateurs "ADMIN_TECHS").

Ouvrez ensuite le gestionnaire de périphériques du poste de test.


Notez que la clef USB apparaît bien, mais son pilote ne peut pas être chargé par le système : La désactivation fonctionne. En fin de test, retirez la clef USB du poste.

6_Activation de la GPO "USB_ENABLE" :
Nous devons maintenant mettre en place la GPO "USB_ENABLE" : Celle-ci permettra d'activer le support des périphériques de stockage USB sur les postes des utilisateurs habilités.


Liez la GPO "USB_ENABLE" dans l'unité organisationnelle déjà utilisée pour "USB_DISABLE".


Modifiez ensuite l'ordonnancement des GPOs afin qu'"USB_DISABLE" (lien en seconde position, CF capture) soit appliqué avant "USB_ENABLE" (lien en première position, CF capture).

Il convient maintenant de créer un nouveau groupe de sécurité global qui contiendra les comptes des ordinateurs sur lesquels on souhaite pouvoir utiliser les périphériques de stockage USB.

Le groupe global de sécurité utilisé pour ce tutoriel se nomme "USB_ENABLED".

Sélectionnez ensuite les comptes des postes à partir desquels on pourra utiliser les périphériques de stockage USB.

Notez que le compte du poste de test "Desktop1" est membre de ce groupe.


Enfin, modifiez le filtrage afin que la GPO "USB_ENABLE" ne soit appliquée qu'aux postes listés dans le groupe global de sécurité créé précédemment ("USB_ENABLED").

7_Contrôlez le bon fonctionnement de l'application des GPOs :
Redémarrez le poste de test (ici "DESKTOP1"). Puis ouvrez une session en tant que simple utilisateur. Insérez ensuite une clef USB.


La clef USB est disponible, le gestionnaire de périphérique ne montre aucun problème : Le pilote "USBSTOR" est correctement chargé.


Pour vérifier si ce paramétrage est réversible : Supprimez le compte "DESKTOP1" du groupe global "USB_ENABLED" et redémarrez le poste de test.

Ouvrez une session sur le poste de test (celui dont le compte à été supprimé du groupe "USB_ENABLED" évidemment), utilisez n'importe quel compte local ou non (hormis l'administrateur du domaine ou les membres du groupe "ADMIN_TECHS", qui sont habilités à modifier la valeur de la clef qui contrôle le chargement du pilote "USBSTOR") : Vous constaterez que la clef USB n'est pas disponible.

Pour conclure :
Cette solution présente un défaut majeur : La gestion des habilitations ne se fait pas par utilisateurs mais par postes et implique le redémarrage du poste en cas de changement (activation/désactivation du stockage USB). Toutefois, elle devrait vous permettre de mettre en place une gestion centralisée de l'accès aux périphériques de stockage USB et ainsi, limiter les risques liés à l'utilisation de ces périphériques (pour les périphériques de stockage firewire, je suppose que l'on peut procéder de façon similaire).