stringtranslate.com

Control de cuentas de usuario

Control de cuentas de usuario en Windows 10
Alertas de "Seguridad de Windows" del Control de cuentas de usuario en Windows 11 en modo claro. De arriba a abajo: aplicación bloqueada , aplicación con un editor desconocido, aplicación con un editor conocido/de confianza.

El Control de cuentas de usuario ( UAC ) es una función de control de acceso obligatorio introducida con los sistemas operativos Windows Vista [1] y Windows Server 2008 de Microsoft , con una versión más relajada [2] también presente en Windows 7 , Windows Server 2008 R2 , Windows 8 , Windows Server 2012 , Windows 8.1 , Windows Server 2012 R2 , Windows 10 y Windows 11. Su objetivo es mejorar la seguridad de Microsoft Windows al limitar el software de aplicación a los privilegios de usuario estándar hasta que un administrador autorice un aumento o elevación. De esta manera, solo las aplicaciones en las que confía el usuario pueden recibir privilegios administrativos y se evita que el malware comprometa el sistema operativo. En otras palabras, una cuenta de usuario puede tener privilegios de administrador asignados, pero las aplicaciones que ejecuta el usuario no heredan esos privilegios a menos que se aprueben de antemano o el usuario lo autorice explícitamente.

El UAC utiliza el Control de integridad obligatorio para aislar los procesos en ejecución con diferentes privilegios. Para reducir la posibilidad de que las aplicaciones con menos privilegios se comuniquen con las que tienen más privilegios, se utiliza otra nueva tecnología, el Aislamiento de privilegios de la interfaz de usuario , junto con el Control de cuentas de usuario para aislar estos procesos entre sí. [3] Un uso destacado de esto es el "Modo protegido" de Internet Explorer 7. [4]

Los sistemas operativos de los mainframes y de los servidores llevan décadas diferenciando entre superusuarios y usuarios . Esto tenía un componente de seguridad evidente, pero también un componente administrativo, ya que impedía que los usuarios cambiaran accidentalmente la configuración del sistema.

Los primeros sistemas operativos domésticos de Microsoft (como MS-DOS y Windows 9x ) no tenían un concepto de diferentes cuentas de usuario en la misma máquina. Las versiones posteriores de Windows y las aplicaciones de Microsoft fomentaron el uso de inicios de sesión de usuarios que no fueran administradores, pero algunas aplicaciones siguieron requiriendo derechos de administrador. Microsoft no certifica las aplicaciones como compatibles con Windows si requieren privilegios de administrador; dichas aplicaciones no pueden usar el logotipo de compatibilidad con Windows en su empaquetado.

Comportamiento en las versiones de Windows

Tareas que activan un mensaje de UAC

Las tareas que requieren privilegios de administrador activarán un mensaje de aviso del UAC (si el UAC está habilitado); normalmente están marcadas con un icono de escudo de seguridad con los 4 colores del logotipo de Windows (en Vista y Windows Server 2008) o con dos paneles amarillos y dos azules (Windows 7, Windows Server 2008 R2 y posteriores). En el caso de los archivos ejecutables, el icono tendrá una superposición de escudo de seguridad. Las siguientes tareas requieren privilegios de administrador: [9] [10]

Las tareas comunes, como cambiar la zona horaria, no requieren privilegios de administrador [11] (aunque sí los requiere cambiar la hora del sistema, ya que la hora del sistema se usa comúnmente en protocolos de seguridad como Kerberos ). Una serie de tareas que requerían privilegios de administrador en versiones anteriores de Windows, como instalar actualizaciones críticas de Windows, ya no los requieren en Vista. [12] Cualquier programa se puede ejecutar como administrador haciendo clic derecho en su icono y haciendo clic en "Ejecutar como administrador", excepto los paquetes MSI o MSU ya que, debido a su naturaleza, si se requieren derechos de administrador, generalmente se mostrará un mensaje. Si esto falla, la única solución alternativa es ejecutar un Símbolo del sistema como administrador y ejecutar el paquete MSI o MSP desde allí.

Características

