<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Cupfighter.net &#187; Mozilla</title>
	<atom:link href="http://www.cupfighter.net/index.php/tag/mozilla/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cupfighter.net</link>
	<description>A blog by Schuberg Philis colleagues</description>
	<lastBuildDate>Thu, 09 Feb 2012 14:27:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Blackhat talk: Language of Trust aka Attacking Interoperability by Mark Dowd, Ryan Smith and David Dewey</title>
		<link>http://www.cupfighter.net/index.php/2009/07/blackhat-talk-language-of-trust-aka-attacking-interoperability-by-mark-dowd-ryan-smith-and-david-dewey/</link>
		<comments>http://www.cupfighter.net/index.php/2009/07/blackhat-talk-language-of-trust-aka-attacking-interoperability-by-mark-dowd-ryan-smith-and-david-dewey/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 07:39:36 +0000</pubDate>
		<dc:creator>Frank Breedijk</dc:creator>
				<category><![CDATA[Blackhat]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[ActivX]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.cupfighter.net/?p=399</guid>
		<description><![CDATA[Interoperability is everywhere in browsers Java &#60;-&#62; VBScript, VBscript &#60;-&#62; .NET, .NET &#60;-&#62; Javascript, Javascript &#60;-&#62; DOM etc. This interoperability presents a large attack surface, which is up to now where not well explored. There is a lot of code involved converting types between various languages. Interoperability is effected by standard bugs like buffer overflows [...]]]></description>
			<content:encoded><![CDATA[<p>Interoperability is everywhere in browsers Java &lt;-&gt; VBScript, VBscript &lt;-&gt; .NET, .NET &lt;-&gt; Javascript, Javascript &lt;-&gt; DOM etc. This interoperability presents a large attack surface, which is up to now where not well explored.</p>
<p>There is a lot of code involved converting types between various languages.</p>
<p><span id="more-399"></span>Interoperability is effected by standard bugs like buffer overflows and memory corruption but also three new vulnerability classes:</p>
<ul>
<li>Object retention vulnerabilities</li>
<li>Type confusion vulnerabilities</li>
<li>Transitive trust vulnerabilities</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Object retention</strong></span></p>
<p>Since an object does not know which other objects are using it, it does not know when to destroy itself. Most often this is done via a reference counter but this is not perfect, leading to using heap data as pointers, double frees, objects not being freed at all.</p>
<p>Issues arise from reference counters rolling over, objects being freed to often or not at all. Also a shallow copy instead of a deep copy can lead to problems. These are all programmatical errors.</p>
<p><span style="text-decoration: underline;"><strong>Type confusion</strong></span></p>
<p>In IE variant data types require careful programming, therefore they present an opportunity to attackers. Often this is not picked up by the compiler. It can lead to memory corruption and can be exploitable. This is what happened in the ATL bug . This can lead to e.g. double frees. These issues are also present in ATL and addressed by Microsoft’s patches.</p>
<p>Demonstration #1: An active X control was loaded and passed a persistent data stream which caused a free call to uninitialized data. This is exploitable so shell code was executed.</p>
<p>Demonstration #2: in windows 7 IE8 an array of object was passed in stead of the actual objects. The browser interpreted the array as an object which leads to exploitable error.</p>
<p>Even tough Firefox’ NPAPI is a lot simpler, it requires the programmer to check the data types himself, which is often forgotten leading to the same types of issues.</p>
<p><span style="text-decoration: underline;"><strong>Trust</strong></span></p>
<p>Browsers need to deal with a lot more the just HTML these days.</p>
<p>If a browser uses a trusted object A and object A trusts object B which is not trusted by the browser, it is still executed.</p>
<p>Demonstration #3: An object is first loaded but its killbit set and not executed. Then a trusted object is loaded, but it is passed a killbitted persistent object which it will execute. In its turn this object will actually start up calc.exe</p>
<p><span style="text-decoration: underline;"><strong>Remediation of the ATL issues</strong></span></p>
<p>Any ActiveX control compiled in the last 15 may have these vulnerabilities in there. ATL2.0 was released in 1997 and ATL 9.0 in 2008. Any ActiveX control based on a vulnerable ATL need to be checked if it is vulnerable, if may need some reprogramming and will need recompilation.</p>
<p>All in all there might be quite a big check of vulnerable controls out there besides the other interoperability scenarios that this talk did not address.</p>
<p>A paper is available at <a href="http://taossa.com" target="_blank">http://taossa.com</a> or <a href="http://hustlelabs.com" target="_blank">http://hustlelabs.com</a></p>
<p><span style="text-decoration: underline;"><strong>Quick word on the Microsoft patches</strong></span></p>
<p>When I asked the guys if Microsoft patches provide a sufficient solution I got an evasive answer. However, one of the demonstration machines auto updated itself yesterday and the demonstration stopped working.<span style="text-decoration: underline;"><strong><br />
</strong></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cupfighter.net/index.php/2009/07/blackhat-talk-language-of-trust-aka-attacking-interoperability-by-mark-dowd-ryan-smith-and-david-dewey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blackhat talk: More Tricks for Defeating SSL in Practice &#8211; Moxie Marlinspike</title>
		<link>http://www.cupfighter.net/index.php/2009/07/blackhat-post-more-tricks-for-defeating-ssl-in-practice-moxie-marlinspike/</link>
		<comments>http://www.cupfighter.net/index.php/2009/07/blackhat-post-more-tricks-for-defeating-ssl-in-practice-moxie-marlinspike/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 07:18:06 +0000</pubDate>
		<dc:creator>Frank Breedijk</dc:creator>
				<category><![CDATA[Blackhat]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Moxie]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[Thunderbird]]></category>

		<guid isPermaLink="false">http://www.cupfighter.net/?p=395</guid>
		<description><![CDATA[The background: In the past, basic constraints where not properly checked, so any client certificate could be used to create  another client certificate that would actually validate. Moxie wrote the tool SSLSNIF is that is able to do a man in the middle attack on  an SSL connection based on this vulnerability to proof to [...]]]></description>
			<content:encoded><![CDATA[<p>The background: In the past, basic constraints where not properly checked, so any client certificate could be used to create  another client certificate that would actually validate.</p>
<p>Moxie wrote the tool SSLSNIF is that is able to do a man in the middle attack on  an SSL connection based on this vulnerability to proof to Microsoft that it could be exploited, contrary to what Microsoft said.</p>
<p>Even tough Microsoft and others fixed the vulnerability, the tool is still useful, mainly because people don&#8217;t pay attention to certificate warning. Also when the guys that made the fake CA certificate by means of the the MD5 collision use SSLSNIFF to actually exploit is.</p>
<p>But there are more ways to attack SSL then doing a man-in-the-middle attack; SSL Stripping</p>
<p><span id="more-395"></span>SSLSTRIP actually attacks SSL before we get there by doing a MitM attack on http. Most https links are not typed, but clicked on or redirected to. SSLStrip watches the http traffic go by and modifies links to https sites to links to http, but it still does the https connection in the backend.</p>
<p>The server thinks is everything is normal because it is receiving valid https requests, the client does not display any warnings, but they are missing lock, but because the user is trained to pay attention to negative feedback and not look for positive feedback, this is not a big issue.</p>
<p>Where do we need to go next?</p>
<p>SSL needs to provide Secrecy, Authenticity and Integrity in order to be effective.</p>
<p>One of the issues is that today there are no people involved anymore with SSL certificates. Just domain validation which is based on a Whois lookup of root of the subject. This provides an email address or phone number to send a token to.</p>
<p>The standard for the DN has totally broken down. Most implementations just look at the CN= part. The CN is stored as a ASN1 string in memory, so they are basically Pascal strings, which means that the actual string is prepended by a byte representing the length. The null character is a valid part of CN string. However if you use the C routine Strcmp() it will actually regard www.paypall.com\0evil.org the same as www.paypall.com.</p>
<p>This bug exists in most web browsers, mail clients, chat clients and SSL vpn solutions like Citrix.</p>
<p>SSLSNIF 6.0 supports this.</p>
<p>Drawback of this attack: It needs to be targeted</p>
<p>Most of these products use NSSto do their certificate validation. If you look at the size and structure of the CN comparison code, there must be a bug in there somewhere.</p>
<p>There is: a certificate for *\0thoughtcrime.org will actually work. This is better then a CA certificate. *~thoughtcrime.org will work as well for some strange issue. As will grouping. CN=(www.paypal.com|www.google.com|www.bankofameric.com)\0.thoughtcrime.org actually works as well.</p>
<p>Also there is a flaw in the code thas actually remotely exploitable: (AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\0OVERWRITE).foo.com. And the good thing is, the certificate does not even need to be signed.</p>
<p>Wildcard support is in SSLSNIF as well.</p>
<p>It does fingerprint the clients as well to see if they are SSN clients.</p>
<p>Two measures work against these attacks: Revocations and software updates.</p>
<p>These days most revocations are checked via OCSP. The OSCP response “try later”, the number 3, does not need to be signed. Most SSL implementations will assume a cert is valid if a “try later” rsponse is sent.</p>
<p>This is now also in SSLSniff.</p>
<p>Updates</p>
<p>Most software has an auto update function, e.g. take Firefox or Thunderbird. Unfortunately, these update mechanisms themselves could be a problem. Actually, Firefox/Thunderbird update files are not signed and they totally rely on TLS for their security.</p>
<p>This is also included in SSL Sniff</p>
<p>Stripping the NULL character is not the solution. Some CA&#8217;s are vulnerable sitekey.ba\0nkofamerica.com becomes sitekey.bankofamerica.com.</p>
<p><a href="http://www.thoughtcrime.org">http://www.thoughtcrime.org</a></p>
<p>When asked, Moxie confirmed that Firefox 3.5 is NOT vulnerable.</p>
<p>moxie@toughtcrime.org</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cupfighter.net/index.php/2009/07/blackhat-post-more-tricks-for-defeating-ssl-in-practice-moxie-marlinspike/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mozilla&#8217;s case for Content Security Policies</title>
		<link>http://www.cupfighter.net/index.php/2009/07/mozillas-case-for-content-security-policies/</link>
		<comments>http://www.cupfighter.net/index.php/2009/07/mozillas-case-for-content-security-policies/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 11:28:50 +0000</pubDate>
		<dc:creator>Frank Breedijk</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Cross Site Scripting]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://www.cupfighter.net/?p=315</guid>
		<description><![CDATA[Mozilla makes a case for COntent Security Policies because the can completly kill Cross Site Scripting]]></description>
			<content:encoded><![CDATA[<p>In <a title="Mozilla Content Security Policy post" href="http://blog.mozilla.com/security/2009/06/19/shutting-down-xss-with-content-security-policy/" target="_blank">this post from 19-6 </a>Mozilla make a clear case for supporting content security policies.</p>
<p>A content security policy, <a title="Content Security Policy specification" href="https://wiki.mozilla.org/Security/CSP/Spec" target="_blank">which is specified here</a>, can impose common sense security restrictions on the (active) content of site.</p>
<p>A content security policy can completely kill Cross Site Scripting if it is set to:</p>
<ol>
<li>Require that all javascript is loaded from an external file</li>
<li>This file resides at a specified location</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.cupfighter.net/index.php/2009/07/mozillas-case-for-content-security-policies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

