<?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>Jason Doucette&#039;s Business By Bootstraps &#187; Security</title>
	<atom:link href="http://jasondoucette.ca/category/security/feed/" rel="self" type="application/rss+xml" />
	<link>http://jasondoucette.ca</link>
	<description>Daily thoughts from the trenches of a self-funded company</description>
	<lastBuildDate>Sat, 14 Jan 2012 23:22:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Code thieves and the people who hire them</title>
		<link>http://jasondoucette.ca/code-thieves-and-the-people-who-hire-them/</link>
		<comments>http://jasondoucette.ca/code-thieves-and-the-people-who-hire-them/#comments</comments>
		<pubDate>Wed, 15 Dec 2010 14:49:19 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[employer]]></category>
		<category><![CDATA[Hiring]]></category>
		<category><![CDATA[source code]]></category>
		<category><![CDATA[thief]]></category>
		<category><![CDATA[thieves]]></category>
		<category><![CDATA[trading systems]]></category>

		<guid isPermaLink="false">http://jasondoucette.ca/?p=225</guid>
		<description><![CDATA[I saw in the news that there&#8217;ve been two cases lately of programmers stealing source code on the way out the door from their employers, presumably to use at their next job.  In both cases the code was for financial companies&#8217; high-speed trading systems. Let&#8217;s acknowledge that high-speed trading systems are more complicated than, say, a content management system.  I hope they are anyway, though recent market activity makes me doubt that sometimes.  Anyway, the algorithms are complicated, probably convoluted, hopefully rigorously tested, and they contain key competitive information that other companies would probably want to take a look at. [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I saw in the news that there&#8217;ve been two cases lately of<a href="http://online.wsj.com/article/SB10001424052748704457604576011564066524404.html?mod=WSJ_hp_LEFTWhatsNewsCollection"> programmers stealing source code</a> on the way out the door from their employers, presumably to use at their next job.  In both cases the code was for financial companies&#8217; high-speed trading systems.</p>
<p>Let&#8217;s acknowledge that high-speed trading systems are more complicated than, say, a content management system.  I hope they are anyway, though recent market activity makes me doubt that sometimes.  Anyway, the algorithms are complicated, probably convoluted, hopefully rigorously tested, and they contain key competitive information that other companies would probably want to take a look at.  It&#8217;s valuable stuff.</p>
<p>That said, if a programmer doesn&#8217;t know how his systems work, he&#8217;s probably not worth the $1.13 million salary the new company was offering him (note to self: I&#8217;m in the wrong market, clearly.)  Let&#8217;s assume that the new company wasn&#8217;t simply out to buy a copy of a competitor&#8217;s source code &#8211; they obviously wanted someone with experience in these matters, and knew they&#8217;d be getting some insider knowledge in the bargain whether it was ever talked about or not, but I&#8217;m willing to assume they knew they were hiring an expert in a certain subject area.</p>
<p>Of course, if you&#8217;re an expert, you probably don&#8217;t need to copy source code.</p>
<p>Here&#8217;s the thing: a good programmer is always thinking about how he&#8217;d do things better if he had a chance to do it again.  A good programmer also knows how to evaluate <a href="http://www.infoworld.com/d/applications/build-or-buy-it-applications-676">build versus buy</a>, and can resist the lure of not invented here system, but ultimately if you&#8217;re paying someone a premium for what&#8217;s in their head, it&#8217;s what&#8217;s in their head that you&#8217;re paying for.  Yes, that&#8217;s circular, but it&#8217;s not about what notes or code they can swipe on the way out, and if your business needs that information to stay competitive, there&#8217;s a problem.</p>
<p>I&#8217;m not advocating open-sourcing competitive assets here, but the reality is that, for most businesses, most of the value in keeping your code secret is to create a (mild) barrier to entry for competitors.</p>
<p>I realize this argument would be easier to make if the code was for something where a few less dollars were involved and the competition wasn&#8217;t so fierce, and there are probably people reading who can make a case for industrial espionage at that level, but speaking as a former developer, assuming you&#8217;re going from one company to another who both have successful systems already in place (so we&#8217;re not talking about ramp-up costs,) the value of that code (assuming it&#8217;s not what you&#8217;re actually being paid to bring over) is a lot less than you realize, and if it&#8217;s not, you need to rethink your salary expectations.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasondoucette.ca/code-thieves-and-the-people-who-hire-them/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Logistics executives don&#8217;t read Batman</title>
		<link>http://jasondoucette.ca/logistics-executives-dont-read-batman/</link>
		<comments>http://jasondoucette.ca/logistics-executives-dont-read-batman/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 15:48:28 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://jasondoucette.ca/?p=176</guid>
		<description><![CDATA[From the latest Canadian Business: The secret shipping news: Intelligence services use import manifests to help clients identify consumer trends and keep track of rival products. Briefly, it&#8217;s often possible to learn key strategic information about a company from its shipping manifests, which can be found through US Customs declarations or companies like Import Genius, which can provide you with a searchable database for as little as $99/month. From this, I can learn even more about the companies in question: their logistics executives are probably in their 50s or older and have no kids.  Or at least they don&#8217;t follow Batman&#8217;s adventures. [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>From the latest Canadian Business: <a href="http://www.canadianbusiness.com/managing/strategy/article.jsp?content=20100426_10008_10008">The secret shipping news: Intelligence services use import manifests to help clients identify consumer trends and keep track of rival products</a>. Briefly, it&#8217;s often possible to learn key strategic information about a company from its shipping manifests, which can be found through US Customs declarations or companies like <a href="http://www.importgenius.com/">Import Genius</a>, which can provide you with a searchable database for as little as $99/month.</p>
<p>From this, I can learn even more about the companies in question: their logistics executives are probably in their 50s or older and have no kids.  Or at least they don&#8217;t follow Batman&#8217;s adventures.</p>
<p>I&#8217;m sure it&#8217;s come up in the comics more than once, but can I recall an episode of Batman: The Animated Series from 1993 called <a href="http://dcanimated.wikia.com/wiki/The_Mechanic">The Mechanic</a> where exotic car part orders were traced to deduce who was supplying Batman with service for his Batmobile. Hell, didn&#8217;t this even come up in the Dark Knight movie where that accountant found some irregularities?</p>
<p>How hard is it for big companies to create shell companies that move their stuff around?  I know if I had an on-site legal team, the first thing I&#8217;d do every morning would be to send them a list of company names I wanted registered for future nefarious purposes.  True, if I were CEO you could deduce most of my activities by searching for companies with the words &#8220;pants&#8221; and &#8220;donkey&#8221; in their names, but I&#8217;m not CEO of anything at the moment, for reasons that escape me.</p>
<p>It&#8217;s settled then: big companies need to hire a comics writer if they&#8217;re serious about security. As long as it&#8217;s not a writer for Superman, that is. I mean, &#8220;wear glasses&#8221; probably isn&#8217;t the be all and end all to privacy protection.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasondoucette.ca/logistics-executives-dont-read-batman/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A lack of thinking things through</title>
		<link>http://jasondoucette.ca/a-lack-of-thinking-things-through/</link>
		<comments>http://jasondoucette.ca/a-lack-of-thinking-things-through/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 14:00:32 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://jasondoucette.ca/?p=152</guid>
		<description><![CDATA[I&#8217;ve had this in my reader&#8217;s open tabs for over a month now &#8211; totally old news, but they found out that people were able to tap into the video feed from U.S. Predator drones using software that costs around $25. And yes, it&#8217;s in my browser because there&#8217;s a part of me that wants to check out this software.  Maybe it has a free demo period so I can try it out.  Because hey, wouldn&#8217;t it be cool to see what the local Predator drones are seeing? I just never got around to it.  Which is probably just as [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://online.wsj.com/article/SB126102247889095011.html">I&#8217;ve had this in my reader&#8217;s open tabs for over a month now</a> &#8211; totally old news, but they found out that people were able to tap into the video feed from <a href="http://en.wikipedia.org/wiki/MQ-1_Predator">U.S. Predator drones</a> using software that costs around $25.</p>
<p>And yes, it&#8217;s in my browser because there&#8217;s a part of me that wants to check out this software.  Maybe it has a free demo period so I can try it out.  Because hey, wouldn&#8217;t it be cool to see what the local Predator drones are seeing?</p>
<p>I just never got around to it.  Which is probably just as well &#8211; I mean, what are the odds I&#8217;d find a live feed of a Predator in downtown Toronto, and what exactly would my reaction be if I found one?</p>
]]></content:encoded>
			<wfw:commentRss>http://jasondoucette.ca/a-lack-of-thinking-things-through/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Primus shows how consecutive IDs in a URL can have massive negative consequences</title>
		<link>http://jasondoucette.ca/primus-security-failure/</link>
		<comments>http://jasondoucette.ca/primus-security-failure/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 15:00:31 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://jasondoucette.ca/?p=120</guid>
		<description><![CDATA[Back when I developed ticketing software for events, the clients would complain that I made the ticket ID too long.  I feel vindicated today. Via a post to the Torcamp mailing list (from Stephen, last name left out to give some semblence of after-the-fact privacy,) I found out about an email campaign being run for Primus Canada.  It&#8217;s got all those slick bits that marketers love: you get a personalized link that shows a video WITH YOUR NAME IN IT!  Wow!  And better still, you get to send customized videos to your friends! Viral wow! The only real problem here [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Back when I developed ticketing software for events, the clients would complain that I made the ticket ID too long.  I feel vindicated today.</p>
<p>Via a post to the Torcamp mailing list (from Stephen, last name left out to give some semblence of after-the-fact privacy,) I found out about an email campaign being run for Primus Canada.  It&#8217;s got all those slick bits that marketers love: you get a personalized link that shows a video WITH YOUR NAME IN IT!  Wow!  And better still, you get to send customized videos to your friends! Viral wow!</p>
<p>The only real problem here is that instead of using, say, a GUID or some other really big identifier in the personalized URLs, the company used an integer. A few quick tests confirm that it&#8217;s a sequential integer.</p>
<p>Let&#8217;s spell this out: <strong>Primus has provided their customer list of names and emails to anyone who can edit a URL</strong>.</p>
<p>So what&#8217;s the exposure? In about 3 minutes of entering higher and lower IDs in the URL, I found a consecutive range of about <strong>144, 657 IDs</strong>.  I didn&#8217;t try every number in that range (you can be sure some scrapers are doing that right now, somewhere on the internet) but given the overall naivete of the URL scheme I&#8217;m guessing the range is unbroken.</p>
<p>What&#8217;s more, it&#8217;s highly possible that there are other ranges in there from other database loads.</p>
<p>Picking an arbitrary starting number for your consecutive number range is not a realistic security measure.  In my ticketing days mentioned above, the exposure would have been counterfeit tickets which might or might not have been caught at the gate (there were secondary measures like the customer&#8217;s name on the ticket matching the scan.)  Here, I can pretty much guarantee that a lot of Primus customers just got added to a bunch of spam lists.</p>
<p>So, for developers out there (or marketers with half a brain that want to test their dev team), what&#8217;s a better way to do this?  As I suggested, a <a href="http://en.wikipedia.org/wiki/Globally_Unique_Identifier">GUID</a> would work better &#8211; it&#8217;s a really big number that&#8217;s harder to guess, but not impossible, and the more names in your database, the more hits, so I&#8217;d add the customer&#8217;s actual email address (or a tokenized version of it) to the URL as well &#8211; this is an email campaign, and it&#8217;s not like people will be typing these URLs in anyway, so there&#8217;s not much harm in making them bigger. The email token&#8217;s probably overkill, but this way the only way an attacker is going to see the email address is to know it in the first place.</p>
<p>Oh, and added bonus: if you view the source of the landing page there&#8217;s a link to the privacy policy and the terms and conditions. They&#8217;re commented out.</p>
<p><strong>Update:</strong> <a href="http://hyfen.net/out/writing/2009-06/how-to-harvest-the-primus-customer-database-in-3-easy-steps/">Andrew Loius has even more gory details over here.</a></p>
<p><strong>Update 2:</strong> The site&#8217;s been pulled (like, hard down, 404 not found, Gordon Ramsey style &#8220;shut it down.&#8221;)  Hopefully they&#8217;ll resolve this properly and recover somehow; it&#8217;s not a bad campaign, just an unfortunate deployment.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasondoucette.ca/primus-security-failure/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>We need a captcha for captchas</title>
		<link>http://jasondoucette.ca/we-need-a-captcha-for-captchas/</link>
		<comments>http://jasondoucette.ca/we-need-a-captcha-for-captchas/#comments</comments>
		<pubDate>Tue, 30 Oct 2007 03:20:09 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[captcha]]></category>

		<guid isPermaLink="false">http://jasondoucette.ca/?p=3</guid>
		<description><![CDATA[OK, so captchas (I suppose I should capitalize that, but too&#8230; darned&#8230; lazy) exist to detect that you&#8217;re a real human and not some script that&#8217;s up to no good. But&#8230; What if you&#8217;re a human who&#8217;s being used by script that&#8217;s up to no good? Via Seth: someone&#8217;s come up with an app that makes you enter captcha information to see a strip tease, but rather than generate the captchas itself, the program just grabs them from a convenient place, like Yahoo Mail, and then it uses your answers to gain entry into the captcha-protected site. It&#8217;s one of [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>OK, so <a href="http://en.wikipedia.org/wiki/Captcha">captchas</a> (I suppose I should capitalize that, but too&#8230; darned&#8230; lazy) exist to detect that you&#8217;re a real human and not some script that&#8217;s up to no good.</p>
<p>But&#8230; What if you&#8217;re a human who&#8217;s being used by script that&#8217;s up to no good?</p>
<p><img src="/images/captchabot.jpg" alt="This captcha is using you" height="115" width="250" /></p>
<p>Via <a href="http://sethgodin.typepad.com/seths_blog/2007/10/diabolical.html">Seth</a>: someone&#8217;s come up with an app that makes you enter captcha information to see a strip tease, but rather than generate the captchas itself, the program just grabs them from a convenient place, like Yahoo Mail, and then it uses your answers to gain entry into the captcha-protected site.</p>
<p>It&#8217;s one of those things that you&#8217;re amazed nobody&#8217;s thought of sooner.</p>
<p>Coincidentally, I was trying to implement a captcha on a form the other day.  Rather than reinvent the wheel, I went with CMU&#8217;s <a href="http://recaptcha.net/">reCAPTCHA</a> project, which also uses your input, but in this case it&#8217;s to help digitize books.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasondoucette.ca/we-need-a-captcha-for-captchas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