El Control de cuentas de usuario solicita credenciales en un modo de escritorio seguro , donde toda la pantalla se atenúa temporalmente, Windows Aero se desactiva y solo la ventana de autorización tiene el brillo completo, para presentar solo la interfaz de usuario (IU) de elevación. Las aplicaciones normales no pueden interactuar con el escritorio seguro. Esto ayuda a evitar la suplantación, como superponer texto o gráficos diferentes sobre la solicitud de elevación o ajustar el puntero del mouse para hacer clic en el botón de confirmación cuando eso no es lo que el usuario deseaba. [13] Si una actividad administrativa proviene de una aplicación minimizada, la solicitud de escritorio seguro también se minimizará para evitar que se pierda el foco . Es posible deshabilitar el escritorio seguro , aunque esto no es aconsejable desde una perspectiva de seguridad. [14]

En versiones anteriores de Windows, las aplicaciones escritas con la suposición de que el usuario se ejecutará con privilegios de administrador experimentaron problemas cuando se ejecutaron desde cuentas de usuario limitadas, a menudo porque intentaron escribir en directorios de todo el equipo o del sistema (como Archivos de programa ) o claves de registro (en particular HKLM ). [5] UAC intenta aliviar esto utilizando la virtualización de archivos y registros , que redirige las escrituras (y las lecturas posteriores) a una ubicación por usuario dentro del perfil del usuario. Por ejemplo, si una aplicación intenta escribir en un directorio como "C:\Program Files\appname\settings.ini" en el que el usuario no tiene permiso de escritura, la escritura se redirigirá a "C:\Users\username\AppData\Local\VirtualStore\Program Files\appname\settings.ini". La función de redirección solo se proporciona para aplicaciones de 32 bits no elevadas, y solo si no incluyen un manifiesto que solicita privilegios específicos. [15]

Hay una serie de opciones configurables del UAC. Es posible: [16]

Las ventanas del símbolo del sistema que se ejecutan con privilegios elevados antepondrán el título de la ventana con la palabra "Administrador", de modo que el usuario pueda discernir qué instancias se ejecutan con privilegios elevados. [18]

Se hace una distinción entre las solicitudes de elevación de un ejecutable firmado y de un ejecutable no firmado; y si es el primero, si el editor es 'Windows Vista'. El color, el icono y la redacción de las solicitudes son diferentes en cada caso; por ejemplo, se intenta transmitir una mayor sensación de advertencia si el ejecutable no está firmado que si no lo está. [19]

La función "Modo protegido" de Internet Explorer 7 utiliza el UAC para ejecutarse con un nivel de integridad "bajo" (un token de usuario estándar tiene un nivel de integridad "medio"; un token elevado (Administrador) tiene un nivel de integridad "alto"). Como tal, se ejecuta efectivamente en un entorno limitado, sin poder escribir en la mayor parte del sistema (aparte de la carpeta Archivos temporales de Internet) sin elevarse a través del UAC. [7] [20] Dado que las barras de herramientas y los controles ActiveX se ejecutan dentro del proceso de Internet Explorer, también se ejecutarán con privilegios bajos y estarán severamente limitados en el daño que pueden hacer al sistema. [21]

Solicitando elevación

Un programa puede solicitar la elevación de distintas maneras. Una de las formas en que los desarrolladores de programas pueden hacerlo es agregar una sección de privilegios solicitados a un documento XML, conocido como manifiesto , que luego se integra en la aplicación. Un manifiesto puede especificar dependencias, estilos visuales y ahora el contexto de seguridad adecuado:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns= "urn:schemas-microsoft-com:asm.v1" manifestVersion= "1.0" > <trustInfo xmlns= "urn:schemas-microsoft-com:asm.v2" > <security> <requestedPrivileges> <requestedExecutionLevel level= "highestAvailable" /> </requestedPrivileges> </security> </trustInfo> </assembly>            

Si se establece el atributo de nivel para requestExecutionLevel en "asInvoker", la aplicación se ejecutará con el token que la inició, "highestAvailable" presentará un mensaje de UAC para los administradores y se ejecutará con los privilegios reducidos habituales para los usuarios estándar, y "requireAdministrator" requerirá elevación. [22] En los modos lowestAvailable y requireAdministrator, si no se proporciona confirmación, el programa no se iniciará.

