NewSID v4.10
Por Mark Russinovich
Publicado em: 1 de novembro de 2006
Nota: NewSID foi desativado e não está mais disponível para download. Por favor, veja a postagem do blog de Mark Russinovich: NewSID Retirement and the Machine SID Duplication Myth
Em relação aos SIDs, a Microsoft não suporta imagens que são preparadas usando NewSID, nós só suportamos imagens que são preparadas usando SysPrep. A Microsoft não testou o NewSID para todas as opções de clonagem de implantação.
Para obter mais informações sobre a política oficial da Microsoft, consulte o seguinte artigo da Base de Dados de Conhecimento:
Muitas organizações usam a clonagem de imagem de disco para executar distribuições em massa do Windows. Esta técnica envolve copiar os discos de um computador Windows totalmente instalado e configurado para as unidades de disco de outros computadores. Esses outros computadores efetivamente parecem ter passado pelo mesmo processo de instalação e estão imediatamente disponíveis para uso.
Embora esse método economize horas de trabalho e problemas em relação a outras abordagens de implantação, ele tem o principal problema de que cada sistema clonado tem um identificador de segurança de computador (SID) idêntico. Esse fato compromete a segurança em ambientes de grupo de trabalho, e a segurança de mídia removível também pode ser comprometida em redes com vários SIDs de computador idênticos.
A demanda da comunidade Windows levou várias empresas a desenvolver programas que podem alterar o SID de um computador após a clonagem de um sistema. No entanto, o SID Changer da Symantec e o Ghost Walker da Symantec são vendidos apenas como parte do produto high-end de cada empresa. Além disso, ambos são executados a partir de um prompt de comando DOS (o trocador 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 clonados anteriormente.
Por favor, leia este artigo completo antes de usar este programa.
Informações sobre a versão:
- Versão 4.0 introduz suporte para Windows XP e .NET Server, uma interface de estilo assistente, permite que você especifique o SID que você deseja aplicar, compactação do Registro e também a opção de renomear um computador (o que resulta em uma alteração de nomes NetBIOS e DNS).
- A versão 3.02 corrige um bug em que NewSid não copiava corretamente valores padrão com tipos de valor inválidos ao renomear uma chave com um SID antigo para um novo SID. Na verdade, a NT faz uso desses valores inválidos em determinados momentos no SAM. O sintoma desse bug foram mensagens de erro relatando acesso negado quando as informações da conta foram atualizadas por um usuário autorizado.
- Versão 3.01 adiciona uma solução alternativa para uma chave do Registro inacessível que é criada pelo Microsoft Transaction Server. Sem a solução alternativa , o NewSID desistiria prematuramente.
- Versão 3.0 introduz um recurso de sincronização SID que direciona NewSID para obter um SID para aplicar 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 na versão 1.1, onde alguns descritores de segurança do sistema de arquivos não foram atualizados.
- A versão 1.1 corrige um bug relativamente pequeno que afetou apenas determinadas instalações. Ele também foi atualizado para alterar SIDs associados às configurações de permissão de compartilhamentos de arquivos e impressoras.
Uma das maneiras mais populares de executar distribuições em massa do Windows (normalmente centenas de computadores) em ambientes corporativos é baseada na técnica de clonagem de disco. Um administrador de sistema instala o sistema operacional base e o software complementar usado na empresa em um computador modelo. Depois de configurar a máquina para operação na rede da empresa, ferramentas automatizadas de duplicação de disco ou sistema (como o Ghost daSymantec, o Image Drive do PowerQuest e o Altiris'RapiDeploy) são usadas para copiar as unidades docomputador modelo para dezenas ou centenas de computadores. Esses clones recebem ajustes finais, como a atribuição de nomes exclusivos, e depois são usados pelos funcionários da empresa.
Outra maneira popular de implantação é usando o utilitário Microsoft sysdiff (parte do Windows Resource Kit). Esta ferramenta requer que o administrador do sistema execute uma instalação completa (geralmente uma instalação autônoma com script) em cada computador e, em seguida , o sysdiff automatiza a aplicação de imagens de instalação de software complementar.
Como a instalação é ignorada e como a cópia do setor de disco é mais eficiente do que a cópia de arquivos, uma distribuição baseada em clonagem pode economizar dezenas de horas em uma instalação de sysdiff comparável. Além disso, o administrador do sistema não precisa aprender a usar a instalação autônoma ou sysdiff, ou criar e depurar scripts de instalação. Só isso economiza horas de trabalho.
O problema com a clonagem é que ela só é suportada pela Microsoft em um sentido muito limitado. A Microsoft afirmou que a clonagem de sistemas só é suportada se for feita antes da parte GUI da Instalação do Windows ter sido atingida. Quando a instalação atinge este ponto, o computador recebe um nome e um SID de computador exclusivo. Se um sistema for clonado após esta etapa, todas as máquinas clonadas terão SIDs de computador idênticos. Observe que apenas alterar 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 SID do domínio se o computador tiver sido associado anteriormente a um domínio.
Para entender o problema que a clonagem pode causar, primeiro é necessário entender como contas locais individuais em um computador recebem SIDs. Os SIDs das contas locais consistem no SID do computador e em um RID (Identificador Relativo) anexado. O RID começa em um valor fixo e é aumentado em um para cada conta criada. Isso significa que a segunda conta em um computador, por exemplo, receberá o mesmo RID que a segunda conta em um clone. O resultado é que ambas as contas têm o mesmo SID.
SIDs duplicados não são um problema em um ambiente baseado em domínio, uma vez que as contas de domínio têm SIDs baseados no SID de domínio. Mas, de acordo com o artigo Q162001 da Base de Dados de Conhecimento Microsoft, "Do Not Disk Duplicate Installed Versions of Windows NT", em um ambiente de grupo de trabalho, a segurança é baseada em SIDs de conta local. Assim, se dois computadores tiverem usuários com o mesmo SID, o grupo de trabalho não será capaz de distinguir entre os usuários. Todos os recursos, incluindo arquivos e chaves do Registro, que um usuário tem acesso, o outro também.
Outra instância em que SIDs duplicados podem causar problemas é quando há mídia removível formatada com NTFS e atributos de segurança de conta local são aplicados a arquivos e diretórios. Se essa mídia for movida para um computador diferente que tenha o mesmo SID, as contas locais que, de outra forma, não seriam capazes de acessar os arquivos poderão ser capazes se seus IDs de conta corresponderem aos dos atributos de segurança. Isso não é possível se os computadores tiverem SIDs diferentes.
Um artigo que Mark escreveu, intitulado "NT Rollout Options", foi publicado na edição de junho da Windows NT Magazine. Ele discute a questão do SID duplicado com mais detalhes e apresenta a posição oficial da Microsoft sobre clonagem. Para ver se você tem um problema de SID duplicado em sua rede, use PsGetSid para exibir SIDs de máquina.
NewSID é um programa que desenvolvemos para alterar 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 ser executado. Tem duas funções: alterar o SID e alterar o nome do computador.
Para usar a opção de execução automática do NewSID, especifique "/a" na linha de comando. Você também pode direcioná-lo para alterar automaticamente o nome do computador incluindo o novo nome após a opção "/a". Por exemplo:
newsid /a [novonome]
Teria NewSID executado sem avisar, alterar o nome do computador para "newname" e tê-lo reiniciar o computador se tudo correr bem.
Nota: Se o sistema no qual você deseja executar NewSID estiver executando IISAdmin, você deve parar o serviço IISAdmin antes de executar NewSID. Use este comando para parar o serviço IISAdmin: net stop iisadmin /y
Recurso de sincronização de SID do NewSID que permite especificar que, em vez de gerar um aleatoriamente, o novo SID deve ser obtido de um computador diferente. Essa funcionalidade torna possível 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 ele ter o mesmo SID de computador que os outros Controladores de Domínio (DCs). Basta escolher o botão "Sincronizar SID" e digitar o nome do computador de destino. Você deve ter permissões para alterar as configurações de segurança das chaves do Registro do computador de destino, o que normalmente significa que você deve estar conectado como administrador de domínio para usar esse recurso.
Observe que quando você executa NewSID que o tamanho do Registro irá crescer, portanto, certifique-se de que o tamanho máximo do Registro irá acomodar o crescimento. Descobrimos que esse crescimento não tem impacto percetível no desempenho do sistema. A razão pela qual o Registro cresce é que ele se torna fragmentado à medida que as configurações de segurança temporárias são aplicadas pelo NewSID. Quando as configurações são removidas, o Registro não é compactado.
Importante: Observe que, embora tenhamos testado exaustivamente o NewSID, você deve usá-lo por sua conta e risco. Tal como acontece com qualquer software que altera as configurações de arquivo e Registro, é altamente recomendável que você faça backup completo do seu computador antes de executar NewSID.
Aqui estão as etapas que você deve seguir quando quiser mover um BDC de um domínio para outro:
- Inicialize o BDC que deseja mover e faça login. Use NewSID para sincronizar o SID do BDC com o PDC do domínio para o qual você deseja mover o BDC.
- Reinicialize o sistema para o qual você alterou o SID (o BDC). Como o domínio ao qual o BDC agora está associado já tem um PDC ativo, ele será inicializado como um BDC em seu novo domínio.
- O BDC aparecerá como uma estação de trabalho no Gerenciador do Servidor, portanto, use o botão "Adicionar ao domínio" para adicionar o BDC ao seu novo domínio. Certifique-se de especificar o botão de opção BDC ao adicionar.
NewSID começa lendo o SID do computador existente. O SID de um computador é armazenado no hive SECURITY do Registro em SECURITY\SAM\Domains\Account. Essa 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 nele no final de seus dados. NewSID garante que este SID está em um formato padrão (3 subautoridades de 32 bits precedidas por três campos de autoridade de 32 bits).
Em seguida, NewSID gera um novo SID aleatório para o computador. A geração do NewSID se esforça muito para criar um valor de 96 bits verdadeiramente aleatório, que substitui os 96 bits dos 3 valores de subautoridade que compõem um SID de computador.
Seguem-se três fases para a substituição do SID do computador. Na primeira fase, as hives SECURITY e SAM Registry são verificadas em busca de ocorrências do SID do computador antigo em valores de chave, bem como os nomes das chaves. Quando o SID é encontrado em um valor, ele é substituído pelo novo SID do computador e, quando o SID é encontrado em um nome, a chave e suas subchaves são copiadas para uma nova subchave 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. Chaves de registro e arquivos NTFS têm segurança associada a eles. Os descritores de segurança consistem em uma entrada que identifica qual conta possui o recurso, qual grupo é o proprietário principal do grupo, uma lista opcional de entradas que especificam ações permitidas por usuários ou grupos (conhecida como Lista de Controle de Acesso Discricionário - DACL) e uma lista opcional de entradas que especificam quais ações executadas por determinados usuários ou grupos gerarão entradas no Log de Eventos do sistema (Lista de Controle de Acesso do Sistema - SACL). Um usuário ou um grupo é identificado nesses descritores de segurança com seus SIDs e, como afirmei anteriormente, as contas de usuário locais (além das contas internas, como Administrador, Convidado e assim por diante) têm 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 arquivos do sistema de arquivos NTFS no computador. Cada descritor de segurança é verificado em busca de ocorrências do SID do computador. Quando NewSID encontra um, ele o substitui pelo novo SID do computador.
A segunda parte das atualizações do descritor de segurança é executada no Registro. Primeiro, o NewSID deve certificar-se de que verifica todas as colmeias, não apenas aquelas que estão carregadas. Cada conta de usuário tem uma seção do Registro que é carregada como HKEY_CURRENT_USER quando o usuário está conectado, mas permanece no disco no diretório de perfil do usuário quando não está. NewSID identifica os locais de todos os locais de hive do usuário enumerando a chave HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList , que aponta para os diretórios nos quais eles estão armazenados. Em seguida, ele os carrega no Registro usando RegLoadKey em HKEY_LOCAL_MACHINE e verifica todo o Registro, examinando cada descritor de segurança em busca do SID do computador antigo. As atualizações são executadas da mesma forma que para os arquivos e, quando o NewSID é feito, o usuário carrega as seções carregadas. Como etapa final, o NewSID verifica a chave HKEY_USERS , que contém a seção do usuário conectado no momento, bem como o . Colmeia padrão. Isso é necessário porque um hive não pode ser carregado duas vezes, portanto, o hive do usuário conectado não será carregado no HKEY_LOCAL_MACHINE quando o NewSID estiver carregando outros hives do usuário.
Finalmente, NewSID deve atualizar as subchaves ProfileList para fazer referência aos novos SIDs de conta. Esta etapa é necessária para que o Windows NT associe corretamente perfis com as contas de usuário depois que os SIDs de conta são alterados para refletir o novo SID do computador.
NewSID garante que ele pode acessar e modificar todos os arquivos e chaves do Registro no sistema, dando-se os seguintes privilégios: Sistema, Backup, Restaurar e Assumir a Propriedade.