OpenSSL Heartbleed 的大惨败没有任何异议的证明了人们一直怀疑的事情:仅仅因为开源代码只是用来检查用的,但并不意味着它已经完全被检查过了,而外是安全的。
这一点是至关重要的,原因在于开源软件的安全性完全依赖大量拥有专业技能的程序员检测代码,并迅速将含有Bug的代码移除或修复。这一点在Linus's Law(林纳斯定律)也提到了:“只要有足够多的眼睛,就可让所有问题浮现。”
但是我们来看看使用OpenSSL之后发生了什么事。Robin Seggelemann是德国Munster大学的一位程序员,通过添加一个新的Heartbeat保活功能来更新OpenSLL代码,但不幸的是,他错过了一个必要的代码验证来检查一个特定的变量是有现实价值的。OpenSSL开发团队的成员在发布更新版本之前也没有进行检查,这些疏忽都是导致Heartbleed Bug出现的最主要诱因。
如果他们觉得代码里没什么Bug的话,别说是一个审查员,即使是一大堆审查员也找不出这个微不足道的小错误。这个Heartbleed Bug一直存在了两年,在OpenSLL里面,在浏览器里面,在Web服务器里面,最终还是没有一个开源社区发现它。难道可以将此归咎于没有足够多的审查眼睛吗?
商业渠道缺乏对开源代码的审核
同样令人担忧的是,OpenSSL 此前一直被当做一个重要组件使用在硬件产品中,这些硬件产品由像 F5 Networks、Citrix Systems、Riverbed Technology 和 Barracuda Networks之类的商业公司提供,这些公司在使用它们之前都没有进行足够的审核。安全云网关厂商Forum Systems的CEO Mamoon Yunus透露了上述内容。
他说:如果把OpenSSL商业化,作为供应商是有责任提供更多的眼球进行审核,因为,一旦你打算建立一个基于开源组件的公司,对代码的所有权是必不可少的。
(责任编辑:)