Google希望进行“模糊测试(fuzz testing,fuzzing)”,为程序提供随机数据输入,作为开源开发的标准部分。
为此,它刚刚在GitHub上推出了一个用于 OSS-Fuzz 的测试计划的项目,其目的在于推动现代模糊技术标准化,并将它们与可以根据需要扩展的分布式执行模型相结合,以确保重要开源项目的安全性。
根据 维基百科 的解释:“模糊测试是一种软件测试技术,通常是自动或半自动的,涉及向计算机程序的输入提供无效、意外或随机数据。然后,监视程序是否有异常,例如崩溃、内置代码断言失败或查找潜在的内存泄漏。”
Google表示,这种技术可以用来确保流行的开源组件(特别是被认为是全球IT基础设施的关键部分)是稳定、安全和可靠的。
“最近的安全故事证实, 缓冲区溢出 和 释放后使用 的错误会在关键的开源软件中导致严重的后果”,该公司在最近的一篇 博客 中说。“这些错误不仅严重,而且通过常规代码审计很难发现,即使对于有经验的开发人员也是如此。这就让模糊测试应运而生。通过生成给定程序的随机输入,模糊触发并帮助快速彻底地发现错误。”
OSS-Fuzz将利用 ClusterFuzz 项目在可扩展的分布式执行环境中将不同的模糊引擎(从 libFuzzer 开始)和其他组件组合在一起。
该公司表示,该项目迄今已在流行的开源项目中发现了 150个错误 。
目前,OSS-Fuzz只对有大量用户群或者对全球IT基础架构至关重要的开源软件提供服务。这暗示着,尽管没有直截了当地说明,这一切仍会变化。“通过你的帮助,我们可以将模糊测试作为开源发展中的一个标准规范,并和广大开发者、安全测试人员一道,确保那些重要开源应用、库以及API中的程序错误都能被发现和修复。”
感谢丁晓昀对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina )关注我们。