神经模糊:微软将DNN用于软件安全测试

编者按:美国时间13日,微软安全风险检测团队的开发主管William Blum在官方博客发表文章,称微软已开发了一种基于神经模糊(Neural fuzzing)的新方法,可用于软件安全漏洞检测。据论智了解,微软安全风险检测的前身是Project Springfield,它是一种面向云服务平台Azure的工具,可以利用人工智能快速、高效地消除软件漏洞。

以下是论智对原文的编译:

微软的研究人员已经开发了一种新方法来检测软件安全漏洞,它结合机器学习和深度神经网络(DNN),能学习以往的经验帮助系统更好地消除漏洞。这个旨在通过增强传统模糊技术的新研究项目名为神经模糊(Neural fuzzing),在一些早期实验中,它显示出了一些优越性。

软件安全检测是一项艰巨的任务,它通常由安全专家通过昂贵而有针对性的代码审计来完成,或使用极其专业、复杂的安全工具来检测和评估。今年7月,微软正式发布一款名为微软安全风险检测(Microsoft Security Risk Detection,MSRD)的工具,大大简化了检测流程,能帮助用户迅速消除漏洞,虽然这是基于云服务平台Azure的工具,但它也适用于window和Linux。

模糊测试(Fuzz testing)

MSRD的关键技术是模糊测试。据了解,模糊测试是一种软件测试技术,它通过向系统输入大量的随机数据,企图使系统崩溃,来发现编码错误和软件、操作系统和网络中的安全漏洞(如缓冲区溢出、内存访问冲突、空指针取消引用等)。

这些随机数据大体可分为以下几类:

  • Blackbox fuzzers。它也被叫做dumb fuzzers,主要依靠输入文件样本产生输出;

  • Whitebox fuzzers。它静态或动态地分析目标程序,或指导搜索新的输入,来发现更多的代码路径;

  • Greybox fuzzers。Greybox fuzzers有点类似Blackbox fuzzers,它无需了解协议或文件本身格式,但是可以利用一个反馈循环来引导搜索,该循环基于程序执行过程中曾观察到的行为。

【原创】神经模糊:微软将DNN用于软件安全测试

                                                                  AFL崩溃报告

神经模糊(Neural fuzzing)

今年早些时候,包括William Blum、Rishabh Singh和Mohit Rajpal在内的一些微软研究人员开启了一个新项目——如何用机器学习和DNN改善模糊技术。具体来说,就是如果把一个机器学习模型插入greybox fuzzer的反馈回路,它能学到什么?

项目刚开始的时候,他们用现有的模糊测试工具和以往数据训练新模型,并测试它的学习效率。之后,他们又把模型移植到American fuzzy lop(AFL)上。William Blum等人尝试了4种不同类型的神经网络,在4个目标程序上进行试验,并使用了4种不同文件格式(ELF、PDF、PNG、XML)的parsers。

实验结果证明,结合神经网络后,AFL在代码覆盖率、唯一代码路径、崩溃方面较之前有显著提升。

  • 对于ELF、PNG这两种格式,和原装AFL相比,使用基于长短期记忆(LSTM)神经网络模型的DNN AFL代码覆盖率提升了约10%;

  • 经过24小时模糊处理,DNN AFL在PNG上的找到的唯一路径是原有的两倍;

【原创】神经模糊:微软将DNN用于软件安全测试

         libpng文件parser的输入增益(单位:小时)

  • 评估fuzzer的一个比较直观的方法是比较崩溃报告数量。以ELF为例,DNN AFL报告了20多次,而AFL没有报告。这是一个令人惊讶的结果,因为DNN AFL就是在AFL上训练的。此外,微软还检查了两者在其他格式上的崩溃报告情况,发现在基于文本的文件格式,如XML中,DNN AFL的报告数量要高38%。而对于PDF,虽然它们都没有任何报告,但DNN AFL在代码路径上表现更优。

【原创】神经模糊:微软将DNN用于软件安全测试

                                  readelf(左)和libxml(右)随时间推移(单位:小时)的崩溃情况

 总的来说,除了PDF,使用机器学习模型的AFL比训练前更优秀。而它在PDF上的异常表现则可能是因为启动大型文件时,系统开销太大了。研究人员都开始相信,这种神经模糊的方法更简单、更高效,也更通用。

  • 简单。搜索过程不再是复杂的手动档,系统能通过模糊测试工具学习经验,只需提供一些字符序列,它能自行找出各种各样的特征,并推导出哪种类型的输入更重要及测试工具应该在哪方面集中突破;

  • 高效。在实验中,DNN AFL在前24小时内找到了更多唯一代码路径,报告了更多崩溃;

  • 通用。虽然这些实验只在AFL上进行,但它同样适用于其他工具,如黑盒。

因此,微软认为团队在神经模糊上的研究已经达到了基础目标,虽然目前模型只会模糊位置,但研究人员认为让它学习模糊参数,如变异类型、应用策略,也是可以展望的做法。目前,他们正在考虑推出基于机器学习模型的在线版本,让工具在学习中完成迭代。

英文原文地址:www.microsoft.com/en-us/research/blog/neural-fuzzing/

本文来自机器人之家,链接:https://www.jqr.com/news/008687

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值