User Account Control


User Account Control

User Account Control (UAC) is a technology and security infrastructure introduced with Microsoft's Windows Vista operating system. It aims to improve the security of Microsoft Windows by limiting application software to standard user privileges until an administrator authorizes an increase in privilege level. In this way, only applications that the user trusts receive higher privileges, and malware should be kept from receiving the privileges necessary to compromise the operating system. In other words, a user account may have administrator privileges assigned to it, but applications that the user runs do not also have those privileges unless they are approved beforehand or the user explicitly authorizes it to have higher privileges.

To reduce the possibility of lower-privilege applications communicating with higher-privilege ones, another new technology, User Interface Privilege Isolation is used in conjunction with User Account Control to isolate these processes from each other. [cite web
url=http://msdn2.microsoft.com/en-us/library/aa905330.aspx
title=The Windows Vista and Windows Server 2008 Developer Story: Windows Vista Application Development Requirements for User Account Control (UAC)
month=April | year=2007
accessdate=2007-10-08
work=The Windows Vista and Windows Server 2008 Developer Story Series
publisher=Microsoft
] One prominent use of this is Internet Explorer 7's "Protected Mode". [cite web
url=http://msdn2.microsoft.com/en-us/library/bb250462.aspx
title=Understanding and Working in Protected Mode Internet Explorer
month=January | year=2006
accessdate=2007-12-08
coauthors=Marc Silbey, Peter Brundrett
publisher=Microsoft
]

History

Differentiation of a superuser and userland has been common in mainframes and servers for decades. This had an obvious security component, but also an administrative component, in that it prevented users from accidentally changing system settings.

Microsoft home operating systems (such as Windows 95, Windows 98 and Windows Me) did not have a concept of different user accounts on the same machine, and all actions were performed as super user. Windows NT introduced multiple user accounts, but in practice most users continued to operate as super user administrator for their normal operations. Further, many applications tend to assume that the user is super user, and will simply not work if they are not.cite web
url=http://channel9.msdn.com/ShowPost.aspx?PostID=288259
title=UAC - What. How. Why.
date=March 5 2007
accessdate=2007-12-08
format=video
first=Charles
last=Torre
]

Subsequent versions of Windows and Microsoft applications have encouraged the use of non-administrator user logins, but the uptake has been slow. User Account Control is a stronger approach to do this introduced in Vista. But it is difficult to introduce new security features without breaking existing applications.

When logging into Vista as a standard user, a logon session is created and a token containing only the most basic privileges is assigned. In this way, the new logon session is incapable of making changes that would affect the entire system. When logging in as a user in the Administrators group, two separate tokens are assigned. The first token contains all privileges typically awarded to an administrator, and the second is a restricted token similar to what a standard user would receive. User applications, including the Windows Shell, are then started with the restricted token, resulting in a reduced privilege environment even under an Administrator account. When an application requests higher privileges or "Run as administrator" is clicked, UAC will prompt for confirmation and, if consent is given, start the process using the unrestricted token.cite web
url=http://weblogs.asp.net/kennykerr/archive/2006/09/29/Windows-Vista-for-Developers-_1320_-Part-4-_1320_-User-Account-Control.aspx
title=Windows Vista for Developers – Part 4 – User Account Control
date=September 29 2006
accessdate=2007-03-15
last=Kerr
first=Kenny
]

Tasks that trigger a UAC prompt

Tasks that require administrator privileges will trigger a UAC prompt (if UAC is enabled) are typically marked by a 4-color security shield symbol. In the case of executable files, the icon will have a security shield overlay. Ed Bott's "Windows Vista Inside Out" lists the following tasks which require administrator privileges: [cite web
url=http://www.edbott.com/weblog/?p=1602
title=What triggers User Account Control prompts?
last=Bott
first=Ed
date=2007-02-02
]
*Changes to system-wide settings or to files in %SystemRoot% or %ProgramFiles%
*Installing and uninstalling applications
*Installing device drivers
*Installing ActiveX controls
*Changing settings for Windows Firewall
*Changing UAC settings
*Configuring Windows Update
*Adding or removing user accounts
*Changing a user’s account type
*Configuring Parental Controls
*Running Task Scheduler
*Restoring backed-up system files
*Viewing or changing another user’s folders and files

