stringtranslate.com

Control de cuentas del usuario

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

El Control de cuentas de usuario ( UAC ) es una característica obligatoria de control de acceso 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 limitando el software de la aplicación a privilegios de usuario estándar hasta que un administrador autorice un aumento o elevación. De esta manera, sólo las aplicaciones en las que el usuario confía 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 sean aprobadas de antemano o el usuario lo autorice explícitamente.

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 privilegios más bajos se comuniquen con otras con privilegios más altos, se utiliza otra tecnología nueva, 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 en mainframes y servidores han diferenciado entre superusuarios y usuarios durante décadas. Esto tenía un componente de seguridad obvio, 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 , Windows 95 - 98 y Windows Me ) no tenían el concepto de diferentes cuentas de usuario en la misma máquina. Las versiones posteriores de las aplicaciones de Windows y Microsoft fomentaron el uso de inicios de sesión de usuarios que no fueran administradores, pero algunas aplicaciones continuaron requiriendo derechos de administrador. Microsoft no certifica aplicaciones como compatibles con Windows si requieren privilegios de administrador; Es posible que dichas aplicaciones no utilicen el logotipo compatible con Windows en su embalaje.

Comportamiento en versiones de Windows

Tareas que desencadenan un aviso de UAC

Las tareas que requieren privilegios de administrador activarán un mensaje de UAC (si UAC está habilitado); Por lo general, están marcados con un ícono 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 archivos ejecutables, el icono tendrá un escudo de seguridad superpuesto. Las siguientes tareas requieren privilegios de administrador: [9] [10]

