Dylan Greene dot com

May contain nuts.

How Microsoft could stop spyware and adware with Longhorn...

October 6, 2003 2:33 PM

If I could request one security feature for the upcoming Windows Longhorn, it would be this:

Automatic OS-Level Application Sandboxing.

What does this mean?

1) When you install an application, you choose where to install it. The program you've installed can read and write files only in that directory. If needed, it can request access to other directories, such as My Documents, but it cannot do this without your permission. My MP3 player should have access to my MP3 files, not my entire hard drive.

2) Applications today get full read and write access to the Windows Registry. I propose giving write access only to the applications own section. It can have read and write access to other sections via public API, such as for adding file type associations, that way any changes can be easily tracked and undone.

3) Applications wishing to have Internet access must register themselves in a list of Internet-aware applications. From this list I can see which applications are using the Internet, disable access to any particular program, and see the internet addresses that each program is connecting to and receiving connections from. Programs should also have limits on what addresses they can connect to. An antivirus update program should only have access to connect to the virus update site, not any web site in the world.

4) Only programs installed via Windows Update should have access to the Windows directories. This black box approach will help prevent unstable Windows installations caused by 3rd party programs.

5) Legacy applications that can't be sandboxed with this model must give the user warnings and register themselves in a list of unsafe programs.

The point of this OS-Level Application Sandboxing is to make it impossible for Spyware and Adware to exist. A good side effect is that it will make many virus attacks more difficult. Ideally most of this is transparent to the user. This will also prevent programs like Real Audio from altering Windows Media Player codex and settings without user permission.

This is something I thought of over the weekend. This is not necessarily part of Longhorn. If it is part of Longhorn, it will a coincidence or maybe even because somebody on the team read this and thought it was a good idea.

Comments

If we are lucky Microsoft will read this page and make your ideas a reality. Good stuff :)

I wish they really use these ideas, those are great ideas!!!

Sounds a good idea. A lot of this could be done by setting up the existing ACLs. Though they are a per-user settings rather than per-application.
A good idea would be to set very stringent security policies and then extend the shell so that when a program is denied access to something by an ACL it triggers an appropriately descriptive warning message so that the user can grant access in future. Unfortunately this still leaves you open to social engineering attacks.
(Whoops... You forgot something:
Name (optional) is required.) ???

Um perhaps you must have some comments here.

You could always send this to wishlist@microsoft.com

Edward - thanks, fixed the Name (optional).

An awful lot of this is in the .NET framework, I admit it only works for .NET apps but the security options for them are extensive.

Scotty - the .NET framework helps enforce this functionality, which is awesome. What I am requesting is that the operating system *requires* developers to use this functionality if they want their users to trust their applications.

Great ideas!
By the way, the fuctionality you seek in part 3 is partialy available through an application called netlimiter

Nephrine - thank you. I'm glad there are 3rd party applications that can do this, but for all the mom & pop's out there that don't know how to keep their computer secure and their privacy insured, this really needs to be part of the operating system.
Microsoft is testing an application called PC Satisfaction that also does this, but it is so limmited the functionality is practically pointless. It tells you when an application is trying to access the Internet, but it does not tell you where it is trying to connect and your only options are: Always Allow, Always Deny, Deny This Time Only. Where's Allow This Time Only? Where can I see what applications I have allowed and denied?

Since Longhorn will be using Avalon, which is a .Net API, I don't see why this would not be possible. .Net already has most of these security features built in and Longhorn will most likely use .Net 2.0, so there is room for some changes.

As Erik Arvidsson suggested, since Longhorn in .NET Enabled, most of your reuests are already true. Even now you can set security restrictions on .NET applications. But some of them could push longhorn another year from its release date :)
The other problem is that not all programs are .NET. So you could see large incompatibilities to your existing applications - even windows components.

Lambros - This wouldn't require .NET functionality. I imagine this could work through file system improvements (WinFS?), Internet firewall improvements (PC Satisfaction?), registry API improvements, and user interfaces improvements.
Programs requesting data outside of their secure space will cause the OS to warn the user and ask for permission.

Extremly stupid idea: no application should write in it's installation directory. Only the installation process should write there.
BTW you can accomplish everything right now on XP: do not surf as administrator and activate the software restriction policy. Then you can only run apps installed in the prohram and windows directory. And these directory is not writable by non-admins.
The most common problem why you can't run apps as non-admin?
They write in the application directory or in the machine registry...

Harald - good point, after install programs shouldn't be able to write to their install directory (unless you are installing new features).
But your second point is not true. If you log on as a non-Administrator user, programs can still write to any directory that the current user has access to.
I don't want my MP3 player to have access to my Word documents, but with today's security model, my MP3 player can both read and write my Word documents because it uses my permissions. My MP3 player should only have read access to my mp3 files, and write access only to the section in the registry for it's own settings.

