NewSID v4.10

Par Mark Russinovich

Date de publication : 1 novembre 2006

Note : NewSID a été mis hors service et n’est plus disponible en téléchargement. Veuillez lire le billet de blog de Mark Russinovich : NewSID Retirement and the Machine SID Duplication Myth

IMPORTANT

En ce qui concerne les SID, Microsoft ne prend pas en charge les images préparées à l’aide de NewSID, mais uniquement les images préparées à l’aide de SysPrep. Microsoft n’a pas testé NewSID pour toutes les options de clonage de déploiement.

Pour plus d’informations sur la stratégie officielle de Microsoft, veuillez consulter l’article suivant de la Base de connaissances :

Introduction

De nombreuses organisations utilisent le clonage d’images de disque pour effectuer des déploiements en masse de Windows. Cette technique consiste à copier les disques d’un ordinateur Windows entièrement installé et configuré sur les lecteurs de disque d’autres ordinateurs. Ces autres ordinateurs semblent avoir effectivement subi le même processus d’installation et sont immédiatement disponibles pour utilisation.

Bien que cette méthode permet d’économiser des heures de travail et de tracas par rapport à d’autres approches de déploiement, elle présente le problème majeur que chaque système cloné possède un identificateur de sécurité informatique (SID) identique. Cela compromet la sécurité dans les environnements de groupe de travail, et la sécurité des médias amovibles peut également être compromise dans les réseaux avec plusieurs SID d’ordinateurs identiques.

La demande de la communauté Windows a conduit plusieurs entreprises à développer des programmes qui peuvent modifier le SID d’un ordinateur après qu’un système a été cloné. Toutefois, SID Changer et Ghost Walker de Symantec ne sont vendus que dans le cadre du produit haut de gamme de chaque entreprise. De plus, ils s’exécutent tous les deux à partir d’une invite de commandes DOS (l’outil de changement d’Altiris est similaire à NewSID).

NewSID est un programme que nous avons développé qui modifie le SID d’un ordinateur. Il est gratuit et il s’agit d’un programme Win32, ce qui signifie qu’il peut facilement être exécuté sur des systèmes qui ont été clonés.

Veuillez lire l’intégralité de cet article avant d’utiliser ce programme.

Informations sur la version :

  • La version 4.0 introduit la prise en charge de Windows XP et .NET Server. Une interface de style Assistant, vous permet de spécifier le SID que vous souhaitez appliquer, le compactage du Registre et également l’option de renommer un ordinateur (ce qui entraîne une modification des noms NetBIOS et DNS).
  • La version 3.02 corrige un bogue qui faisait que NewSID ne copiait pas correctement les valeurs par défaut avec des types de valeur non valides lors du changement de nom d’une clé avec un ancien SID en nouveau SID. NT utilise en fait ces valeurs non valides à certains moments dans le SAM. Le symptôme de ce bogue était les messages d’erreur signalant un accès refusé lorsque les informations de compte ont été mises à jour par un utilisateur autorisé.
  • La version 3.01 ajoute une solution de contournement pour une clé de Registre inaccessible créée par Microsoft Transaction Server. Sans la solution de contournement, NewSID s’arrêterait prématurément.
  • La version 3.0 introduit une fonctionnalité de synchronisation SID qui indique à NewSID d’obtenir un SID à appliquer à partir d’un autre ordinateur.
  • La version 2.0 dispose d’une option de mode automatisé. Vous pouvez également modifier le nom de l’ordinateur.
  • La version 1.2 corrige un bogue dans qui a été introduit dans la version 1.1 où certains descripteurs de sécurité du système de fichiers n’ont pas été mis à jour.
  • La version 1.1 corrige un bogue relativement mineur qui affectait uniquement certaines installations. Il a également été mis à jour pour modifier les SID associés aux paramètres d’autorisation des partages de fichiers et d’imprimantes.

Clonage et autres méthodes de déploiement

