<?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 : Web Application Security</title><link>http://blogs.msdn.com/dross/archive/tags/Web+Application+Security/default.aspx</link><description>Tags: Web Application Security</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Happy 10th birthday Cross-Site Scripting!</title><link>http://blogs.msdn.com/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><comments>http://blogs.msdn.com/dross/comments/9937199.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dross/commentrss.aspx?PostID=9937199</wfw:commentRss><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;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9937199" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dross/archive/tags/Computer+Security/default.aspx">Computer Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Web+Application+Security/default.aspx">Web Application Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Cross-Site+Scripting/default.aspx">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/dross/archive/tags/XSS/default.aspx">XSS</category></item><item><title>Current Thoughts on DNS Rebinding</title><link>http://blogs.msdn.com/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><comments>http://blogs.msdn.com/dross/comments/9923849.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dross/commentrss.aspx?PostID=9923849</wfw:commentRss><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;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9923849" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dross/archive/tags/Computer+Security/default.aspx">Computer Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Web+Application+Security/default.aspx">Web Application Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/DNS+Rebinding/default.aspx">DNS Rebinding</category></item><item><title>Thoughts on Legacy Character Sets</title><link>http://blogs.msdn.com/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><comments>http://blogs.msdn.com/dross/comments/9917000.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dross/commentrss.aspx?PostID=9917000</wfw:commentRss><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;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9917000" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dross/archive/tags/Computer+Security/default.aspx">Computer Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Web+Application+Security/default.aspx">Web Application Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Cross-Site+Scripting/default.aspx">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/dross/archive/tags/XSS/default.aspx">XSS</category></item><item><title>New webappsec tools</title><link>http://blogs.msdn.com/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><comments>http://blogs.msdn.com/dross/comments/9508047.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dross/commentrss.aspx?PostID=9508047</wfw:commentRss><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;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9508047" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dross/archive/tags/Computer+Security/default.aspx">Computer Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Internet+Explorer/default.aspx">Internet Explorer</category><category domain="http://blogs.msdn.com/dross/archive/tags/Web+Application+Security/default.aspx">Web Application Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Cross-Site+Scripting/default.aspx">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/dross/archive/tags/XSS/default.aspx">XSS</category></item><item><title>XSS Filter Improvements in IE8 RC1</title><link>http://blogs.msdn.com/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><comments>http://blogs.msdn.com/dross/comments/9385361.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dross/commentrss.aspx?PostID=9385361</wfw:commentRss><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;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9385361" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dross/archive/tags/Computer+Security/default.aspx">Computer Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Internet+Explorer/default.aspx">Internet Explorer</category><category domain="http://blogs.msdn.com/dross/archive/tags/Web+Application+Security/default.aspx">Web Application Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Cross-Site+Scripting/default.aspx">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/dross/archive/tags/XSS/default.aspx">XSS</category></item><item><title>Video Roundup (Martin Johns and more!)</title><link>http://blogs.msdn.com/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><comments>http://blogs.msdn.com/dross/comments/9319334.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dross/commentrss.aspx?PostID=9319334</wfw:commentRss><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;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9319334" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dross/archive/tags/Computer+Security/default.aspx">Computer Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Web+Application+Security/default.aspx">Web Application Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Cross-Site+Scripting/default.aspx">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/dross/archive/tags/XSS/default.aspx">XSS</category></item><item><title>ABE</title><link>http://blogs.msdn.com/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><comments>http://blogs.msdn.com/dross/comments/9244815.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dross/commentrss.aspx?PostID=9244815</wfw:commentRss><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;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9244815" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dross/archive/tags/Computer+Security/default.aspx">Computer Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Web+Application+Security/default.aspx">Web Application Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Cross-Site+Scripting/default.aspx">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/dross/archive/tags/XSS/default.aspx">XSS</category></item><item><title>XSSDS</title><link>http://blogs.msdn.com/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><comments>http://blogs.msdn.com/dross/comments/8970580.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dross/commentrss.aspx?PostID=8970580</wfw:commentRss><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;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8970580" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dross/archive/tags/Computer+Security/default.aspx">Computer Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Web+Application+Security/default.aspx">Web Application Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Cross-Site+Scripting/default.aspx">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/dross/archive/tags/XSS/default.aspx">XSS</category></item><item><title>IE8 Beta 2</title><link>http://blogs.msdn.com/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><comments>http://blogs.msdn.com/dross/comments/8907083.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dross/commentrss.aspx?PostID=8907083</wfw:commentRss><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;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8907083" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dross/archive/tags/General/default.aspx">General</category><category domain="http://blogs.msdn.com/dross/archive/tags/Computer+Security/default.aspx">Computer Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Internet+Explorer/default.aspx">Internet Explorer</category><category domain="http://blogs.msdn.com/dross/archive/tags/Web+Application+Security/default.aspx">Web Application Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Cross-Site+Scripting/default.aspx">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/dross/archive/tags/XSS/default.aspx">XSS</category></item><item><title>IE 8 XSS Filter Architecture / Implementation revealed + some other news</title><link>http://blogs.msdn.com/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><comments>http://blogs.msdn.com/dross/comments/8880050.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dross/commentrss.aspx?PostID=8880050</wfw:commentRss><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;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8880050" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dross/archive/tags/Computer+Security/default.aspx">Computer Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Internet+Explorer/default.aspx">Internet Explorer</category><category domain="http://blogs.msdn.com/dross/archive/tags/Web+Application+Security/default.aspx">Web Application Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Cross-Site+Scripting/default.aspx">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/dross/archive/tags/XSS/default.aspx">XSS</category></item><item><title>IE8 XSS Filter design philosophy in-depth</title><link>http://blogs.msdn.com/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><comments>http://blogs.msdn.com/dross/comments/8687752.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dross/commentrss.aspx?PostID=8687752</wfw:commentRss><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;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8687752" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dross/archive/tags/Computer+Security/default.aspx">Computer Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Internet+Explorer/default.aspx">Internet Explorer</category><category domain="http://blogs.msdn.com/dross/archive/tags/Web+Application+Security/default.aspx">Web Application Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Cross-Site+Scripting/default.aspx">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/dross/archive/tags/XSS/default.aspx">XSS</category></item><item><title>IE8 goes on the offensive against XSS!</title><link>http://blogs.msdn.com/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><comments>http://blogs.msdn.com/dross/comments/8681670.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dross/commentrss.aspx?PostID=8681670</wfw:commentRss><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;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8681670" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dross/archive/tags/Computer+Security/default.aspx">Computer Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Internet+Explorer/default.aspx">Internet Explorer</category><category domain="http://blogs.msdn.com/dross/archive/tags/Web+Application+Security/default.aspx">Web Application Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Cross-Site+Scripting/default.aspx">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/dross/archive/tags/XSS/default.aspx">XSS</category></item><item><title>XSS-Focused Attack Surface Reduction</title><link>http://blogs.msdn.com/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><comments>http://blogs.msdn.com/dross/comments/8137543.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dross/commentrss.aspx?PostID=8137543</wfw:commentRss><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;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8137543" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dross/archive/tags/Computer+Security/default.aspx">Computer Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Internet+Explorer/default.aspx">Internet Explorer</category><category domain="http://blogs.msdn.com/dross/archive/tags/Web+Application+Security/default.aspx">Web Application Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Cross-Site+Scripting/default.aspx">Cross-Site Scripting</category><category domain="http://blogs.msdn.com/dross/archive/tags/XSS/default.aspx">XSS</category></item><item><title>MashupOS</title><link>http://blogs.msdn.com/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><comments>http://blogs.msdn.com/dross/comments/4882947.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dross/commentrss.aspx?PostID=4882947</wfw:commentRss><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;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4882947" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dross/archive/tags/Computer+Security/default.aspx">Computer Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Web+Application+Security/default.aspx">Web Application Security</category></item><item><title>Pinning / Rebinding / Quick-Swap DNS Links</title><link>http://blogs.msdn.com/dross/archive/2007/08/03/pinning-rebinding-quick-swap-dns-links.aspx</link><pubDate>Fri, 03 Aug 2007 18:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4209875</guid><dc:creator>dross</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/dross/comments/4209875.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dross/commentrss.aspx?PostID=4209875</wfw:commentRss><description>&lt;P&gt;A group at Stanford&amp;nbsp;has been&amp;nbsp;researching these issues and recently&amp;nbsp;published &lt;A title="Protecting Browsers from DNS Rebinding Attacks" href="http://crypto.stanford.edu/dns/dns-rebinding.pdf" mce_href="http://crypto.stanford.edu/dns/dns-rebinding.pdf"&gt;Protecting Browsers from DNS Rebinding Attacks&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Also, Dan Kaminski has published his slides from Blackhat 2007, &lt;A title="Black Ops 2007: Design Reviewing The Web" href="http://www.doxpara.com/DMK_BO2K7_Web.ppt" mce_href="http://www.doxpara.com/DMK_BO2K7_Web.ppt"&gt;Black Ops 2007: Design Reviewing The Web&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4209875" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dross/archive/tags/Computer+Security/default.aspx">Computer Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/Web+Application+Security/default.aspx">Web Application Security</category><category domain="http://blogs.msdn.com/dross/archive/tags/DNS+Rebinding/default.aspx">DNS Rebinding</category></item></channel></rss>