640?wx_fmt=gif

640?wx_fmt=jpeg

作者 | h4cd

本文经授权转自开源中国

近日,谷歌开源了一个模糊测试基础设施——ClusterFuzz,可以非常简单地自动化查找并修复程序中的 bug。

640?wx_fmt=png

模糊测试是一种用于自动化检测软件中存在的问题的方法,其通过向目标程序提供意外输入来实现。它能有效地发现可以带来严重安全隐患的内存损坏错误。手动查找这些问题既困难又耗时,尽管有严格的代码审查实践,但难免会漏掉一些问题。对于使用诸如 C/C++ 这类不安全的语言编写的软件项目,模糊测试是确保其安全性和稳定性的关键环节。

项目团队表示,为了使模糊测试行之有效,它必须是连续的、大规模执行,并且集成到软件项目的开发过程中,而为了在 Chrome 上提供这些功能,他们编写了 ClusterFuzz,这是一个运行在 25000 多个核心上的模糊测试基础设施。两年前,团队开始将 ClusterFuzz 作为一项免费服务通过 OSS-Fuzz 向开源项目提供。如今 ClusterFuzz 已开源,任何人都可以使用。

640?wx_fmt=png

ClusterFuzz 研发到现在已经过 8 年时间,其旨在无缝地融入开发人员工作流程,并使得查找 bug 并修复它们变得非常简单。ClusterFuzz 提供端到端的自动化,从 bug 检测到分类,到错误报告,最后到错误报告的自动闭合,特性包括:

  • 高度可扩展,谷歌的内部实例运行在超过 25000 台机器上

  • 准确的去副本化(Accurate deduplication)

  • 问题跟踪器的全自动错误归档和关闭

  • 最小化测试用例

  • 通过二分法回归查找

  • 提供分析 fuzzer 性能和崩溃率的统计信息

  • 易于使用的 Web 界面,用于管理和查看崩溃

  • 支持引导模糊(例如 libFuzzer 和 AFL)和黑盒模糊测试

ClusterFuzz 已经在 Chrome 中发现了超过 16000 个 bug,在与 OSS-Fuzz 集成的 160 多个开源项目中发现了超过 11000 个 bug。它是 Chrome 和许多其它开源项目开发过程中不可或缺的一部分。ClusterFuzz 通常能够在引入后几小时检测到问题,并在一天内验证修复。

项目地址:https://github.com/google/clusterfuzz。


 热 文 推 荐 

☞ 极客头条

☞ 程序员们的“钢铁审美”:花花公子封面女郎如何成为互联网第一夫人?

☞ 如果我回腾讯上班

☞ 断舍离:我彻底戒掉苹果、微软、Google、Facebook 和亚马逊之后?

☞ 微信说不!有何不可?

☞ 移动互联网“大开放”之死

☞ @程序员,沟通这项核心技能你掌握了多少?

年薪 10 万的程序员,如何积累人生的第一个 100 万?

 
 

print_r('点个好看吧!');
var_dump('点个好看吧!');
NSLog(@"点个好看吧!");
System.out.println("点个好看吧!");
console.log("点个好看吧!");
print("点个好看吧!");
printf("点个好看吧!");
cout << "点个好看吧!" << endl;
Console.WriteLine("点个好看吧!");
fmt.Println("点个好看吧!");
Response.Write("点个好看吧!");
alert("点个好看吧!")
echo "点个好看吧!"

640?wx_fmt=gif点击“阅读原文”,打开 CSDN App 阅读更贴心!

640?wx_fmt=png 喜欢就点击“好看”吧!
Logo

20年前,《新程序员》创刊时,我们的心愿是全面关注程序员成长,中国将拥有新一代世界级的程序员。20年后的今天,我们有了新的使命:助力中国IT技术人成长,成就一亿技术人!

更多推荐