By Michael Theroux
As much as it would be prudent to recommend that everyone dispense with conventional desktop operating systems and only use something like the live CDs “Knoppix” or “Ubuntu” for anything you do online, 90% of us are still using Microsoft Windows®. So, this is simply a ‘best practices’ document detailing how one can relatively secure a Microsoft Windows® desktop - to the best of their ability. Mind you, ‘securing Windows’ is quite an oxymoron, but you’d be surprised that MS is actually trying to lead the fight in securing their faulty OS. Due to the nature of the Windows OS, one must add-on what I like to call several ‘prophylactic’ programs for “safe surfing”. These include applications for anti-virus, anti-spyware, OS patching, firewalls, alternative web browsers, rootkit detectors, and process ‘sentries’. Most users know about anti-virus, firewalls, and anti-spyware, but I’d like to stray from convention, and introduce the proactive to the reactive, so I’ve included a couple of relatively new add-ons. How much of this will be relevant when MS rolls out the new OS is to be seen, but from what I gathered, they’re not completely re-architecting the OS, so you’ll still need to use protection.
The use of these practices will in no way ensure your desktop will be secured from exploits. There are new vulnerabilities discovered every day, and new software exploits will be written to take advantage of them.
The corporate desktop user is using Windows XP® Professional – the standard desktop operating system as defined by the user’s corporation. The user has administrative privileges to several applications and systems on the corporate network. The user’s desktop is partially patched, but not up to date. The desktop has an anti-virus program installed, and is running a personal firewall. It also has an anti-spyware program installed with real-time protection. The user receives an ‘interesting’ email with a link to a website in the text of the email. The user clicks on the link, and Internet Explorer opens up, going directly to the website. The site possesses hidden malicious code which then exploits a vulnerability in MS IE, downloading and running a small application which “hooks” into IE allowing it to bypass the personal firewall. The application then runs in the background, downloading anything from backdoor trojans, rootkits, spyware, keyloggers, and a whole variety of malware. These applications in many cases have the ability to disable antivirus and spyware applications, and also slip under software firewalls, so they can send data back to the originator of the malware. They may hide themselves in memory, hidden hard drive partitions, in the BIOS, Video card EEPROM, disk bad sectors, alternate data streams, etc. They may install applications which can control your hardware such as turning on the microphone or a video camera to record what’s going on in the room (and then send this captured info to the hacker). With a backdoor installed, a hacker would have complete control over the users desktop without their knowledge. Accessing data (such as user IDs and passwords) collected from the keylogger, the hacker would then have access to any systems the corporate desktop user has access to (and any personal information such as credit card numbers, banking passwords, etc.) No matter how secure the corporate network is, it can be completely compromised from a user’s desktop.
Although the previous scenario depicts the user in a corporate environment,
all of these practices should apply to the home user as well.
The first and most obvious defense in securing the OS is to make sure operating system “patches” are up to date. Having up-to-date patches won’t guarantee invulnerability, but it will take care of all the ‘known’ vulnerabilities in the wild, thus ruling out these known vulnerabilities should one need to investigate a problem. It is wise to have automatic updates turned on so that the usual MS rollout of patches is installed on the desktop. In the corporate environment, a suitable patch management application should be used to push patches to the desktop.
One of the major vulnerability problems with Windows has always been their web browser, Internet Explorer® (IE). Since the browser is so closely tied in with the operating system, vulnerabilities can become quite serious. It is recommended that an alternative browser be installed such as Firefox or Opera. While these browsers are not immune to vulnerabilities, they are far safer than using IE.
While anti-virus applications are reactive in nature due to the fact that they are signature-based and can only ‘react’ to a problem with the proper signatures installed, it is still a necessary evil to have an up-to-date AV application installed on the desktop. Here again, automatic updates should be turned on so that new definitions will automatically be installed when rolled out by the anti-virus vendors.
Personal firewalls, such as ZoneAlarm, offer the ability to regulate traffic to and from your desktop computer. There are 65,535 “ports” available to choose from for sending and receiving information in the form of ‘packets’. Many of these ports are registered for specific services such as port 443 for secure HTTP (SSL), or ports 6665-6669 for Internet Relay Chat (for a complete listing, see Ports for Internet Services). The firewall can be configured to allow or disallow traffic on any of these ports. The problem with these firewalls arises from the end-user’s perspective – what should be allowed or disallowed? Most personal firewall applications try to make this an easy process for the end user by asking each time an application wishes to send or receive data through one of these ports. Unfortunately, if the application is allowed to send and receive, any hook into that application will be allowed as well. All one has to do is look at the giant list of individual add-on apps associated with Internet Explorer to see that they are given the same carte blanche as the original program. While a few personal firewall vendors have mitigated some of these issues, there are still significant risks. For instance, “users with sufficient privileges or malicious programs that exploit a vulnerability on a system will be able to install software that ‘climbs over the top’ of the firewall.” Once a malicious application is allowed to come in ‘over the top’ it is then easy for it to “dig its way out underneath or even go straight through the firewall.” (see Software Firewalls versus Wormhole Tunnels). With that said, personal firewalls should not be relied on as a major line of defense to keep your desktop secure.
The term spyware refers to a broad category of malicious software designed to intercept or take partial control of a computer's operation without the informed consent of that machine's owner or legitimate user. There are many programs available for the detection of spyware, but like the anti-virus applications, they are signature based, and therefore reactive to problems. One anti-spyware application that attempts to go beyond simple signature based detection is Windows Defender. Defender has built-in functions which monitor services and drivers as they interact with the OS, and monitors when programs start, and any operations they perform while running (see Microsoft’s Anti-Spyware Strategy for more). This performs a more proactive function with respect to the health of your operating system than the reactive, ‘after-the-fact’ signature-based applications. Another application that protects Windows processes from attacks by other processes, services, drivers, and other forms of executing code on your system is DiamondCS’s ProcessGuard. ProcessGuard also stops applications from executing without the users consent, attempts to stop malicious worms and trojans from being executed silently in the background, as well as a variety of other attacks. It even claims to stop most keyloggers and firewall leaks, and is “recognised by many to be the most comprehensive anti-rootkit solution available.” In my opinion, Windows Defender and ProcessGuard are a great step in the right direction away from the purely reactive detection applications. If I could only have one of these prophylactic add-ons for Windows, ProcessGuard would be the one.
A rootkit is defined as “a set of software tools frequently used by a third party (usually an intruder) after gaining access to a computer system”. These tools are intended to conceal running processes, files or system data, which helps an intruder maintain access to a system without the user's knowledge. While many rootkits are difficult if not in some cases impossible to detect with conventional signature-based anti-malware applications, again Windows Defender and ProcessGuard are the best proactive approach yet. One might also look at SysInternals RootkitRevealer, and Microsoft’s Strider GhostBuster Rootkit Detection for more on rootkits and their detection. If your tech savvy, check out Rootkit.com for the real gruesome details.
While installing all of these applications on your computer will help to secure your desktop OS, the security of a system is still defined by how the user interacts with it. Individual or group security policies should be in place and should not allow the desktop user to change them. All too often, the desktop user will have been granted privileges such as local administrative access which allows them complete control over these applications and policies. Also, the OS, and many installed applications will have default configurations which make the system vulnerable, and they need to be changed (for example, in the default configuration of IE, a rogue website you’ve connected to can steal the entire contents of your clipboard, potentially compromising sensitive personal data. [See ProjectIP for just what kind of info a site can glean from you connecting to it] Fix: Go to Tools > Internet Options > Security > Select a security zone > Custom Level > Scripting > Allow paste operations via script and set it to Disabled or Prompt.)
This still can’t keep the average user from opening email attachments or
clicking on malicious links, but in the corporate environment, controls can be
put in place for monitoring and disallowing such activities. Controls can also
limit the potential damage to a system by hardening the OS against
a user account - i.e. denying a user access to things like cmd.exe, the %systemroot% dir, etc. Controls need to be quite balanced, though, as a desktop should be secure, but still very useable. All of the information presented here is just as valid for the home user too, but you’ll have to set your own permissions and follow good surfing practices.
Here’s a review of the best practices and applications one should have installed and configured on their Windows desktop:
Patch management – Microsoft Update
Firewalls - ZoneAlarm
Rootkit Detectors - SysInternals RootkitRevealer
Review system security policies and application default configurations.
Thanks to Eric Johansen for review of this document and valuable input.