Welcome to MSDN Blogs Sign in | Join | Help

Microsoft RSS Blog

All about RSS and feed technology at Microsoft and across the community
Securing feed enclosures

Greetings,

I am one of the developers on the RSS team, and to complement Sean’s and Walter’s recent postings on feed security, I would like to talk about one topic that didn’t get as much attention in recent discussions on feed security as perhaps it should have - feed enclosures. Enclosures are files “attached” to feed items, commonly used in podcasting and often automatically downloaded to user’s machine by aggregators.

In IE7 and the Windows RSS Platform, we have taken a number of precautions to protect users and developers against feeds which may attempt to use enclosures in malicious ways.

To begin with, when a user subscribes to a feed in IE7 enclosure downloads are turned off by default. Users can easily opt-in to enclosure downloads via the feed properties.

We also treat enclosures as inherently un-trusted files – in many ways similar to email attachments. We decided not to permit directly-executable (i.e. any file that would execute arbitrary code when double-clicked) or other dangerous files to be downloaded as feed enclosures (there are no common scenarios that require this today, and if it is absolutely necessary, it is possible to wrap an executable file in another format, so that it is no longer directly executable). For this we use the most flexible mechanism possible, the Attachment Execution Service (AES). In simple terms, the AES maintains a list of file extensions that are considered dangerous, including the directly-executable file types, which the RSS platform consults to decide whether or not to block a file.

Besides blocking the dangerous file types, AES also has a mechanism which allows security programs, such as anti-virus or anti-spyware, to integrate with it, allowing them to inspect files before we make them available to developers or users. Windows Defender has implemented this integration, so on Windows Vista (or if the user has installed Windows Defender on Windows XP), the user will gain that additional level of protection from the malicious files.

IE also has a mechanism to block file downloads on a per-zone basis, so before fetching the enclosure we also verify that downloads are allowed for the URL. You can find this per-zone setting in your Internet Options, under Security tab. The simplest way to prevent enclosure downloads from a site is to add it to the Restricted Zone, where downloads are disabled by default.

If an enclosure download does get blocked for security reasons, this is reported in the feed view as well as through the RSS platform’s LastDownloadError property.

Downloaded enclosures are stored in a subfolder of the Temporary Internet Files folder. The full path to the enclosures is different on every machine, preventing malicious feeds or other malicious code from using enclosure downloads as a vector to get known files on the system, as well as ensuring that other applications don’t unknowingly access enclosure files. If an application wants access to the downloaded enclosures it needs to obtain the path from the RSS platform.

To summarize: enclosures are treated as un-trusted files, and the following security mitigations are used:

  • Enclosure download is off by-default for all feeds.
  • Directly-executable files are blocked from being downloaded, using the Windows Attachment Execution Service (AES).
  • Anti-virus and Anti-spyware applications (like Windows Defender) can integrate with AES to dynamically block malicious files.
  • Files are stored in a variable location on each PC, ensuring that applications must opt-in to consuming the enclosures.

As before, we want to make sure all aggregator developers know that the tools we are using to make IE and the RSS platform more secure are available for their use as well:

Once again, we would like to reiterate our commitment to working with the community to improve feed security, and as always we are open for your feedback and questions.

Thank you,

Miladin

Update 9/25/2006: Added a summary paragraph for clarity

Posted: Wednesday, September 20, 2006 11:25 PM by rss

Comments

Christian said:

Oh great!

Does this mean that enclosures are threated like trash? No roaming, automatic deletion when I delete temporary internet files?

I personally want my feeds and the content to stay for as long as possible. I would like to KEEP the podcasts and not to loose them when roaming to another computer
# September 21, 2006 3:50 PM

rss said:

Enclosures are not deleted with the rest internet cache when the cache is cleared.

Enclosures are only removed with the item that they are associated with is removed (by default, 200 items are kept for a feed -- this number can be changed).

Their presence under the TIF is just another level of defense. It is an area that is treated specially by the OS -- files in that folder are automatically assumed to be "from the Internet" and therefore untrusted.

It does mean, however, that they won't roam automatically.
# September 21, 2006 9:53 PM

Christopher said:

In RC1 .mp3 enclosures downloaded no problem but in RC2 they don't and I get the text "(Download error - Blocked file type)" instead.

For such a common senario, this should not be the case, is there a security setting that was changed that I can't find?

# October 14, 2006 3:51 PM

Sean said:

Can you contact us at teamrss@microsoft.com, so we can follow up for some more detail?

# October 15, 2006 12:43 AM

Alessandro said:

I have exactly the same problem of Christopher but with IE7.0. Has a remedy been found?

# December 26, 2006 6:28 PM

Andreas said:

We found an issue with IE 7 and the news feeds database on roaming profiles.

On roaming profiles the news feeds are stored under directory %userprofile%\Local Settings\Application Data\Microsoft\Feeds Cache and this directory is by design not roaming - so every rss feed gets lost if a user log off and log on again.

Is there any possibility to change the feeds db location, to an persisten path?

Thanks in advance,

Andreas

# March 21, 2007 12:06 PM

Lanad said:

# July 8, 2007 1:32 PM

Niraj said:

Hi Sean ..

Can i know how do i create a feed for more than 100 items in a single feed ..

Thanks in advance..

Regards,

Niraj

# July 19, 2007 8:09 AM

program said:

Very good . You are doing a great job.

# August 20, 2007 3:06 AM

moderowany katalog said:

Is there a windows defender emulation that runs under XP?                          

# March 19, 2008 8:12 PM

parkiety said:

Thank you for the good work - I read this blog willingly

# April 18, 2008 6:15 PM

zaklady bukmacherskie said:

Nice to see so good informations. Very good blog.

# April 27, 2008 5:02 PM

felgi said:

Great Article, good to read something interesting! I'm expecing more!

# June 1, 2008 5:03 AM

Rules said:

Is there any possibility to change the feeds db location, to an persisten path?

# June 6, 2008 4:49 AM

Boszkowo said:

Very good . You are doing a great job.

# June 9, 2008 6:00 AM

wakacje nad morzem said:

I think about use RSS in my website : <code><a href="http://www.wakacyjny.pl" title="tanie noclegi">Wakacje nad morzem</a></code> but I don't know how !. Where can I find information about it ?

# June 22, 2008 12:18 PM

linki sponsorowane said:

Very interesting article, good and simple to read... I'm expecing more articles like this.

Regars,

ZuRu

# June 27, 2008 4:11 AM

ogłoszenia motoryzacyjne, samochody, sprzedam samochód said:

Great article. It`s realy worth reading. I wish you further successes

# June 30, 2008 7:31 AM

bet365 said:

removed with the item that they are associated with is removed (by default, 200 items are kept for a feed -- this number can be changed).

# September 13, 2008 2:20 PM

parkiety said:

Always have a well-configure each program. thank you for your help

# November 23, 2008 9:37 AM

ChaosFreak said:

How can I make mp3 enclosures in podcasts available to Windows Media Player?

# January 13, 2009 1:08 AM
Leave a Comment

(required) 

(required) 

(optional)

(required) 

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

Page view tracker