Common tasks, such as changing the time zone, do not require administrator privileges [cite web
url=http://windowsvistablog.com/blogs/windowsvista/archive/2007/01/23/security-features-vs-convenience.aspx
title=Security Features vs. Convenience |work=Windows Vista Team Blog
publisher=Microsoft
last=Allchin
first=Jim
authorlink=James Allchin
date=2007-01-23
accessdate=2007-03-04
] (although changing the system time itself does, since the system time is commonly used in security protocols). A number of tasks that required administrator privileges in earlier versions of Windows, such as installing critical Windows updates, no longer do so in Vista. [cite web
url=http://technet.microsoft.com/en-us/windowsvista/aa906021.aspx
title=User Account Control Overview
work=Technet
Publisher=Microsoft
] Any program can be run as administrator by right-clicking its icon and clicking "Run as administrator".

Features

User Account Control asks for credentials in a "Secure Desktop" mode, where the entire screen is temporarily darkened and Windows Aero disabled and only the authorization window is enlightened, to present only the elevation user interface (UI). This is to prevent spoofing of the UI or the mouse by the application requesting elevation. [cite web
url=http://blogs.msdn.com/uac/archive/2006/05/03/589561.aspx
title=User Account Control Prompts on the Secure Desktop
date=2006-05-03
accessdate=2007-02-25
work=UACBlog
publisher=MSDN Blogs
] If an administrative activity comes from a minimized application, the secure desktop request will also be minimized so as to prevent the focus from being lost. It is possible to disable "Secure Desktop", though this is inadvisable from a security perspective. [cite web
url=http://www.edbott.com/weblog/?p=1600
title=Why you need to be discriminating with those Vista tips
last=Bott
first=Ed
date=February 2 2007
accessdate=2007-12-08
work=Ed Bott's Windows Expertise
]

Applications written with the assumption that the user will be running with administrator privileges experienced problems in earlier versions of Windows when run from limited user accounts, often because they attempted to write to machine-wide or system directories (such as "Program Files") or registry keys (notably HKLM)cite web
url=http://channel9.msdn.com/ShowPost.aspx?PostID=288259
title=UAC - What. How. Why.
date=March 5 2007
accessdate=2007-03-23
format=video
last=Torre
first=Charles
work=Channel 9
publisher=Microsoft
] . UAC attempts to alleviate this using "File and Registry Virtualization", which redirects writes (and subsequent reads) to a per-user location within the user’s profile. For example, if an application attempts to write to “C:program filesappnamesettings.ini” and the user doesn’t have permissions to write to that directory, the write will get redirected to “C:UsersusernameAppDataLocalVirtualStoreProgram Filesappnamesettings.ini”.

There are a number of configurable UAC settings. It is possible to: [cite web
url=http://technet.microsoft.com/en-us/bb629436.aspx
title=Chapter 2: Defend Against Malware
work=Windows Vista Security Guide
publisher=Microsoft
date=November 8 2006
accessdate=2007-03-15
]
*Require administrators to re-enter their password for heightened security;
*Require the user to press Ctrl+Alt+Del as part of the authentication process for heightened security;
*Disable "Admin Approval Mode" (UAC prompts for administrators) entirely;

Command Prompt windows that are running elevated will prefix the title of the window with the word "Administrator", so that a user can discern which instances are running with elevated privileges. [cite web
url=http://blogs.msdn.com/uac/archive/2006/08/01/685645.aspx
title=Administrator Marking for Command Prompt
accessdate=2006-08-07
date=August 1 2006
work=UACBlog
publisher=MSDN Blogs
]

A distinction is made between elevation requests from a signed executable and an unsigned executable; and if the former, whether the publisher is 'Windows Vista'. The color, icon, and wording of the prompts are different in each case; for example, attempting to convey a greater sense of warning if the executable is unsigned than if not. [cite web
url=http://windowsvistablog.com/blogs/windowsvista/archive/2007/01/25/accessible-uac-prompts.aspx
title=Accessible UAC Prompts
work=Windows Vista Blog
publisher=Microsoft
]

