NewSID v4.10

Di Mark Russinovich

Data di pubblicazione: 1 novembre 2006

Nota: NewSID è stato ritirato e non è più disponibile per il download. Vedere il post di blog di Mark Russinovich: NewSID Retirement and the Machine SID Duplication Myth

IMPORTANTE

Per quanto riguarda i SID, Microsoft non supporta le immagini preparate con NewSID, sono supportate solo le immagini preparate con SysPrep. Microsoft non ha testato NewSID per tutte le opzioni di clonazione della distribuzione.

Per altre informazioni sui criteri ufficiali di Microsoft, vedere l'articolo della Knowledge Base seguente:

Introduzione

Molte organizzazioni usano la clonazione di immagini del disco per eseguire implementazioni di massa di Windows. Questa tecnica comporta la copia dei dischi di un computer Windows completamente installato e configurato nelle unità disco di altri computer. Questi altri computer sembrano essere stati effettivamente sottoposti allo stesso processo di installazione e sono immediatamente disponibili per l'uso.

Anche se questo metodo consente di risparmiare ore di lavoro e di evitare problemi rispetto ad altri approcci di implementazione, è comunque da considerare che ogni sistema clonato avrà un SID (identificatore di sicurezza) identico. Questo fatto compromette la sicurezza negli ambienti del gruppo di lavoro, così come potenzialmente quella dei supporti rimovibili nelle reti con più SID computer identici.

La domanda della community di Windows ha portato diverse aziende a sviluppare programmi in grado di modificare il SID di un computer dopo la clonazione di un sistema. Tuttavia, SID Changer e Ghost Walker di Symantec vengono venduti solo come parte del prodotto di fascia alta di ogni azienda. Inoltre, entrambi vengono eseguiti da un prompt dei comandi DOS (il modificatore Altiris è simile a NewSID).

NewSID è un programma sviluppato per modificare il SID di un computer. È gratuito ed è un programma Win32, vale a dire può essere eseguito facilmente nei sistemi che sono stati clonati in precedenza.

Leggere l'intero articolo prima di usare questo programma.

Informazioni sulla versione:

  • La versione 4.0 introduce il supporto per Windows XP e .NET Server, un'interfaccia in stile procedura guidata, che consente di specificare il SID che si desidera applicare, la compattazione del Registro di sistema e anche l'opzione per rinominare un computer (che comporta una modifica dei nomi NetBIOS e DNS).
  • La versione 3.02 corregge un bug per cui NewSid non copiava correttamente i valori predefiniti con tipi di valore non validi quando si rinominava una chiave con un SID precedente in un nuovo SID. NT usa effettivamente tali valori non validi in determinati momenti nel SAM. Il sintomo di questo bug consiste in messaggi di errore che segnalano l'accesso negato quando le informazioni sull'account vengono aggiornate da un utente autorizzato.
  • La versione 3.01 aggiunge una soluzione alternativa per una chiave del Registro di sistema inaccessibile creata da Microsoft Transaction Server. Senza la soluzione alternativa, NewSID si sarebbe interrotto prematuramente.
  • La versione 3.0 introduce una funzionalità di sincronizzazione SID che indirizza NewSID a ottenere un SID da applicare da un altro computer.
  • La versione 2.0 include un'opzione in modalità automatica che permette di modificare anche il nome del computer.
  • La versione 1.2 corregge un bug introdotto nella versione 1.1 in cui alcuni descrittori di sicurezza del file system non venivano aggiornati.
  • La versione 1.1 corregge un bug relativamente secondario che interessava solo determinate installazioni. È stato aggiornato anche per modificare i SID associati alle impostazioni di autorizzazione delle condivisioni file e stampanti.

Clonazione e metodi di implementazione alternativi

