NewSID v4.10
Por Mark Russinovich
Publicado: 1 de novembro de 2006
Nota: NewSID foi reformado e já não está disponível para download. Veja o post de blogue de Mark Russinovich: NewSID Retirement and the Machine SID Duplication Myth
IMPORTANTE
No que diz respeito aos SIDs, a Microsoft não suporta imagens que são preparadas usando o NewSID, apenas suportamos imagens que são preparadas usando o SysPrep. A Microsoft não testou o NewSID para todas as opções de clonagem de implementação.
Para obter mais informações sobre a política oficial da Microsoft, consulte o seguinte artigo da Base de Conhecimento:
Introdução
Muitas organizações usam a clonagem de imagens de disco para realizar lançamentos em massa de Windows. Esta técnica envolve copiar os discos de um computador Windows totalmente instalado e configurado nas unidades de disco de outros computadores. Estes outros computadores parecem ter passado efetivamente pelo mesmo processo de instalação, e estão imediatamente disponíveis para utilização.
Embora este método economize horas de trabalho e adio sobre outras abordagens de lançamento, tem o maior problema de que cada sistema clonado tem um identificador de segurança de computador idêntico (SID). Este facto compromete a segurança em ambientes de grupos de trabalho, e a segurança dos meios de comunicação removíveis também pode ser comprometida em redes com múltiplos SIDs de computador idênticos.
A procura da comunidade Windows levou várias empresas a desenvolver programas que podem mudar o SID de um computador depois de um sistema ter sido clonado. No entanto, sid Changer da Symantec e Ghost Walker da Symantec são vendidos apenas como parte do produto topo de gama de cada empresa. Além disso, ambos correm a partir de um pedido de comando DOS (o changer de Altiris é semelhante ao NewSID).
NewSID é um programa que desenvolvemos que altera o SID de um computador. É gratuito e é um programa Win32, o que significa que pode ser facilmente executado em sistemas que foram previamente clonados.
Por favor, leia este artigo inteiro antes de usar este programa.
Informação da versão:
- A versão 4.0 introduz suporte para Windows XP e .NET Server, uma interface de estilo assistente, permite especificar o SID que deseja aplicado, a compactação do registo e também a opção de renomear um computador (o que resulta numa mudança de nomes NetBIOS e DNS).
- A versão 3.02 corrige um bug em que o NewSid não copiaria corretamente valores predefinidos com tipos de valor inválidos ao renomear uma chave com um SID antigo para um novo SID. A NT realmente faz uso de tais valores inválidos em determinados momentos no SAM. O sintoma deste bug foi as mensagens de erro que reportam o acesso negado quando a informação da conta foi atualizada por um utilizador autorizado.
- A versão 3.01 adiciona uma slusão para uma chave de registo inacessível criada pelo Microsoft Transaction Server. Sem o trabalho em torno do NewSID desistiria prematuramente.
- A versão 3.0 introduz uma funcionalidade de sincronização SID que direciona o NewSID para obter um SID para aplicar a partir de outro computador.
- A versão 2.0 tem uma opção de modo automatizado, e vamos alterar o nome do computador também.
- A versão 1.2 corrige um bug que foi introduzido no 1.1 onde alguns descritores de segurança do sistema de ficheiros não foram atualizados.
- A versão 1.1 corrige um erro relativamente pequeno que afetou apenas determinadas instalações. Também foi atualizado para alterar SIDs associados às definições de permissão de ações de ficheiros e impressoras.
Métodos de clonagem e de lançamento alternativos
Uma das formas mais populares de realizar lançamentos de Windows em massa (tipicamente centenas de computadores) em ambientes corporativos baseia-se na técnica da clonagem de discos. Um administrador de sistema instala o sistema operativo base e o software de complemento utilizado na empresa num computador de modelo. Depois de configurar a máquina para funcionar na rede da empresa, as ferramentas automatizadas de duplicação de discos ou sistemas (comoo Ghostda Symantec,a PowerQuest'sImage Drivee oRapiDeployda Altiris) são usadas para copiar as unidades do computador modelo em dezenas ou centenas de computadores. Estes clones recebem então ajustes finais, como a atribuição de nomes únicos, e depois usados pelos funcionários da empresa.
Outra forma popular de desenrolar é utilizando o utilitário sysdiff da Microsoft (parte do Windows Resource Kit). Esta ferramenta requer que o administrador do sistema execute uma instalação completa (normalmente uma instalação scriptada sem supervisão) em cada computador e, em seguida, o Sysdiff automatiza a aplicação de imagens de instalação de software adicionais.
Como a instalação é ignorada, e como a cópia do sector do disco é mais eficiente do que a cópia de ficheiros, um roll-out clonado pode economizar dezenas de horas sobre uma instalação sysdiff comparável. Além disso, o administrador do sistema não tem de aprender a usar a instalação ou o sysdiffsem supervisão , ou criar e depurar scripts de instalação. Só isto poupa horas de trabalho.
O problema da duplicação do SID
O problema da clonagem é que só é suportado pela Microsoft num sentido muito limitado. A Microsoft declarou que os sistemas de clonagem só são suportados se forem feitos antes de ter sido atingida a parte GUI da Windows Configuração. Quando a instalação chega a este ponto, o computador é atribuído a um nome e a um SID de computador único. Se um sistema for clonado após este passo, as máquinas clonadas terão siDs de computador idênticos. Note que apenas mudar o nome do computador ou adicionar o computador a um domínio diferente não altera o SID do computador. Alterar o nome ou domínio só altera o domínio SID se o computador estiver previamente associado a um domínio.
Para compreender o problema que a clonagem pode causar, é primeiro necessário entender como as contas locais individuais num computador são atribuídas SIDs. Os SIDs de contas locais consistem no SID do computador e num RID anexado (Identificador Relativo). O RID começa com um valor fixo, e é aumentado por um para cada conta criada. Isto significa que a segunda conta de um computador, por exemplo, será dada a mesma RID que a segunda conta de um clone. O resultado é que ambas as contas têm o mesmo SID.
Os SIDs duplicados não são um problema num ambiente baseado em domínio, uma vez que as contas de domínio têm SID's com base no Domínio SID. Mas, de acordo com o artigo da Base de Conhecimento do Microsoft, Q162001, "Não em disco duplicado versões instaladas de Windows NT", num grupo de trabalho a segurança ambiental baseia-se em SIDs de conta local. Assim, se dois computadores tiverem utilizadores com o mesmo SID, o Grupo de Trabalho não será capaz de distinguir entre os utilizadores. Todos os recursos, incluindo ficheiros e chaves de registo, a que um utilizador tem acesso, o outro também.
Outro caso em que os SIDs duplicados podem causar problemas é onde existem meios de comunicação removíveis formatados com NTFS, e os atributos de segurança da conta local são aplicados em ficheiros e diretórios. Se tal suporte é movido para um computador diferente que tem o mesmo SID, então contas locais que de outra forma não seriam capazes de aceder aos ficheiros poderiam ser capazes de fazê-lo se os seus IDs de conta correspondessem aos dos atributos de segurança. Isto não é possível se os computadores tiverem SIDs diferentes.
Um artigo que Mark escreveu, intitulado "Opções de Lançamento NT", foi publicado na edição de junho da Windows NT Magazine. Discute mais pormenorizadamente a emissão do SID duplicado e apresenta a posição oficial da Microsoft sobre a clonagem. Para ver se tem um problema DE SID duplicado na sua rede, utilize o PsGetSid para exibir SIDs de máquina.
NewSID
NewSID é um programa que desenvolvemos para mudar o SID de um computador. Primeiro gera um SID aleatório para o computador, e procede à atualização de instâncias do SID do computador existente que encontra no Registo e nos descritores de segurança de ficheiros, substituindo as ocorrências pelo novo SID. NewSID requer privilégios administrativos para funcionar. Tem duas funções: mudar o SID e alterar o nome do computador.
Para utilizar a opção de funcionamento automático da NewSID, especifique "/a" na linha de comando. Também pode direcioná-lo para alterar automaticamente o nome do computador, incluindo o novo nome após o interruptor "/a". Por exemplo:
newsid /a [newname]
Teria o NewSID executado sem avisar, mudaria o nome do computador para "newname" e o faria reiniciar o computador se tudo corresse bem.
Nota: Se o sistema em que deseja executar o NewSID estiver a funcionar iISAdmin, tem de parar o serviço IISAdmin antes de executar o NewSID. Utilize este comando para parar o serviço IISAdmin: net stop iisadmin /y
A funcionalidade de sincronização sid da NewSIDque permite especificar que, em vez de gerar aleatoriamente um, o novo SID deve ser obtido a partir de um computador diferente. Esta funcionalidade permite mover um Controlador de Domínio de Backup (BDC) para um novo Domínio, uma vez que a relação de um BDC com um Domínio é identificada por ter o mesmo SID de computador que os outros Controladores de Domínio (DCs). Basta escolher o botão "Sincronizar SID" e introduzir o nome do computador-alvo. Tem de ter permissões para alterar as definições de segurança das teclas de registo do computador-alvo, o que normalmente significa que tem de iniciar sessão como administrador de domínio para utilizar esta função.
Note que quando executar o NewSID que o tamanho do Registo vai crescer, certifique-se de que o tamanho máximo do registo acomodará o crescimento. Constatámos que este crescimento não tem um impacto percetível no desempenho do sistema. A razão pela qual o registo cresce é que se fragmenta à medida que as definições temporárias de segurança são aplicadas pela NewSID. Quando as definições são removidas, o registo não é compactado.
Importante: Note que, embora tenhamos testado completamente o NewSID,deve usá-lo por sua conta e risco. Tal como acontece com qualquer software que altera as definições de ficheiros e registos, é altamente recomendável que faça uma atualização completa do computador antes de executar o NewSID.
Mover um BDC
Aqui estão os passos que deve seguir quando pretende mover um BDC de um domínio para outro:
- Inicie o BDC que pretende mover-se e fazer login. Utilize o NewSID para sincronizar o SID do BDC com o PDC do domínio para o qual deseja mover o BDC.
- Reinicie o sistema para o qual alterou o SID (o BDC). Uma vez que o domínio com o qual o BDC está agora associado já tem um PDC ativo, irá arrancar como um BDC no seu novo domínio.
- O BDC aparecerá como uma estação de trabalho no Server Manager, por isso use o botão "Adicionar ao Domínio" para adicionar o BDC ao seu novo domínio. Certifique-se de que especifica o botão de rádio BDC ao adicionar.
Como Funciona
NewSID começa por ler o SID do computador existente. O SID de um computador é armazenado na colmeia security do registo em SEGURANÇA\SAM\Domínios\Conta. Esta chave tem um valor chamado F e um valor chamado V. O valor V é um valor binário que tem o SID do computador incorporado no seu interior no final dos seus dados. A NewSID garante que este SID se encontra num formato padrão (subautidades de 32 bits precedidas por três campos de autoridade de 32 bits).
Em seguida, o NewSID gera um novo SID aleatório para o computador. A geração da NewSIDtem grandes esforços para criar um valor verdadeiramente aleatório de 96 bits, que substitui os 96 bits dos 3 valores de suba perutoridade que compõem um SID de computador.
Seguem-se três fases para a substituição do SID do computador. Na primeira fase, as colmeias de registo SECURITY e SAM são examinadas para ocorrências do antigo computador SID em valores-chave, bem como os nomes das teclas. Quando o SID é encontrado num valor, é substituído pelo novo SID do computador, e quando o SID é encontrado num nome, a chave e as suas sub-chaves são copiadas para um novo subkey que tem o mesmo nome, exceto com o novo SID substituindo o antigo.
As duas fases finais envolvem a atualização dos descritores de segurança. As chaves de registo e os ficheiros NTFS têm segurança associada a eles. Os descritores de segurança consistem numa entrada que identifica qual a conta que detém o recurso, qual o grupo que é o principal proprietário do grupo, uma lista opcional de entradas que especificam as ações permitidas pelos utilizadores ou grupos (conhecida como Lista de Controlo de Acesso Discricionário - DACL), e uma lista opcional de entradas que especificam quais as ações realizadas por determinados utilizadores ou grupos que gerarão entradas no registo de eventos do sistema (Lista de Controlo de Acesso ao Sistema - SACL). Um utilizador ou um grupo é identificado nestes descritores de segurança com os seus SIDs, e como afirmou anteriormente, as contas de utilizadores locais (que não as contas incorporadas, como administrador, guest, e assim por diante) têm os seus SIDs compostos pelo SID do computador mais um RID.
A primeira parte das atualizações do descritor de segurança ocorre em todos os ficheiros do sistema de ficheiros NTFS no computador. Todos os descritores de segurança são examinados para ocorrências do SID do computador. Quando o NewSID encontra um, substitui-o pelo novo SID do computador.
A segunda parte das atualizações do descritor de segurança é realizada no Registo. Primeiro, o NewSID deve certificar-se de que analisa todas as colmeias, não apenas as que estão carregadas. Cada conta de utilizador tem uma colmeia de registo que é carregada como HKEY_CURRENT_USER quando o utilizador está iniciado, mas permanece no disco no perfil do utilizador quando não estão. A NewSID identifica as localizações de todos os locais da colmeia do utilizador, enumerando a chave HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList, que aponta para os diretórios em que estão armazenados. Em seguida, coloca-os no Registo utilizando o RegLoadKey sob HKEY_LOCAL_MACHINE e digitaliza todo o Registo, examinando cada descritor de segurança em busca do antigo computador SID. As atualizações são realizadas da mesma forma que para os ficheiros, e quando o seu feito NewSID descarrega as colmeias do utilizador, carrega. Como último passo, o NewSID digitaliza a chave HKEY_USERS, que contém a colmeia do utilizador atualmente iniciado, bem como o . Colmeia padrão. Isto é necessário porque uma colmeia não pode ser carregada duas vezes, por isso a colmeia do utilizador iniciado não será carregada em HKEY_LOCAL_MACHINE quando oNewSID estiver a carregar outras colmeias de utilizador.
Por fim, o NewSID tem de atualizar as sub-tes ProfileList para se referir aos novos SIDs de conta. Este passo é necessário para que Windows NT conuções corretamente com as contas de utilizador após a alteração dos SIDs da conta para refletir o novo SID do computador.
A NewSID garante que pode aceder e modificar todos os ficheiros e chaves de registo do sistema, dando-se a si próprio os seguintes privilégios: Sistema, Backup, Restauro e Tomada de Propriedade.