sábado, diciembre 05, 2009

Control de Cuentas de Usuario (I de VI)

************************************************************************************************
- Control de Cuentas de Usuario (I de VI)
- Control de Cuentas de Usuario (II de VI)
- Control de Cuentas de Usuario (III de VI)
- Control de Cuentas de Usuario (IV de VI)
- Control de Cuentas de Usuario (V de VI)
- Control de Cuentas de Usuario (VI de VI)
************************************************************************************************

El User Account Control [UAC] o Control de Cuentas de Usuario, es una de las mejores funcionalidades que trae Windows para proteger los privilegios de los administradores y, sin embargo, es de las que más pena me da escuchar a hablar. Informáticos de pro hablando mal de esta característica, técnicos de sistemas malentendiendo su funcionamiento, cayendo en el chascarrillo fácil y la simplificación de la tecnología. Me apena y me entristece. Durante esta gira de Lanzamiento de Windows 7 he tenido la suerte de poder explicar un poco en detalle cómo funciona el UAC en Windows Vista y en Windows 7 y, tras haber sido la sesión mejor valorada de toda la gira, creo que por lo menos me llevo la satisfacción de haber explicado un poco más esta funcionalidad.

Sin embargo, durante la ejecución de la gira, mi amigo “Pajarraco” de los Santos decidió, tras llevar alrededor de cuatro meses usando Windows, escribir los que para mí son los peores artículos que ha escrito él en mucho tiempo en Una-al-día, sobre todo cuando él mismo tiene una visión favorable a UAC que no veo bien reflejada en sus artículos.

Vaya por delante que Una-al-día ha sido mi mentora y tutora en el mundo de la seguridad informática, y que, tras alrededor de 10 años suscrito a la newsletter soy capaz, casi con total éxito de reconocer un texto de Bernardo Quintero, Antonio Ropero, Laboratorioman y “Pajarraco” de los Santos solo con leer el primer párrafo, algunas hasta con el título.

Sin embargo, los artículos del UAC escritos por “Pajarraco” reflejan un punto de vista con respecto al UAC totalmente desprovisto de los tecnicismos y las arduas explicaciones técnicas. Los dos primeros me parecen directamente mal explicados, mal comparados con las tecnologías de otros sistemas operativos e incluso menospreciantes en los conceptos novedosos que en sí que aporta UAC.

El tercero, tras largas conversaciones telefónicas entre él y yo, “Pajarraco” sabe perfectamente que le voy a llamar después de escribir algo así, publicó una tercera parte en la que intentaba matizar algunos detalles para aquellos que como yo no lo veíamos tan claro, como la aplicación del principio del Mínimo Privilegio Posible, algo, que guía la construcción de UAC desde su inicio y que intentar explicar esta tecnología sin hablar de él es imposible o erróneo.

- Mitos y leyendas: UAC, ese gran incomprendido I (Introducción)
- Mitos y leyendas: UAC, ese gran incomprendido II (UAC de forma útil)
- Mitos y leyendas: UAC, ese gran incomprendido III (UAC y la ley del mínimo privilegio)

Sin más preámbulo, y si ya te has leído la serie de artículos sobre UAC que escribió mi amigo “Pajarraco” de los Santos, vamos a empezar con esta serie.

Fortificar u Optimizar

Siempre que intento explicar este concepto me gusta hablar de la diferencia entre Optimizar y Fortificar un sistema. Son dos procesos que muchas veces nos caen a los consultores informáticos y que tienen dos aproximaciones de trabajo totalmente diferentes.

La optimización no es un proceso que se pueda hacer de fábrica, no es algo que pueda venir out-of-the-box. El método de optimización debe generar los mejores parámetros de configuración de un sistema para conseguir el máximo rendimiento pero éstos siempre van a depender de la carga y uso que se le dé al sistema. Es por eso que de fábrica los equipos vienen con unos parámetros por defectos pensados para ser los que mejor funcionan en la mayoría de los casos. Nada más instalar un Windows Vista o un Windows 7 ponerse a tocar servicios y valores va en contra de su rendimiento y muchos de los que intentan tunearlo al igual que se hacía con Windows XP suelen cepillarse el rendimiento del sistema más que arreglarlo. Sólo se puede optimizar un sistema después de un análisis de la carga de trabajo del mismo y para ello Windows Vista y Windows 7 ya traen sus mecanismos.