Uno dei modi più diffusi per eseguire implementazioni di massa di Windows (in genere centinaia di computer) negli ambienti aziendali è basato sulla tecnica di clonazione del disco. Un amministratore di sistema installa il sistema operativo di base e il software del componente aggiuntivo usati nella società in un computer modello. Dopo aver configurato il computer per il funzionamento nella rete aziendale, vengono usati strumenti di duplicazione automatica del disco o del sistema (ad esempio Ghost di Symantec, Image Drive di PowerQuest e RapiDeploy di Altiris) per copiare le unità del computer del modello in decine o centinaia di computer. A questi cloni vengono quindi fornite modifiche finali, ad esempio l'assegnazione di nomi univoci, e quindi vengono usati dai dipendenti dell'azienda.

Un altro modo comune per l'implementazione è l'uso dell'utilità Microsoft sysdiff (parte di Windows Resource Kit). Questo strumento richiede che l'amministratore di sistema esegua un'installazione completa (in genere un'installazione automatica con script) in ogni computer e quindi sysdiff automatizza l'applicazione delle immagini di installazione software del componente aggiuntivo.

Poiché l'installazione viene ignorata e poiché la copia del settore del disco è più efficiente rispetto alla copia di file, un'implementazione basata su clonazione può far risparmiare decine di ore rispetto a un'installazione sysdiff paragonabile. Inoltre, l'amministratore di sistema non deve imparare a usare l'installazione automatica o sysdiff oppure creare ed eseguire il debug degli script di installazione. Già in questo modo si risparmiano ore di lavoro.

Problema di duplicazione SID

Il problema della clonazione è che è supportata in modo molto limitato da Microsoft. Microsoft ha dichiarato che i sistemi di clonazione sono supportati solo se vengono eseguiti prima che venga raggiunta la parte GUI del programma di installazione di Windows. Quando l'installazione raggiunge questo punto, al computer vengono assegnati un nome e un SID computer univoco. Se un sistema viene clonato dopo questo passaggio, i computer clonati avranno tutti SID computer identici. Si noti che la sola modifica del nome del computer o la sola aggiunta del computer a un dominio diverso non modificano il SID del computer. La modifica del nome o del dominio modifica il SID del dominio solo se il computer è stato associato in precedenza a un dominio.

Per comprendere i problemi legati alla clonazione, è prima necessario comprendere come vengono assegnati i singoli account locali in un computer. I SID degli account locali sono costituiti dal SID del computer e da un RID (identificatore relativo) aggiunto. Il RID inizia con un valore fisso e aumenta di uno per ogni account creato. Ciò significa che al secondo account in un computer, ad esempio, verrà assegnato lo stesso RID del secondo account in un clone. Il risultato è che entrambi gli account hanno lo stesso SID.

I SID duplicati non sono un problema in un ambiente basato su dominio perché gli account di dominio hanno un SID basato sul SID di dominio. Tuttavia, in base all'articolo della Microsoft Knowledge Base Q162001, "Non duplicare le versioni installate del disco di Windows NT" in un ambiente di lavoro la sicurezza si basa sul SID dell'account locale. Pertanto, se due computer hanno utenti con lo stesso SID, il gruppo di lavoro non sarà in grado di distinguerli. Tutte le risorse, inclusi i file e le chiavi del Registro di sistema, a cui un utente ha accesso saranno disponibili anche per l'altro utente.

Un'altra istanza in cui i SID duplicati possono causare problemi è uno scenario in cui sono presenti supporti rimovibili formattati con NTFS e gli attributi di sicurezza dell'account locale vengono applicati a file e directory. Se un supporto di questo tipo viene spostato in un computer diverso con lo stesso SID, gli account locali che altrimenti non sarebbero in grado di accedere ai file potrebbero essere in grado di verificare se i relativi ID account corrispondono a quelli negli attributi di sicurezza. Questo non è possibile se i computer dispongono di SID diversi.

Un articolo scritto da Mark, intitolato "NT Rollout Options", è stato pubblicato nel numero di giugno di Windows NT Magazine. Illustra in modo più dettagliato il problema del SID duplicato e presenta la posizione ufficiale di Microsoft sulla clonazione. Per verificare se si sta riscontrando un problema di SID duplicato nella rete, usare PsGetSid per visualizzare i SID del computer.

