微软开源项目OneFuzz可以自动检测软件漏洞,帮助规避潜在安全问题。微软发布名为Project OneFuzz的开源安全工具。作为Azure的测试框架,该工具将多个软件安全测试工具整合在一起,可以自动检测崩溃和漏洞,避免潜在安全问题。谷歌的开源模糊测试机器人,已帮助其检测了自身软件和其他开源软件项目中的成千上万个漏洞。如今,微软也放出了自己应对这一软件开发人员难题的答案。 与Visual Studio Code、.NET Core和扩展了JavaScript的TypeScript编程语言等微软开源项目类似,Project OneFuzzis也可在遵从MIT开源许可的前提下从GitHub获取。微软将Project OneFuzz描述为“用于Azure的可扩展模糊测试框架”。 模糊测试本质上是不断向软件抛出随机代码,直至软件崩溃,以此暴露出软件潜藏的安全和性能问题。 谷歌一直大力倡导此项技术,敦促程序员和安全研究人员采用模糊测试实用程序和技术。其开源模糊测试器包括OSS-Fuzz和Cluster Fuzz。 开发人员可从GitHub下载OSS-Fuzz,将其用于自身代码。一些开源项目也可以云服务的方式使用此模糊测试器。 微软此前宣称,将以自动化开源模糊测试工具,代替其现有软件测试工具集Microsoft Security and Risk Detection。 微软还表示,该工具为所有软件开发公司解决另一花费高昂的难题,并感谢谷歌开拓了此项技术。 微软用于探查Edge、Windows和该公司其他产品的测试框架也是OneFuzz。该工具已帮助微软强化了Windows 10的安全。 微软安全部门首席安全软件工程主管Justin Campbell,以及特殊项目管理高级总监Mike Walker称:“模糊测试是提高本机代码安全性和可靠性的高效方法,是发现和消除代价高昂的可利用安全漏洞的黄金标准。” “传统上,模糊测试对于开发人员来说是一把双刃剑:软件开发生命周期必备,能高效发现可操作漏洞,但在利用、执行和从中提取信息方面却非常复杂。 “这种复杂性要求配置专门的安全工程团队来构建和运行模糊测试功能,造成模糊测试非常有用却又十分昂贵的局面。让开发人员能够执行模糊测试,相当于提前了漏洞发现在开发周期中的位置,同时解放了安全工程团队,让他们得以主动出击而不是疲于应付。” 正如微软指出的,“近期编译器领域的发展,由谷歌引领,在LLVM中开源的那些,改变了模糊测试原生代码中涉及的安全工程任务。” 微软宣称,这些发展让开发人员更容易处理此前的附加任务,将这些过程融入持续构建系统。其中就包括崩溃检测,这项任务之前是通过Electric Fence等工具附加的。如今此类工作可内置于asan。 iDNA、Dynamo Rio和Pin等此前的附加工具,如今也内置于sancov。Campbell和Walker指出:“输入控制曾经通过定制I/O控制完成,如今也内置于libfuzzer的LLVMFuzzerTestOneInput函数原型了。” 微软还在向Visual Studio添加对这些功能的实验性支持,以便能用编译器构建测试二进制文件,让开发人员能够无需将之置入持续集成(CI)或持续开发(CD)流水线。这么做还可以帮助开发人员在云端扩展模糊测试工作负载。