Internet Explorer 7's "Protected Mode" feature uses UAC to run with a 'low' integrity level (a Standard user token has an integrity level of 'medium'; an elevated (Administrator) token has an integrity level of 'high'). As such, it effectively runs in a sandbox, unable to write to most of the system (apart from the Temporary Internet Files folder) without elevating via UAC.cite web
url=http://www.microsoft.com/technet/technetmag/issues/2007/06/UAC/
title=Inside Windows Vista User Account Control
first=Mark
last=Russinovich
work=TechNet Magazine
publisher=Microsoft
month=June | year=2007
accessdate=2007-12-08
] Since toolbars and ActiveX controls run within the Internet Explorer process, they will run with low privileges as well, and will be severely limited in what damage they can do to the system. [cite web |url=http://blogs.msdn.com/ie/archive/2006/02/09/528963.aspx |title=Protected Mode in Vista IE7 |first=Mike |last=Friedman |publisher=IEBlog]

Configuration

UAC can be configured via security settings (secpol.msc -> Local Policies -> Security Options), though this is only available for the Business and Ultimate editions. All configuration items are prefixed with “User Account Control”.

*" 'Behaviour of the elevation prompt for administrators in admin approval mode'. " Can be set to:
**'Turn off UAC' (no prompt).
**'Prompt for consent' (default).
**'Prompt for credentials'.
*" 'Behaviour of the elevation prompt for standard users'. " This setting determines what happens if you run as a standard user and start a program that needs administrator rights (for the cases UAC can determine admin rights are required e.g. does not work for MMC snapins). Can be set to:
**'No prompt: fail and do not start the program if it required admin rights'.
**'Prompt for credentials' (default).
*" 'Admin approval mode for the built-in administrator account'." This setting can be used to disable UAC for the built-in Administrator account. Can be set to" 'Enable' " or" 'Disable'. " The built-in administrator account is disabled by default in Windows Vista. The default value of this setting depends on the configuration and on how the system was installed - see http://msdn.microsoft.com/en-us/library/bb756883.aspx for discussion.
*" 'Detect application installations and prompt for elevation'." Windows by default uses some heuristics to determine if an EXE is an installer (which most likely requires elevation). Can be set to" 'Enable' "(the default) or" 'Disable'. "
*" 'Switch to the secure desktop when prompting for elevation'." Can be set to" 'Enable' "(the default) or" 'Disable'. "
*" 'Only execute executables that are signed and validated'." If enabled an additional check is done after the elevation prompt. If the EXE is not signed the EXE will not be started. Can be set to 'Enable' or 'Disable' (the default).
*" 'Virtualize file and registry write failures to per-user locations'." Can be set to" 'Enable' "(the default) or" 'Disable'. "
*" 'Run all administrators in Admin Approval Mode'." To switch off UAC set this setting to disabled and reboot. All UAC behavior will be disabled, including file and registry virtualization. Can be set to" 'Enable' "(the default) or" 'Disable'. "

The other way to configure UAC is using tool called LEACfg. This is commandline tool and running this takes effect immediately and without a system restart.

Requesting elevation

A program can request elevation in a number of different ways. One way for program developers is to add a requestedPrivileges section to an XML document, known as the manifest, that is then embedded into the application. A manifest can specify dependencies, visual styles, and now the appropriate security context:

Setting the level attribute for requestedExecutionLevel to "asInvoker" will make the application run with the token that started it, "highestAvailable" will present a UAC prompt for administrators and run with the usual reduced privileges for standard users, and "requireAdministrator" will require elevation. [cite web
url=http://www.codeproject.com/useritems/MakingAppsUACAware.asp
title=Making Your Application UAC Aware
date=2007-03-10
accessdate=2007-03-15
author=Mike Carlisle
publisher=The Code Project
] In both highestAvailable and requireAdministrator modes, failure to provide confirmation results in the program not being launched.

An executable that is marked as "requireAdministrator" in its manifest cannot be started from a non-elevated process using CreateProcess(). Instead, ERROR_ELEVATION_REQUIRED will be returned. ShellExecute() or ShellExecuteEx() must be used instead. If an HWND is not supplied, then the dialog will show up as a blinking item in the taskbar.

Inspecting an executable's manifest to determine if it requires elevation is not recommended, as elevation may be required for other reasons (setup executables, application compatibility). However, it is possible to programmatically detect if an executable will require elevation by using CreateProcess() and setting the dwCreationFlags parameter to CREATE_SUSPENDED. If elevation is required, then ERROR_ELEVATION_REQUIRED will be returned. [cite web
url=http://blogs.msdn.com/junfeng/archive/2006/10/18/programmatically-determine-if-an-application-requires-elevation-in-windows-vista.aspx
title=Programmatically determine if an application requires elevation in Windows Vista
date=2006-10-18
accessdate=2008-01-24
author=Junfeng Zhang
publisher=MSDN Blogs
] If elevation is not required, a success return code will be returned at which point you can use TerminateProcess() on the newly created, suspended process. This will not allow you detect that an executable requires elevation if you are already executing in an elevated process, however.

