仅在微软宣布提供Springfield编码模糊测试服务两个月后,谷歌也发布了他们自己的面向对象存储模糊测试,OSS-Fuzz的测试版。这两个项目的目的都是为了帮助开发者锁定导致入侵的程序错误,但是项目本身就像这两家公司的商业模式一样,大相径庭。一个需要付费另一个则是免费,一个拥有专利保护另一个则是开源的。
谷歌的OSS-Fuzz能够针对开源软件进行持续的模糊测试,其测试开发团队昨天的博客中写到“OSS-Fuzz的目的是利用更新的模糊测试技术与可拓展的分布式执行相结合,提高一般软件基础架构的安全性与稳定性。OSS-Fuzz结合了多种模糊测试技术/漏洞捕捉技术(即原来的libfuzzer)与清洗技术(即原来的AddressSanitizer),并且通过ClusterFuzz为大规模可分布式执行提供了测试环境。”
这项服务填补了Springfield留下的空白:微软的模糊测试服务针对的是愿意付费的企业客户。虽然并没有排除开源开发者,但值得注意的是它明确将企业客户作为目标:适合测试内部软件、通过企业并购获得的软件、甚至是购买的第三方软件。
谷歌提到“开源软件是很多应用、站点、服务以及万物互联的物联网的骨干中枢...一个例子是FreeType library,一个在十亿以上设备上使用,用来转换字体的库(也许你正在看的这些文字也是由它转换呈现的)。”对于这种软件来说,没有程序问题并且安全是很重要的。“最近FreeType的漏洞捕捉器在源代码变化后的几小时内就找到了新的堆缓冲区。”
此服务“持续性”的特点还能解决另一个问题:开源软件会有大量不同维护人员不断地更新、变化。Google表示,“OSS-Fuzz可以自动提醒维护人员,谁修复了程序错误,并且还能自动确认这个修复。一切都在一天内完成!”
并没有迹象表明谷歌和微软的服务哪个更好---他们为了不同的目的采取不同手段。HD Moore,Metasploit与Special Circumstance有限责任公司的创始人表示,“OSS-Fuzz的成就,可以同开源中的Coverity工具相提并论;通过应用商业化资源去提高那些重要的开源软件与库的安全性。”
“Springfield会有些不同,”他继续说,“它的重点是对所有付费的开发者提供服务而不仅是开源的那些。谷歌作为一个因其员工对开源工具(例如AFL等)的耕耘而在此领域做出杰出贡献的公司,在这方面的成就似乎与其保持了一致。”
目前,谷歌测试版只对有大量用户群或者对全球IT基础架构至关重要的开源软件提供服务。这暗示着,尽管没有直截了当地说明,这一切仍会变化。“通过你的帮助,我们可以将模糊测试作为开源发展中的一个标准规范,并和广大开发者、安全测试人员一道,确保那些重要开源应用、库以及API中的程序错误都能被发现和修复。”
Robin Wood是一位独立的渗透测试人员与安全工具开发者。他不是很确定OSS-Fuzz最终能对所有人开放。“谷歌的工具似乎对能使用它的人群来说仍有一定限制;谷歌要求这个项目要么有庞大用户群要么对全球IT至关重要,然而微软的工具可以任何人使用但要收你的钱,”他对SecurityWeek表示,“我能理解谷歌只是想限制他所承担的费用;所以这不算是在批评他们。”
然而他非常确信,谷歌走在正确的路上。“微软工具使用它们内部打造出来的软件然而谷歌工具用的是外部框架并且能拓展应用更加多样化且不同的工具;这就能变得更加灵活。尽管想要做到一致,但任何工具自己的特性都会使其在某些领域做的更好些,而另一些领域则差些。”
Moore还认为,OSS-Fuzz“能够大大支持开源社区的发展并远超过其他公司在这个领域所做的努力。”
Wood觉得Springfield和OSS-Fuzz都不错,“当服务与产品状态稳定时将这两个对比做一个fuzz-off的测试结果看看他们各自找到什么应该会很有趣。但是无论任何哪个工具最后成为‘更好的’那一个,如果我有机会,为了确保万无一失我想这两个我都会尝试一下。”
【本文是51CTO专栏作者李少鹏的原创文章,转载请通过安全牛(微信公众号id:gooann-sectv)获取授权】