Un ejecutable que está marcado como " requireAdministrator" en su manifiesto no se puede iniciar desde un proceso no elevado que utilice CreateProcess(). En su lugar, ERROR_ELEVATION_REQUIREDse devolverá . ShellExecute()o ShellExecuteEx()se debe utilizar en su lugar. Si HWNDno se proporciona un , el cuadro de diálogo aparecerá como un elemento parpadeante en la barra de tareas.

No se recomienda inspeccionar el manifiesto de un ejecutable para determinar si requiere elevación, ya que la elevación puede ser necesaria por otras razones (ejecutables de configuración, compatibilidad de aplicaciones). Sin embargo, es posible detectar mediante programación si un ejecutable requerirá elevación utilizando CreateProcess()y configurando el dwCreationFlagsparámetro en CREATE_SUSPENDED. Si se requiere elevación, ERROR_ELEVATION_REQUIREDse devolverá. [23] Si no se requiere elevación, se devolverá un código de retorno de éxito en cuyo punto se puede usar TerminateProcess()en el proceso suspendido recién creado. Sin embargo, esto no permitirá detectar que un ejecutable requiere elevación si ya se está ejecutando en un proceso elevado.

Se puede generar un nuevo proceso con privilegios elevados desde una aplicación .NET utilizando el runasverbo " ". Un ejemplo con C# :

Sistema . Diagnóstico . Proceso proc = new Sistema . Diagnóstico . Proceso (); proc . StartInfo . FileName = "C:\\Windows\\system32\\notepad.exe" ; proc . StartInfo . Verb = "runas" ; // Elevar la aplicación proc . StartInfo . UseShellExecute = true ; proc . Start ();           

En una aplicación nativa Win32runas se puede agregar el mismo verbo " " a una llamada ShellExecute()o ShellExecuteEx(): [7]

ShellExecute ( hwnd , "runas" , "C: \\ Windows \\ Notepad.exe" , 0 , 0 , SW_SHOWNORMAL );     

En ausencia de una directiva específica que indique qué privilegios solicita la aplicación, el UAC aplicará heurísticas para determinar si la aplicación necesita o no privilegios de administrador. Por ejemplo, si el UAC detecta que la aplicación es un programa de configuración a partir de pistas como el nombre del archivo, los campos de control de versiones o la presencia de ciertas secuencias de bytes dentro del ejecutable, en ausencia de un manifiesto asumirá que la aplicación necesita privilegios de administrador. [24]

Seguridad

El UAC es una función de conveniencia ; no introduce un límite de seguridad ni impide la ejecución de malware . [25] [26] [27] [28]

Leo Davidson descubrió que Microsoft debilitó el UAC en Windows 7 al eximir a unos 70 programas de Windows de mostrar un mensaje de UAC y presentó una prueba de concepto para una escalada de privilegios . [29]

Stefan Kanthak presentó una prueba de concepto para una escalada de privilegios a través de la detección del instalador de UAC y los instaladores de IExpress . [30]

Stefan Kanthak presentó otra prueba de concepto para la ejecución de código arbitrario , así como la escalada de privilegios a través de la elevación automática y la implantación de binarios del UAC. [31]

Crítica

Ha habido quejas de que las notificaciones de UAC ralentizan varias tareas en la computadora, como la instalación inicial de software en Windows Vista . [32] Es posible desactivar UAC mientras se instala software y volver a habilitarlo en un momento posterior. [33] Sin embargo, esto no se recomienda ya que, como la virtualización de archivos y registro solo está activa cuando UAC está activado, las configuraciones del usuario y los archivos de configuración pueden instalarse en un lugar diferente (un directorio del sistema en lugar de un directorio específico del usuario) si UAC está desactivado de lo que estarían de otra manera. [14] También el "Modo protegido" de Internet Explorer 7 , por el cual el navegador se ejecuta en un entorno limitado con privilegios inferiores a los del usuario estándar, se basa en UAC; y no funcionará si UAC está desactivado. [20]

