GPO Filtrage WMI: Contournement KB2286198
Comme vous le savez déjà surement les OS Windows 2000 et XP SP2 ne sont plus supportés par Microsoft depuis le 13/07/2010. En conséquence les patchs de sécurité MS sortis depuis cette date ne sont plus applicables sur ces versions d’OS. Une faille de sécurité critique MS10-046 a été corrigé via le patch de sécurité KB2286198, son pré-requis pour les versions workstation est donc Windows XP SP3 et Windows 2003 SP2 pour les versions server. Cette KB nous explique tout de même comment se protéger en utilisant une solution de contournement, celle-ci consiste en l’édition de deux clefs de registre et la désactivation d’un service.
Cette solution de contournement est donc applicable sur vos postes qui ne sont pas encore à jour et qui ne peuvent recevoir le patch de sécurité fournit par MS. Son gros désavantage est la disparition des images d’icônes sur certains fichiers *.lnk. Il est donc très vivement conseillé de mettre à jour vos systèmes d’exploitation avec le bon Service Pack pour ne pas avoir à en arriver la. Si ce n’est pas réalisable dans des délais raisonnables nous allons voir comment déployer cette solution de contournement via GPO. Ce sujet a déjà été traité dans cet article du Group Policy Center, il nous indique comment activer ou désactiver la solution de contournement sous Windows 2008 via les préférences de stratégies de groupe. Nous allons dans ce post le compléter en indiquant comment se servir du filtrage WMI pour cibler le comportement de la GPO, à savoir activer la solution de contournement pour les postes qui n’ont pas le patch de sécurité d’installé et le désactiver sur les ordinateurs ayant la KB2286198 d’installée. Puis comment réaliser la même chose sans les GPO de préférences, avec un AD sous Windows 2003.
Nous allons tout d’abord voir comment activer le workaround en utilisant la méthode du Group Policy Center mais en ne ciblant que les postes qui n’ont pas le patch de sécurité d’installé. Afin de profiter des préférences de stratégie de groupe vous devez au minima avoir un DC sous Windows 2008 et appliquer cette KB sur tous vos clients, attention à ne pas oublier l’installation de XMLLite pour Windows 2003 et XP. Afin de ne cibler que les postes qui n’ont pas la KB2296198 d’installée nous allons utiliser le Item-Level targeting et filtrer via une requête WMI l’existence de nôtre KB. La grosse évolution est que avec un AD sous Windows 2003 nous ne pouvions réaliser un filtrage WMI que si le résultat retourné était TRUE, grâce au Targeting Collection nous pouvons réaliser le filtre suivant: Si la requête WMI retourne un résultat FALSE (i.e. KB non présente) alors j’applique l’élément de préférence de stratégie de groupe (Item options IS NOT):
La requête WMI permettant de savoir si la KB est installée se réalise en parcourant la classe Win32_QuickFixEngineering et en filtrant sur le HotFixID KB2286198:
En appliquant ces éléments de filtrage à l’édition des deux clefs de registre et la désactivation du service WebClient indiqués dans le post du Group Policy Center vous ne ciblerez l’activation du workaround que pour les postes qui n’ont pas le patch de sécurité. Cette nouveauté concernant le filtrage WMI (i.e. gérer la condition FALSE) n’est valable que pour les préférences de stratégies de groupe, les autres paramètres de GPOs sont soumis aux mêmes restrictions que sous Windows 2003: Le filtrage se fait sur la valeur TRUE renvoyée par la requête.
Pour désactiver la solution de contournement il vous suffit d’utiliser la même requête, en utilisant l’option par défaut du Targeting Editor à savoir filtrer si la condition est TRUE (Item options IS).
Maintenant nous allons voir le pire cas de figure: Vous désirez activer cette solution de contournement via GPO mais vous ne disposez pas des préférences de stratégie de groupe (AD 2003) et vous avez encore sur votre parc des clients avec un OS Windows 2000 (!):
Dans ce cas la GPO avec filtre WMI classique est appliqué si la requête renvoie TRUE, or on ne veut appliquer le workaround que si la KB n’est pas présente, donc renvoie FALSE… Nous allons donc créer deux GPOs et jouer sur l’ordre d’application de celles ci:
- Une première GPO (KB2286198-WOKAROUND-AD2003-Enable) qui applique le workaround à tous les postes (pas de filtrage) qui désactive le service WebClient et édite les valeurs default de clefs de registre HKCR\lnkfile\shellex\IconHandler et HKCR\piffile\shellex\IconHandler à vide. Cette GPO va s’appliquer en premier sur le poste et aura donc une priorité inférieure à la seconde GPO.
- Une seconde GPO (KB2286198-WOKAROUND-AD2003-Disable) qui désactive le workaround pour les postes qui répondent TRUE à la requête WMI indiquant que le poste est patché. Celle ci active le service WebClient (valeur par défaut) et édite les valeurs de clefs de registre à leur valeur par défaut ({00021401-0000-0000-C000-000000000046}). Cette GPO, ne s’appliquant qu’aux postes patchés, va désactiver le workaround en s’appliquant après la première GPO et a donc une priorité supérieure.
Afin de pousser les valeurs de registre via GPO nous allons générer deux fichiers .ADM à l’aide de reg2adm de Yizhar Hurwitz, vous trouverez un tutoriel ici. Pour télécharger les modèles d’administration pour nos deux GPOs c’est ici:
Le filtre WMI à appliquer sur la seconde GPO est toujours le même:
SELECT * FROM Win32_QuickFixEngineering WHERE HOTFixID = ‘KB2286198’
Le problème est qu’un OS Windows 2000 qui se voit appliquer une GPO avec filtrage WMI ignore le filtre et applique toujours la GPO. Donc KB2286198-WOKAROUND-AD2003-Disable sera toujours appliquée sur cet OS, or ce n’est pas le comportement que nous souhaitons car le patch de sécurité n’est pas disponible sur cette version…
Nous allons donc contourner le problème en recensant toutes nos machines Windows 2000 et en les mettant dans un groupe de sécurité W2K-WORKSTATIONS, pour cela utiliser la commande PowerShell des Quest AD CMDlets suivante:
get-QADComputer -OSName 'Windows 2000*' -ldapFilter '(!(userAccountControl:1.2.840.113556.1.4.803:=2))' -Sizelimit 10000 | Add-QADMemberof -Group 'ldap389\W2K-WORKSTATIONS' |
Nous appliquerons ensuite un filtrage de sécurité sur KB2286198-WOKAROUND-AD2003-Disable indiquant de ne pas appliquer la GPO pour le groupe W2K-WORKSTATIONS.
La GPO KB2286198-WOKAROUND-AD2003-Enable est donc la suivante:
Et la GPO KB2286198-WOKAROUND-AD2003-Disable avec une priorité supérieure à la première GPO qui possède un filtrage WMI et un filtrage par groupe:
Voici donc le résultat d’une commande rsop.msc et l’état des icônes du menu démarrer sur un poste protégé avec la KB2286198, donc sur lequel le workaround n’est pas appliqué puis sur un poste non patché sur lequel la solution de contournement est appliquée:
En jouant sur l’ordre d’application des GPOs nous arrivons à nos fins, cependant cette méthode relève un peu du bricolage… En conclusion: Maintenez à jour vos versions d’OS et de Service Packs. Il n’est pas dit quand dans le futur des solutions de contournement soient disponibles pour combler une faille de sécurité.
This post is also available in: Anglais