Microsoft开源项目OneFuzz,用于发现软件项目中的漏洞的Azure测试框架

2020-09-16 23:04:57

微软发布了一个新的开源安全工具,名为Project OneFuzz,这是一个Azure的测试框架,它将多个软件安全测试工具结合在一起,自动检测可能是安全问题的崩溃和错误的过程。

谷歌的开源毛茸茸机器人已经帮助它在自己的软件和其他开源软件项目中检测到了数以千计的错误。现在,微软发布了对软件开发人员同样挑战的答案。

OneFuzz项目可以在GitHub上获得麻省理工学院的开源许可,就像微软的其他开源项目一样,比如Visual Studio Code、.NET Core和JavaScript的TypeScript编程语言。

模糊本质上涉及向软件投掷随机代码,直到它崩溃,这可能会暴露出安全问题,但也会出现性能问题。

谷歌一直是这项技术的主要支持者,推动程序员和安全研究人员对实用程序和技术进行模糊处理。它的开源Fuzzers包括OSS-Fuzz和Cluster Fuzz。

OSS-Fuzz可供开发人员从GitHub下载并在自己的代码上使用。它也可以作为云服务提供给精选的开源项目。

微软之前宣布,它将用自动化的开源模糊工具取代其现有的软件测试工具集,即微软安全和风险检测(Microsoft Security And Risk Detection)。

这家雷蒙德公司还表示,它正在为所有雇佣软件开发人员的企业解决一个不同的、代价高昂的挑战,并称赞谷歌是这项技术的先驱。

OneFuzz是微软用来探测Edge、Windows和公司其他产品的相同测试框架。据微软称,它已经帮助微软强化了Windows10。

模糊测试是提高本地代码安全性和可靠性的一种非常有效的方法-它是发现和消除代价高昂的、可利用的安全漏洞的黄金标准,微软安全首席安全软件工程负责人贾斯汀·坎贝尔(Justin Campbell)和特殊项目管理高级总监迈克·沃克(Mike Walker)表示。

传统上,模糊测试对开发人员来说是一把双刃剑:受软件开发生命周期的要求,在查找可操作的缺陷方面非常有效,但在利用、执行和提取信息方面非常复杂。

这种复杂性需要专门的安全工程团队来构建和操作模糊测试功能,这使得它非常有用,但成本高昂。使开发人员能够执行模糊测试将漏洞的发现转移到开发生命周期的早期,同时也解放了安全工程团队从事前瞻性工作。

正如微软所指出的,编译器领域的最新进展,在LLVM中开源,并由Google首创,已经改变了模糊测试本机代码所涉及的安全工程任务。

根据微软的说法,这些进步使得开发人员可以更便宜地处理曾经附加的东西,而不是将这些过程烘焙到持续的构建系统中。这包括碰撞检测,它以前是通过电栅栏等工具连接的。现在他们可以和三三一起烤了。

它还解决了以前附加的工具,如IDNA、Dynamo Rio和Pin,这些工具现在已内置到sancov中。

一旦通过自定义I/O线束完成输入控制,就可以使用libfuzzer的LLVMFuzzerTestOneInput函数原型、Campbell和Walker Note进行烘焙。

Microsoft还向Visual Studio添加了对这些功能的试验性支持,以便可以通过编译器构建测试二进制文件,从而使开发人员无需将其构建到持续集成(CI)或持续开发(CD)管道中。它还可以帮助开发人员在云中扩展模糊工作负载。