Las tareas comunes, como cambiar la zona horaria, no requieren privilegios de administrador [11] (aunque cambiar la hora del sistema sí lo requiere, ya que la hora del sistema se usa comúnmente en protocolos de seguridad como Kerberos ). Varias tareas que requerían privilegios de administrador en versiones anteriores de Windows, como la instalación de actualizaciones críticas de Windows, ya no requieren privilegios de administrador 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 es ejecutar un símbolo del sistema como administrador e iniciar 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 está atenuada temporalmente, Windows Aero está deshabilitado y solo la ventana de autorización tiene el brillo máximo, para presentar solo la interfaz de usuario (UI) de elevación. Las aplicaciones normales no pueden interactuar con Secure Desktop. Esto ayuda a evitar la suplantación de identidad, como superponer texto o gráficos diferentes encima de 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 pretendía. [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 desactivar Secure Desktop , aunque esto no es aconsejable desde el punto de vista de la seguridad. [14]

En versiones anteriores de Windows, las aplicaciones escritas asumiendo que el usuario se ejecutaría con privilegios de administrador experimentaban problemas cuando se ejecutaban desde cuentas de usuario limitadas, a menudo porque intentaban escribir en directorios de toda la máquina o del sistema (como Archivos de programa ) o en el registro. claves (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 solicite privilegios específicos. [15]

Hay una serie de ajustes de UAC configurables. 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", para que un usuario pueda discernir qué instancias se están ejecutando con privilegios elevados. [18]

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

La función "Modo protegido" de Internet Explorer 7 utiliza 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 una zona de pruebas, sin poder escribir en la mayor parte del sistema (aparte de la carpeta Archivos temporales de Internet) sin elevarlo a través de 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 cuanto al daño que pueden causar al sistema. [21]

Solicitando elevación

Un programa puede solicitar elevación de varias maneras diferentes. Una forma para los desarrolladores de programas 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 apropiado:

<?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" > <seguridad> < privilegios solicitados> < nivel de nivel de ejecución solicitado= "highestAvailable" /> </ privilegios solicitados> </seguridad> </trustInfo> </assembly>            

Establecer el atributo de nivel para requestExecutionLevel en "asInvoker" hará que la aplicación se ejecute 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] Tanto en el modo de mayor disponibilidad como en el de requisito de administrador, si no se proporciona la confirmación, el programa no se inicia.

Un ejecutable marcado como " requireAdministrator" en su manifiesto no se puede iniciar desde un proceso no elevado utilizando CreateProcess(). En cambio, ERROR_ELEVATION_REQUIREDserá devuelto. ShellExecute()o ShellExecuteEx()debe usarse 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 otros motivos (configuración de ejecutables, compatibilidad de aplicaciones). Sin embargo, es posible detectar mediante programación si un ejecutable requerirá elevación usando 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 exitoso, momento en el cual 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 usando el runasverbo " ". Un ejemplo usando C# :

Sistema . Diagnóstico . Proceso de proceso = nuevo sistema . Diagnóstico . Proceso (); proceso . Información de inicio . Nombre de archivo = "C:\\Windows\\system32\\notepad.exe" ; proceso . Información de inicio . Verbo = "runas" ; // Elevar el proceso de la aplicación . Información de inicio . UseShellExecute = verdadero ; proceso . Comenzar ();           

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

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, UAC aplicará heurísticas para determinar si la aplicación necesita o no privilegios de administrador. Por ejemplo, si UAC detecta que la aplicación es un programa de instalación, a partir de pistas como el nombre del archivo, los campos de versión o la presencia de ciertas secuencias de bytes dentro del ejecutable, en ausencia de un manifiesto asumirá que la aplicación necesita administrador. privilegios. [24]

Seguridad

UAC es una característica 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 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 mediante la detección de instaladores 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 plantación binaria de 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 el software y volver a habilitarlo más adelante. [33] Sin embargo, esto no se recomienda ya que, como la virtualización de archivos y registros 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á apagado de lo que estaría de otra manera. [14] Además, el "Modo protegido" de Internet Explorer 7 , mediante 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 del lanzamiento de Vista, que "si bien el nuevo sistema de seguridad parece prometedor, es demasiado hablador y molesto". [34] Cuando se lanzó Windows Vista en noviembre de 2006, Microsoft había reducido drásticamente la cantidad de tareas del sistema operativo que activaban las indicaciones de UAC y agregó virtualización de archivos y registros para reducir la cantidad de aplicaciones heredadas que activaban las indicaciones de UAC. [5] Sin embargo, David Cross, gerente de la unidad de productos de Microsoft, declaró durante la Conferencia RSA de 2008 que UAC fue en realidad diseñado para "molestar a los usuarios" y obligar a los proveedores de software independientes a hacer sus programas más seguros para que las indicaciones de UAC no lo hicieran. ser desencadenado. [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 con la introducción de UAC. Las opciones de compatibilidad también fueron insuficientes. En respuesta a estas críticas, Microsoft alteró la actividad de UAC en Windows 7 . Por ejemplo, de forma predeterminada, a los usuarios no se les solicita que confirmen muchas acciones iniciadas solo con el mouse y el teclado, como operar los subprogramas del Panel de control.

En un artículo controvertido, el escritor de Gadgetwise del New York Times , Paul Boutin, dijo: "Desactive el control de cuentas de usuario excesivamente protector de Vista. Esas ventanas emergentes son como tener a su madre sobre 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 publicados". [37]

Ver 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 de 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 del desarrollador 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 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 trabajo en modo protegido de Internet Explorer". Microsoft . Consultado el 8 de diciembre de 2007 .
  5. ^ abc Torre, Charles (5 de marzo de 2007). "UAC - Qué. Cómo. Por qué" (vídeo) . Consultado el 8 de diciembre de 2007 .
  6. ^ Howard, Michael ; LeBlanc, David (2010). Escribir código seguro para Windows Vista. O'Reilly Media, Inc. ISBN 9780735649316. Consultado el 6 de agosto de 2013 . UAC comenzó como Cuenta de usuario limitada (LUA), luego pasó a llamarse 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 de registro para personalizar las opciones de 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é activa las indicaciones del Control de cuentas de usuario?". Archivado desde el original el 27 de septiembre de 2015.
  10. ^ "Vivir y beneficiarse del control de cuentas de usuario". Microsoft . 2014-12-09.
  11. ^ Allchin, Jim (23 de enero de 2007). "Funciones de seguridad versus conveniencia". Blog del equipo de Windows Vista . Microsoft .
  12. ^ "Descripción general del control de cuentas de usuario". Technet . Microsoft .
  13. ^ "Solicitudes de control de cuentas de usuario en Secure Desktop". UACBlog . Microsoft . 4 de mayo de 2006.
  14. ^ ab Bott, Ed (2 de febrero de 2007). "Por qué hay que ser exigente con esos 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 del administrador para el símbolo del sistema". UACBlog . Microsoft . 1 de agosto de 2006.
  19. ^ "Indicaciones 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". Revista TechNet . Microsoft .
  21. ^ Friedman, Mike (10 de febrero de 2006). "Modo protegido en Vista IE7". IEBlog . Microsoft .
  22. ^ Carlisle, Mike (10 de marzo de 2007). "Hacer que su aplicación sea compatible con UAC". El proyecto del código .
  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 – Teatro de seguridad" . Consultado el 25 de agosto de 2015 .
  30. ^ Kanthak, Stefan. "Defensa en profundidad: al estilo de Microsoft (parte 11): escalada de privilegios para tontos". Divulgación completa (lista de correo) . Consultado el 17 de agosto de 2015 .
  31. ^ Kanthak, Stefan. "Defensa en profundidad: al estilo de Microsoft (parte 31): UAC es para plantación binaria". 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 energéticos para actualizar Windows Vista". Hacker de vida .
  33. ^ "Deshabilitar 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 firewall y anti-spyware". ZDNet . CBS interactivo . 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: función de Vista diseñada para 'molestar a los usuarios'". CNET . CBS interactivo .
  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: deseche su software antivirus". Mundo de la informática . Consultado el 4 de octubre de 2022 .

enlaces externos