La fortificación, por el contrario, es un proceso que depende del rol del sistema. El rol a un sistema se le asigna antes de ponerlo en producción por lo que la Fortificación sí es un proceso que puede hacerse antes. Así, los sistemas Microsoft, por defecto, desde la TCI, aplican la fortificación por defecto y es labor del administrador del sistema configurar los roles y bajar los controles de seguridad lo justo y necesario para que funcione el rol que va a recibir este sistema.

Decía Andrew S. Tanenbaum que la única manera de tener un sistema seguro es metiéndolo dentro de una caja fuerte y tirando la llave dentro y esa es más o menos la idea de la fortificación, sólo que hemos de abrir la caja fuerte un poco, pincharle un cable de red y dejar que entre y salga el tráfico justo para que cumpla con sus funciones.

Principios de la Foritificación de Sistemas

Para ello se aplican tres principios fundamentales:

- Defensa en Profundidad [DP]: Este axioma dice que un sistema debe aplicar tantas medidas de seguridad como sea posible teniendo en cuenta que las medidas de seguridad de las capas adyacentes pueden haber sido comprometidas siempre y cuando la aplicación de una medida no anule la aplicación de otra y que el sistema siga ofertando su servicio. Si pones un IDS de red y luego cifras con IPSEC una medida de seguridad ha sido anulada y sería un mal diseño de defensa en profundidad. Si pones muchas medidas de seguridad y resulta que no se cumplen los objetivos del servicio, es decir, el servicio se ve deteriorado en sus principios básicos, tampoco será una opción viable. Por último, en un mundo ideal no hay dinero o este es del monopoli, pero en la realidad la aplicación de la regla de Defensa en profundidad se verá afectada también por la pasta que se tenga.

- Mínimo Punto de Exposición [MPE]: Un sistema debe ejecutar sólo y exclusivamente los componentes necesarios para el cumplimiento funcional de su rol. Es decir, es de cajón que un servidor, si no necesita dar servicio de Webdav no tiene porque tener este servicio en ejecución, ni publicado a internet y ni aceptar peticiones. Así, cuando se pone en producción una máquina hay que ver cuáles son sus roles y cuáles los componentes que se necesitan. Desde Windows Server 2003 R2 todos los servidores de Microsoft son role-oriented.

- Mínimo Privilegio Posible [MPP]: Cada uno de los componentes necesarios para la ejecución de un rol debe ejecutarse con el número de privilegios justos para ello. No menos, porque entonces no funcionaría el sistema, no más porque entonces se está subiendo el riesgo. Esto en sistemas Windows XP fue una crítica constante, y con razón, de porque un servicio de red debía correr con una cuenta tan privilegiada en el sistema que pudiera hacer mil cosas. La pregunta es, ¿debería el bloc de notas correr con privilegios de administración? ¿incluso cuando lo ejecute el administrador? La respuesta, lógicamente, es que no, no debería. ¿Y si se necesitan de forma muy concreta para un caso muy concreto? Entonces que se haga de forma explícita en esta excepción.

Fortificar un sistema es aplicar DP, MPE y MPP a todos, absolutamente todos los componentes y procedimientos del sistema. Vamos a ver como lo aplica Windows 7 Windows Vista.

Mínimo Privilegio en Windows Vista y Windows 7

Este principio, dirigido desde la TCI [Trustworthy Computing Initiative] mediante el SDL [Secure Development Lifecycle] es aplicado en Windows Vista, y por tanto en Windows 7, desde la concepción del sistema operativo. Recordad que la reconstrucción del kernel de Longhorn bajo este nuevo prisma, impuesto por la TCI en el año 2002, obligó a rehacer los diseños y retrasar el lanzamiento de NT 6.0 un año.

Con esta nueva arquitectura del sistema llegaron los Niveles de Integridad aplicados por el MIC [Mandatory Integrity Control]. Esto se había demandado tiempo ha, ya que no todos los componentes tienen la misma importancia dentro del sistema operativo y, por tanto, parece lógico crear una serie de anillos de seguridad de tal manera que un componente que se ejecute en un nivel menos privilegiado no pueda manipular componentes corriendo en niveles más privilegiados.

Pero con este diseño también llegó UAC, nuestro querido amigo UAC, cuyo objetivo es que los privilegios de una cuenta estén protegidos directamente por el sistema operativo. Que sea el propio Windows quien haga un uso responsable de los privilegios que tiene una cuenta. Es decir, que por muchos privilegios que tena una cuenta, la ejecución de un comando desde una de esas cuentas sea aplicando el principio del MPP.

Así, el administrador de un sistema que ejecuta el bloc de notas podrá tener la seguridad de que su bloc de notas no le va a crear un usuario dentro del sistema operativo, le va a modificar el firewall, le va a lanzar un Shell fuera del sistema.

