¿Qué hace la configuración de registro EnableLinkedConnections a nivel técnico?

15

Nota: el problema básico para mí es poder acceder a un recurso compartido de red que yo (usuario administrador de Win 7) configuré cuando ejecuto un programa elevado. Normalmente, el programa elevado no tendrá acceso a mis recursos compartidos de red no elevados.

Según Microsoft, la configuración de registro EnableLinkedConnections permitirá que los procesos elevados accedan al recurso compartido de red del proceso de explorador actualmente conectado (no elevado).

Esta explicación tiene sentido:

[...] Cuando es miembro del grupo de Administradores e inicia sesión, UAC transfiere su cuenta a un usuario no privilegiado. Este contexto de ejecución está completamente separado del contexto que obtiene cuando hace clic con el botón derecho en Símbolo del sistema y se inicia como administrador. Como probablemente habrá notado, las unidades de red conectadas en un contexto no son visibles en el otro. [...]

Este hilo del foro pregunta sobre las vulnerabilidades abiertas por esta configuración. La respuesta proporciona enlaces a un artículo sobre cómo deshabilitar las indicaciones de UAC (o eso entiendo).

La pregunta ahora es, ¿qué hace el ajuste del registro EnableLinkedConnections no o permiten en un sistema Windows 7, ya que estamos no se ejecuta en un entorno de dominio .


Editar: Una cosa que me interesa específicamente es si esta configuración solo afecta la (visibilidad de) las unidades de red o si tiene otras implicaciones.

Martín
fuente
Esta otra pregunta relacionada con ELC no funciona en algunos casos: serverfault.com/questions/780639/…
UuDdLrLrSs

Respuestas:

18

Al no tener acceso a la fuente de Windows, es difícil decir algo que no sea especulación. Dejando de lado ese descargo de responsabilidad, esto es lo que he podido deducir leyendo esto:

UAC crea dos tokens de seguridad en el inicio de sesión: el token elevado que contiene las membresías de grupo completas del usuario y el token restringido que tiene la membresía del grupo "Administradores" despojado. Cada token contiene un ID único localmente distinto (LUID) que identifica la sesión de inicio de sesión. Son dos sesiones de inicio de sesión separadas y distintas.

A partir de Windows 2000 Server SP2, las unidades asignadas (que se representan como enlaces simbólicos en el espacio de nombres del administrador de objetos) se etiquetan con el LUID del token que las creó (puede encontrar algunas referencias de Microsoft a este comportamiento en este artículo de KBase , y puede Obtenga más información sobre la mecánica de la función en esta publicación de blog ). La esencia de la función es que las unidades mapeadas creadas por una sesión de inicio de sesión no son accesibles para otra sesión de inicio de sesión.

Establecer el valor EnableLinkedConnections activa un comportamiento en el servicio LanmanWorkstation y el subsistema de seguridad LSA (LSASS.EXE) para hacer que LSA copie unidades mapeadas por cualquiera de los tokens de los usuarios en el contexto del otro token. Esto permite que las unidades mapeadas con el token elevado sean visibles para el token restringido y el inverso. No hay ninguna peculiaridad en el comportamiento de esta característica con respecto a un entorno de dominio versus no dominio. Si sus usuarios se ejecutan con cuentas de "Administrador" en un entorno que no es de dominio, sus tokens restringidos y tokens elevados, por defecto, tendrán asignaciones de unidades independientes.

En términos de vulnerabilidad, parece que falta documentación oficial de Microsoft. Encontré un comentario y una respuesta de un empleado de Microsoft preguntando sobre las posibles vulnerabilidades en una conversación sobre UAC de 2007. Dado que la respuesta proviene de Jon Schwartz, quien, en ese momento, se titulaba "Arquitecto UAC", tienden a considerar que su respuesta tiene credibilidad. Aquí está la esencia de su respuesta a la siguiente consulta: "... No he encontrado ninguna información para describir lo que realmente está sucediendo técnicamente o si esto abre algún tipo de lagunas UAC. ¿Puede comentar?"

Técnicamente, abre un pequeño vacío ya que el malware no elevado ahora puede "pre-sembrar" una letra de unidad + mapeo en el contexto elevado, lo que debería ser de bajo riesgo a menos que termine con algo específicamente diseñado para su entorno.

Personalmente, no puedo pensar en una forma de "explotar" esta laguna, en la medida en que "sembrar" el token elevado con un mapeo de unidades aún requeriría que el usuario realmente eleve y ejecute algo malicioso a partir de ese mapeo de unidades "sembradas". Sin embargo, no soy un investigador de seguridad, y es posible que no me esté acercando a esto con una buena mentalidad para encontrar posibles hazañas.

