作者:ClusterFuzz团队的Abhishek Arya、Oliver Chang、Max Moroz、Martin Barbella和Jonathan Metzman

模糊测试(fuzzing)是一种用于检测软件中错误(bug)的自动方法,其工作方式是向目标程序馈送意外的输入,从而发现错误。它可以有效地发现内存损坏错误,内存损失错误常常会带来严重的安全隐患。手动查找这些问题棘手又耗时;尽管有严格的代码审查实践,错误还是常常成为漏网之鱼。对于用一种不安全的语言(比如C或C++)编写的软件项目而言,模糊测试是确保安全性和稳定性的一个关键要素。

模糊测试要真正有效,它必须是持续性、大规模执行,并且集成到软件项目的开发过程中。为了为Chrome提供这些功能,我们编写了ClusterFuzz,这是一套在25000多个核心上运行的模糊测试基础设施。两年前,我们开始通过OSS-Fuzz向开源项目提供ClusterFuzz这项免费服务。

今天,我们宣布ClusterFuzz现在是开源的,任何人都可以使用。

我们在这八年的时间里开发了ClusterFuzz,以便无缝地融入到开发人员的工作流程,并且使得查找错误并修复错误变得异常简单。ClusterFuzz提供端到端自动化:从错误检测到分类排查(准确的重复数据删除和二分法)、错误报告,直到最后的自动关闭错误报告。

ClusterFuzz已发现了Chrome中的16000多个错误,并发现了与OSS-Fuzz集成的160多个开源项目中的11000多个错误。它是Chrome及另外许多开源项目开发过程中不可或缺的一部分。ClusterFuzz常常能够在引入后几小时就能发现错误,并在一天内验证修复方法。

查看我们的GitHub代码库(https://github.com/google/clusterfuzz)。你可以遵照这些说明在本地尝试ClusterFuzz。在生产环境中,ClusterFuzz依赖谷歌云平台的一些关键服务,但你可以使用自己的计算集群。我们欢迎你的贡献,并期待任何有助于改善和扩展该基础设施的建议。我们希望,通过开源ClusterFuzz,鼓励所有软件开发人员将模糊测试集成到他们的工作流程中。

 

声明:本文来自云头条,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如需转载,请联系原作者获取授权。