NEWSID v4.10
Por Mark Russinovich
Fecha de publicación: 1 de noviembre de 2006
Nota: NewSID se ha retirado y ya no está disponible para su descarga. Consulte la entrada de blog de Mark Russinovich: NewSID Retirement and the Machine SID Duplication Myth
Con respecto a los SID, Microsoft no admite imágenes preparadas con NewSID, solo se admiten imágenes preparadas mediante SysPrep. Microsoft no ha probado NewSID para todas las opciones de clonación de implementación.
Para obtener más información sobre la directiva oficial de Microsoft, consulte el siguiente artículo de Knowledge Base:
Muchas organizaciones usan la clonación de imágenes de disco para realizar lanzamientos masivos de Windows. Esta técnica implica copiar los discos de un equipo Windows totalmente instalado y configurado en las unidades de disco de otros equipos. Estos otros equipos parecen haber pasado por el mismo proceso de instalación y están disponibles inmediatamente para su uso.
Aunque este método ahorra horas de trabajo y molestias en otros enfoques de lanzamiento, tiene el problema principal que cada sistema clonado tiene un identificador de seguridad de equipo (SID) idéntico. Este hecho pone en peligro la seguridad en entornos de grupo de trabajo y la seguridad de medios extraíbles. También se puede poner en peligro en redes con varios SID de equipo idénticos.
La demanda de la comunidad de Windows ha llevado a varias empresas a desarrollar programas que pueden cambiar el SID de un equipo después de clonar un sistema. Sin embargo, SID Changer de Symantec y Ghost Walker de Symantec solo se venden como parte del producto de gama alta de cada empresa. Además, ambos se ejecutan desde un símbolo del sistema de DOS (el cambiador de Altiris es similar a NewSID).
NewSID es un programa que hemos desarrollado que cambia el SID de un equipo. Es gratuito y es un programa Win32, lo que significa que se puede ejecutar fácilmente en sistemas que se han clonado previamente.
Lea este artículo completo antes de usar este programa.
Información de versión:
- La versión 4.0 presenta compatibilidad con Windows XP y .NET Server, una interfaz de estilo de asistente que permite especificar el SID que desea aplicar, la compactación del Registro y también la opción de cambiar el nombre de un equipo (lo que da como resultado un cambio de los nombres NetBIOS y DNS).
- La versión 3.02 corrige un error en el que NewSid no copiaba correctamente los valores predeterminados con tipos de valor no válidos al cambiar el nombre de una clave con un SID antiguo a un nuevo SID. NT realmente hace uso de estos valores no válidos en determinados momentos en el SAM. El síntoma de este error eran mensajes de error que notifican el acceso denegado cuando un usuario autorizado actualizaba la información de la cuenta.
- La versión 3.01 agrega una solución alternativa para una clave del Registro inaccesible creada por Microsoft Transaction Server. Sin la solución alternativa, NewSID dejaría de funcionar prematuramente.
- La versión 3.0 presenta una característica de sincronización de SID que dirige a NewSID para obtener un SID que se aplique desde otro equipo.
- La versión 2.0 tiene una opción de modo automatizado y también le permite cambiar el nombre del equipo.
- La versión 1.2 corrige un error que se introdujo en la versión 1.1 donde algunos descriptores de seguridad del sistema de archivos no se actualizaron.
- La versión 1.1 corrige un error relativamente menor que solo afectaba a determinadas instalaciones. También se ha actualizado para cambiar los SID asociados a la configuración de permisos de los recursos compartidos de archivos e impresoras.
Una de las formas más populares de realizar lanzamientos masivos de Windows (normalmente cientos de equipos) en entornos corporativos se basa en la técnica de clonación de discos. Un administrador del sistema instala el sistema operativo base y el software de complemento que se usa en la empresa en un equipo de plantilla. Después de configurar la máquina para su funcionamiento en la red de la empresa, se usan herramientas automatizadas de duplicación de disco o sistema (como Ghost de Symantec, Image Drive de PowerQuest y RapiDeploy de Altiris) para copiar las unidades del equipo de plantilla en decenas o cientos de equipos. A continuación, estos clones reciben retoques finales, como la asignación de nombres únicos y, a continuación, los usan los empleados de la empresa.
Otra forma popular de lanzamiento es usar la utilidad sysdiff de Microsoft (parte del Kit de recursos de Windows). Esta herramienta requiere que el administrador del sistema realice una instalación completa (normalmente una instalación desatendida con script) en cada equipo y, a continuación, sysdiff automatiza la aplicación de imágenes de instalación de software de complemento.
Dado que se omite la instalación y, dado que la copia del sector de disco es más eficaz que la copia de archivos, un lanzamiento basado en clonación puede ahorrar decenas de horas en comparación con una instalación de sysdiff. Además, el administrador del sistema no tiene que aprender a usar la instalación desatendida o sysdiff, ni crear y depurar scripts de instalación. Esto por sí solo ahorra horas de trabajo.
El problema con la clonación es que solo es compatible con Microsoft en un sentido muy limitado. Microsoft ha indicado que los sistemas de clonación solo se admiten si se realizan antes de que se haya alcanzado la parte de la GUI del programa de instalación de Windows. Cuando la instalación llega a este punto, se le asigna un nombre y un SID de equipo único. Si un sistema se clona después de este paso, las máquinas clonadas tendrán el mismo SID de equipo. Tenga en cuenta que simplemente cambiar el nombre del equipo o agregar el equipo a otro dominio no cambia el SID de equipo. Al cambiar el nombre o dominio solo se cambia el SID de dominio si el equipo estaba asociado anteriormente a un dominio.
Para comprender el problema que puede causar la clonación, primero es necesario comprender cómo se asignan los SID a las cuentas locales individuales de un equipo. Los SID de las cuentas locales constan del SID de equipo y un RID anexado (identificador relativo). El RID inicia con un valor fijo y aumenta uno para cada cuenta creada. Esto significa que la segunda cuenta de un equipo, por ejemplo, recibirá el mismo RID que la segunda cuenta en un clon. El resultado es que ambas cuentas tienen el mismo SID.
Los SID duplicados no son un problema en un entorno basado en dominio, ya que las cuentas de dominio tienen SID basados en el SID de dominio. Pero, según el artículo de Microsoft Knowledge Base Q162001, "No duplicar los discos en versiones instaladas de Windows NT", en un entorno de grupo de trabajo, la seguridad se basa en SID de cuenta local. Por lo tanto, si dos equipos tienen usuarios con el mismo SID, el grupo de trabajo no podrá distinguir entre los usuarios. Todos los recursos, incluidos los archivos y las claves del Registro, a los que un usuario tiene acceso, el otro también lo hará.
Otra instancia en la que los SID duplicados pueden causar problemas es donde hay medios extraíbles con formato NTFS y los atributos de seguridad de la cuenta local se aplican a archivos y directorios. Si este tipo de medio se mueve a un equipo diferente que tiene el mismo SID, las cuentas locales que, de lo contrario, no podrían tener acceso a los archivos, podrían ser capaces de acceder si sus identificadores de cuenta coinciden con los de los atributos de seguridad. Esto no es posible si los equipos tienen SID diferentes.
Un artículo que Mark ha escrito, titulado "NT Rollout Options", se publicó en la edición de junio de Windows NT Magazine. Trata con más detalle el problema de SID duplicado y presenta la postura oficial de Microsoft sobre la clonación. Para ver si tiene un problema de SID duplicado en la red, use PsGetSid para mostrar los SID de la máquina.
NewSID es un programa que hemos desarrollado para cambiar el SID de un equipo. Primero genera un SID aleatorio para el equipo y continúa actualizando las instancias del SID de equipo existente que encuentra en el Registro y en los descriptores de seguridad de archivos, y reemplaza las repeticiones por el nuevo SID. NewSID requiere privilegios administrativos para ejecutarse. Tiene dos funciones: cambiar el SID y cambiar el nombre del equipo.
Para usar la opción de ejecución automática de NewSID, especifique "/a" en la línea de comandos. También puede dirigirlo para cambiar automáticamente el nombre del equipo incluyendo el nuevo nombre después del modificador "/a". Por ejemplo:
newsid /a [newname]
Si NewSID se ejecuta sin preguntar, cambie el nombre del equipo a "newname" y haga que reinicie el equipo si todo va bien.
Nota: Si el sistema en el que desea ejecutar NewSID ejecuta IISAdmin, debe detener el servicio IISAdmin antes de ejecutar NewSID. Use este comando para detener el servicio IISAdmin: net stop iisadmin /y
Característica de sincronización de SID de NewSID que permite especificar que, en lugar de generar uno de forma aleatoria, el nuevo SID se debe obtener de un equipo diferente. Esta funcionalidad permite mover un controlador de dominio de copia de seguridad (BDC) a un nuevo dominio, ya que la relación de un BDC con un dominio se identifica con el mismo SID de equipo que los demás controladores de dominio (DC). Simplemente elija el botón "Sincronizar SID" y escriba el nombre del equipo de destino. Debe tener permisos para cambiar la configuración de seguridad de las claves del Registro del equipo de destino, lo que normalmente significa que debe iniciar sesión como administrador de dominio para usar esta característica.
Tenga en cuenta que, al ejecutar NewSID, aumentará el tamaño del Registro, por lo que asegúrese de que el tamaño máximo del Registro se adapte al crecimiento. Hemos descubierto que este crecimiento no tiene ningún impacto perceptible en el rendimiento del sistema. La razón por la que crece el Registro es que se fragmenta a medida que NewSID aplica la configuración de seguridad temporal. Cuando se quita la configuración, el Registro no se compacta.
Importante: Tenga en cuenta que, aunque hemos probado exhaustivamente NewSID, debe usarlo bajo su propio riesgo. Al igual que con cualquier software que cambie la configuración del archivo y del Registro, se recomienda encarecidamente realizar una copia de seguridad completa del equipo antes de ejecutar NewSID.
Estos son los pasos que debe seguir cuando quiera mover un BDC de un dominio a otro:
- Arranque el BDC que desea mover e inicie sesión. Use NewSID para sincronizar el SID del BDC con el PDC del dominio al que desea mover el BDC.
- Reinicie el sistema para el que cambió el SID (el BDC). Puesto que el dominio al que el BDC ya está asociado ya tiene un PDC activo, arrancará como un BDC en su nuevo dominio.
- El BDC se mostrará como una estación de trabajo en Administrador del servidor, por lo que deberá usar el botón "Agregar al dominio" para agregar el BDC a su nuevo dominio. Asegúrese de especificar el botón de radio BDC al agregar.
NewSID comienza leyendo el SID de equipo existente. El SID de un equipo se almacena en el subárbol SECURITY del Registro en SECURITY\SAM\Domains\Account. Esta clave tiene un valor denominado F y un valor denominado V. El valor V es un valor binario que tiene el SID de equipo insertado en él al final de sus datos. NewSID garantiza que este SID está en un formato estándar (3 subautoridades de 32 bits precedidas de tres campos de autoridad de 32 bits).
A continuación, NewSID genera un nuevo SID aleatorio para el equipo. La generación de NewSID tarda mucho en crear un valor de 96 bits realmente aleatorio, que reemplaza los 96 bits de los 3 valores de subautoridad que componen un SID de equipo.
A continuación, se siguen tres fases de reemplazo del SID de equipo. En la primera fase, los subárboles del Registro SECURITY y SAM se examinan en busca de repeticiones del SID de equipo antiguo en los valores de clave, así como los nombres de las claves. Cuando el SID se encuentra en un valor, se reemplaza por el nuevo SID de equipo y, cuando se encuentra el SID en un nombre, la clave y sus subclaves se copian en una nueva subclave que tiene el mismo nombre, excepto por el nuevo SID que reemplaza al antiguo.
Las dos fases finales implican la actualización de descriptores de seguridad. Las claves del Registro y los archivos NTFS tienen seguridad asociada. Los descriptores de seguridad constan de una entrada que identifica qué cuenta posee el recurso, qué grupo es el propietario del grupo principal, una lista opcional de entradas que especifican las acciones permitidas por usuarios o grupos (conocidos como lista de control de acceso discrecional: DACL) y una lista opcional de entradas que especifican qué acciones que realizan determinados usuarios o grupos generarán entradas en el registro de eventos del sistema (lista de control de acceso del sistema: SACL). Un usuario o un grupo se identifica en estos descriptores de seguridad con sus SID y, como se indicó anteriormente, las cuentas de usuario locales (distintas de las cuentas integradas, como administrador, invitado, etc.) tienen sus SID formados por el SID de equipo más un RID.
La primera parte de las actualizaciones del descriptor de seguridad se produce en todos los archivos del sistema de archivos NTFS del equipo. Cada descriptor de seguridad se examina en busca de repeticiones del SID de equipo. Cuando NewSID encuentra uno, lo reemplaza por el nuevo SID de equipo.
La segunda parte de las actualizaciones del descriptor de seguridad se realiza en el Registro. En primer lugar, NewSID debe asegurarse de que examina todos los subárboles, no solo los que se cargan. Cada cuenta de usuario tiene un subárbol del Registro que se carga como HKEY_CURRENT_USER cuando el usuario ha iniciado sesión, pero permanece en el disco del directorio de perfiles del usuario cuando no lo está. NewSID identifica las ubicaciones de todas las ubicaciones de subárbol de usuario enumerando la clave HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList, que apunta a los directorios en los que se almacenan. A continuación, los carga en el Registro mediante RegLoadKey en HKEY_LOCAL_MACHINE y examina todo el Registro, examinando cada descriptor de seguridad en la búsqueda del SID de equipo antiguo. Las actualizaciones se realizan igual que para los archivos y, cuando finaliza, NewSID descarga los subárboles de usuario que ha cargado. Como último paso, NewSID examina la clave HKEY_USERS, que contiene el subárbol del usuario que ha iniciado sesión actualmente, así como el subárbol .Default. Esto es necesario porque un subárbol no se puede cargar dos veces, por lo que el subárbol del usuario que ha iniciado sesión no se cargará en HKEY_LOCAL_MACHINE cuando NewSID cargue otros subárboles de usuario.
Por último, NewSID debe actualizar las subclaves ProfileList para hacer referencia a los nuevos SID de cuenta. Este paso es necesario para que Windows NT asocie correctamente los perfiles a las cuentas de usuario después de cambiar los SID de la cuenta para reflejar el nuevo SID de equipo.
NewSID garantiza que pueda acceder a todos los archivos y claves del Registro del sistema y modificarlos, ya que se concede a sí mismo los siguientes privilegios: Sistema, Copia de seguridad, Restauración y Toma de posesión.