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