开源争论的焦点之一就是让你天生的拥有更多的安全性,因为任何人都可以检查程序的代码并证实它在做它应该做的事情。但是,对于不是程序员的人,这就真的意味着一切了吗?从某种意义上,你依然要依赖其它人。开源通过给你程序源代码确实移除了一个主要的障碍,但这只是难题的一部分。你还需要时间和技能去分析它。
Coverity应运而生。它是一家始于斯坦福大学的商业代码分析公司。Coverity最近两年一直在运作一个叫Scan 的项目,此项目主要的资助来自于国土安全部,目的是优化开源软件程序。这星期Coverity发布了它们的2008年开源报告。这个报告非常有意思。它引用了两年来250余个重要的C/C++开源项目数据,像PHP,Perl,Python 和 Samba。
Coverity并不是仅凭猜测工作。他们曾经发现组成X-Windows图形用户界面代码的一处安全漏洞,它可以导致允许任何用户获得超级用户的权力。Coverity宣布他们发布的数据使得32个开源项目在一周内修复了超过900多个漏洞 - 或者说,每小时修复了5个以上的漏洞。这个工程不但包含基础软件如:Samba,Gcc 同时也有流行的工具软件如:Ethereal. Samba项目组说Coverity发现漏洞的代码曾经被认为是绝对健壮和测试过的。
因此,Coverity的报告是非常重要的报告。尽管Coverity的名气不如一些公司大,如:Coverity,Red Hat,但是他们已经证明他们不是一家不可信赖的公司。
从2006年3月份开始的两年里,Scan项目已经扫描了总共55000000行代码(实际上,250个项目被扫描了很多次,大约有14,238次独立的扫描,扫描的代码超过100亿行)。同时这个项目提供了各种各样的编程风格样本。Coverity从他们的研究里边总结出了6个结论。
有些结论可能有点枯燥并且技术性比较强:研究发现静态分析漏洞的密度和函数的长度在统计上是无关的。这意味着完整独立的过程越长它的漏洞就越多并不是完全成立的。
相反的,研究确实发现代码长度和静态分析漏洞数量的线形关系。这意味着代码越多,越复杂,程序就会包含越多的漏洞。
同时,其它的发现也是非常有趣的。这里我非常想说的就是Coverity发现开源软件的总体质量和安全性在持续的改进。











开源软件真的安全吗?


DreamCreator 秀才 | 08/02/2008
"如:Coverity,Red Hat..."
得去掉这句里面的“Coverity”
bill.chen 贡生 | 08/02/2008
错了,应该是:Canonical
非常抱歉。
Zoomq 童生 | Blog | 08/03/2008
FLOSS 有源代码可以进行安全分析,这本身就决定了要比专有软件的安全性有更强的公开/透明性!
jinuljt 童生 | 08/04/2008
开源让Coverity有源代码可以分析,闭源的话可就没有哦……
也就是不能通过分析源码发现不了他们的bug,甚至后门。那找起来就难了。
jinuljt 童生 | 08/04/2008
哦,对了后门这个问题,开源软件比较让人放心。bug毕竟是没办法避免的。