A new process with elevated privileges can be spawned from within a .NET application using the "runas" verb. An example using C++/CLI:System::Diagnostics::Process^ proc = gcnew System::Diagnostics::Process();proc->StartInfo->FileName = "C:\Windows\system32\notepad.exe";proc->StartInfo->Verb = "runas"; // Elevate the applicationproc->Start();In a native Win32 application the same "runas" verb can be added to a ShellExecute() or ShellExecuteEx() call.ShellExecute(hwnd, "runas", "C:\Windows\Notepad.exe", 0, 0, SW_SHOWNORMAL);In the absence of a specific directive stating what privileges the application requests, UAC will apply heuristics, to determine whether or not the application needs administrator privileges. For example, if UAC detects that the application is a setup program, from clues such as the filename, versioning fields, or the presence of certain sequences of bytes within the executable, in the absence of a manifest it will assume that the application needs administrator privileges. [cite web
url=http://technet2.microsoft.com/WindowsVista/en/library/00d04415-2b2f-422c-b70e-b18ff918c2811033.mspx?mfr=true
title=Understanding and Configuring User Account Control in Windows Vista
publisher=Microsoft
accessdate=2007-07-05
]

Criticism

There have been complaints that UAC notifications slow down various tasks on the computer such as the initial installation of software onto Windows Vista. [cite web
url=http://lifehacker.com/software/vista/geek-to-live-windows-vista-upgrade-power-tips-231922.php
title=Disabling the UAC feature
accessdate=2007-03-10
date=2007-03-10
] It is possible to turn off UAC while installing software, and reenable it at a later time. [cite web
url=http://www.windowsvistauserguide.com/how_to_disable_uac_in_windows_vista.htm
title=Windows Vista upgrade power tips
] However, this is not recommended since, as File & Registry Virtualization is only active when UAC is turned on, user settings and configuration files may be installed to a different place (a system directory rather than a user-specific directory) if UAC is switched off than they would be otherwise. [cite web
url=http://www.edbott.com/weblog/?p=1600
title=Why you need to be discriminating with those Vista tips
last=Bott
first=Ed
work=Ed Bott's Windows Expertise
date=2007-02-02
accessdate=2007-07-05
] Also note that Internet Explorer 7's "Protected Mode", whereby the browser runs in a sandbox with lower privileges than the standard user, relies on UAC; and will not function if UAC is disabled.

