If you’ve been following Windows security, you probably may be very confused by the latest statements on the subject both from inside (Mark Russinovich) and outside (Long Zheng) Microsoft.
Here’s what I think you should know. Most of this is my interpretation, but from Mark Russinovich’s article and Microsoft’s repeated tiptoeing around the subject, I don’t think you’re going to get straighter answers from anywhere else, since there’s a lot about UAC that MS can’t say directly for marketing reasons.
If, as Mark said, UAC isn’t a “security feature”, then what is it?
UAC’s point is to inform the user when a process is trying to effect a change that could affect the integrity of the system. In layman’s term’s, UAC warns the user when an application is trying to do something that requires administrative rights.
EDIT: UAC also prevents standard users from hosing a system/changing critical settings without admin consent.
But isn’t that a security feature?
That depends on semantics. To an informed user, it is. To a less savvy user, it’s more of an annoyance than anything else. I’ll explain what I mean by what I call The Girlfriend Example:
Imagine that your girlfriend arrives at your house and wants to come in. Does the number of locks on your door or the fact that you may have an alarm system prevent you from letting her in? No, as long as you are convinced the person outside is your girlfriend, you let her in whether it takes 5 seconds to open the door or a full minute to unlock it and disable the alarm system.
UAC functions much like the locks/alarm system for your house. The “girlfriend” can be any arbitrary program you implicitly trust. The point is: once you trust a process to be benign and deliberately run it, it doesn’t matter whether UAC (the door/locks/alarm of the house) is enabled or not. You’ll run the process anyway, and it will be able to do whatever it wishes with your system.
Continuing our girlfriend example:
Your girlfriend enters your house, except that it’s not really her. It turns out to be an armed robber who looks like her. You get jacked. Is this the fault of the alarm system? No, it’s your fault for being fooled by the robber. This is because, philosophically speaking, regardless of whatever alarms or locks you have on your front door, you have the final authority on who enters your house.
The same is true with your PC. Regardless of UAC’s complexity, your system is yours. The most it can do is warn you when a process is “at the door”. It’s up to you to determine whether the process in question is safe or not. That’s where the “informed user” part comes in. An informed user is able (note the italics, there are informed users out there who don’t use UAC) to figure out whether a certain process is harmful or not, and therefore use UAC to stop the bad ones. A less informed user simply thinks UAC is getting in his way.
UAC will NOT tell you whether or not skytools22h.exe is safe. All it tells you is that skytools22h.exe wants access to your PC, thus giving you the option to stop the process before any damage is done
If UAC functions like an alarm system, why are MS representatives saying that it’s not a security feature?
That’s because of the above example. UAC may alert you, but it won’t prevent you from doing anything you really want to do, i.e. if you want to break your own system’s security, UAC doesn’t prevent you from doing so.
To help understand this point, consider what would happen if admins could only run what UAC allowed them to. That wouldn’t be workable as it would mean that Microsoft effectively controls what users can and can’t do with their own systems.
The admin user is the final authority when it comes to the system, and UAC embraces that fact by allowing the admin to scuttle the system if he so pleases, even if the scuttling is a result of ignorance.
Why did MS add auto-elevation to Windows 7?
This is the easiest question to answer: because of the vocal idiots – I’m not mincing words here – who decried the feature in Vista due to the number of prompts. So now, instead of warning you every time any process needs admin rights, Windows 7 will by default grant some Windows processes admin capability. This reduces the number of UAC prompts users see, but at the expense of informing them of exactly what is going on and result in the situation described in Long Zheng’s post.
Is Windows 7’s default UAC mode a vulnerability?
That depends on your “house” rules. If you think of your PC as a hypothetical house where you allow trusted friends to come and go as they please, then it’s perfectly fine. The problem with this approach is that you could have undesired guests. Of course, as Russinovich points out, exploiting this loophole requires “deliberate” action. Unfortunately Mark doesn’t explain what “deliberate” signifies, but it probably means that the exploit requires user action. Which could include navigating to an infected site.
If you prefer to know every time someone drops in, then it’s a vulnerability.
That said, let’s just call a spade a spade: MS turned down the volume on UAC in response to complaints about the number of prompts. But I don’t blame MS. I blame the idiots who complained loudly about UAC in the first place before trying to see exactly how it benefited them. I blame the total retards who disabled the system, thus resulting in MS’ telemetry indicating some users run Vista without it anyway. I blame the bastards who raised hell that XP was better than Vista because it didn’t “annoy” users with UAC prompts.
Had MS stuck to their guns on Vista’s version of UAC, I’d be willing to bet Windows 7 would be getting nearly as unnecessarily bad a rap as Vista often does currently. This is because pre-Vista Windows users aren’t used to UAC prompts and are therefore annoyed by them.
Does this mean Windows 7 is less secure than Vista by default?
In practice: No. You see, the conversation about UAC misses the point that a 7 installation will have Windows Defender, if not also some other real-time antivirus/antimalware installed by the user or shipped with the system. Thus, it’s likely that a fully patched (both Windows AND the security software) system would be able to detect and neutralize malware before it does damage anyway. Of courses, MS isn’t going to say that because one the common knocks against Windows is that you need antivirus to run it safely* (as much as I hate to say it, this is true).
In theory: Yes. A loophole is a loophole. Period. And if you want to close it, I’d suggest you change 7’s UAC settings to match Vista’s immediately upon first run. That’s what I’ll be doing for sure.
Am I completely safe if I change 7’s UAC settings to match Vista’s?
Nope. Someone with no access to your house can still trash your lawn and as Mark pointed out in his blog there is plenty of damage malware can do without admin rights, such as wiping out your personal files (this is theoretically true for all OSes).
Bottom line is: there is NO OS out there, Windows, Mac or otherwise, that will can be safely and securely used without safety and security* in mind. In other words, regardless of what you’re running, you still need to beware of sites you visit, files you download, and programs you install. This is because, as stated at the outset: you are the final authority for your machine. Lexus, BMW, etc. may add all the safety features imaginable to their cars, but that doesn’t prevent a suicidal driver from running one of their vehicles off a cliff. All OSes may make it varyingly difficult for you to hose them, but a determined ignorant user with admin rights can - and will - still do so.
Currently no major OS on the market has remote vulnerabilities. Which means you and me, the users, are the weakest link. Goodbye :P
*Please not the difference between “safety” and “security” as used here. Security is an intrinsic property of the OS, while safety accounts for malware and other external threats.