lunes, 30 de mayo de 2011

UAC En Windows. ¿Soy Administrador o No soy Administrador?

 

image

Esta es una pregunta muy común entre los usuario que acaban de migrar a Windows Vista o Windows 7. La respuesta puede ser un poco ambigua para muchos, pues si eres administrador pero solo en ciertas situaciones.

Para los usuarios de Linux, este concepto no es nuevo, sin embargo es una nueva funcionalidad o beneficio de seguridad incluido solo en Windows Vista y posteriores que permite tener los privilegios que necesitas solo cuando los necesitas.

¿Como funciona?

Aunque estemos en el grupo de Administradores locales de un equipo con Windows 7 o Windows Vista, cuando el Control de Cuentas de Usuario se encuentra habilitado, nuestro usuario inicialmente solo tiene privilegios de usuario limitado. Es por esto que para realizar ciertas acciones, por ejemplo, por línea de comandos, nos dará un error:

image

Ya sea “Acceso Denegado” o “La operación solicitada requiere elevación” ambas son por la misma causa: La línea de comandos se esta ejecutando con privilegios de usuario limitado. Para solventar esta situación, debemos darle privilegios de administrador explícitamente de la siguiente manera: Botón derecho sobre el icono o aplicación y click en “Ejecutar como administrador”

image

Esto seria el equivalente al comando “sudo” en Linux, con lo cual obtendremos la “Elevación” a la que se refiere en el error.

Esto se aplica igual para el resto de las aplicaciones, es decir, si ejecutamos una aplicación normalmente, esta se iniciara con privilegios limitados y no tendrá acceso a configuraciones o archivos críticos del sistema sin el consentimiento del usuario.

Normalmente, las aplicaciones desarrolladas para Windows Vista o Windows 7 solicitarán este privilegio cuando así lo requieran, desplegando el dialogo del UAC solicitando el consentimiento explicito del usuario.

Esto normalmente ocasiona problemas de compatibilidad con aplicaciones que no están diseñadas para estos sistemas operativos, ya que no están configuradas para solicitarle al sistema operativo la elevación cuando es necesaria y debemos darla manualmente usando la opción que comente antes de “Ejecutar como administrador”.

¿Como sabemos cuando necesitamos privilegios elevados?

En los menús, opciones, botones y demás objetos interactivos del Sistema operativo encontraremos un escudo como este:

image

Indicando que esa operación requiere elevación. Al hacer click sobre la opción con el escudo automáticamente será desplegado el dialogo del UAC solicitando consentimiento explicito para realizar la acción. Dependiendo de la versión del Sistema Operativo y las opciones configuradas este comportamiento puede variar. Desde Windows 7, cuando un cambio será realizado por procesos del mismo Windows, este dialogo de solicitud no se despliega y se realiza la elevación de manera automática, como el caso de cambio de hora o configuración de IP desde los diálogos que proporciona el sistema para ello. Si queremos realizar un cambio a través de programación o de un programa externo al Sistema operativo, será solicitada la elevación.

Las acciones que normalmente requieren esta elevación son aquellas que requieran tocar configuraciones (Cambio de Hora, IP, Tabla de Enrutamiento), archivos de programas instalados o de Windows (Carpeta Archivos de Programa o carpeta Windows) o Registro de Windows (A través del comando REG, el editor de registro grafico REGEDIT o la importación del un archivo con extensión .REG) Cualquiera de estas acciones que se ejecuten manualmente o de manera automatizada ya sea por un instalador, programa o script, desplegara el dialogo del UAC.

¿Que pasa si no soy administrador?

Algo bueno para el personal de soporte técnico y los administradores de sistema es que, aunque el usuario tenga cuenta limitada, el UAC sigue solicitando la elevación, lo cual permite corregir y solventar muchas situaciones sin la necesidad de cerrar la sesión del usuario para iniciar con una cuenta con privilegios de administrador. El dialogo es parecido al siguiente, y permite usar cualquier cuenta que tenga los privilegios adecuados para realizar la acción que se requiere:

image

En el caso de que la cuenta con sesión iniciada sea administrador, el dialogo solo pedirá confirmación

image

Muchos se preguntaran ¿Para que sirve todo este embrollo?

Sencillo: Los programas que ejecutes tienen acceso a tantos recursos como privilegios tenga la cuenta que los ejecuta, es decir, si la cuenta que ejecuta una aplicación tiene permisos para borrar la carpeta Windows, la aplicación también tiene ese privilegio. En un escenario donde la aplicación no hace lo que dice que hace, eso se traduce en que estamos dándole el control total de nuestro equipo a un extraño, pudiendo este alterar, borrar o copiar archivos en nuestro sistema sin que nos demos cuenta. A través del UAC, estamos seguros que ninguna aplicación realizara un cambio que pueda comprometer el sistema sin nuestra autorización ya que la aplicación se ejecutara con los privilegios mas bajos disponibles, y si esta requiere elevar, se nos consultara si queremos o no permitirlo. Claro esta, es deber nuestro verificar que estamos proporcionando el acceso solo a las aplicaciones en las que confiamos, ya que si aceptamos todo los diálogos sin confirmar, reducimos la efectividad de la defensa en un 95%.

No hay comentarios:

Publicar un comentario