El analista de Yankee Group, Andrew Jaquith, dijo, seis meses antes de que Vista fuera lanzada, que "si bien el nuevo sistema de seguridad es prometedor, es demasiado hablador y molesto". [34] Para cuando Windows Vista fue lanzado en noviembre de 2006, Microsoft había reducido drásticamente la cantidad de tareas del sistema operativo que activaban avisos de UAC, y agregó virtualización de archivos y registro para reducir la cantidad de aplicaciones heredadas que activaban avisos de UAC. [5] Sin embargo, David Cross, un gerente de unidad de producto en Microsoft, declaró durante la Conferencia RSA 2008 que UAC de hecho fue diseñado para "molestar a los usuarios" y obligar a los proveedores de software independientes a hacer que sus programas sean más seguros para que los avisos de UAC no se activen. [35] El software escrito para Windows XP y muchos periféricos ya no funcionaría en Windows Vista o 7 debido a los amplios cambios realizados en la introducción de UAC. Las opciones de compatibilidad también eran insuficientes. En respuesta a estas críticas, Microsoft alteró la actividad de UAC en Windows 7 . Por ejemplo, de manera predeterminada no se solicita a los usuarios que confirmen muchas acciones iniciadas únicamente con el mouse y el teclado, como por ejemplo operar los subprogramas del Panel de control.

En un artículo polémico, el escritor de Gadgetwise del New York Times Paul Boutin dijo: "Desactive el Control de cuentas de usuario de Vista, que es demasiado protector. Esas ventanas emergentes son como tener a su madre rondando por encima de su hombro mientras trabaja". [36] El periodista de Computerworld Preston Gralla describió el artículo del NYT como "... uno de los peores consejos técnicos jamás emitidos". [37]

Véase también

