Understanding Windows Vista Service Hardening

Daily Newsletters

Sign up to ZDNet UK's daily newsletter.

TUTORIAL

Microsoft has been touting Windows Vista as the most secure Windows ever. Backing up that claim, Microsoft has included a number of new security features in the operating system. These new features are designed to address some of the common vectors by which previous versions of Windows have fallen to anonymous miscreants and other criminals.

One such new feature in Windows Vista is known as Windows Service Hardening. In older versions of Windows, services did not necessarily run with the least possible privileges. In fact, Windows services often ran under accounts with very high level of access, such as the LocalSystem account. Further, users are often not aware of the services running on their systems, and do not realise that some services are safe to disable. Finally, services and user applications ran in the same space, which could result in inappropriate access. As a result of services running with privileges that did not match necessity, and services running that users did not require, Windows desktops were left more vulnerable to attack.

What's Windows Service Hardening?

Vista's Service Hardening is designed to mitigate some of these shortcomings. The feature uses four methods to achieve its goals:

  • Service isolation
  • Least privilege
  • Restricted network access
  • Session 0 isolation

We'll talk about each of these security methods in some detail.

Service isolation

Before Windows Vista, when a service needed access to an object that required a high level of security, one of two approaches could be taken:

  • The service could be run using an account that granted a high level of rights to the system. The LocalSystem account, for example, would provide this level of service. This is the approach that was most commonly taken but unnecessarily opened up the system to possible attack.
  • The security configuration for the object to which access was required could be reconfigured to allow access from a special account with fewer privileges. Besides creating an administrative nightmare (imagine having to create a service account for every account and then maintaining passwords for those accounts), this approach would provide an attacker with another vector by which to attack a system.

Enter service isolation. Service isolation is a method by which a Vista service can access a required object without having to jump through administrative hoops or use a super-administrator account like LocalSystem. Service isolation works by securing a target object — such as a registry key — with an access control entry that contains a security ID. This ID is referred to as a "service identity", "per-service SID" or, in some documentation, just "SID", which should not be confused with the phrase "security identifier" (also known as the SID) used by Windows and Active Directory. This SID is unique to the service and is derived from the service name.

Once the SID is created and assigned for use by a service, an object's (for example, a registry key to which a service needs to write information) access control list can be modified to include the new SID, thus allowing the service to access the object without giving away the privilege farm.

Restricted SIDs

Even when a service is using one of these service-specific SIDs, the service is still able to access other resources because the service's process token also contains the SID for the service account (ie, LocalService or NetworkService). If the service is compromised, a potential attacker can cause additional damage by accessing the resources that are not related to the service, but are accessible to the LocalService account.

Windows Vista tries to help you here, too. In an attempt to limit the potential damage caused by a compromised service, Windows Vista combines write-restricted tokens and per-service SIDs to establish restricted SIDs for services. If a service enables a restricted SID, then that service's per-service SID is combined with both the normal and restricted SID list of the write-restricted service access token. Now, the service can write only to objects that have been specifically granted write access to one of the SIDs in the restricted list.

Let's look at an example.

Suppose that a particular service runs using the LocalService account and also has a service SID enabled. As a result, the service has access to objects that have been granted per-service access, but the service also has access to all objects that provide access to the LocalService account. By enabling restricted SIDs, this can no longer write to any object that grants access to LocalService account. Why? Those objects do not grant write access to the per-service SID of your service.

Least privilege

The LocalSystem account provides the keys to every aspect of a system. This is also the account under which many Windows services run. Therefore, these services are favourites among hackers since a successful exploit against one of these services can provide wide and deep access to a system.

In order to protect a system, a best practice is to run each service using an account with the least privileges necessary to accomplish the service's goals. Although Windows provides other accounts that have significantly fewer rights, some services require privileges provides only by the LocalSystem account.