La diferencia es brutal y maravillosa en comparación con otras soluciones. Si en cualquier otro sistema entras como administrador y se hace un doble clic sobre un editor de texto, sólo con Windows Vista/Windows 7 y UAC estás seguro de que ese editor de textos no te va a crear un usuario en el sistema. En el resto de soluciones no tienes esa garantía.

************************************************************************************************
- Control de Cuentas de Usuario (I de VI)
- Control de Cuentas de Usuario (II de VI)
- Control de Cuentas de Usuario (III de VI)
- Control de Cuentas de Usuario (IV de VI)
- Control de Cuentas de Usuario (V de VI)
- Control de Cuentas de Usuario (VI de VI)
************************************************************************************************

26 comentarios:

Unam1 dijo...

Buen artículo, Chema.

Lamentablemente, esto del UAC no gusta a todo el mundo. Googleando "vista performance optimize uac", uno se encuentra perlas como ésta: http://www.webstuffscan.com/2007/09/28/how-to-improve-windows-vista-performance-top-10-methods/

Saludos

josemaria dijo...

Yo discrepo en tus conclusiones Chema: la diferencia es que en otros sistemas operativos no es necesario entrar como administrador para trabajar de forma cómoda mientras que en windows, por los motivos que Sergio exponía en su artículo, siguen arrastrando este viejo problema y en demasiadas ocasiones para un usuario poco bragado es imposible trabajar con un usuario "raso".

josemaria dijo...

Por cierto, no se si te refieres a otra, pero la cita famosa esa del ordenador sellado era de Spafford ¿no?:

"The only truly secure system is one that is powered off, cast in a block of concrete and sealed in a lead-lined room with armed guards - and even then I have my doubts."

Adrián dijo...

Yo querría aportar una puntualización, y es que en otros sistemas operativos la cuenta de administrador viene directamente desactivada. Por tanto, no es que el usuario no necesite entrar como administrador y abrir un bloc de notas y ¡pum!, si no que simplemente no puede hacerlo (sí, puede activar la cuenta, entrar y ejecutar virus.sh, pero oye...).

Lo que pasa, es que yo creo que el UAC se queda a medio camino, desde mi punto de vista no es suficiente con avisar al usuario de que está ejecutando tal o cual con permisos de administrador. Lo ideal es que si es realmente necesario un administrador, se le autentique con un password y no sólo con un aviso, ¿no?

Saludos

Fran Nogal dijo...

@Adrian

Por defecto tanto en Windows Vista como en Windows 7 el administrador viene deshabilitado.

Ademas, indicar tambien que a traves de politicas puedes hacer cambiar el comportamiento del UAC para que cuando un usuario administrador necesite elevacion de privilegios le solicite usuario y contraseña y no se quede solo en un aviso.
Por lo demas, una de las mejores cosas que ha sacado Microsoft y que sigue siendo una tecnologia incomprendida.

Unam1 dijo...

@Adrián: que yo sepa, el comportamiento del UAC sobre pedir o no credenciales es configurable mediante políticas.

Lo tienes en Computer Configuration - Security Settings - Local Policies - Security Options, y ahí existe un grupo de políticas para el UAC, donde puedes configurar si la elevación de privilegios pide credenciales o solamente confirmación, tanto para usuarios normales como para administradores.

Saludos

Unam1 dijo...

@Fran: disculpa que haya repetido tu comentario sobre las políticas relativas a UAC. Hemos debido estar escribiendo casi al mismo tiempo.

También quería añadir, a mi comentario anterior, que en Vista y 7 es perfectamente posible utilizar un usuario no administrativo aunque tu trabajo sea administrar un dominio, por ejemplo. En mi empresa así lo hacemos.

Saludos

M4kdev dijo...
Este comentario ha sido eliminado por el autor.
M4kdev dijo...

los usuarios están mal acostumbrados y en mi opinión la UAC es incomprendida por la usuario no técnico, quizá lo que hay que hacer explicar a el usuario sin conocimientos técnicos de las
ventajas de usar la UAC. Creo que los artículos de 'una al día' van mas por ese camino.

Maligno dijo...

@josemaria, eso es tan falso como lo has escrito. En Windows Vista y Windows 7 hay que hacer como administrador sólo taréas de administración. Dime una sola tarea que tengas que hacer como administración en Windows 7/Vista y tú consideres que no es así.

El sistema está muy bien refactorizado y se diseñadoron de cero con NT 6.0 todos los privilegios necesarios para hacer acciones.

Lo siento, pero directamente lo que has dicho es falso.

