- Understanding Security Groups
- User Account Control: Smarter User Privileges
- Creating and Managing User Accounts
- Working with the User Accounts Dialog Box
- Working with the Local Users and Groups Snap-In
- Setting Account Policies
- Working with Users and Groups from the Command Line
- Creating and Enforcing Bulletproof Passwords
- Sharing Files with Other Users
- Using Parental Controls to Restrict Computer Usage
- Sharing Your Computer Securely
- From Here
User Account Control: Smarter User Privileges
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":
- XP prompted you to create one or more user accounts during setup, but it didn't force you to create one. If you skipped this part, XP started under the Administrator account.
- Even if you elected to create users, the setup program didn't give you an option for setting the account security level. Therefore, any account you created during XP's setup was automatically added to the Administrators group.
- If you created a limited user account, you probably didn't keep it for long because XP hobbled the account so badly that you couldn't use it to do anything but the most basic computer tasks. You couldn't even install most programs because they generally require write permission for the %SystemRoot% folder and the Registry, and limited users lacked that permission.
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:
- Install programs and updates
- Add printer drivers
- Change wireless security options (such as adding a WEP or WPA key)
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:
- Administrator account—This built-in account can do anything to the computer.
- Administrators group—Members of this group (except the Administrator account) run as standard users but are able to elevate their privileges when required just by clicking a button in a dialog box (see the next section).
- Standard users group—These are the least-privileged users, although they, too, can elevate their privileges when needed. However, they require access to an administrator password to do so.
Elevating Privileges
This idea of elevating privileges is at the heart of Vista's new security model. In Windows Vista, 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.1. 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.1 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.2. 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.2 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 that 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.
As you saw in the "Running a Program with the Administrator Account" section of Chapter 5, "Installing and Running Applications," 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.
File and Registry Virtualization
You 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? No—Vista 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:
- During a program installation, Vista first prompts the user for credentials (that is, Vista displays one of the Windows Security dialog boxes shown earlier in Figures 6.1 and 6.2). If they are provided, Vista gives permission to the program installer to write to %SystemRoot%, %ProgramFiles%, and the Registry.
- If the user cannot provide credentials, Vista uses a technique called file and Registry virtualization, which creates virtual %SystemRoot% and %ProgramFiles% folders, and a virtual HKEY_LOCAL_MACHINE Registry key, all of which are stored with the user's files. This enables the installer to proceed without jeopardizing actual system files.
User Account Control Policies
You 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, click OK, and then provide your credentials), open the Security Settings, Local Policies, Security Options branch. Here you'll find nine policies related to User Account Control (as shown in Figure 6.3):
- User Account Control: Admin Approval Mode for the Built-In Administrator Account—This policy controls whether the Administrator account falls under User Account Control. If you enable this policy, the Administrator account is treated like any other account in the Administrators group and you must click Continue in the consent dialog box when Windows Vista requires approval for an action.
- User Account Control: Behavior of the Elevation Prompt for Administrators in Admin Approval Mode—This policy controls the prompt that appears when an administrator requires elevated privileges. The default setting is Prompt for Consent, where the user clicks either Continue or Cancel. You can also choose Prompt for Credentials to force the user to type his or her password. If you choose No Prompt, administrators cannot elevate their privileges.
- User Account Control: Behavior of the Elevation Prompt for Standard Users—This policy controls the prompt that appears when a standard user requires elevated privileges. The default setting is Prompt for Credentials, to force the user to type an administrator password. You can also choose No Prompt to prevent standard users from elevating their privileges.
- User Account Control: Detect Application Installs and Prompt for Elevation—Use this policy to enable or disable automatic privilege elevation while installing programs.
- User Account Control: Only Elevate Executables That Are Signed and Validated—Use this policy to enable or disable whether Vista checks the security signature of any program that asks for elevated privileges.
- User Account Control: Only Elevate UIAccess Applications That Are Installed in Secure Locations—Use this policy to enable or disable whether Vista allows elevation for accessibility applications that require access to the user interface of another window only if they are installed in a secure location (such as the %ProgramFiles% folder).
- User Account Control: Run All Administrators in Admin Approval Mode—Use this policy to enable or disable running administrators (excluding the Administrator account) as standard users.
- User Account Control: Switch to the Secure Desktop When Prompting for Elevation—Use this policy to enable or disable whether Vista switches to the secure desktop when the elevation prompts appear.
- User Account Control: Virtualize File and Registry Write Failures to Per-User Locations—Use this policy to enable or disable file and Registry virtualization for standard users.
Figure 6.3 Vista policies related to User Account Control.
The rest of this chapter shows you the various methods Windows Vista offers to create, modify, and remove local user accounts.