Under older versions of Windows, the LocalSystem account provided carte blanche access. Under Windows Vista, services requiring LocalSystem-only rights can still use the LocalSystem account, but can be configured to be granted only those rights that are required for the service to operate, and no more. LocalSystem is not the only account that can use this new feature. The following accounts or account types can also use this least privilege mechanism:

  • LocalService account: The LocalService account has minimum rights on the local computer and uses anonymous credentials on the network. This account has reduced privileges and acts in a similar fashion to an authenticated local user account. Use of this account is useful when the LocalSystem account provides too much access for services that do not need deep access to a system.
  • NetworkService account: The NetworkService account is similar to the LocalService account in that this account provides lesser rights than LocalSystem. Where NetworkService differs from LocalService is in cases during which the service needs to access remote resources. Whereas LocalService provides anonymous credentials for access to remote resources, NetworkService accesses remote resources using the credentials of the computer account.
  • Domain accounts: User accounts created in the Active Directory domain.
  • Local accounts: User accounts created on the local computer.

Under Windows Vista, when a service starts, the service requests specific privileges — not all privileges — provided by the LocalSystem account. Rights that are not specifically requested in some way are removed from the service's access token. If a service has not been designed with this new security feature, the service is assigned all of the rights granted by LocalSystem. This helps to maintain backward compatibility for older services. For shared-process services, all processes in the group are assigned all of the rights requested by each of the individual processes.

It's important to note that this principle of least privilege does not limit a hacker's ability to exploit a flaw in a service. It does, however, limit the damage that can be wrought by an attacker's successful breach of your other defences.

Service network access restrictions

Over the years, services running in Windows have become more and more dependent on being accessible to the network or accessible by other computers on your network. Services that face the network in this way are more vulnerable to attack since, in order to work their magic, these services are just waiting for remote connections, making them more susceptible to malicious activity.

Under Windows Vista, a developer can restrict a service's access by TCP/UDP port, protocol, or even by the direction that network traffic is flowing. When restrictions like these are in place, attempts to access a service using other methods will be blocked, protecting that service from some attack vectors.

Windows Vista services can also be configured to not allow network access in which case the service cannot be remotely exploited, but neither can the service make connections to remote services. However, not every service really needs network access.

Windows Vista's service-level network access restrictions hardening feature works in a similar fashion, as the service isolation feature in that the restrictions are implemented through the use of service-level SIDs.

Session 0 isolation

For this section, the assumption is that you are using Vista as a desktop, and not as a server serving remote users.

Under Windows XP, when a user logs into the console, all services and applications run in what is called Session 0. When Fast User Switching is enabled in Windows XP, the first user's applications are assigned to Session 0, along with all of the system's running services. As additional users log into the system via Fast User Switching, each additional user's applications are run inside a new session. So the second user's applications run in Session 1, and the third user's applications run in Session 2. However, regardless of how many people log in to the system, all services, as well as the original user's applications, continue to run in Session 0.

Mixing services, many of which run with considerable privileges, with user applications can create significant security issues. If an application is poorly written, falls victim to an exploit, or if that application is running in the same session as services, those services are more vulnerable to compromise than they would be if the applications were running in a separate box.

In order to combat this potential threat, Windows Vista does not allow any user applications to be run in Session 0. All other applications must run in Session 1 or higher. Only services and other non-user-facing applications run in Session 0, thus maintaining isolation between services and user applications.

New and improved service security

Through these changes to the Windows Vista service model, Windows Vista aims to better protect your system in the event of a breach. With the exception of Session 0 Isolation, Vista's Service Hardening features are not necessarily designed to block attacks on services hosted in Vista. Instead, Vista's Service Hardening features are designed to limit the potential damage that can be done when a service is breached.

Service Hardening, when combined with other Vista services, such as its new firewall, can provide a formidable defence. Between these and other services, Vista provides multiple layers of defence, designed to keep your system safe and secure.

Post your comment

In order to post a comment you need to be registered and logged in.

You can also log in with Facebook. Log in or create your ZDNet UK account below

  • Login

Will not be displayed with your comment

By signing up for this service, you indicate that you agree to our Terms and Conditions and have read and understood our Privacy Policy. Questions about membership? Find the answers in the Community FAQ

Get ZDNet UK's daily newsletter

Enter your email address to sign up

ZDNet UK Live

Jason Burchell

seriously now. I've only bothered to read a small bit of the comments. do me and the rest of the world a favour. stop saying it does not work or...

2 hours ago by Jason Burchell via Facebook on Music industry negotiating over 24-bit downloads
Philip Charles Cohen

Read about it and weep, John Donahoe ... In addition to Visa’s V.me, there is now MasterCard’s PayPass digital wallet soon to arrive; another...