NewSID

NewSID è un programma sviluppato per modificare il SID di un computer. Genera innanzitutto un SID casuale per il computer e continua ad aggiornare le istanze del SID del computer esistente trovato nel Registro di sistema e nei descrittori di sicurezza dei file, sostituendo le occorrenze con il nuovo SID. NewSID richiede privilegi di amministratore per l'esecuzione. Ha due funzioni: modifica del SID e modifica del nome del computer.

Per usare l'opzione di esecuzione automatica di NewSID, specificare "/a" nella riga di comando. È anche possibile indirizzarlo a modificare automaticamente il nome del computer includendo il nuovo nome dopo l'opzione "/a". Ad esempio:

newsid /a [nuovonome]

Se NewSID è stato eseguito senza chiedere conferma, modificare il nome del computer in "nuovonome" e riavviare il computer se tutto va bene.

Nota: se il sistema in cui si desidera eseguire NewSID esegue IISAdmin è necessario arrestare il servizio IISAdmin prima di eseguire NewSID. Usare questo comando per arrestare il servizio IISAdmin: net stop iisadmin /y

La funzionalità di sincronizzazione SID di NewSID che consente di specificare che, invece di generarne uno in modo casuale, il nuovo SID debba essere ottenuto da un computer diverso. Questa funzionalità consente di spostare un controller di dominio di backup (BDC) in un nuovo dominio, poiché la relazione di un cluster big data a un dominio viene identificata con lo stesso SID del computer degli altri controller di dominio. È sufficiente scegliere il pulsante "Sincronizza SID" e immettere il nome del computer di destinazione. È necessario disporre delle autorizzazioni per modificare le impostazioni di sicurezza delle chiavi del Registro di sistema del computer di destinazione, il che in genere significa che è necessario essere connessi come amministratore di dominio per usare questa funzionalità.

Si noti che, quando si esegue NewSID, le dimensioni del Registro di sistema aumentano, quindi assicurarsi che le dimensioni massime del Registro di sistema siano adatte alla crescita. Abbiamo scoperto che questa crescita non ha alcun impatto percepibile sulle prestazioni del sistema. Il motivo per cui aumenta il Registro di sistema è che diventa frammentato quando le impostazioni di sicurezza temporanee vengono applicate da NewSID. Quando le impostazioni vengono rimosse, il Registro di sistema non viene compattato.

Importante: si noti che, anche se NewSID è stato testato a fondo, lo si userà a proprio rischio. Come per qualsiasi software che modifica le impostazioni del file e del Registro di sistema, è consigliabile eseguire completamente il backup del computer prima di eseguire NewSID.

Spostamento di un cluster big data

Ecco i passaggi da seguire quando si vuole spostare un cluster big data da un dominio a un altro:

  1. Avviare il cluster big data da spostare ed eseguire l'accesso. Usare NewSID per sincronizzare il SID del cluster big data con il PDC del dominio in cui si desidera spostare il cluster big data.
  2. Riavviare il sistema per il quale è stato modificato il SID (BDC). Poiché il dominio a cui è associato il cluster big data ha già un PDC attivo, verrà avviato come BDC nel nuovo dominio.
  3. Il cluster big data verrà visualizzato come workstation in Server Manager. A questo punto, usare il pulsante "Aggiungi al dominio" per aggiungere il cluster BDC al nuovo dominio. Assicurarsi di specificare il pulsante di opzione BDC durante l'aggiunta.

Funzionamento

NewSID inizia leggendo il SID del computer esistente. Il SID di un computer viene archiviato nell'hive SECURITY del Registro di sistema in SECURITY\SAM\Domains\Account. Questa chiave ha un valore denominato F e un valore denominato V. Il valore V è un valore binario con il SID del computer incorporato al suo interno alla fine dei dati. NewSID garantisce che questo SID sia in un formato standard (tre sottoautorità a 32 bit precedute da tre campi di autorità a 32 bit).

