安全公司Department of Homeland Security公布的數(shù)據(jù)表明,開源代碼大致每1000行含有一個(gè)安全漏洞。
流行的開源項(xiàng)目比如Samba、PHP、Perl等通常跟Web站點(diǎn)的一些原理相關(guān)聯(lián),Amanda(使用廣發(fā)的開源備份和修復(fù)軟件)運(yùn)行在50萬個(gè)服務(wù)器上,他們均含有許許多多的安全漏洞和質(zhì)量缺陷。
以Samba為例,Samba總共有236處缺陷,而它的代碼共45萬行,因而缺陷數(shù)遠(yuǎn)低于平均率,而且Maxwell(開源代碼檢測(cè)系統(tǒng)的創(chuàng)立者)在采訪中表示,其中228處缺陷已經(jīng)得到了彌補(bǔ)。
Linux的也遠(yuǎn)遠(yuǎn)小于平均缺陷率,Linux kernel的2.6版本的安全bug率為每一千行代碼0.127個(gè)。Coverity Web 網(wǎng)站公布的數(shù)據(jù)顯示,檢查了kernel 的3,639,322行代碼,452個(gè)缺陷已被修復(fù)(fixed),48個(gè)被校驗(yàn)(verified)而未修復(fù),另外413有待校驗(yàn)和修復(fù)。
Apache Web服務(wù)器包含135,916行代碼,每一千行有0.14個(gè)bug。3個(gè)已修復(fù),7個(gè)被校驗(yàn),仍有12個(gè)有待修復(fù)和校驗(yàn);PostgreSQL數(shù)據(jù)庫系統(tǒng)包含909,148行代碼,,每一千行有0.041個(gè)缺陷,53個(gè)bug已被修復(fù),37個(gè)有待修復(fù)和校驗(yàn)。
對(duì)于代碼中存在的缺陷和漏洞,有些開源項(xiàng)目“響應(yīng)”迅速,有些則比較慢。比如FreeBSD在修正方面的步伐慢了一些,在總共1,582,166代碼中,只校驗(yàn)了六個(gè)缺陷,仍有605個(gè)有待校驗(yàn)和修復(fù);Firebird項(xiàng)目被確認(rèn)又195個(gè)缺陷,然而它未修復(fù)和校驗(yàn)任何一個(gè);而Firefox 瀏覽器項(xiàng)目已經(jīng)修補(bǔ)了370 bugs,校驗(yàn)了56個(gè),另有246個(gè)有待修復(fù)和校驗(yàn)。
Free Software Foundation的glibc或者Gnu C Library已經(jīng)修復(fù)了全部83個(gè)bug。Gnu C Library被許多Linux的開源開發(fā)者所使用,是很少的幾個(gè)沒有錯(cuò)誤代碼的開源項(xiàng)目之一,考慮到它有588,931行代碼整個(gè)成績更不容易了。
Linux用戶界面的情況是這樣的:KDE包含4,712,273行代碼,已修復(fù)1,554個(gè)缺陷,校驗(yàn)了25個(gè)另有65個(gè)有待修復(fù)和校驗(yàn)。Gnome有430,809行代碼,已經(jīng)修復(fù)了357個(gè)錯(cuò)誤,校驗(yàn)了5個(gè),仍有214個(gè)有待修復(fù)和校驗(yàn)。
Maxwell表示,開源項(xiàng)目與商業(yè)產(chǎn)品的不同之處在于,商業(yè)公司很少承認(rèn)他們產(chǎn)品代碼的安全問題,“如果我們?yōu)樯虡I(yè)公司做這種調(diào)查,他們一定會(huì)非常不高興。”