nom, the problem with open source code reviews is that 80% of all code is inherently boring and 20% is interesting. If you write code, you know that even the code which was challenging and interesting last month is boring this month.
This is why vulnerabilities still get found in things like bind, which "should" have been reviewed by more people than Microsoft has ever employed. Large chunks of bind source code are simply no fun to look at, especially if they do mundane things which rarely need changing. Once in a blue moon, something like Apache gets a lot of code reworked and thus reviewed, but look how successful Apache 2.0 has been; apparently, relatively few people are ready to trust the freshly reviewed 2.0. In reality, it's probably more secure than stagnant sections of 1.3 code. In commercial development, there are people whose jobs include being responsible for any given piece of boring code (hopefully some interesting code as well). You might still have an underqualified, lazy employee here or there, but that's why you have group reviews.
I don't have anything against open source except for its hype. Open source is good in many ways, but it's not fundamentally more secure than closed source.
The only security advantage open source has is distribution. Today, Microsoft has localized versions of Windows 2000 being manufactured, warehoused, and distributed worldwide through Retail, Select, Open, Academic, ISV, and MSDN channels. There are people who deal with shipments, returns, and other logistics, using different currencies, TTY numbers for the deaf, etc. Most Windows 2000 SKUs will be available for 5+ years, even though Windows Server 2003 is shipping. Because many customers insist on managing their own change control, every Windows 2000 CD-ROM produced today contains Build 2195, the same one which was GA in February 2000. Most SKUs include SP3 on an accompanying CD-ROM, and OEMs like Dell can ship slipstream media where SP3 and/or hotfixes are integrated, but Windows 2000 "seems" less secure only because you have to apply 3+ years worth of updates to the code as it is distributed.
With typical open source, somebody slaps the latest German or English or Russian version on an ftp site, begs for mirrors, promises to think about localization, and maybe contracts for a limited number of CD-ROMs to be pressed and shipped in their home country. A vulnerability is found? Post the updated version and "archive" the vulnerable version, which discourages it from being downloaded and also hides the vulnerability history from public view.
Want to order a brand new CD-ROM of Red Hat 6.1 (which was shipping when Windows 2000 launched)? Sorry, Red Hat neither supports it nor sells it anymore. You're going to have to settle for a CD-R burned by a packrat you find in a newsgroup, but even he isn't sure that it's a good copy of 6.1. Hey, what fool would check it by loading 6.1 today? If you had to patch every vulnerability in the 6.1 distro (not just the kernel but packages like Netscape 4.61), you could spend days patching.
Intelligent Windows admins use tools like RIS, GPO, SUS, etc. to simplify the task of setting up new machines with the latest updates, but with tens of millions of Windows "admins" in the world, the laws of statistics guarantees that millions of them are barely competent enough to run d:\setup. Once the open source world accumulates enough of these folks, it will become much clearer that open source is not inherently more secure.
|