@Adrian, que venga o no desactivada es lo de menos. Las tareas adminsitrativas las tiene que hacer un adminsitrador. Da igual que tenga uid 0 o SID de Administrator o no, hacen falta cuentas con privilegios de adminstración para hacer la gestión del sistema.

@M4dev, sí, los artículos van más por esa línea, pero hasta el tercero parece que para ser un haxor y no un lamer hay que descativar el UAC, cuando es justo lo contrario.

Tened paciencia me pienso alargar en este artículo haciendo comparaciones detalladas con todas las alternativas. Espero que lo disfruten especialmente los amantes de poner la password....

Unam1 dijo...

Leyendo el último comentario de Chema, me he dado cuenta de que dije que se puede utilizar un usuario normal y que tu trabajo sea admistrar un dominio.

Me refería a iniciar sesión como usuario regular y luego, con credenciales de administrador, realizar tareas administrativas.

Perdón por no explicarme claramente.

Saludos

J. Mas dijo...

Muy interesante. Disculpa si mis preguntas son muy básicas. Supongoque las contestarás en próximos posts, así que simplemente las dejo aquí para que las tengas en cuenta.

Desde que te oí comentarlo el otro día he estado buscando información y no encuentro gran diferencia entre el UAC y la gestión de permisos de ejecución en Linux.

Caso 1: Windows con UAC: todo lo que ejecutas está en nivel de usuario. Si ejecutas algo que requiere privilegios de administrador, te salta la ventana y eliges si ejecutarlo o no

Caso 2: Linux con usuario no root: Todo lo que ejecutas está en nivel de usuario. Si ejecutas algo que requiere privilegios de administrador, te salta la ventana que te pide la clave de root y eliges si ejecutarlo o no.

El UAC creo que es más cómodo e igual de seguro, porque el hecho de que Linux te pida la contraseña continuamente hace que la termines guardando.

En ambos casos el bloc de notas no tiene privilegios para crear cuentas de usuario y demás... la única diferencia que veo son los diferentes niveles dentro de el de usuario. ¿Cómo se cambia de un nivel a otro? Porque no pide ninguna confirmación ¿no? ¿qué impide que un programa en nivel bajo pase a nivel medio? Aunque bueno, en cualquier caso sólo tendría acceso a los archivos de más cosas del usuario, no a los del sistema.

Un saludo

Maligno dijo...

@Unam1, gracias compi ;)

@J.Mas, la diferencia es que es el mismo usuario y no basta con hacer un clic con el modo approve.

josemaria dijo...

Chema: Windows 7 no lo he probado más allá de unos minutos en una máquina virtual, pero en windows vista el usuario por defecto en una instalación limpia seguía creándose con privilegios de administrador. Hay que tener ganas a propósito de no hacer las cosas bien si esto realmente no es necesario ¿no te parece?

Maligno dijo...

@josemaría, no es cierto. El usuario se crea como usuario y como administrador. La gracia de UAC es que hasta los administradore son usuarios "rasos" como decía de los Santos.

Es una de las ventajas tecnológicas de UAC con respecto al resto de soluciones.

Saludos!

josemaria dijo...

Si, ya, pero TAMBIEN administrador a un par de golpes de ratón Chema. No estamos discutiendo si el sistema es seguro o no para alguién que sabe lo que hace (al menos yo no). Es evidente que si, que la mejora frente a la negligencia que Microsoft mantenía en este terreno en XP es clara. Pero cuando hablamos de usuarios comunes... ¡parecería que tu no has tratado nunca con ellos! :-) El usuario común no lee lo que le dicen los mensajes sino que cuando quiere hacer algo solo pulsa OK. Los expertos en usabilidad, criticaron además el sistema de advertencias de UAC en su día porque el exceso de notificaciones redundantes (de hecho, se redujeron en alguna actualización ¿verdad?) incrementa aún más el riesgo de que el usuario "invisibilice" estas advertencias.
Y que conste en actas que a mi ni siquiera me gusta el sistema de Ubuntu en el que el usuario por defecto está en el grupo de sudoers con privilegios de admin. Prefiero el esquema de distribuciones más "serias" como Fedora (a pesar de sus ultimas meteduras de pata con los privilegios) en las que el usuario root está absolutamente separado del usuario creado por defecto.

Maligno dijo...

@Josemari, para administrar un equipo hace falta un administrador. Si quieres modificar una IP, cambiar el firewall o conectarte la primera vez a una red WiFi necesitas un usuario admin. Ese usuario, en tu Fedora, en el Ubuntu y en Windows Vista y 7, tiene que estar disponible y utilizarse justo al principio, cuando estás configurando el entorno donde va a correr tu máquina, así que, por muy separado que esté tu root, lo vas a usar al principio.