Yankee Group analyst Andrew Jaquith stated that "while the new security system shows promise, it is far too chatty and annoying."cite web
url=http://news.zdnet.com/2100-1009_22-6069464.html
title=Report: Vista to hit anti-spyware, firewall markets
last=Evers
first=Joris
date=2006-05-07
accessdate=2007-01-21
work=ZDNet News
publisher=CNet
] However, this statement was made over six months before Vista was actually released (even before Beta 2 was released). By the time Windows Vista was released in November 2006, Microsoft had drastically reduced the number of operating system tasks that triggered UAC prompts, and added file and registry virtualization to reduce the number of legacy applications that trigger UAC prompts. However, David Cross, a product unit manager at Microsoft, stated during the RSA Conference 2008 that UAC was in fact designed to "annoy users", and force independent software vendors to make their programs more secure so that UAC prompts would not be triggered. [ [http://news.zdnet.com/2100-9590_22-6237191.html Microsoft: Vista feature designed to 'annoy users' | Tech News on ZDNet ] ]

ee also

*Comparison of privilege authorization features
*Features new to Windows Vista
*Least user access (LUA)
*runas
*Security and safety features of Windows Vista

References

External links

* [http://www.microsoft.com/technet/windowsvista/security/uacppr.mspx UAC (User Account Control)] — Information at Microsoft TechNet
* [http://technet2.microsoft.com/WindowsVista/en/library/00d04415-2b2f-422c-b70e-b18ff918c2811033.mspx?mfr=true UAC Understanding and Configuring] More Information at Microsoft Technet
* [http://blogs.msdn.com/uac/ UAC Team Blog]
* [http://theinvisiblethings.blogspot.com/2007/02/running-vista-every-day.html UAC – The Good and The Bad] (Joanna Rutkowska - invisiblethings.org).
* [http://www.softwaretipspalace.com/MS_Windows_Vista/Tips-and-Tricks/deactivate-UAC-in-windows-vista.php Deactivate User Account Control] in Windows Vista
* [http://windowsvistablog.com/blogs/windowsvista/archive/2007/01/23/security-features-vs-convenience.aspx Security Features vs. Convenience]
* [http://www.edbott.com/weblog/?p=1602 What triggers User Account Control prompts?]
* [http://youtech.tv/node/19 How to disable User Account Control]


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • User Account Control — UAC (User Account Control)  компонент Microsoft Windows, впервые появившийся в Windows Vista. Этот компонент запрашивает подтверждение действий, требующих прав администратора, в целях защиты от несанкционированного использования компьютера.… …   Википедия

  • User Account Control — (UAC), zu deutsch Benutzerkontensteuerung, ist eine Technik und Sicherheitsinfrastruktur, die beim Betriebssystem Microsoft Windows Vista eingeführt wurde. Sie soll den Schutz des Systems für den Standardbenutzer erleichtern. Inhaltsverzeichnis 1 …   Deutsch Wikipedia

  • User Account Control — (UAC, contrôle du compte de l utilisateur), est un mécanisme de protection des données introduit dans les systèmes d exploitations Windows Vista et 7. UAC est aussi connu sous ses dénominations précédentes durant le développement de Windows Vista …   Wikipédia en Français

  • user account —    A security mechanism used to control access to a network or to a multi user computer system, established and maintained by the network administrator.    Elements of a user account include password information, rights and permissions, and… …   Dictionary of networking

  • User Interface Privilege Isolation — (UIPI) is a technology introduced in Windows Vista and Windows Server 2008 to combat code injection exploits. By leveraging Mandatory Integrity Control, it prevents processes with a lower integrity level (IL) from sending messages to higher IL… …   Wikipedia

  • User Interface Privilege Isolation — (UIPI Isolation des privilèges de l IHM) est une technique de sécurité utilisée par Windows Vista et Windows Server 2008 pour se protéger contre les exploits d injection de code. UIPI évite qu un processus ayant un bas niveau de sécurité… …   Wikipédia en Français

  • Control de Cuentas de Usuario — Saltar a navegación, búsqueda El Control de Cuentas de Usuario (UAC por sus siglas en ingles) es una tecnología e infraestructura de seguridad que Microsoft introdujo con Windows Vista. Su objetivo es mejorar la seguridad de Windows al impedir… …   Wikipedia Español

  • Control de cuentas de usuario — El Control de Cuentas de Usuario (UAC por sus siglas en inglés) es una tecnología e infraestructura de seguridad que Microsoft introdujo con Windows Vista. Su objetivo es mejorar la seguridad de Windows al impedir que aplicaciones maliciosas… …   Wikipedia Español

  • User profile — A user profile (userprofile, or simply profile is configurated when used in context) is a feature of the Microsoft Windows operating system, comprising a given user s collection of personal documents and settings on that computer. Taking Windows… …   Wikipedia

  • User interface — The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation …   Wikipedia


Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.