6 hours ago by Philip Charles Cohen via Facebook on PayPal takes phone-based payments to the high street
apexwm

Leslie Satenstein : Where have you ever seen Mozilla even mention this? Firefox is the most popular browser in the GNU/Linux OS, so I don't see...

6 hours ago by apexwm on Firefox rapid release improves Fedora Linux
songmaster

SHleG: Do you remember building a clockwork scorpion kit (I'm pretty sure I have a photo of it somewhere) — I think it was called something like...

8 hours ago by songmaster on Software with everything
Chris Wortman

Good I love Yahoo! Their search engine is getting better than Google as of late. I find more of what I want on the first page, and usually within...

9 hours ago by Chris Wortman via Facebook on Linux Mint 13 ramps up for KDE release
PatrickG

openhgs has made the point for Windows 8 multiple monitors without realising it! With Windows 7 you have to switch the mouse and so your focus...

10 hours ago by PatrickG on Windows 8 could speed multi-monitor uptake
Leslie Satenstein

Mozilla has threatened to stop supporting Linux. I guess that UBUNTU is going with another browser. I indicated that if Mozilla stops supporting...

12 hours ago by Leslie Satenstein via Facebook on Firefox rapid release improves Fedora Linux
Andy Bolstridge

Much as I abhor Microsoft's licensing practices, this is almost certainly down to purchasing IT equipment via 3rd party consultants - you get the...

12 hours ago by Andy Bolstridge via Facebook on 6 million wasted licences and £1,200 PCs: welcome to government IT
Jack Schofield

@openhgs Windows users have had multiple desktops since Linus started writing Linux. They just haven't shipped as standard because not enough...

1 day ago by Jack Schofield on Windows 8 could speed multi-monitor uptake
Jack Schofield

@Phil at Cloud4 What, Microsoft gets £1,200 per PC and £1,622 per server? Gosh, I'm amazed....

1 day ago by Jack Schofield on 6 million wasted licences and £1,200 PCs: welcome to government IT
craigsc

You guys have no idea what is going on at Autonomy. Autonomy could have been a much more profitable organization. The sales operations at Autonomy...

1 day ago by craigsc on HP cuts 27,000 staff as Autonomy chief Lynch leaves
Moley

How does this impact on dual or multi booting? Seems to me to more or less prohibit this, from Windows 8 anyway. Will Grub 2 recognise Windows 8,...

1 day ago by Moley on Windows 8 start-up speed forces USB boot workaround
apexwm

I don't understand why there cannot be a slight pause during the boot process so the user can press a key. Many operating systems do this, even if...

1 day ago by apexwm on Windows 8 start-up speed forces USB boot workaround
Gavin Goodman

You can now buy the Xi3 modular computer in the UK at http://www.ocdistribution.com . This can be bought with the Tand3m software, pricing and...

1 day ago by Gavin Goodman on CES 2012: Xi3 microSERV3R
Phil at Cloud4

I agree: Mike Lynch can clearly build a business and manage strategy. I suspect the exit of Mike is more likely the end of a planned handover...

1 day ago by Phil at Cloud4 on HP cuts 27,000 staff as Autonomy chief Lynch leaves
Phil at Cloud4

This is unbeleivable government wastage with only one winner... Microsoft 1 - Tax payer Nil!

1 day ago by Phil at Cloud4 on 6 million wasted licences and £1,200 PCs: welcome to government IT
Mispam

So what do you do when you can't boot into windows? Why can't I just hold Shift while I power up instead of having to boot into windows and click a...

2 days ago by Mispam on Windows 8 start-up speed forces USB boot workaround
apexwm

I've also seen that Mac OS X for Intel machines is supposed to run in VirtualBox, which would also be a nice solution. I've never tried it though.

2 days ago by apexwm on xTreme Triple Booting: Linux, Mac & Windows
dave heasman

What I wonder is why when companies are caught bang to rights in not providing contracted services, people bend over to smear the customers? Surely...

2 days ago by dave heasman on Virgin throttles broadband for high-speed customers
pjc158

Strange statement from HP regarding Mike Lynch and not capable of scaling a company. Autonomy was a $7bn purchase which started as a small company...

2 days ago by pjc158 on HP cuts 27,000 staff as Autonomy chief Lynch leaves