为了减少漏洞和提高软件质量,微软开发了神经模糊技术。这种新的自动化测试方法,采用一种称为模糊(fuzzing)的技术,将大量的数据输入到程序中,以尝试强制发生崩溃或意外行为,从而发现漏洞。
传统的模糊工具分为三类。黑盒 fuzzers 是不直观的,并使用现成的示例文件来创建新的输入。与黑匣子相比,白盒剔除器要聪明得多。白盒模糊器将尝试使用算法尽可能多地执行不同的代码分支。 Graybox fuzzers 不能像白盒工具那样映射程序的代码结构,但是包含一个反馈循环,以便使用样本输入发现错误的可能性更大。
微软新的神经网络模糊测试项目采用灰箱模糊器,并将深度神经网络应用于反馈回路。随着时间的推移,神经反馈有助于发现更多可识别程序缺陷的独特代码路径。在一个用于解析 .png 文件的库测试中,与传统的模糊技术相比,微软使用神经网络所获得的代码路径数量翻倍。
与所有处于研发阶段的技术一样,还有一些问题需要解决。当试图通过神经网络运行 PDF 文件时,传统的方法仍然胜过神经网络。造成神经网络响应缓慢的大文件被认为是罪魁祸首。
对于那些想知道这个新的神经网络能否被第三方和公众使用的人来说,这是一个好消息。微软已经发布了一个名为微软安全风险检测的工具,它使用 Azure,任何拥有一些基本知识的人都可以使用该工具尝试和发现软件中的错误。