Most (I'm actually tempted to say the vast majority) of the security-related problems in recent versions of Windows boiled down to a single root cause: Most users were running Windows with administrator-level permissions. Administrators can do anything to a Windows machine, including installing programs, adding devices, updating drivers, installing updates and patches, changing Registry settings, running administrative tools, and creating and modifying user accounts. This is convenient, but it leads to a huge problem: Any malware that insinuates itself onto your system will also be capable of operating with administrative permissions, thus enabling the program to wreak havoc on the computer and just about anything connected to it. Windows XP tried to solve the problem by creating a second-tier account level called the limited user, which had only very basic permissions. Unfortunately, there were three gaping holes in this "solution":
Windows Vista tries once again to solve this problem. The new solution is called User Account Control and it uses a principle called the least-privileged user. The idea behind this is to create an account level that has no more permissions than it requires. Again, such accounts are prevented from editing the Registry and performing other administrative tasks. However, these users can perform other day-to-day tasks:
In Windows Vista, the least-privileged user concept arrives in the form of a new account type called the standard user. This means that Vista has three basic account levels:
Elevating PrivilegesThis idea of elevating privileges is at the heart of Vista's new security model. In Windows XP, you could use the Run As command to run a task as a different user (that is, one with higher privileges). In Vista, you usually don't need to do this because Vista prompts you for the elevation automatically. If you're a member of the Administrators group, you run with the privileges of a standard user for extra security. When you attempt a task that requires administrative privileges, Vista prompts for your consent by displaying a User Account Control dialog box similar to the one shown in Figure 6.18. Click Control to permit the task to proceed. If this dialog box appears unexpectedly, it's possible that a malware program is trying to perform some task that requires administrative privileges; you can thwart that task by clicking Cancel instead. Figure 6.18. When an administrator launches a task that requires administrative privileges, Windows Vista displays this dialog box to ask for consent.
If you're running as a standard user and attempt a task that requires administrative privileges, Vista uses an extra level of protection. That is, instead of just prompting you for consent, it prompts you for the credentials of an administrator, as shown in Figure 6.19. If your system has multiple administrator accounts, each one is shown in this dialog box. Type the password for any administrator account shown, and then click Submit. Again, if this dialog box shows up unexpectedly, it might be malware, so you should click Cancel to prevent the task from going through. Figure 6.19. When a standard user launches a task that requires administrative privileges, Windows Vista displays this dialog box to ask for administrative credentials.
Note, too, that in both cases Windows Vista switches to secure desktop mode, which means you can't do anything else with Vista until you give your consent or credentials or cancel the operation. Vista indicates the secure desktop by darkening everything on the screen except the User Account Control dialog box. Note User Account Control seems sensible on the surface, but Microsoft has not always implemented it in a sensible way. For example, sometimes you are prompted for elevation during simple tasks such as file deletions and renames, or when you change the system date or time. This has led to a backlash against User Account Control in some circles, and I'm sympathetic to a point (so is Microsoft, who has promised to tweak User Account Control before shipping the final Vista code). However, all the people who are complaining about User Account Control are beta testers who, by definition, are tweaking settings, installing drivers and programs, and generally pushing Vista to its limits. Of course you're going to get hit with lots of UAC dialog boxes under those conditions. However, the average user really doesn't tweak their system all that often, so I think UAC will be much less of a problem than its critics suggest. It's also possible to elevate your privileges for any individual program. You do this by right-clicking the program file or shortcut and then clicking Run as Administrator. This displays either the consent dialog box shown in Figure 6.18 (if you're an administrator) or the credentials dialog box shown in Figure 6.19 (if you're a standard user). Note You might have older programs that simply won't run under Vista's User Account Control security model because they require administrative privileges. If you don't want to give a standard user an administrator's password, you can still enable the user to run the program. Find the program's executable file, right-click it, and then click Properties. In the property sheet that appears, display the Compatibility tab, activate the Run This Program as an Administrator check box, and then click OK. (You can also do this with any shortcut to the executable. Vista assigns the elevated privilege to the executable and all its shortcuts.) Vista then runs a diagnostic test on the program to see the administrative privileges it requires. This is a security feature that ensures that the program gets only the minimum number of privileges that it requires to function properly. File and Registry VirtualizationYou might be wondering how secure Windows Vista really is if a standard user can install programs. Doesn't that mean that malware can install as well? NoVista implements a new model for installation security. In Vista, you need administrative privileges to write anything to the %SystemRoot% folder (usually C:\Windows), the %ProgramFiles% folder (usually C:\Program Files), and the Registry. Vista handles this for standard users in two ways:
User Account Control PoliciesYou can customize User Account Control to a certain extent by using group policies. In the Local Security Settings snap-in (press Windows Logo+R, type secpol.msc, and click OK), open the Security Settings, Local Policies, Security Options branch. Here you'll find six policies related to User Account Control (as shown in Figure 6.20):
Figure 6.20. Vista policies related to User Account Control. |