L’une des méthodes les plus courantes pour effectuer des déploiements Windows en masse (généralement des centaines d’ordinateurs) dans les environnements d’entreprise est basée sur la technique du clonage de disque. Un administrateur système installe le système d’exploitation de base et les logiciels complémentaires utilisés dans l’entreprise sur un ordinateur modèle. Après avoir configuré la machine pour fonctionner dans le réseau de l’entreprise, des outils de duplication de disque automatisés ou système (tels que SymantecGhost, PowerQuestImage Drive et Altiris RapiDeploy) sont utilisés pour copier les lecteurs de l’ordinateur modèle sur des dizaines ou des centaines d’ordinateurs. Ces clones reçoivent ensuite des ajustements finaux, tels que l’attribution de noms uniques, puis utilisés par les employés de l’entreprise.

Une autre méthode de déploiement courante consiste à utiliser l’utilitaire Microsoft sysdiff (qui fait partie du Kit de ressources Windows). Cet outil nécessite que l’administrateur système effectue une installation complète (généralement une installation scriptée sans assistance) sur chaque ordinateur, puis sysdiff automatise l’application des images d’installation de logiciels complémentaires.

Étant donné que l’installation est ignorée et que la copie de secteur de disque est plus efficace que la copie de fichiers, un déploiement reposant sur le clonage peut économiser des dizaines d’heures sur une installation sysdiff comparable. En outre, l’administrateur système n’a pas besoin d’apprendre à utiliser l’installation sans assistance ou sysdiff, ni à créer et déboguer des scripts d’installation. Rien que cela permet de gagner des heures de travail.

Problème de duplication de SID

Le problème du clonage est qu’il n’est pris en charge par Microsoft que d’une manière très limitée. Microsoft a déclaré que le clonage des systèmes n’est pris en charge que s’il est effectué avant que l’installation de partie GUI de l’installation de Windows. Lorsque l’installation atteint ce point, un nom et un SID d’ordinateur unique sont attribués à l’ordinateur. Si un système est cloné après cette étape, les machines clonées auront toutes des SID d’ordinateur identiques. Notez que la simple modification du nom de l’ordinateur ou l’ajout de l’ordinateur à un autre domaine ne modifie pas le SID de l’ordinateur. La modification du nom ou du domaine ne modifie le SID de domaine que si l’ordinateur a été précédemment associé à un domaine.

Pour comprendre le problème que peut provoquer le clonage, il est tout d’abord nécessaire de comprendre comment des SID sont attribués aux comptes locaux individuels sur un ordinateur. Les SID des comptes locaux se composent du SID de l’ordinateur et d’un RID (identificateur relatif). Le RID commence à une valeur fixe et est incrémenté de un pour chaque compte créé. Cela signifie que le deuxième compte sur un ordinateur, par exemple, reçoit le même RID que le deuxième compte sur un clone. Le résultat est que les deux comptes ont le même SID.

Les SID en double ne sont pas un problème dans un environnement basé sur un domaine, car les comptes de domaine ont des SID basés sur le SID de domaine. Toutefois, selon l’article de la Base de connaissances Microsoft Q162001, « Ne pas dupliquer sur disque les versions installées de Windows NT », dans un environnement de groupe de travail, la sécurité est basée sur les SID de compte local. Ainsi, si deux ordinateurs ont des utilisateurs avec le même SID, le groupe de travail ne pourra pas faire la distinction entre les utilisateurs. Toutes les ressources, y compris les fichiers et les clés de Registre, auxquelles un utilisateur a accès, l’autre utilisateur y aura également accès.

Une autre instance où les SID en double peuvent causer des problèmes est lorsqu’un média amovible est mis en forme avec NTFS et que des attributs de sécurité de compte local sont appliqués aux fichiers et aux répertoires. Si un tel média est déplacé vers un autre ordinateur qui a le même SID, les comptes locaux qui, autrement, ne seraient pas en mesure d’accéder aux fichiers peuvent être en mesure de le faire si leurs ID de compte correspondent à ceux des attributs de sécurité. Cela n’est pas possible si les ordinateurs possèdent des SID différents.

Un article écrit par Mark, intitulé « NT Rollout Options », a été publié dans le numéro de juin de Windows NT Magazine. Il aborde plus en détail le problème du SID en double et présente la position officielle de Microsoft sur le clonage. Pour savoir si vous rencontrez un problème de SID en double sur votre réseau, utilisez PsGetSid pour afficher les SID de l’ordinateur.

