微软开源持续开发模糊测试工具OneFuzz

近日,微软开源了OneFuzz——一个微软内部使用的,由开发人员驱动的持续开发模糊测试平台。开源后,世界各地的开发人员都可以通过OneFuzz直接从其开发系统接收模糊测试结果。

模糊测试是一种自动化的软件测试技术,将随机、意外、畸形和/或无效数据输入计算机程序,试图发现可能影响程序安全性和性能的异常(例如崩溃、内存泄漏等)和意外行为。

Azure驱动的持续开发模糊测试

OneFuzz项目是Azure的可扩展、自托管的Fuzzing即服务平台,该平台聚集了多个现有的Fuzzer,并可(通过自动化)整合崩溃检测、覆盖范围跟踪和输入控制等功能。

Microsoft内部团队使用OneFuzz来加强Windows、Microsoft Edge和其他软件产品的安全性开发。

“传统上,模糊测试对于开发人员来说是一把双刃剑:在软件开发生命周期中发现可行的缺陷方面非常有效,但从中获取、执行和提取信息却非常复杂。”微软首席安全软件工程贾斯汀•坎贝尔(Justin Campbell)和特殊项目管理高级总监迈克•沃克( Mike Walker)指出。

“这种复杂性要求专门的安全工程团队来开发和运行模糊测试功能,这非常有用但成本很高。使开发人员能够执行模糊测试,可以将漏洞发现转移到开发生命周期的早期,同时释放安全工程团队的精力,从事更加重要的工作。”

OneFuzz的功能

OneFuzz将允许开发人员执行模糊测试任务(规模从几台虚拟机到数千个内核不一),只需将一条命令输入开发系统即可。

该工具的功能包括:

  • 可编排的模糊测试工作流程:开放源代码意味着用户将可以使用自己的模糊测试工具,替换工具和管理种子输入;
  • 内置的集成模糊测试:默认情况下,支持多个模糊测试器协同工作,在不同模糊测试技术之间交换分享输入信息;
  • 程序化分类和结果去重;
  • 按需实时调试发现的崩溃:用户可以按需或从其开发系统中实时调试会话;
  • 透明化设计允许溯源到任意阶段;
  • 信息丰富的遥测:轻松监视所有模糊测试;
  • 原生设计支持多平台:可以使用用户自己的OS开发,内核或嵌套的管理程序在Windows和varios Linux OS系统上执行模糊测试;
  • 崩溃报告通知回调:当前支持Azure DevOps工作项和Microsoft Teams消息;
  • 代码覆盖率KPI:用户可以使用代码覆盖率作为关键指标来监视进度并激发测试。

OneFuzz将在未来几天通过GitHub(https://github.com/microsoft/onefuzz)提供给全球。微软表示将继续通过公司各个团队的贡献来更新和扩展它,并欢迎来自更大范围的开源社区的贡献和建议。

上一篇:五角大楼的人工智能网络战项目:IKE

下一篇:首批18款App获颁安全认证,我国App安全认证工作正式开展