Well, I'm a Microsoft employee and I am reading!

The fact that Longhorn and Avalon are built upon the .NET framework does not imply that they are secure out of the box. Sure, the API's make the types of security restrictions you talk about *possible*, but will Microsoft go the extra step and make those posibilities real? Only time will tell...

What about creating a user account with reduced access?

Great ideas! Personally I like the way that OS/X has done it, integrating a sudo type system so that the user has to type in their password when doing "system" maintenance. Not only does this let the OS not accept any piece of system software that the user (default privs of administrator in XP) installs, but also quietly introduces the idea of permissions and mutli-user functionality to the user. No idea how MS would do it, but the way that Apple does it is better IMHO. (Note: not an apple user :)

This is a great idea... so great it's been invented many
times before :-) The concept behind this is called "type
enforcement", and it's been used in some of the more secure
products out there (e.g., Secure Computing's Sidewinder
firewall), as well as being the subject of countless research
papers and a few patents.
The details differ slightly, but the basic principle is the
same: every program has a "domain", and resources such as files
and TCP/IP ports have "types". A configuration file provides
the allowed types for every domain. You not only have to
have permissions via ACLs, but also pass the type rules before
you can get access.
The scheme Dylan described with limiting things to their
install directories is both too restrictive and too open...
too restrictive in that there may be legitimate places for an
application to write (e.g., for log files), and too open in
that an application should only be able to access files of
its own type (e.g., Word shouldn't be touching MP3 files).
So as to not make this any longer, I'll suggest that anyone
interested in this topic take a look at
http://citeseer.nj.nec.com/badger96domain.html (including
some of the follow-on work on Linux).
[Dylan, you need to make this *@#(%& comment box bigger...
it's unusable!]

The proposed "native" sandbox features are good as a band-aid to the current problems we are seeing wrt ad-ware, trojans and other malware. However, only a managed .NET-solution is fine-grained enough to really make a difference.
Why? Because at the OS-level, you could only securely grant permissions on a process-wide scope, making all code that runs within the same address space equally trusted/untrusted. Consider a "trusted" application (like Internet Explorer) hosting "untrusted" ActiveX-components - the untrusted native components will have all the permissions of IE itself, which are rather generous, because the OS has no clue of who is requesting its services (file, net, registry access etc). Of course, .NET doesn't have this problem.
So, what we should ALSO be wishing for Longhorn/.NET 2.0 is MUCH better security configuration tools for managed code. The power is there today, but it's really rocket science for mom & pop. And everybody must start writing managed applications today!

Don't miss Steve Hiskey's talk at the PDC- Monday 4:45pm:
Building Secure Client Applications in Windows "Longhorn"

It seems to me, instead of writing managed applications and hoping that the .net framework protects you, programmers should learn to write safe code from the start.

dollar says longhorn will be using .NET v3 or 4

Thanks this is a very interesting I enjoyed reading this alot I have a spyware removal board also at http://www.spywareboard.com

For a quick overview on Adware and a good disabling technique, check out http://www.adwarereport.com/mt/archives/000032.html.

Armor2net Personal Firewall software provides a complete spectrum of Internet security and Internet privacy for computers. The program protects the computer from hackers, data thieves, and other Internet-based dangers.

For more information, please visit: http://www.armor2net.com

Way!

for the latest in spyware and adware and to stop the war in iraq

nice site
http://www.b2b-guide.org/

nice site
http://www.flights1.net/

good site
http://www.nightvision.co.in/

sweet site
http://www.flooring1.org/

sweet site

<a href="http://www.google-online-business.com/search-engine-marketing-business-sitemap.html">Search engine marketing business services Site Map</a><br>
<a href="http://www.google-online-business.com/">Search engine marketing business services</a><br>
<a href="http://www.google-online-business.com/">Google Online Business</a><br>
<a href="http://www.google-online-business.com/aboutus.php">About Us Google Information</a><br>

<A href="http://www.promotingwebs.com/">Promoting webs: Best SEM SEO Link Building Website Services India</A><br>
<A href="http://www.promotingwebs.com/seo-linkbuilding-promotion-marketing-services-india-sitemap.html">SEO Link Building Promotion Marketing Services India</A><br>
<A href="http://www.promotingwebs.com/about-promotingwebs.html">About Promoting Webs</A><br>

http://www.groupme.info/technology/telecommunication/

ok

Now covered by .NET functionality

A very interesting article on spyware removal, thanks

Stewart

http://www.posacrylics.co.uk

Spyware is becoming a worse issue than a virus

Your Comments
Name:
Email address (optional):
Home page, blog, or journal (optional):
Comments:

Related Posts

Category: Microsoft
Category: Ideas