NewSID

NewSID est un programme que nous avons développé pour modifier le SID d’un ordinateur. Il génère d’abord un SID aléatoire pour l’ordinateur, puis procède à la mise à jour des instances du SID d’ordinateur existant qu’il trouve dans le Registre et dans les descripteurs de sécurité de fichier, en remplaçant les occurrences par le nouveau SID. NewSID nécessite des privilèges d'administrateur pour s’exécuter. Il a deux fonctions : la modification du SID et du nom de l’ordinateur.

Pour utiliser l’option d’exécution automatique de NewSID, spécifiez « /a » sur la ligne de commande. Vous pouvez également lui demander de modifier automatiquement le nom de l’ordinateur en incluant le nouveau nom après le commutateur « /a ». Par exemple :

newsid /a [newname]

Si NewSID s’est exécuté sans invite, remplacez le nom de l’ordinateur par « newname » et demandez-lui de redémarrer l’ordinateur si tout se passe bien.

Note : si le système sur lequel vous souhaitez exécuter NewSID exécute IISAdmin, vous devez arrêter le service IISAdmin avant d’exécuter NewSID. Utilisez cette commande pour arrêter le service IISAdmin : net stop iisadmin /y

Fonctionnalité de synchronisation SID de NewSID qui vous permet de spécifier, qu’au lieu de générer le SID de manière aléatoire, il doit être obtenu à partir d’un autre ordinateur. Cette fonctionnalité permet de déplacer un contrôleur de domaine secondaire (BDC) vers un nouveau domaine, car la relation d’un BDC à un domaine est identifiée par le fait qu’il possède le même SID d’ordinateur que les autres contrôleurs de domaine (DC). Choisissez simplement le bouton « Synchroniser le SID » et entrez le nom de l’ordinateur cible. Vous devez disposer des autorisations nécessaires pour modifier les paramètres de sécurité des clés de Registre de l’ordinateur cible, ce qui signifie généralement que vous devez être connecté en tant qu’administrateur de domaine pour utiliser cette fonctionnalité.

Notez que lorsque vous exécutez NewSID, la taille du Registre augmente. Assurez-vous donc que la taille maximale du Registre prend en charge la croissance. Nous avons constaté que cette croissance n’a aucun impact perceptible sur les performances du système. La raison pour laquelle le Registre se développe est qu’il devient fragmenté à mesure que les paramètres de sécurité temporaires sont appliqués par NewSID. Lorsque les paramètres sont supprimés, le Registre n’est pas compacté.

Important : notez que bien que nous ayons testé minutieusement NewSID, vous devez l’utiliser à vos propres risques. Comme pour tout logiciel qui modifie les paramètres de fichier et de Registre, il est vivement recommandé de sauvegarder complètement votre ordinateur avant d’exécuter NewSID.

Déplacement d’un BDC

Voici les étapes à suivre lorsque vous souhaitez déplacer un BDC d’un domaine à un autre :

  1. Démarrez le BDC que vous souhaitez déplacer et connectez-vous. Utilisez NewSID pour synchroniser le SID du BDC avec le contrôleur de domaine principal du domaine vers lequel vous souhaitez déplacer le BDC.
  2. Redémarrez le système pour lequel vous avez modifié le SID (le BDC). Étant donné que le domaine auquel le BDC est maintenant associé a déjà un contrôleur de domaine principal actif, il démarre en tant que BDC dans son nouveau domaine.
  3. Le BDC s’affiche en tant que station de travail dans Gestionnaire de serveur. Utilisez donc le bouton « Ajouter au domaine » pour ajouter le BDC à son nouveau domaine. Veillez à cocher la case d’option BDC lors de l’ajout.

Fonctionnement

NewSID commence par lire le SID de l’ordinateur existant. Le SID d’un ordinateur est stocké dans la ruche SECURITY du Registre sous SECURITY\SAM\Domains\Account. Cette clé a une valeur nommée F et une valeur nommée V. La valeur V est une valeur binaire dans laquelle le SID de l’ordinateur est incorporé à la fin de ses données. NewSID garantit que ce SID est au format standard (trois sous-autorités 32 bits précédées de trois champs d’autorité 32 bits).