Lo bueno de Windows y su UAC es que aunque el usuario se conecte como administrador, sus acciones se realizan con el token de usuario, que es lo bueno que tiene UAC y lo malo de los demás.

Respecto a la usabilidad, como comprenderás, es preferible el approved mode de Vista y 7 que el poner la password en Ubuntu, MACOS y Fedora.

El número de interrupciones medias por sesión, medidas en 2008, y teniendo una sesión media de 8,2 horas es de 0 en más del 75 % de los casos, y 5 o menos en más del 95% de las instalaciones.

5 clics cada 8 horas. Ese es uno de los errores de apreciación de la gente que no ha usado Widnows Vista o Windows 7, el bulo de las interrupciones masivas. Hablaré de ello en el artículo.

Saludos!

josemaria dijo...

¿? Se de sobra que hace falta un administrador Chema. Estamos discutiendo si la forma de separar las funciones de este de las de un usuario común en las últimas implementaciones de windows es adecuada o mejorable ¿no era así? Y no voy a seguir discutiendo contigo porque se que eres muy cabezota para defender tus intereses y no vamos a llegar a ningún lado. Repito que le reconozco a Microsoft que ha mejorado mucho en este terreno (era fácil con el punto de partida que tenía, reconoce esto al menos que a veces pareces más un político que un técnico ;-) ) pero para mi sigue siendo insuficiente. De hecho, Schneier piensa lo mismo. Pregúntaselo a él cuando lo veas:

http://www.schneier.com/blog/archives/2006/04/microsoft_vista.html

Maligno dijo...

Claro que sigue siendo insuficiente cuando la mayoría de la gente quiere seguir conectándose a su equipo como administrador y deshabilitando UAC. Y en el caso de Linux, bueno, los que se conectan como usuario normal y se pasan el día entero con al shell de root abierta son los otros.

UAC viene a ayudar, y a los que tenemos dos dedos de frente, nos permite tener una solución fantástica, cómoda, rápida y eficaz.

Si eres de los que dice "uou!, una peli porno chula que necesita un codec que me puedo descargar de aquí!". Ni UAC, ni SUDO, ni na de na...

Ya lo dijo Ero.. "La necesidad de ver ciertos vídeos sobrepasa el raciocinio humano"

Anónimo dijo...

A mi me parece "curioso" que con la UAC antivada en Vista no puedas literalmente habilitar la directiva de disco rendimiento avanzado, en propiedades de disco.
Desactivas la UAC y ,voila!, aparece la opcion.
Eso huele un poco, no?

M4kdev dijo...

Anónimo:
creo que estas entrando como usuario no administrador. Prueba a entrar com un usuario administrador con la UAC activada:

creo que eso es lo mejor, en mi opinión, de la UAC de windows 7, y que supera a otos SSOO, que para el uso diario con entrar como usuario 'raso' es suficiente, con este usuario puedes incluso hacer cosas, como instalar un programa, como administrador cuando la acción lo requiera mediante un dialogo de elevación donde solo tienes que introducir la clave de administrador.
para las pocas cosas que no puedas hacer con un usuario 'raso' que creo que es tu caso, pues entras con un administrador pero este solo tendrá los permisos de administrador cuando la aplicacion requieran esos permisos mediante un díalogo UAC.

Anónimo dijo...

M4kdev entras como Administrador y no tienes disponible la opcion de rendimiento avanzado de disco hasta que desactivas la UAC. ¿Qué sentido tiene?.

M4kdev dijo...

Pues si que es 'extraño', a mi en Windows 7rc ultimate me aparecen las mismas opciones en la pestaña de directivas el , tanto con la UAC Habilitada como Deshabilitada y tanto si entro como administrador cono usuario 'no administrador'.

Anónimo dijo...

En win7 no se pero en Vista es un si.
Saludos

Maligno dijo...

@Anónimo, si te refieres a que interrupe mucho en Vista, esperate a la parte III del artículo... y preocupate por lo que ejecutas en tu ordenador... ;)

Saludos Malignos!

Anónimo dijo...

Escenario:
Usuario sin privilegios en windows 7, con UAC activo al nivel máxim
o.
Se descarga una aplicación pulsando "Ejecutar".
Aparece la ventana de UAC pidiendo la contraseña del administrado
r.

Se pulsa cancelar.

Resultado:

El programa se instala con toda facilidad.

Lo mismo sucede al desinstalar.

Entradas populares