Rob Garrett - Blogs

Welcome to Rob Garrett - Blogs Sign in | Join | Help
in Search
Google

Software/Technology Discussion

Software and Technology Tid-bits

Running as Non-Admin

I have recently converted my developer workstations over to running as non-admin.  I was inspired to move over to a least-privilege user account after sitting in on a talk by Randy Hayes – president for the CMAP (Central Maryland Association of .NET Professionals) user group.  The principle theme of Randy’s talk was about better protecting your Windows machine from spy ware and viruses by running as a non-admin.

Since being part of the audience for Randy’s talk I have been preaching the need to run as a least-privilege user account (LUA) to all my friends, family and work colleagues, so I decided to write up a post on the subject.

I am not too proud to announce that Randy’s talk changed the way in which I think of security on the Windows platform, and this post is testament to his teaching.  With a few exceptions, most of the details in this post are from Randy’s talk.

The Problem
Your Windows computer is under attack!  If you take a fresh install of Windows XP, sans-service pack and patches, and then connect it directly to the Internet, within seconds your machine will likely be compromised by a virus or spy ware applications.  Installation of service packs, use of a firewall and network address translation (using a router) can all help, but what about malicious code that gets downloaded to your PC by you?

Each web site that you visit, from your computer, has the potential to host malicious code, which is downloaded, installed and executed without you even knowing about it.  If you are not careful about opening email attachments from unknown senders, you could also be opening yourself up for attack.

I hear the same complaints when I speak to peers and family members – “My Windows machine is running and slow and/or swamped with viruses”.  Conversely, when I speak to Macintosh and Linux users, I do not hear quite as many complaints – why is that?  The answer has nothing to do with Windows having a larger user base, but more likely because Windows is easy to penetrate due to the default user account holding administrator privileges.

A Potential Solution
Industry has an answer to the mass amounts of spy ware and virus applications that attack the Windows operating system, in the form of utilities, which scan your computer and remove malicious code that has been detected.

There are so many different anti-virus and anti-spy ware utilities to choose from.  Some are better than others, some are free, some are expensive, some require subscription, some do not, but they all have suffer from one inherent problem – Utilities are only effective in detecting known malicious code.  So what about malicious code that we do not yet know about?

As fast as developers can develop code to detect known anti-virus and spy-ware, the faster new breeds of malicious code are invented and released on the Internet.  This leaves your machine open to attack while you wait for the next release of service pack. 

A Better Solution
A better solution involves lowering that attack service on your computer – running as LUA.  When you operate your day-to-day tasks under and account with administrator privileges the attack surface consists of:

•    Your operating system files
•    Your application files
•    Your machine registry
•    Your personal files
•    Your personal registry

Switching over to a LUA immediately restricts the attack service to the following:

•    Your personal files
•    Your personal registry

This is because the LUA, by default, does not have write access to operating system and application files.

In an ideal world your personal files and personal registry would be protected from attack also, however, all is not as bad as it seems.  Most spy ware and virus applications are after attacking your operating system and applications – rendering your machine unusable.  Personal files can (and should) be backed up, in the event of machine failure or attack, as can the user registry.  In a worst case scenario, if a virus attacked your personal files and personal registry all that is required is to delete your work files, delete the user profile and create a new one.  If your operating system or applications are affected, then you are looking at repaving your entire machine.

How to tell if you are an admin in Windows:

•    Right click the start button, if you see “explore all users” you ARE an admin
•    Double click the clock in the system try, if the date/time applet appears the you ARE an admin
•    Right click the “My Computer” icon on the desktop, click computer name.  If you see a “change” box then you ARE an admin

How to run as LUA
•    Remove your user account from the “Administrators” group.  If you are using the default “Administrator” account, then create another low privileged user for your day to day tasks.
•    Never use the “Power Users” group – even though this group is not the “Administrators” group, users that belong to this group still have administrative privileges across your machine.
•    If you are part of a corporate domain and the only administrative account on your machine is your day-to-day user account (many corps disable the main "Administrator" account) , then be sure to create a local admin account on your machine before revoking the administrative privileges of your day-to-day account.  This will ensure that you have at least one an administrative account on your machine, which can be used via the "run-as" command.

NTFS is your friend
NTFS is a system that manages your file system, and includes management of file security.  If your file system is using FAT/FAT32 you will need to convert to NTFS to take advantage of file security. 

Chances are that you may not have messed with the default security permissions that were applied to operating system and application files when Windows was installed. This being the case, your operating system and application files will be protected from malicious code when running as LUA.  If, however, you have made changes to NTFS security and wish to restore permissions to the default Windows installation settings, execute the following statement at a command prompt:

secedit /configure /cfg %windir%\repair\secsetup.inf /db secsetup.sdb /verbose /areas FILESTORE

Warning: The above command will reset all of the file security permissions on your operating system drive, so you shall need to be running as an administrator, and be aware that any changes made to file security permissions after you installed Windows will be lost.

Objections
•    “I do not want to be restricted”
    o    Neither will malicious code
    o    You will spend all your time updating the signatures of your anti-spy ware and anti-virus utilities

•    “Some of my applications do not work as non-admin”
    o    Find out why, some effort may be required to get apps to work as non-admin, but the secure peace of mind pay off is worth the effort.
    o    Call the manufacturer and DEMAND that they make their application work under LUA
    o    Avoid software that does not carry the “designed for Microsoft Windows XP”

•    “I hate logging out to install software or perform an administrative configuration”
    o    Get used to using the “run-as” option (right click shortcuts with the left shift key down)
    o    In commercial organizations it is common practice to log on as a domain admin to install and configure software, but office users do not all have the
domain password. 

•    “Some of my developed code does not execute under LUA”
    o    This is a good opportunity to take a look at your code and find out why it requires administrative rights to execute.  If you can get your code to work as LUA then it will most likely deploy better, and require limited hands-on installation when moving it to a production environment.

Where can I find out more information?
•    Randy Hayes’s presentation slides can be downloaded from here
•    www.non-admin.com is a new web site being set up by Randy to educate non-technical readers on configuring their computer as LUA


Share this post: Email it! | bookmark it! | digg it! | reddit!
Published Wednesday, November 09, 2005 2:31 PM by Rob Garrett

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

 

TrackBack said:

November 9, 2005 2:51 PM

Leave a Comment

(required) 
(optional)
(required) 
Submit

Blurb


Head Shot
Rob Garrett is a British Expat living in Maryland USA. Rob is a trained software engineer and experienced in Windows .NET development.

Rob enjoys listening to Rock music, posting to blogs, driving in the country with the sunroof open, beer (not in conjunction with country driving) and spending time with his family.

This Blog

Syndication

Powered by Community Server, by Telligent Systems