<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>root labs rdist</title>
	<atom:link href="http://rdist.root.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://rdist.root.org</link>
	<description>Embedded security, crypto, software protection</description>
	<lastBuildDate>Sat, 18 May 2013 22:28:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='rdist.root.org' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>root labs rdist</title>
		<link>http://rdist.root.org</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://rdist.root.org/osd.xml" title="root labs rdist" />
	<atom:link rel='hub' href='http://rdist.root.org/?pushpress=hub'/>
		<item>
		<title>Keeping skills current in a changing world</title>
		<link>http://rdist.root.org/2013/05/06/keeping-skills-current-in-a-changing-world/</link>
		<comments>http://rdist.root.org/2013/05/06/keeping-skills-current-in-a-changing-world/#comments</comments>
		<pubDate>Mon, 06 May 2013 18:00:53 +0000</pubDate>
		<dc:creator>Nate Lawson</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://rdist.root.org/?p=914</guid>
		<description><![CDATA[I came across this article on how older tech workers are having trouble finding work. I&#8217;m sure many others have written about whether this is true, whose fault it is, and whether H1B visas should be increased or not. I haven&#8217;t done the research so I can&#8217;t comment on such things, but I do know [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rdist.root.org&#038;blog=893473&#038;post=914&#038;subd=rdist&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I came across <a href="https://www.networkworld.com/news/2013/050313-veteran-tech-workers-see-themselves-269402.html">this article</a> on how older tech workers are having trouble finding work. I&#8217;m sure many others have written about whether this is true, whose fault it is, and whether H1B visas should be increased or not. I haven&#8217;t done the research so I can&#8217;t comment on such things, but I do know a solution to out-of-date skills.</p>
<p>The Internet makes developing new skills extremely accessible. With a PC and free software, you can teach yourself almost any &#8220;hot skill&#8221; in a week. Take this quote, for example:</p>
<blockquote><p>&#8220;Some areas are so new, like cloud stuff, very few people have any experience in that,&#8221; Wade said. &#8220;So whether they hire me, or a new citizen grad, or bring in an H-1B visa, they will have to train them all.&#8221;</p></blockquote>
<p>Here&#8217;s a quick way to learn &#8220;cloud stuff&#8221;. Get a <a href="http://aws.amazon.com/free/">free Amazon AWS</a> account. Download their Java-based tools or <a href="https://github.com/boto/boto">boto</a> for Python. Launch a VM, ssh in, and you&#8217;re in the cloud. Install Ubuntu, PostgreSQL, and other free and open-source software. Read the manuals and run a couple experiments, using your current background. If you were a DBA, try SimpleDB. If a sysadmin, try EC2 and monitoring.</p>
<p>Another quote from a different engineer:</p>
<blockquote><p>&#8216;If a developer has experience in Android 2.0, &#8220;the company would be hiring only someone who had at least 6 months of the 4.0 experience,&#8221; he said. &#8220;And you cannot get that experience unless you are hired. And you cannot get hired unless you provably have that experience. It is the chicken-and-the-egg situation. &#8220;&#8216;</p></blockquote>
<p>Android is also free, and includes a usable emulator for testing out your code. Or buy a cheap, wifi-only Android phone and start working from there. Within a week, you can have experience on the latest Android version. Again, for no cost other than your time.</p>
<p>I suspect that it&#8217;s not lack of time that is keeping unemployed engineers from developing skills. It&#8217;s a mindset problem.</p>
<blockquote><p>&#8216;He may not pick the right area to focus on, he said. &#8220;The only way to know for sure is if a company will pay you to take the training,&#8221; he said. &#8220;That means it has value to them.&#8221;&#8216;</p></blockquote>
<p>In startups, there&#8217;s an approach called <a href="http://steveblank.com/category/customer-development/">customer development</a>. Essentially, it involves putting together different, lightweight experiments based on theories about what a customer might buy. If more than one customer pays you, that&#8217;s confirmation. If not, you move onto the next one.</p>
<p>Compare this to the traditional monolithic startup, where you have an idea, spend millions building it into a product, then try to get customers to buy it. You only have a certain timeline before you run out of money, so it&#8217;s better when you can try several different ideas in the meanwhile.</p>
<p>There&#8217;s an obvious application to job hunting. Take a variety of hypotheses (mobile, cloud, etc.) and put together a short test. Take one week to learn the skill to the point you have a &#8220;hello world&#8221; demo. Float a custom resume to your targets, leaving out irrelevant experience that would confuse a recruiter. Measure the responses and repeat as necessary. If you get a bite, spend another week learning that skill in-depth before the interview.</p>
<p>There are biases against older workers, and some companies are too focused on keywords on resumes. Those are definitely problems that need changing. However, when it comes to learning new skills, there&#8217;s never been a better time for being able to hunt for a job using simple experiments based on free resources. The only barrier is the mindset that skills come through a monolithic process of degrees, certification, or training instead of a self-directed, agile process.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rdist.wordpress.com/914/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rdist.wordpress.com/914/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rdist.root.org&#038;blog=893473&#038;post=914&#038;subd=rdist&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rdist.root.org/2013/05/06/keeping-skills-current-in-a-changing-world/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0c01d70ede8af2f696f36d3f89b8be1?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">rdist</media:title>
		</media:content>
	</item>
		<item>
		<title>History of memory corruption vulnerabilities and exploits</title>
		<link>http://rdist.root.org/2013/01/28/history-of-memory-corruption-vulnerabilities-and-exploits/</link>
		<comments>http://rdist.root.org/2013/01/28/history-of-memory-corruption-vulnerabilities-and-exploits/#comments</comments>
		<pubDate>Mon, 28 Jan 2013 13:12:19 +0000</pubDate>
		<dc:creator>Nate Lawson</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software engineering]]></category>

		<guid isPermaLink="false">http://rdist.root.org/?p=909</guid>
		<description><![CDATA[I came across a great paper, &#8220;Memory Errors: The Past, the Present, and the Future&#8221; by van der Veen et al. The authors cover the history of memory corruption errors as well as exploitation and countermeasures. I think there are a number of interesting conclusions to draw from it. It seems that the number of [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rdist.root.org&#038;blog=893473&#038;post=909&#038;subd=rdist&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I came across a great paper, &#8220;<a href="http://www.isg.rhul.ac.uk/sullivan/pubs/raid-2012.pdf">Memory Errors: The Past, the Present, and the Future</a>&#8221; by van der Veen et al. The authors cover the history of memory corruption errors as well as exploitation and countermeasures. I think there are a number of interesting conclusions to draw from it.</p>
<p>It seems that the number of flaws in common software is still much too high. Consider what&#8217;s required to compromise today&#8217;s most hardened consumer platforms, iOS and Chrome. You need a flaw in the default install that is useful and remotely accessible, memory disclosure bug, sandbox bypass (or multiple ones), and often a kernel or other privilege escalation flaw.</p>
<p>Given a sufficiently small trusted computing base, it should be impossible to find this confluence of flaws. We clearly have too large a TCB today since this combination of flaws has been found not once, but multiple times in these hardened products. Other products that haven&#8217;t been hardened require even less flaws to compromise, making them more vulnerable even if they have the same rate of bug occurrence.</p>
<p>The paper&#8217;s conclusion shows that if you want to prevent exploitation, your priority should be preventing stack, heap, and integer overflows (in that order). Stack overflows are by far still the most commonly exploited class of memory corruption flaws, out of proportion to their prevalence.</p>
<p>We&#8217;re clearly not smart enough as a species to stop creating software bugs. It takes a Dan Bernstein to reason accurately about software in <a href="http://hillside.net/plop/2004/papers/mhafiz1/PLoP2004_mhafiz1_0.pdf">bite-sized chunks</a> such as in qmail. It&#8217;s important to face this fact and make fundamental changes to process and architecture that will make the next 18 years better than the last.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rdist.wordpress.com/909/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rdist.wordpress.com/909/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rdist.root.org&#038;blog=893473&#038;post=909&#038;subd=rdist&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rdist.root.org/2013/01/28/history-of-memory-corruption-vulnerabilities-and-exploits/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0c01d70ede8af2f696f36d3f89b8be1?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">rdist</media:title>
		</media:content>
	</item>
		<item>
		<title>Has HTML5 made us more secure?</title>
		<link>http://rdist.root.org/2012/12/04/has-html5-made-us-more-secure/</link>
		<comments>http://rdist.root.org/2012/12/04/has-html5-made-us-more-secure/#comments</comments>
		<pubDate>Tue, 04 Dec 2012 12:19:31 +0000</pubDate>
		<dc:creator>Nate Lawson</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://rdist.root.org/?p=902</guid>
		<description><![CDATA[Brad Hill recently wrote an article claiming that HTML5 has made us more secure, not less. His essential claim is that over the last 10 years, browsers have become more secure. He compares IE6, ActiveX, and Flash in 2002 (when he started in infosec) with HTML5 in order to make this point. While I think [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rdist.root.org&#038;blog=893473&#038;post=902&#038;subd=rdist&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Brad Hill recently wrote an article claiming that <a href="http://www.thesecuritypractice.com/the_security_practice/2012/11/in-defense-of-html5-1.html">HTML5 has made us more secure</a>, not less. His essential claim is that over the last 10 years, browsers have become more secure. He compares IE6, ActiveX, and Flash in 2002 (when he started in infosec) with HTML5 in order to make this point. While I think his analysis is true for general consumers, it doesn&#8217;t apply to more valuable targets, who are indeed less secure with the spread of HTML5.</p>
<p>HTML5 is a broad grouping of features, and there are two parts that I think are important to increasing vulnerability. First, there is the growing flexibility in parsing elements for JavaScript, CSS, SVG, etc., including the interpretation of relationships between them. Second, there&#8217;s the exposure of complex decoders for images, video, audio, storage, 3D graphics, etc. to untrusted sources.</p>
<p>If you look at the vulnerability history for these two groups, both are common culprits in flaws that lead to untrusted code execution. They still regularly exhibit &#8220;game over&#8221; vulnerabilities, in Firefox and Chrome. Displaying a PNG has been exploitable <a href="https://blog.mozilla.org/security/2012/02/17/mozilla-releases-to-address-cve-2011-3026/">as recently as 2012</a>. Selecting a font via CSS <a href="http://www.mozilla.org/security/announce/2010/mfsa2010-39.html">was exploitable in 2010</a>. In many cases, these types of bugs are interrelated. A flaw in a codec could require heap grooming via JavaScript to be reliably exploitable. HTML5&#8242;s increased surface area of more parsing and complex decoders standardizes remote, untrusted access to components that are still the biggest source of code execution vulnerabilities in the browser, despite attempts to audit and harden them.</p>
<p>Additionally, it exposes elements that have not had this kind of attention. WebGL hands over access to your 3D graphics stack, something which even <a href="http://seclists.org/cert/2011/88">CERT thinks is worth disabling</a>. If you want to know the future of exploitation, you need to keep an eye on the console and iPhone/Android hacking groups. 3D shaders were the <a href="http://www.xbox-scene.com/xbox1data/sep/EEZkykVkkFmojzapEq.php">first software exploit of the Xbox 360</a>, a platform that is much more secure than any browser. And Windows GDI was <a href="http://osvdb.org/show/osvdb/52522">remotely exploitable in 2009</a>. Firefox WebGL is built on top of <a href="http://en.wikipedia.org/wiki/Mesa_3D">Mesa</a>, which is software from the bad old days of 1993. How is it going to do any better than Microsoft&#8217;s most secure platform?</p>
<p>As an aside, a rather poor PR battle about WebGL is worth addressing here. An <a href="http://www.contextis.co.uk/research/blog/webgl-faq/">article by a group called Context</a> in 2011 raised some of these same issues, but their exploit was only a DoS. Mozilla devs <a href="http://en.wikipedia.org/wiki/Talk:WebGL#Security">jumped on this right away</a>. Their <a href="http://blog.jprosevear.org/2011/05/13/webgl-security/">solution</a> is a whitelist and blacklist for graphics drivers. A blacklist is great for everyone after a 0-day has been discovered and fixed and deployed, but not so good before then.</p>
<p>Call me a luddite, but I measure security by what I can easily disable or route around and ignore. Flash is easily blocked and can be uninstalled. JavaScript can be disabled with a browser setting or filtered. But HTML5? Well, that&#8217;s knit into pretty much every area of the browser. You want to disable WebGL? No checkbox, but at least there&#8217;s <a href="https://blog.mozilla.org/security/2011/06/16/webgl-graphics-memory-stealing-issue/">about:config</a>. Just make sure no one set &#8220;webgl.force-enabled&#8221; or whatever the next software update adds to your settings. Want to disable parts of CSS but not page layout? Want a no-codec browser? Get out the compiler.</p>
<p>Browser vendors don&#8217;t care about the individual target getting compromised; they care about the masses. The cost/benefit tradeoff for these two groups are completely opposite. Otherwise, we&#8217;d see vendors competing for who could remove as many features as possible to produce the qmail of browsers.</p>
<p>Security happens in waves. If you&#8217;re an ordinary user, the work of Microsoft and Google in particular have paid off for you over the past 10 years. But woe to you if you manage high-value targets. The game of whack-a-mole with the browser vendors has been getting worse, not better. The more confident they get from their bug bounties and hardening, the more likely they are to add complex, deeply intertwined features. And so the pendulum begins swinging back the other way for everyone.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rdist.wordpress.com/902/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rdist.wordpress.com/902/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rdist.root.org&#038;blog=893473&#038;post=902&#038;subd=rdist&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rdist.root.org/2012/12/04/has-html5-made-us-more-secure/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0c01d70ede8af2f696f36d3f89b8be1?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">rdist</media:title>
		</media:content>
	</item>
		<item>
		<title>Toggl time-tracking service failures</title>
		<link>http://rdist.root.org/2012/09/07/toggl-time-tracking-service-failures/</link>
		<comments>http://rdist.root.org/2012/09/07/toggl-time-tracking-service-failures/#comments</comments>
		<pubDate>Fri, 07 Sep 2012 18:33:45 +0000</pubDate>
		<dc:creator>Nate Lawson</dc:creator>
				<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://rdist.root.org/?p=866</guid>
		<description><![CDATA[A while ago, we investigated using various time-tracking services. Making this quick and easy for employees is helpful in a consulting company. Our experience with one service should serve as a cautionary note for web 2.0 companies that want to sell to businesses. Time tracking is a service that seems both boring and easy to [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rdist.root.org&#038;blog=893473&#038;post=866&#038;subd=rdist&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>A while ago, we investigated using various time-tracking services. Making this quick and easy for employees is helpful in a consulting company. Our experience with one service should serve as a cautionary note for web 2.0 companies that want to sell to businesses.</p>
<p>Time tracking is a service that seems both boring and easy to implement but is quite critical to most companies. Everyone from freelance writers to international manufacturers needs some system, ranging from paper and spreadsheets to sophisticated <a href="http://en.wikipedia.org/wiki/Enterprise_resource_planning">ERP systems</a>. For a consulting company, lost time entries means lost money.</p>
<p>As we added employees last year, we began evaluating various web-based time tracking services in comparison to our home-grown system (flat text files).</p>
<p>We considered using Toggl, but our experiences with it started ok but got worse as they grew. We found that some test entries would disappear occasionally. The desktop widget was really an HTML app wrapped in a full browser (they started with Qt and moved to Chrome).</p>
<p>Then one day, we found that their servers had screwed up access control and everyone was being logged into a single account. You can see the messages in the attached screenshots. This was at once hilarious and horrifying, and we terminated our account immediately. No customer or sensitive data was lost, but there was no way we were ever going to use this service. There were various complaints about all this on the Toggl forums, but those posts were deleted when they updated their support website.</p>
<p>Dealing with distributed systems and the CAP theorem is <a href="http://codahale.com/you-cant-sacrifice-partition-tolerance/">particularly hard</a>. Startups ignore this at your own (or your customers&#8217;) peril. Time tracking seems simple enough, but you can never lose data. For customers that don&#8217;t use code names for clients/projects, a data compromise could be devastating.</p>
<p>I debated whether to write this post since I don&#8217;t have a grudge against Toggl. However, I am hoping our experience will be informative as to what can happen when you outsource ownership of data that is directly tied to your revenue.</p>

<a href='http://rdist.root.org/2012/09/07/toggl-time-tracking-service-failures/toggl1/' title='toggl1'><img data-liked='0' data-reblogged='0' data-attachment-id="882" data-orig-file="http://rdist.files.wordpress.com/2012/09/toggl1.jpg" data-orig-size="458,639" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="toggl1" data-image-description="" data-medium-file="http://rdist.files.wordpress.com/2012/09/toggl1.jpg?w=215" data-large-file="http://rdist.files.wordpress.com/2012/09/toggl1.jpg?w=458" width="107" height="150" src="http://rdist.files.wordpress.com/2012/09/toggl1.jpg?w=107&#038;h=150" class="attachment-thumbnail" alt="toggl1" /></a>
<a href='http://rdist.root.org/2012/09/07/toggl-time-tracking-service-failures/toggl2/' title='toggl2'><img data-liked='0' data-reblogged='0' data-attachment-id="883" data-orig-file="http://rdist.files.wordpress.com/2012/09/toggl2.jpg" data-orig-size="750,739" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="toggl2" data-image-description="" data-medium-file="http://rdist.files.wordpress.com/2012/09/toggl2.jpg?w=300" data-large-file="http://rdist.files.wordpress.com/2012/09/toggl2.jpg?w=750" width="150" height="147" src="http://rdist.files.wordpress.com/2012/09/toggl2.jpg?w=150&#038;h=147" class="attachment-thumbnail" alt="toggl2" /></a>
<a href='http://rdist.root.org/2012/09/07/toggl-time-tracking-service-failures/toggl3/' title='toggl3'><img data-liked='0' data-reblogged='0' data-attachment-id="884" data-orig-file="http://rdist.files.wordpress.com/2012/09/toggl3.jpg" data-orig-size="931,392" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="toggl3" data-image-description="" data-medium-file="http://rdist.files.wordpress.com/2012/09/toggl3.jpg?w=300" data-large-file="http://rdist.files.wordpress.com/2012/09/toggl3.jpg?w=931" width="150" height="63" src="http://rdist.files.wordpress.com/2012/09/toggl3.jpg?w=150&#038;h=63" class="attachment-thumbnail" alt="toggl3" /></a>

<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rdist.wordpress.com/866/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rdist.wordpress.com/866/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rdist.root.org&#038;blog=893473&#038;post=866&#038;subd=rdist&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rdist.root.org/2012/09/07/toggl-time-tracking-service-failures/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0c01d70ede8af2f696f36d3f89b8be1?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">rdist</media:title>
		</media:content>

		<media:content url="http://rdist.files.wordpress.com/2012/09/toggl1.jpg?w=107" medium="image">
			<media:title type="html">toggl1</media:title>
		</media:content>

		<media:content url="http://rdist.files.wordpress.com/2012/09/toggl2.jpg?w=150" medium="image">
			<media:title type="html">toggl2</media:title>
		</media:content>

		<media:content url="http://rdist.files.wordpress.com/2012/09/toggl3.jpg?w=150" medium="image">
			<media:title type="html">toggl3</media:title>
		</media:content>
	</item>
		<item>
		<title>Cyber-weapon authors catch up on blog reading</title>
		<link>http://rdist.root.org/2012/08/14/cyber-weapon-authors-catch-up-on-blog-reading/</link>
		<comments>http://rdist.root.org/2012/08/14/cyber-weapon-authors-catch-up-on-blog-reading/#comments</comments>
		<pubDate>Tue, 14 Aug 2012 20:51:41 +0000</pubDate>
		<dc:creator>Nate Lawson</dc:creator>
				<category><![CDATA[Crypto]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[Reverse engineering]]></category>
		<category><![CDATA[Rootkit]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software protection]]></category>

		<guid isPermaLink="false">http://rdist.root.org/?p=880</guid>
		<description><![CDATA[One of the more popular posts on this blog was the one pointing out how Stuxnet was unsophisticated. Its use of traditional malware methods and lack of protection for the payload indicated that the authors were either &#8220;Team B&#8221; or in a big hurry. The post was intended to counteract the breathless praise in the [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rdist.root.org&#038;blog=893473&#038;post=880&#038;subd=rdist&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>One of the more popular posts on this blog was the one pointing out how <a href="http://rdist.root.org/2011/01/17/stuxnet-is-embarrassing-not-amazing/">Stuxnet was unsophisticated</a>. Its use of traditional malware methods and lack of protection for the payload indicated that the authors were either &#8220;Team B&#8221; or in a big hurry. The post was intended to counteract the breathless praise in the press for the advent of sophisticated &#8220;cyber-weapons&#8221;.</p>
<p>This year, <a href="http://topics.nytimes.com/top/reference/timestopics/subjects/c/computer_malware/stuxnet/index.html">more information</a> was released in the New York Times that gave more support for both theories. The authors may not have had a lot of time due to political pressure and concern about Iran&#8217;s progress. The uneasy partnership between the US and Israel may have led to both parties keeping their best tricks in their back pockets.</p>
<p>A lot of people seemed skeptical about the software protection method I described called &#8220;secure triggers&#8221;. (I had <a href="http://rdist.root.org/2007/04/09/mesh-design-pattern-hash-and-decrypt/">written about this before</a> also, calling it &#8220;hash-and-decrypt&#8221;.) The general idea is to gather information about the environment in order to generate a cryptographic key, which is used to decrypt the payload. If even one bit of info is incorrect, the payload can&#8217;t be decrypted. The analyst has to brute-force the proper environment, which can be made infeasible if there&#8217;s enough entropy and/or the validation method is too slow.</p>
<p>The critics claimed that secure triggers were too complicated or unable to withstand malware analyst scrutiny. However, this approach had been used successfully in everything from <a href="http://corelabs.coresecurity.com/index.php?module=Wiki&amp;action=view&amp;type=publication&amp;name=Advanced_Software_Protection_Now">Core Impact</a> to Blu-ray to <a href="http://hackmii.com/2010/05/of_homebrew_and_antipiracy/">Team Twiizers exploits</a>, so it was feasible. Either the malware developers were not aware of this technique or there were other constraints, such as time, preventing it from being used.</p>
<p>Now we&#8217;ve got Gauss, which uses (surprise!) <a href="http://arstechnica.com/security/2012/08/researchers-seek-help-decoding-encrypted-warhead/">this exact technique</a>. And, it turns out to be somewhat effective in <a href="https://www.securelist.com/en/blog/208193781/The_Mystery_of_the_Encrypted_Gauss_Payload">preventing Kaspersky from analyzing the payload</a>. We either predicted or caused the future, take your pick.</p>
<p>Is this the endgame? Not even, but it does mean we&#8217;re ready for the next stage.</p>
<p>The malware industry has had a stable environment for a while. Targeted attacks were rare, and most new malware authors hadn&#8217;t spent a lot of effort building in custom protection for their payloads. Honeypots and local analysis methods assume the code and behavior remain stable between the malware analyst&#8217;s environment and the intended target.</p>
<p>In the next stage, proper use of mechanisms like secure triggers will divide malware analysis into two phases: infection and payload. The infection stage can be analyzed with traditional techniques in order to find the security flaws exploited, propagation method, etc. The payload stage will change drastically, with more effort being spent on <em>in situ</em> analysis.</p>
<p>When the payload only decrypts and runs on a single target system, the malware analyst will need direct access to the compromised host. There are several forms this might take. The obvious one is providing a remote shell to the analyst to log in, attach a debugger, try to get a memory dump of the process, etc. This is dangerous because it involves giving an outsider access to a trusted system, and one that might be critical to other operations. Even if a whole-system memory dump is generated, say by physical access or a cold-boot attack, there is still going to be a lot of sensitive information there.</p>
<p>Another approach is emulation. The analyst uses a VM that turns all local syscalls into remote ones. This is connected to the compromised target host (or a clone of it), which runs a daemon to answer the API queries. The malware sample or relevant portions of it (such as the hash-and-decrypt routine) are run in the analyst&#8217;s VM, but the information the routine gathers comes directly from the compromised host. This allows the analyst to gather the relevant information while not having full access to the compromised machine.</p>
<p>In the next phase after this, malware authors add more anti-emulation checks to their payload decryption routine. They try to prevent this routine from being run in isolation, in an emulator. Eventually, you end up in a cat-and-mouse game of Core Wars on the live hardware. Malware keeps a closely-synchronized global heartbeat so that any attempt to dump and restart it on a single host corrupts its state irrecoverably. The payload, its triggers, and encryption keys evolve in coordination with the other hosts on the network and are tied closely to each machine&#8217;s identity.</p>
<p>Is this where we&#8217;re headed? I&#8217;m not sure, but I do know that software protection measures are becoming more, not less relevant.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rdist.wordpress.com/880/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rdist.wordpress.com/880/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rdist.root.org&#038;blog=893473&#038;post=880&#038;subd=rdist&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rdist.root.org/2012/08/14/cyber-weapon-authors-catch-up-on-blog-reading/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0c01d70ede8af2f696f36d3f89b8be1?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">rdist</media:title>
		</media:content>
	</item>
		<item>
		<title>RSA repeats earlier claims, but louder</title>
		<link>http://rdist.root.org/2012/06/29/rsa-repeats-earlier-claims-but-louder/</link>
		<comments>http://rdist.root.org/2012/06/29/rsa-repeats-earlier-claims-but-louder/#comments</comments>
		<pubDate>Fri, 29 Jun 2012 13:13:32 +0000</pubDate>
		<dc:creator>Nate Lawson</dc:creator>
				<category><![CDATA[Crypto]]></category>
		<category><![CDATA[Protocols]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://rdist.root.org/?p=875</guid>
		<description><![CDATA[Sam Curry of RSA was nice enough to respond to my post. Here&#8217;s a few points that jumped out at me from what he wrote: RSA is in the process of fixing the downgrade attack that allows an attacker to choose PKCS #1 v1.5, even if the key was generated by a user who selected [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rdist.root.org&#038;blog=893473&#038;post=875&#038;subd=rdist&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Sam Curry of RSA was nice enough to respond to <a href="http://rdist.root.org/2012/06/28/why-rsa-is-misleading-about-securid-vulnerability/">my post</a>. Here&#8217;s a few points that jumped out at me from <a href="http://blogs.rsa.com/curry/still-not-cracked-a-further-dive-into-the-pkcs-1-v1-5-vulnerability/">what he wrote</a>:</p>
<ul>
<li>RSA is in the process of fixing the downgrade attack that allows an attacker to choose PKCS #1 v1.5, even if the key was generated by a user who selected v2.0.</li>
<li>They think they also addressed the general attack via their RAC 3.5.4 middleware update. More info is needed on what that fix actually is. I haven&#8217;t seen the words &#8220;firmware update&#8221; or &#8220;product recall&#8221; in any of their responses, so no evidence they decided to fix the flaw in the token itself.</li>
<li>We shouldn&#8217;t call it &#8220;SecurID&#8221; even though the product name is &#8220;RSA SecurID 800&#8243;. Or to put it another way, &#8220;When we want brand recognition, call it &#8216;SecurID&#8217;. When it&#8217;s flawed, call it &#8216;PKCS #1 v1.5.&#8217;&#8221;</li>
</ul>
<p>However, his main point is that, since this is a privilege escalation attack, any gain RSA has given the attacker is not worth mentioning. In his words:</p>
<blockquote><p>&#8220;Any situation where the attacker has access to your smartcard device and has your PIN, essentially compromises your security. RSA maintains that if an attacker already has this level of access, the additional risk of the Bleichenbacher attack does not substantially change the already totally compromised environment.&#8221;</p></blockquote>
<p>Note the careful use of &#8220;substantially change&#8221; and &#8220;totally compromised environment&#8221;. They go farther on this tack, recommending the following mitigation approaches.</p>
<ul>
<li>(Tokens) should not be left parked in the USB port any longer than necessary</li>
<li>The owner needs to maintain control of their PIN</li>
<li>The system which the device is being used on should be running anti-malware.</li>
</ul>
<p>Their security best practices involve recommending that users limit access to the token while it is in a state to perform crypto operations for the user or attacker. This is good general advice, but it is not directly relevant to this attack for two reasons:</p>
<ol>
<li>The attack allows recovery of keys protected by the token, and then no further access to it is required</li>
<li>It takes only a short amount of time and can be performed in stages</li>
</ol>
<p>First, the attack allows key recovery (but not of the private key, as RSA points out over and over). There are three levels of potential compromise of a token like this one:</p>
<ol>
<li>Temporary online access: attacker can decrypt messages by sending them to the token until it&#8217;s disconnected</li>
<li>Exposure of wrapped keys: attacker can decrypt past or future messages <span style="text-decoration:underline;">offline</span>, until the wrapped keys are changed</li>
<li>Exposure of the master private key: attacker can recover future wrapped keys until the private key is changed</li>
</ol>
<p>RSA is claiming there&#8217;s no important difference between #1 and #2. But the whole point of a physical token is to drive a wedge between these exact cases. Otherwise, you could store your keys on your hard drive and get the same effect &#8212; compromise of your computer leads to offline ability to decrypt messages. To RSA, that difference isn&#8217;t a &#8220;substantial change&#8221;.</p>
<p>By screwing up the implementation of their namesake algorithm, RSA turned temporary access to a token into full access to any wrapped keys protected by it. But sure, the private key itself (case #3) is still safe.</p>
<p>Second, they continue to insist that end-user behavior can be important to mitigating this attack. The <a href="http://hal.inria.fr/docs/00/70/47/90/PDF/RR-7944.pdf">research paper</a> shows that it takes only a few thousand automated queries to recover a wrapped key (e.g., minutes). Even if you&#8217;re lightning fast in unplugging your token, the attack can be performed in stages. There&#8217;s no need for continuous access to the token.</p>
<p>After the wrapped keys are recovered, they can be used for offline decryption until changed. No further access is needed to the token until the wrapped keys are changed.</p>
<p>The conclusion is really simple: the RSA SecurID 800 token fails to protect its secrets. An attacker with software-only access (even remote) to the token can recover its wrapped keys in only a few minutes each. A token whose security depends on how fast you unplug it isn&#8217;t much of a token.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rdist.wordpress.com/875/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rdist.wordpress.com/875/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rdist.root.org&#038;blog=893473&#038;post=875&#038;subd=rdist&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rdist.root.org/2012/06/29/rsa-repeats-earlier-claims-but-louder/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d0c01d70ede8af2f696f36d3f89b8be1?s=96&#38;d=http%3A%2F%2Fs0.wp.com%2Fi%2Fmu.gif&#38;r=G" medium="image">
			<media:title type="html">rdist</media:title>
		</media:content>
	</item>
	</channel>
</rss>