Ensuite, NewSID génère un SID aléatoire pour l’ordinateur. La génération de NewSID parvient très difficilement à créer une valeur 96 bits vraiment aléatoire, qui remplace les 96 bits des 3 valeurs de sous-autorité qui composent un SID d’ordinateur.

Trois phases du remplacement du SID de l’ordinateur suivent. Dans la première phase, les ruches SECURITY et SAM du Registre sont analysées pour rechercher les occurrences de l’ancien SID d’ordinateur dans les valeurs de clé, ainsi que les noms des clés. Lorsque le SID se trouve dans une valeur, il est remplacé par le nouveau SID d’ordinateur. Lorsque le SID se trouve dans un nom, la clé et ses sous-clés sont copiées dans une nouvelle sous-clé portant le même nom, sauf si le nouveau SID remplace l’ancien.

Les deux dernières phases impliquent la mise à jour des descripteurs de sécurité. La sécurité est associée aux clés de Registre et aux fichiers NTFS. Les descripteurs de sécurité se composent d’une entrée qui identifie quel compte est propriétaire de la ressource, quel groupe est le propriétaire principal du groupe, une liste facultative d’entrées qui spécifient les actions autorisées par les utilisateurs ou groupes (appelée liste de contrôle d’accès discrétionnaire – DACL) et une liste facultative d’entrées qui spécifient les actions effectuées par certains utilisateurs ou groupes génèreront des entrées dans le journal des événements système (liste de contrôle d’accès système – SACL). Un utilisateur ou un groupe est identifié dans ces descripteurs de sécurité avec ses SID, et comme je l’ai mentionné précédemment, les comptes d’utilisateurs locaux (autres que les comptes intégrés tels qu’Administrateur, Invité, etc.) ont leurs SID composés du SID de l’ordinateur et d’un RID.

La première partie des mises à jour du descripteur de sécurité se produit sur tous les fichiers du système de fichiers NTFS sur l’ordinateur. Chaque descripteur de sécurité est analysé à la recherche des occurrences du SID de l’ordinateur. Lorsque NewSID en trouve un, il le remplace par le nouveau SID de l’ordinateur.

La deuxième partie des mises à jour du descripteur de sécurité est effectuée sur le Registre. Tout d’abord, NewSID doit s’assurer qu’il analyse toutes les ruches, pas seulement celles qui sont chargées. Chaque compte d’utilisateur a une ruche de Registre qui est chargée en tant que HKEY_CURRENT_USER lorsque l’utilisateur est connecté, mais reste sur le disque dans le répertoire de profil de l’utilisateur quand ce n’est pas le cas. NewSID identifie tous les emplacements de ruche utilisateur en énumérant la clé HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList, qui pointe vers les répertoires dans lesquels ils sont stockés. Il les charge ensuite dans le Registre à l’aide de RegLoadKey sous HKEY_LOCAL_MACHINE et analyse l’intégralité du Registre, examinant chaque descripteur de sécurité à la recherche de l’ancien SID de l’ordinateur. Les mises à jour sont effectuées de la même façon que pour les fichiers. Lorsqu’elles sont terminées, NewSID décharge les ruches d’utilisateurs qu’il a chargées. À la dernière étape, NewSID analyse la clé HKEY_USERS, qui contient la ruche de l’utilisateur actuellement connecté, ainsi que la ruche .Default. Cela est nécessaire, car une ruche ne peut pas être chargée deux fois, de sorte que la ruche de l’utilisateur connecté n’est pas chargée dans HKEY_LOCAL_MACHINE lorsque NewSID charge d’autres ruches utilisateur.

Enfin, NewSID doit mettre à jour les sous-clés ProfileList pour faire référence aux nouveaux SID de compte. Cette étape est nécessaire pour que Windows NT associe correctement des profils aux comptes d’utilisateur une fois que les SID de compte ont été modifiés pour refléter le nouveau SID d’ordinateur.

NewSID garantit qu’il peut accéder et modifier chaque fichier et clé de Registre dans le système en se donnant les privilèges suivants : Système, Sauvegarde, Restauration et Prendre possession.