He esquivado el uso del valor EnableLinkedConnections en los sitios de mis Clientes al continuar la tendencia que comenzamos cuando los Clientes comenzaron a implementar Windows NT 4.0: hacer que los usuarios inicien sesión con cuentas de usuario limitadas. Eso funcionó bien para nosotros durante años y continúa funcionando bien en Windows 7.

Evan Anderson
fuente
RE: "He eludido el uso del valor EnableLinkedConnections ... [haciendo] que los usuarios inicien sesión con cuentas de usuario limitadas". - ¿Pueden las cuentas de usuario limitadas ejecutar aplicaciones como administrador? Pensé que no podían. (Si no pueden, entonces no veo cómo esto esquiva el problema; quiero decir, si me quejara a un mecánico de que el motor de mi automóvil chirría cuando conduzco 80 mph, no aceptaría la solución de él aplanar mis llantas [aunque haría imposible conducir 80 mph, no solucionaría el problema real].)
BrainSlugs83
1
@ BrainSlugs83 - Te estás fijando en un comentario en un pequeño párrafo de una respuesta larga. La respuesta le dio al OP lo que querían (supongo, ya que aceptaron): una descripción de lo que hace el valor del registro. Hice ese comentario casual para decirle al OP que hay una manera de evitar la necesidad de usar EnableLinkedConnections, simplemente no les dé a los usuarios cuentas de Administrador y se alivia la necesidad. Es 2013: las cuentas de usuario limitadas han sido el consejo de Microsoft durante casi 10 años. Su analogía de automóvil / mecánico es tensa, en mi opinión. Este no es un "problema" con el sistema operativo, es una característica de seguridad.
Evan Anderson
Oh, estoy absolutamente obsesionada; También en caso de que hubiera alguna confusión: no estoy argumentando que su respuesta es incorrecta. Fue muy bueno, ¡incluso lo voté! - Pero estoy resolviendo un problema muy real que tengo, por lo tanto, la pregunta que le planteé para determinar si esta solución alternativa me funcionaría o no: "¿pueden las cuentas de usuario limitadas ejecutar aplicaciones como administrador?" ; De su respuesta deduzco que mi suposición inicial era correcta.
BrainSlugs83
Además, estoy totalmente en desacuerdo con que la analogía es exagerada. Quitar la capacidad de ejecutar aplicaciones como administrador sería completamente similar a darle un pinchazo a mi computadora. Tengo un proyecto de Microsoft Visual Studio que no se compila durante la fase de firma de código si Visual Studio no se inicia con "Ejecutar como administrador". He intentado solucionar este problema, pero no he encontrado ninguna solución, ya sea en google, blogs o desbordamiento de pila (esto no es un incidente aislado). La capacidad de ejecutar aplicaciones como administrador es imprescindible para algunos usuarios (incluso cuando solo se utiliza el software de Microsoft).
BrainSlugs83
3
Si necesita ejecutar aplicaciones como administrador, le recomiendo tener una segunda cuenta de usuario y usarla para ejecutar la aplicación elevada con "Ejecutar como administrador". Esa es la única opción que veo. Si la aplicación no funciona correctamente con "Ejecutar como", la aplicación está defectuosa. (También argumentaría que cualquier aplicación que requiera derechos de administrador y no sea una aplicación de administración de red o computadora también es defectuosa, software MSFT o no). Considero que el software defectuoso es uno de los aspectos más frustrantes de mi trabajo, así que También puedo entender tu frustración. Desearía que hubiera una buena solución.
Evan Anderson
1

En pocas palabras, vincula sus credenciales de superusuario con sus credenciales normales. Por supuesto, es más complejo, pero básicamente, incluso su cuenta de "administrador" en Windows 7 no es un administrador, sino que necesita hacer el equivalente de SUDO en Linux para realizar una multitud de operaciones. Cuando asigna una unidad de red, debe hacer esto, pero la unidad de red solo se asigna para el superusuario, no para el usuario normal. Esta configuración de registro vincula las credenciales de superusuario con las estándar con el fin de unidades mapeadas. De esta manera, ambos pueden acceder a la unidad asignada en lugar de solo al superusuario.

MaQleod
fuente
¿Podría aclarar si esta configuración de hecho solo afecta a las unidades de red? ¿O tiene algún otro efecto? (ver q editar)
Martin