<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Statistical Validation of the IE8 XSS Filter</title><link>http://blogs.msdn.com/ie/archive/2008/09/29/statistical-validation-of-the-ie8-xss-filter.aspx</link><description>Greetings, I’m Russ McRee of Microsoft’s Online Services Security &amp;amp; Compliance Incident Management team. My team serves as incident handlers for the various types of attacks our online services face. High on the list of incidents we handle are cross-site</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>  Statistical Validation of the IE8 XSS Filter : EasyCoded</title><link>http://blogs.msdn.com/ie/archive/2008/09/29/statistical-validation-of-the-ie8-xss-filter.aspx#8969290</link><pubDate>Mon, 29 Sep 2008 21:10:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8969290</guid><dc:creator>  Statistical Validation of the IE8 XSS Filter : EasyCoded</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://www.easycoded.com/statistical-validation-of-the-ie8-xss-filter/"&gt;http://www.easycoded.com/statistical-validation-of-the-ie8-xss-filter/&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: Statistical Validation of the IE8 XSS Filter</title><link>http://blogs.msdn.com/ie/archive/2008/09/29/statistical-validation-of-the-ie8-xss-filter.aspx#8969496</link><pubDate>Tue, 30 Sep 2008 00:21:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8969496</guid><dc:creator>Ben Voigt [C++ MVP]</dc:creator><description>&lt;p&gt;A more important statistic, perhaps, would be the fraction of hackers with the knowledge to execute an XSS attack today who will be unable to do so with the IE8 XSS filter. &amp;nbsp;This is surely far less than 70% neutralized and likely near zero.&lt;/p&gt;
&lt;p&gt;An arms race may work against spam, where the volume of malicious content is the problem, but in the XSS domain where individual attacks can be serious, bolt-on solutions won't work. &amp;nbsp;Sites have to be re-architected to protect against the attack and not rely on a browser that statistically identifies and blocks even 99% of attack vectors.&lt;/p&gt;
&lt;p&gt;It would be worthwhile to close some fraction of vulnerabilities, so some fraction of affected websites become safe against all attack, but I doubt this filter will do so. &amp;nbsp;The hackers just have to obfuscate their scripts to the point that the filter can't recognize them.&lt;/p&gt;
</description></item><item><title>re: Statistical Validation of the IE8 XSS Filter</title><link>http://blogs.msdn.com/ie/archive/2008/09/29/statistical-validation-of-the-ie8-xss-filter.aspx#8969521</link><pubDate>Tue, 30 Sep 2008 00:59:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8969521</guid><dc:creator>Ted</dc:creator><description>&lt;p&gt;That's where you're wrong, Ben. This isn't a bolt-on protection; they built it into the core engine of the browser. &amp;nbsp;Remember, bad guys can obfuscate their attacks all they want, but at the end of the day, the browser has to actually deobfuscate the script enough to run it. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;So an attacker needs to be able to create a script which the filter/browser doesn't recognize, but which the scriptengine/browser will run. &amp;nbsp;That's a lot harder than you imply.&lt;/p&gt;
</description></item><item><title>re: Statistical Validation of the IE8 XSS Filter</title><link>http://blogs.msdn.com/ie/archive/2008/09/29/statistical-validation-of-the-ie8-xss-filter.aspx#8970025</link><pubDate>Tue, 30 Sep 2008 11:33:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8970025</guid><dc:creator>Mitch 74</dc:creator><description>&lt;p&gt;@Ted: I think Ben wasn't using 'bolt-on' to say it's a quick hack, only that this solution isn't perfect: however smart it is, it's still only a workaround for badly secured sites, and may not work in all cases. If such is the case (and that seems to be Ben's concern), the solution may bring in a false sense of security, letting users become pray to attacks that bypass the workaround.&lt;/p&gt;
&lt;p&gt;Not to say that this is a bad thing for users (overall, it's very good), but more like something that developers should be aware of.&lt;/p&gt;
&lt;p&gt;Note to IE developers: would it be possible to add an environment variable somewhere that would allow IE to switch to 'developer mode' where all such automatic systems provide a UI notification, with the 'user unfriendly' messages still being active? It would probably help devs to know when the website they are working on would potentially get screwed up, and advanced user (the ones who may understand cryptic messages) would probably appreciate it too.&lt;/p&gt;
</description></item><item><title>re: Statistical Validation of the IE8 XSS Filter</title><link>http://blogs.msdn.com/ie/archive/2008/09/29/statistical-validation-of-the-ie8-xss-filter.aspx#8970565</link><pubDate>Tue, 30 Sep 2008 21:20:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8970565</guid><dc:creator>steve</dc:creator><description>&lt;p&gt;IE7 bug (might be in IE8 too)&lt;/p&gt;
&lt;p&gt;If a link is opened in a new tab (from a middle-click), and that link had a target=&amp;quot;someFrameName&amp;quot; attribute, the new tab's window, INHERITS this name.&lt;/p&gt;
&lt;p&gt;This breaks frames that nest in any complex way, and does not behave like any of the dozens of browsers that implemented Tabs before IE.&lt;/p&gt;
&lt;p&gt;Scenario:&lt;/p&gt;
&lt;p&gt;Page&lt;/p&gt;
&lt;p&gt;+- iframe &amp;quot;a&amp;quot;&lt;/p&gt;
&lt;p&gt;+- iframe &amp;quot;b&amp;quot;&lt;/p&gt;
&lt;p&gt;Normal usage:&lt;/p&gt;
&lt;p&gt;If user clicks on a link to load in frame &amp;quot;b&amp;quot;. but document loading in frame &amp;quot;b&amp;quot;, contains its own iframe &amp;quot;c&amp;quot;.&lt;/p&gt;
&lt;p&gt;Links in frame &amp;quot;c&amp;quot; load within itself, but check if their parent.window.name is &amp;quot;b&amp;quot;... if so, they reload &amp;quot;expand&amp;quot; into &amp;quot;b&amp;quot;.&lt;/p&gt;
&lt;p&gt;Now in IE7, if you load a link &amp;quot;destined&amp;quot; for frame &amp;quot;b&amp;quot;, in a new tab... IE names that new window &amp;quot;b&amp;quot;, and SETS the parent.window.name to &amp;quot;b&amp;quot; too (which is wrong, because there isn't even a parent window!!!), thus ends up in a never-ending loop, constantly reloading into itself (since there is no parent window)&lt;/p&gt;
&lt;p&gt;There is a hack workaround - whereby the content loaded in &amp;quot;c&amp;quot;, *ALSO* checks to see if (self == top) and if so, does not do the reload in the parent because it has just encountered the above IE7 bug.&lt;/p&gt;
&lt;p&gt;Does anyone have a better (less hacky fix?) and does anyone that has access to IE8 know if this bug is still in IE?&lt;/p&gt;
&lt;p&gt;many thanks&lt;/p&gt;
</description></item><item><title>re: Statistical Validation of the IE8 XSS Filter</title><link>http://blogs.msdn.com/ie/archive/2008/09/29/statistical-validation-of-the-ie8-xss-filter.aspx#8971647</link><pubDate>Wed, 01 Oct 2008 17:17:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8971647</guid><dc:creator>David R.</dc:creator><description>&lt;p&gt;@steve I can CONFIRM that this bug is in IE8 BETA 2 also.&lt;/p&gt;
&lt;p&gt;I think I might be able to live with the name being passed to the new tab but &amp;quot;non-existent&amp;quot; parent frame bug is VERY cumbersome.&lt;/p&gt;
&lt;p&gt;in IE4,IE5,IE6 this worked fine:&lt;/p&gt;
&lt;p&gt;---------------------------------------&lt;/p&gt;
&lt;p&gt;if(window.parent &amp;amp;&amp;amp; window.parent.name == 'content'){&lt;/p&gt;
&lt;p&gt; &amp;nbsp;//load in parent window&lt;/p&gt;
&lt;p&gt; &amp;nbsp;window.parent.location.href = self.location.href;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;now in IE7/IE8 we need to modify all of our code to handle this bug.&lt;/p&gt;
&lt;p&gt;in IE7,IE8 this extra garbage logic is needed:&lt;/p&gt;
&lt;p&gt;---------------------------------------&lt;/p&gt;
&lt;p&gt;if(window.parent &amp;amp;&amp;amp; window.parent.name == 'content'){&lt;/p&gt;
&lt;p&gt; &amp;nbsp;var loadInParent = true;&lt;/p&gt;
&lt;p&gt; &amp;nbsp;if(isIE7() || isIE8() ){&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;if(top == self){&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;loadInParent = false;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp;if(loadInParent){&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;//load in parent window&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;window.parent.location.href = self.location.href;&lt;/p&gt;
&lt;p&gt; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;/*&lt;/p&gt;
&lt;p&gt; &amp;nbsp;Note: isIE7(), and isIE8() are external functions defined to work around specific IE bugs.&lt;/p&gt;
&lt;p&gt;*/&lt;/p&gt;
&lt;p&gt;Can someone at [MSFT] indicate if this bug has been fixed internally or if it will be fixed in IE8 Beta 3?&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;David R.&lt;/p&gt;
</description></item><item><title>re: Statistical Validation of the IE8 XSS Filter</title><link>http://blogs.msdn.com/ie/archive/2008/09/29/statistical-validation-of-the-ie8-xss-filter.aspx#8977217</link><pubDate>Sun, 05 Oct 2008 22:16:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8977217</guid><dc:creator>Anonymous</dc:creator><description>&lt;p&gt;Ben, the filter could be updated, like antivirus;with your logic, both would be worthless.&lt;/p&gt;
</description></item><item><title>Statistical Validation of the IE8 XSS Filter</title><link>http://blogs.msdn.com/ie/archive/2008/09/29/statistical-validation-of-the-ie8-xss-filter.aspx#8977290</link><pubDate>Mon, 06 Oct 2008 00:27:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8977290</guid><dc:creator>New Zealand IE8 Taskforce</dc:creator><description>&lt;p&gt;Hi All, There’s an unfortunate misconception surrounding cross-site scripting (XSS) attacks that result&lt;/p&gt;
</description></item><item><title>re: Statistical Validation of the IE8 XSS Filter</title><link>http://blogs.msdn.com/ie/archive/2008/09/29/statistical-validation-of-the-ie8-xss-filter.aspx#8992178</link><pubDate>Thu, 09 Oct 2008 01:43:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8992178</guid><dc:creator>Ben Voigt [C++ MVP]</dc:creator><description>&lt;p&gt;Ted,&lt;/p&gt;
&lt;p&gt;Pardon me for my scepticism, but classifying self-modifying executable code (whether source code or machine code for either a VM or physical CPU) is hard. &amp;nbsp;Javascript is dynamic, with self-modification capabilities. &amp;nbsp;If they had a perfect solution we'd not be hearing &amp;quot;Microsoft develops XSS Filter&amp;quot;, we'd be hearing &amp;quot;Microsoft Researcher solves Halting Problem&amp;quot;.&lt;/p&gt;
&lt;p&gt;Yes, you can improve the filter over time, like antivirus. &amp;nbsp;And yes, if its performance is reasonable, I'll be glad to use it. &amp;nbsp;But no, I won't rely on it for online security just as I don't rely on antivirus for online security. &amp;nbsp;It is, as stated, simply defense-in-depth. &amp;nbsp;I'm not questioning its utility, I just want people to consider whether this article as an exercise in how to lie with statistics.&lt;/p&gt;
&lt;p&gt;From the post &amp;quot;identifies &amp;amp; neuters the attack if it is replayed in the server’s response&amp;quot;. &amp;nbsp;How many blog comments are actually replayed in the server's response? &amp;nbsp;Not very many, most say something about the comment will appear in a few minutes. &amp;nbsp;Ditto for wiki edits. &amp;nbsp;And you can't block such posts outright without impacting all blogs that discuss programming and might have Javascript snippets, all bug tracking systems that might include code snippets, all online HTML editor/validator systems, and so on.&lt;/p&gt;
&lt;p&gt;The responsibility of preventing the server from placing tainted user-controlled content in a page it serves subsequently lies with the server. &amp;nbsp;I don't want to hear banks disclaiming responsibility for XSS vulnerabilities because &amp;quot;We clearly recommended that you use IE8 which stops XSS attacks&amp;quot;.&lt;/p&gt;
</description></item><item><title>Internet Explorer 8 XSS 필터의 통계적 유효성 검사</title><link>http://blogs.msdn.com/ie/archive/2008/09/29/statistical-validation-of-the-ie8-xss-filter.aspx#9459413</link><pubDate>Thu, 05 Mar 2009 09:57:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9459413</guid><dc:creator>IE8 팀 블로그</dc:creator><description>&lt;p&gt;이 글은 Internet Explorer 개발 팀 블로그 (영어)의 번역 문서입니다. 이 글에 포함된 정보는 Internet Explorer 개발 팀 블로그 (영어)가 생성된 시점의&lt;/p&gt;
</description></item></channel></rss>