微软用神经网络改进模糊测试
作者: 日期:2017年11月21日 阅:4,899

微软研究团队致力采用深度神经网络改进模糊测试技术,初始测试表现良好。

模糊测试用于找出软件漏洞,尤其是内存崩溃漏洞,方法是向目标应用中输入格式不正确的数据。如果软件崩溃或行为异常,就表示可能存在安全漏洞。

模糊测试方法有3种:白盒模糊测试,测试源代码或反汇编代码;黑盒模糊测试,无需审查源代码;还有灰盒模糊测试,与黑盒类似,但使用之前执行的结果数据作为反馈。

微软的专家团队,试图采用被称为深度神经网络(DNN)的机器学习,来改进这一反馈环。神经网络是模仿人类大脑的一组算法,用于识别各种模式,辅助分类和聚类数据。

神经网络已被多家公司用于安全相关目的,包括垃圾邮件及恶意软件检测,甚至苹果新的Face ID功能也用到了神经网络。

微软的研究人员试图将神经网络作为一种依赖之前模糊迭代发现模式的学习技术,来指导之后的迭代。

神经模型学习在输入文件中预测良性和恶性位置的方法,用以在过往变异及相应代码覆盖信息的基础上,执行模糊变异。

该方法已在谷歌开源模糊测试工具American Fuzzy Lop (AFL)中实现,并对ELF、PDF、PNG和XML文件格式的解析器做了测试。

测试显示,除PDF文件因太大而表现略差外,神经AFL取得的结果,普遍优于未加入神经网络功能的原版AFL。其改进在代码覆盖、不同代码路径及崩溃方面可见。

该项目背后的团队认为,此方法可用于任意模糊测试工具,不局限于AFL。

我们的神经模糊测试研究项目,仅仅触及深度神经网络在模糊测试应用上的冰山一角。目前,我们的模型仅学习模糊测试位置,但该模型也可用于学习其他模糊测试参数,比如变异的类型或要应用的策略。我们还在考虑开发本机器学习模型的在线版本,也就是模糊测试工具不断从在线模糊测试迭代中学习。

微软刚刚发布了一个基于云的模糊测试服务——“安全风险检测(Security Risk Detection)”。该服务采用人工智能来查找应用中的漏洞和缺陷。对神经网络应用于渗透测试的研究,有助于改善此服务。

微软的另一款新工具,用于发现内存崩溃漏的VulnScan,也将加入到“安全风险检测”服务中。

相关阅读

IBM突破性分布式计算:搞定深度学习负载
专利与开源哪个好?谷歌发布OSS-Fuzz开源模糊测试服务

 

申明:本文系厂商投稿收录,所涉观点不代表安全牛立场!


相关文章