安全公司Department of Homeland Security公布的数据表明,开源代码大致每1000行含有一个安全漏洞。
流行的开源项目比如Samba、PHP、Perl等通常跟Web站点的一些原理相关联,Amanda(使用广发的开源备份和修复软件)运行在50万个服务器上,他们均含有许许多多的安全漏洞和质量缺陷。
以Samba为例,Samba总共有236处缺陷,而它的代码共45万行,因而缺陷数远低于平均率,而且Maxwell(开源代码检测系统的创立者)在采访中表示,其中228处缺陷已经得到了弥补。
Linux的也远远小于平均缺陷率,Linux kernel的2.6版本的安全bug率为每一千行代码0.127个。Coverity Web 网站公布的数据显示,检查了kernel 的3,639,322行代码,452个缺陷已被修复(fixed),48个被校验(verified)而未修复,另外413有待校验和修复。
Apache Web服务器包含135,916行代码,每一千行有0.14个bug。3个已修复,7个被校验,仍有12个有待修复和校验;PostgreSQL数据库系统包含909,148行代码,,每一千行有0.041个缺陷,53个bug已被修复,37个有待修复和校验。
对于代码中存在的缺陷和漏洞,有些开源项目“响应”迅速,有些则比较慢。比如FreeBSD在修正方面的步伐慢了一些,在总共1,582,166代码中,只校验了六个缺陷,仍有605个有待校验和修复;Firebird项目被确认又195个缺陷,然而它未修复和校验任何一个;而Firefox 浏览器项目已经修补了370 bugs,校验了56个,另有246个有待修复和校验。
Free Software Foundation的glibc或者Gnu C Library已经修复了全部83个bug。Gnu C Library被许多Linux的开源开发者所使用,是很少的几个没有错误代码的开源项目之一,考虑到它有588,931行代码整个成绩更不容易了。
Linux用户界面的情况是这样的:KDE包含4,712,273行代码,已修复1,554个缺陷,校验了25个另有65个有待修复和校验。Gnome有430,809行代码,已经修复了357个错误,校验了5个,仍有214个有待修复和校验。
Maxwell表示,开源项目与商业产品的不同之处在于,商业公司很少承认他们产品代码的安全问题,“如果我们为商业公司做这种调查,他们一定会非常不高兴。”