Security
Windows 7 provides a number of new security options, yet,
perversely, many users could potentially have worse base security with
the new OS than they did with Vista.
The most compelling security features--application whitelisting and
encryption of both full disks and removable drives--are not included
with the Professional and Home Premium editions that many will use at
work and at home. And, in concessions to user outcry, Microsoft in
Windows 7 has scaled back some of the security that was first
introduced with Vista.
User Account Controls, or UAC, was probably the most reviled feature
of Windows Vista: Users had to become accustomed to acknowledging every
system change made to the computer, including application
installations, patch installations, and access to system tools such as
Computer Management or the network adapter settings.
This acknowledgement was necessary because in Vista the user does
not operate day-to-day as an administrator (even if he or she has
administrator rights). When performing an administrative action, the
UAC prompt bumps up user credentials to admin levels to perform only
that task.
Windows 7 keeps UAC in place, but implements a number of changes in
an effort to make the alerting and acknowledging system more palatable
to users and administrators alike.
The new OS introduces levels of enforcement to UAC, presented via a
Settings panel with a slider bar that can easily move the user between
four different modes of enforcement.
At the strictest level--analogous to how UAC worked in Windows
Vista-the system will always prompt the user when changes are made to
system settings or when installed applications try to access restricted
parts of the file system.
Windows 7's default level, however, notifies the user when
applications try to make changes, but not when the user does. An
easy way to experience the difference is by accessing Computer
Management. In the strict mode, the user must acknowledge (or
approve) to even view the panel, while in the default mode an
administrative user can go right in and start changing things.
The third mode is similar to the default, but doesn't require the
use of the Secure Desktop--the isolated interface that otherwise
appears to the user and can't be tampered with by a program. The
fourth mode, meanwhile, never notifies the user or asks for approval.
This mode is recommended for use only when accessing a program known to
founder under UAC purview.
In truth, the new settings--including the new default--serve to
worsen the security protections UAC affords. I've turned UAC in
Windows 7 up to the Vista-like maximum on my machine.
An interesting complement to UAC is available to Windows 7 Ultimate
and Enterprise customers. Called AppLocker (a descendant of XP and
Vista's Software Restrictions Policies), this feature provides
application whitelisting--specific authorization for applications to
run on a computer. A user or an administrator creates a policy
that allows only authorized applications to run at all, and all others
(whether malware or simply unapproved code) will not be able to start.
Control over AppLocker policies resides within Microsoft's familiar
Group Policy architecture. Using the Group Policy editor, I could view
existing policies, create new ones, and decide whether to enforce the
policies or simply audit them to find out whether people were using
applications that could run afoul of the new security.
According to AppLocker, there are three categories of executable
code (windows executables, Windows installers and scripts), and each
must be configured separately. I could choose enforcement for one
classification and audit-only for another.
Applications can be approved in several different ways. For
granular application identification, I could base policy on an
application's hash (best for uncertified applications), on an
application's publisher (for signed applications) or on the file system
path to the executable--either the file or the folder.
Windows 7 makes it easy to get started because the Group Policy
editor includes a couple of simple ways to generate rules. I could
create default rules with one click, creating basic rules: allowing
everyone to run programs located in the Windows and Program Files
directories, and allowing local Administrators to run all files.
This usage scenario makes an interesting companion to UAC and
least-privilege computing. If AppLocker means a limited-rights user can
run only programs found in permitted folders, and a tight UAC
implementation bars users from writing to those folders, then it
becomes difficult to use social engineering to trick someone into
mistakenly installing bad or unwanted code.
For more granular controls, administrators can automatically
generate rules. For example, I could specify a folder (such as
Program Files), and a wizard would identify all executable content of
the appropriate type, basing the policy either on a hash or on the
path. I could further limit the scope of the policy by allowing only
digitally signed executables.
These kinds of granular rules are more effective and restrictive,
but keep in mind that they will require much more maintenance, as
patching or upgrades will necessitate a refresh of policy settings.
One potential problem with AppLocker is that it requires one special
service to be running to provide enforcement--the Application Identity
service. First of all, administrators must make sure that the service
starts automatically, and then they must make sure the service
continues running. Often, security providers provide additional
watchdog protections to ensure that a critical security service stays
up in the face of attack, but I'm not sure Windows takes those
measures. It is not noticeable when the service is not active but
AppLocker policies are present.
Windows 7 adds removable disk encryption capabilities to the most
expensive editions--Ultimate and Enterprise. Called BitLocker To
Go, the utility builds encryption and key management into the USB drive
itself, allowing easy sharing of protected data with other Windows 7
instances. Users need only enter the password they specified
when they first encrypted the drive.
BitLocker To Go-protected drives can also be accessed on older
versions of Windows, as the utility includes a reader on the USB stick
itself. When inserted into an Windows XP- or Vista-based system,
the drive shows the reader to the user. Run the reader, enter the
protection password, and you can read the data or copy it
locally. When inserted in a Mac, on the other hand, you see dozens
of files, but you can't access the protected content or
manipulate the visible files.
As with Vista, Windows 7 Enterprise and Ultimate come with BitLocker
full-disk encryption. BitLocker is a little easier to use on
Windows 7, however. Specifically, Vista required planning for
BitLocker right at the time of OS installation because a separate boot
partition was needed. Windows 7 builds the boot partition
automatically and slims it down (to 100MB in Windows 7 from 1.5GB in
Vista). This allows users or administrators to add full-disk encryption
well after initial installation without complications.
By default, BitLocker requires that the computer have an onboard TPM
(Trusted Platform Module) chip in which to store the encryption
keys. Users without a TPM chip can opt to use a USB stick
instead, but that will necessitate some changes in Group Policy.
I tested BitLocker on the Lenovo T60p using the laptop's TPM chip,
as well as on the Dell XPS M1330 using a USB stick for the
key. Depending on the size of the hard drive and the amount of
data that needs to be protected, encryption can take several
hours. It took just under an hour to protect my relatively
data-free test machine and more than three hours to encrypt a half full
80GB disk. Thankfully, the encryption process can be paused
midstream to accommodate a system reboot and will resume after the next
boot.
Enterprise administrators will find solid controls over both
BitLocker and BitLocker To Go in Group Policy that can be distributed
throughout the domain. Administrators can control cipher strength,
enforce authentication types and strength, and store recovery keys
within Active Directory.
In one detail of note, I found that users running Windows 7 in a
virtual machine will have trouble enabling BitLocker disk encryption.
(I tried this out in VMWare Workstation 6.5, in my
case.) Specifically, the hypervisor would not virtualize the TPM
chip, and the OS could not recognize a USB stick early enough in the
boot process to work for BitLocker. Those who want to protect data
within a VM running on Windows 7 should probably look into file or
folder encryption instead of full-disk protection.
With Windows 7, no longer will administrators need boot media to
attempt to recover a distressed or broken Windows instance, as the new
OS features a Recovery Console that is accessible simply by pressing F8
upon boot.
During tests, I found that the recovery options differed significantly for administrators and limited rights users.
As a limited rights user, I was able to kick off a diagnostic scan
called StartUp Repair that automatically looks at the validity of the
file system, the hard disk and the registry, then, as a last resort,
offers to let the user recover to the last System Restore
checkpoint.
Local administrators, on the other hand, are presented with several
options. They can autofix the same problems scanned in StartUp
repair, select from all available System Restore checkpoints, perform a
system Image Recovery, run memory diagnostics or access the command
prompt.
The command prompt lay at the heart of an irregularity I found with
credentials for the Recovery Console. In tests, I found that I
could log into the console as the default local administrator, but only
when no other local administrator accounts are present. The
problem is that, by default, the local administrator account has no
password. This isn't a problem in Windows proper, as the account
is disabled by default, but in these specific instances, the account
suddenly activates.
With access granted via the disabled, no-password administrator
account, I found I could easily access the command line and copy any
data at all on the main partition to a USB stick.