Quindi, NewSID genera un nuovo SID casuale per il computer. La generazione di NewSID ha molte difficoltà a creare un valore a 96 bit davvero casuale, che sostituisca i 96 bit dei 3 valori di sottoautorità che costituiscono un SID del computer.

Seguono tre fasi per la sostituzione del SID del computer. Nella prima fase, gli hive SECURITY e SAM del Registro di sistema vengono analizzati per individuare le occorrenze del SID del computer precedente nei valori delle chiavi, nonché i nomi delle chiavi. Quando il SID viene trovato in un valore, viene sostituito con il nuovo SID del computer, mentre se viene trovato in un nome, la chiave e le relative sottochiavi vengono copiate in una nuova sottochiave con lo stesso nome, sostituendo il nuovo SID a quello vecchio.

Le due fasi finali comportano l'aggiornamento dei descrittori di sicurezza. Le chiavi del Registro di sistema e i file NTFS sono associati alla sicurezza. I descrittori di sicurezza sono costituiti da una voce che identifica l'account proprietario della risorsa, il gruppo proprietario del gruppo primario, un elenco facoltativo di voci che specificano le azioni consentite da utenti o gruppi (noto come Elenco discrezionale controllo di accesso - DACL) e un elenco facoltativo di voci che specificano quali azioni eseguite da determinati utenti o gruppi genereranno voci nel registro eventi di sistema (Elenco controllo di accesso sistema - SACL). Un utente o un gruppo viene identificato in questi descrittori di sicurezza con i relativi SID e, come indicato in precedenza, gli account utente locali (ad eccezione degli account predefiniti, ad esempio Amministratore, Guest e così via) avranno SID composti dal SID del computer più un RID.

La prima parte degli aggiornamenti del descrittore di sicurezza viene eseguita in tutti i file del file system NTFS nel computer. Ogni descrittore di sicurezza viene analizzato per individuare le occorrenze del SID del computer. Quando NewSID ne trova uno, lo sostituisce con il nuovo SID del computer.

La seconda parte degli aggiornamenti del descrittore di sicurezza viene eseguita nel Registro di sistema. Prima di tutto, NewSID deve assicurarsi di analizzare tutti gli hive, non solo quelli caricati. Ogni account utente ha un hive del Registro di sistema caricato come HKEY_CURRENT_USER quando l'utente è connesso, ma rimane su disco nella directory del profilo dell'utente quando non è connesso. NewSID identifica i percorsi di tutti i percorsi hive utente enumerando la chiave HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList, che punta alle directory in cui sono archiviati. Li carica quindi nel Registro di sistema usando RegLoadKey in HKEY_LOCAL_MACHINE ed esegue l'analisi dell'intero Registro di sistema, esaminando ogni descrittore di sicurezza nella ricerca del SID del computer precedente. Gli aggiornamenti vengono eseguiti allo stesso modo per i file e, al termine, NewSID scaricherà l'hive utente caricato. Come passaggio finale NewSID analizza la chiave HKEY_Uedizione Standard RS, che contiene l'hive dell'utente attualmente connesso, nonché l'oggetto hive .Default. Ciò è necessario perché non è possibile caricare un hive due volte, quindi l'hive utente connesso non verrà caricato in HKEY_LOCAL_MACHINE quando NewSID carica altri hive utente.

Infine, NewSID deve aggiornare le sottochiavi ProfileList per fare riferimento ai nuovi SID dell'account. Questo passaggio è necessario affinché Windows NT associ correttamente i profili agli account utente dopo che i SID dell'account vengono modificati in modo da riflettere il nuovo SID del computer.

NewSID garantisce l'accesso e la modifica di ogni file e chiave del Registro di sistema concedendo a se stesso i privilegi seguenti: System, Backup, Restore e Take Ownership.