<?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>hypatia dot ca &#187; basie</title>
	<atom:link href="http://hypatia.ca/tag/basie/feed/" rel="self" type="application/rss+xml" />
	<link>http://hypatia.ca</link>
	<description>Leigh Honeywell&#039;s Blog</description>
	<lastBuildDate>Thu, 08 Jul 2010 05:28:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Vulnerability Disclosure for Open Source projects</title>
		<link>http://hypatia.ca/2009/07/vulnerability-disclosure-for-open-source-projects/</link>
		<comments>http://hypatia.ca/2009/07/vulnerability-disclosure-for-open-source-projects/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 06:29:14 +0000</pubDate>
		<dc:creator>Leigh Honeywell</dc:creator>
				<category><![CDATA[security]]></category>
		<category><![CDATA[basie]]></category>
		<category><![CDATA[markus]]></category>
		<category><![CDATA[school]]></category>

		<guid isPermaLink="false">http://hypatia.ca/?p=143</guid>
		<description><![CDATA[These are the notes and some links for a brief talk I gave a few weeks ago to my classmates in the summer CS project class I&#8217;m taking at U of T.  We&#8217;re working on the Basie and Markus projects.  Both are web apps; Basie is a software project management app built on Django, and [...]]]></description>
			<content:encoded><![CDATA[<p>These are the notes and some links for a brief talk I gave a few weeks ago to my classmates in the summer CS project class I&#8217;m taking at U of T.  We&#8217;re working on the Basie and Markus projects.  Both are web apps; Basie is a software project management app built on Django, and Markus is a CS-specific marking / grading app built on Rails.</p>
<p>The debate over full disclosure goes back hundreds of years in the locksmithing world.  Locksmiths were historically very secretive about weaknesses in their products; interestingly, they still are &#8211; <a href="http://www.crypto.com/papers/kiss.html">here</a>&#8217;s an interesting note on the subject from a few years ago.</p>
<p>There&#8217;s nuance and detail to the recent history of disclosure practices which Wikipedia does <a href="http://en.wikipedia.org/wiki/Full_disclosure">a good treatment of</a>, but it&#8217;s fair to say that today there are three broad categories of practices:</p>
<ul>
<li>silent patching (no disclosure) &#8211; this is a bad idea for fairly obvious reasons, except (some argue) in edge cases like the Linux kernel (the &#8220;every kernel bug is a security bug&#8221; argument) (<a href="http://kerneltrap.org/node/4540">one discussion of this</a>, <a href="http://kerneltrap.org/Linux/Security_Bugs_and_Full_Disclosure">another</a>)</li>
<li>partial disclosure, where one issues the patch before explaining full details of the vulnerability</li>
<li>full disclosure, where vulnerability details (and sometimes exploit code) are released at the same time as the patch is issued</li>
</ul>
<p>Aside from how much is being disclosed, there&#8217;s the question of  <a href="http://en.wikipedia.org/wiki/Responsible_disclosure"><em>responsible disclosure</em></a> on the part of security researchers, which is in a nutshell the idea of giving software vendors a set amount of time to respond to security issues before going public with them.</p>
<p><strong>How to Screw Up Disclosure</strong></p>
<ul>
<li>don&#8217;t give credit in your vulnerability advisories</li>
<li>don&#8217;t even bother publishing advisories (silent patching)</li>
<li>be unresponsive</li>
<li>demand excessive, unreasonable timeframes for patching (this is of course subjective)</li>
<li>make people sign NDAs (!)</li>
<li>threaten to sue people</li>
</ul>
<p>The last two aren&#8217;t generally screwups committed by Open Source projects, of course :)<br />
<strong>How to do it right &#8211; best practices</strong></p>
<ul>
<li>have a clear security contact on your site, no more than a click away from the homepage, and easily googlable with the string &#8220;$projectname security&#8221;</li>
<li>have a gpg key posted, with a good web of trust, for that contact</li>
<li>have email to that contact go to an email list with a clear process for dealing with it so that you don&#8217;t drop the ball, or have it filed into the bugtracker automagically (in a private bug!!11)</li>
<li>have an announce-only security mailing list for your users, and post issues to it ASAP when they come out!  An RSS feed works too.  Do both!</li>
<li>ensure that someone in your project monitors lists such as full-disclosure and bugtraq for issues in both your project, upstream frameworks, and your infrastructure.  For just monitoring your project, a Google Alert works well too. &#8220;project name + bug or vulnerability or security&#8221;.  People sometimes announce vulns without disclosing at all; you want to catch these.</li>
<li>if the project ends up getting abandoned at some point in the future, at the <em>very least</em> post a warning that it&#8217;s deprecated and unmaintained even for security issues, and possibly take down the code.</li>
</ul>
<p><strong>Specific Issues for web apps</strong></p>
<ul>
<li>you may have a widely deployed base of users.  An auto-update system such as WordPress&#8217;s is awesome for getting them to $%^$&amp;&amp;* patch!</li>
<li>the framework you&#8217;re building on may have (security) bugs too.</li>
<li>your code may be customized by users, which makes them lazy about patching &#8211; a good plugin architecture can help mitigate this.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://hypatia.ca/2009/07/vulnerability-disclosure-for-open-source-projects/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