Referencias

  1. ^ "¿Qué es el Control de cuentas de usuario?". Microsoft . Enero de 2015 . Consultado el 28 de julio de 2015 .
  2. ^ Enfoque en las funciones de Windows 7: Control de cuentas de usuario Archivado el 4 de mayo de 2014 en Wayback Machine , Una descripción general de UAC en Windows 7 por Paul Thurott
  3. ^ "La historia de los desarrolladores de Windows Vista y Windows Server 2008: Requisitos de desarrollo de aplicaciones de Windows Vista para el Control de cuentas de usuario (UAC)". Serie de historias de los desarrolladores de Windows Vista y Windows Server 2008 . Microsoft . Abril de 2007 . Consultado el 8 de octubre de 2007 .
  4. ^ Marc Silbey, Peter Brundrett (enero de 2006). "Comprensión y funcionamiento en modo protegido de Internet Explorer". Microsoft . Consultado el 8 de diciembre de 2007 .
  5. ^ abc Torre, Charles (5 de marzo de 2007). "UAC – What. How. Why" (video) . Consultado el 8 de diciembre de 2007 .
  6. ^ Howard, Michael ; LeBlanc, David (2010). Cómo escribir código seguro para Windows Vista. O'Reilly Media, Inc. ISBN 9780735649316. Recuperado el 6 de agosto de 2013. UAC comenzó como Cuenta de usuario limitada (LUA), luego se renombró Protección de cuenta de usuario (UAP) y finalmente obtuvimos UAC.
  7. ^ abc Kerr, Kenny (29 de septiembre de 2006). «Windows Vista para desarrolladores – Parte 4 – Control de cuentas de usuario» . Consultado el 15 de marzo de 2007 .
  8. ^ "Ajustes del registro para personalizar las opciones del Control de cuentas de usuario (UAC) en Windows Vista y versiones posteriores - AskVG". 16 de marzo de 2008.
  9. ^ Bott, Ed (2 de febrero de 2007). "¿Qué desencadena los mensajes del Control de cuentas de usuario?". Archivado desde el original el 27 de septiembre de 2015.
  10. ^ "Vivir con el Control de cuentas de usuario y beneficiarse de él". Microsoft . 2014-12-09.
  11. ^ Allchin, Jim (23 de enero de 2007). "Características de seguridad frente a conveniencia". Blog del equipo de Windows Vista . Microsoft .
  12. ^ "Descripción general del control de cuentas de usuario". TechNet . Microsoft .
  13. ^ "Indicaciones del control de cuentas de usuario en el escritorio seguro". UACBlog . Microsoft . 4 de mayo de 2006.
  14. ^ ab Bott, Ed (2 de febrero de 2007). "Por qué es necesario tener cuidado con los consejos de Vista". La experiencia de Ed Bott en Windows .
  15. ^ "Determine cómo reparar aplicaciones que no son compatibles con Windows 7". TechNet . Microsoft . Consultado el 9 de septiembre de 2013 .
  16. ^ "Capítulo 2: Defensa contra el malware". Guía de seguridad de Windows Vista . Microsoft . 8 de noviembre de 2006.
  17. ^ Control de cuentas de usuario: virtualice los errores de escritura de archivos y registros en ubicaciones por usuario
  18. ^ "Marcado de administrador para el símbolo del sistema". UACBlog . Microsoft . 1 de agosto de 2006.
  19. ^ "Indicaciones de UAC accesibles". Blog de Windows Vista . Microsoft. Archivado desde el original el 27 de enero de 2008. Consultado el 13 de febrero de 2008 .
  20. ^ ab Russinovich, Mark (junio de 2007). "Dentro del Control de cuentas de usuario de Windows Vista". TechNet Magazine . Microsoft .
  21. ^ Friedman, Mike (10 de febrero de 2006). "Modo protegido en Vista IE7". IEBlog . Microsoft .
  22. ^ Carlisle, Mike (10 de marzo de 2007). "Cómo hacer que su aplicación sea compatible con UAC". The Code Project .
  23. ^ Zhang, Junfeng (18 de octubre de 2006). "Determinar mediante programación si una aplicación requiere elevación en Windows Vista". Notas de programación de Windows de Junfeng Zhang . Microsoft .
  24. ^ "Comprensión y configuración del control de cuentas de usuario en Windows Vista". TechNet . Microsoft . Consultado el 5 de julio de 2007 .
  25. ^ "Deshabilitar el Control de cuentas de usuario (UAC) en Windows Server". Base de conocimientos de soporte técnico de Microsoft . Microsoft . Consultado el 17 de agosto de 2015 .
  26. ^ Russinovich, Mark. "Dentro del Control de cuentas de usuario de Windows 7". Microsoft . Consultado el 25 de agosto de 2015 .
  27. ^ Johansson, Jesper. "El impacto a largo plazo del control de cuentas de usuario". Microsoft . Consultado el 25 de agosto de 2015 .
  28. ^ Russinovich, Mark. "Dentro del Control de cuentas de usuario de Windows Vista". Microsoft . Consultado el 25 de agosto de 2015 .
  29. ^ Davidson, Leo. "Lista blanca de UAC de Windows 7: – Problema de inyección de código – API anticompetitiva – Security Theatre" . Consultado el 25 de agosto de 2015 .
  30. ^ Kanthak, Stefan. "Defensa en profundidad: al estilo Microsoft (parte 11): escalada de privilegios para principiantes". Divulgación completa (lista de correo) . Consultado el 17 de agosto de 2015 .
  31. ^ Kanthak, Stefan. "Defensa en profundidad: al estilo Microsoft (parte 31): UAC es para la implantación de binarios". Divulgación completa (lista de correo) . Consultado el 25 de agosto de 2015 .
  32. ^ Trapani, Gina (31 de enero de 2007). "Geek to Live: consejos prácticos para actualizar a Windows Vista". Lifehacker .
  33. ^ "Desactivar el UAC en Vista". YouTube . Archivado desde el original el 22 de diciembre de 2021.
  34. ^ Evers, Joris (7 de mayo de 2006). "Informe: Vista llegará a los mercados de antispyware y firewall". ZDNet . CBS Interactive . Archivado desde el original el 10 de diciembre de 2006 . Consultado el 21 de enero de 2007 .
  35. ^ Espiner, Tom (11 de abril de 2008). "Microsoft: característica de Vista diseñada para 'molestar a los usuarios'". CNET . CBS Interactive .
  36. ^ Boutin, Paul (14 de mayo de 2009). "Cómo sacarle un poco más de velocidad a Vista". New York Times – Gadgetwise . Consultado el 4 de enero de 2015 .
  37. ^ Gralla, Preston (14 de mayo de 2009). «Error del New York Times: deshazte de tu software antivirus». Computerworld . Consultado el 4 de octubre de 2022 .

Enlaces externos