Learning to Love UAC

User Access Control is not the bother that many make it out to be.

User Access Control in Windows Vista has been such a controversial development that it's worth re-examining periodically. Let's restate the purpose of UAC: It is to allow the user to run the system as a standard user, not administrator, and still have relatively easy access to privileged operations when they are necessary.

UAC (click here for Microsoft's expanded description of it) is more than that; even when running as administrators, users still run in a less-privileged context and are warned when privileged operations are being requested. The way Microsoft sees it, UAC also encompasses their efforts to make many operations, such as changing system time, available to standard users.

It's hard to deny the value of this. The overwhelming majority of malware currently is delivered through social engineering tricks, such as opening porn or a greeting card. These should not be privileged operations, and UAC is a way of taking a time-out and having the user make sure that a potentially dangerous operation is being performed deliberately and in an informed manner. The same is true of vulnerabilities, those of which get past other Vista defenses such as ASLR and service hardening, which should trigger UAC in a way that should alert the user. In fact, a recent test of anti-rootkit tools found that UAC popped up and warned as every rootkit in the test tried to execute.

For sure, UAC is imperfect. There are some administrative tasks that resist this elevation technique, although there are ways around that problem. By far the biggest complaint I hear, and I'm sure I'll hear it again from after this column, is that the warnings are frequent and petty. There are two potential explanations for this: You are frequently performing dangerous privileged operations, such as installing programs, or your software is badly designed.

For those of you who say, for example, that your anti-spyware program needs elevation before it can be updated, tell the vendor to design their program correctly. Modern programs don't have this problem. There is no doubt on this point: If your app is constantly causing UAC prompts, it's the programmer's fault. In many cases, Microsoft has made changes to Windows to limit these problems. For example, they have issued updates that change the ACLs in a program's Program Files folder so that it can update itself without admin privileges. Vista SP1 made some important improvements in UAC as well. There are times when you get multiple prompts for consent from UAC for a single action, and SP1 consolidates these into a single prompt.

If it's still too big a pain for you, you have two options: run as administrator, in which case the warning merely requires you to click a button rather than enter administrative credentials; or shut off UAC from the User Accounts Control Panel. In either case, especially the latter one, you're exposing yourself to dangers.

There is a middle ground of sorts that I don't recommend, but here it is: You can turn off the UAC consent prompts for Administrator users without turning off UAC altogether. Run secpol.msc, the Local Security Policy Editor. Go into Local Policies - Security Options. There you'll find a lot of policies related to UAC with titles beginning with "User Account Control." The third one is entitled "Behavior and Elevation Prompt for Administrators". Open this one up. You can change the policy to "Elevate without prompting" and you won't be prompted anymore as Administrator.

But in fact, for most people, UAC is not a problem. Data received from Microsoft's Customer Experience Improvement Program indicates that 88 percent of users have UAC enabled and, on those, 66 percent of user sessions have no UAC prompts at all. Those numbers are probably skewed down by enthusiasts who download and install things all the time, but I suspect that most users never see a UAC prompt after the first couple weeks of setting up their system. I've set up my wife on Vista Business on her home PC. She uses it for Office apps and Web surfing, and she hasn't had a UAC prompt in months. I know because she would need to ask me for help to get past it.

The real complaints about UAC come from techie users who don't like their freedoms restricted. Consider Ed Bott's suggestions for UAC. I'm expecting Microsoft to address those concerns over time, but the important thing has always been for them to address the mass market. Those people should have no problem with UAC and it's a great thing for them.

Security Center Editor Larry Seltzer has worked in and written about the computer industry since 1983.

For insights on security coverage around the Web, take a look at eWEEK.com Security Center Editor Larry Seltzer's blog Cheap Hack