专栏名称: 机器学习研究会
机器学习研究会是北京大学大数据与机器学习创新中心旗下的学生组织,旨在构建一个机器学习从事者交流的平台。除了及时分享领域资讯外,协会还会举办各种业界巨头/学术神牛讲座、学术大牛沙龙分享会、real data 创新竞赛等活动。
目录
相关文章推荐
爱可可-爱生活  ·  //@爱可可-爱生活:欢迎参与~-20241 ... ·  3 天前  
爱可可-爱生活  ·  《爱可可微博热门分享(10.17)》 ... ·  4 天前  
爱可可-爱生活  ·  [LG]《Language model ... ·  1 周前  
51好读  ›  专栏  ›  机器学习研究会

神经网络模糊测试:将DNN应用于软件安全测试

机器学习研究会  · 公众号  · AI  · 2017-11-15 22:34

正文

编者按:软件安全问题一直是开发人员关注的重点,简单高效的漏洞探测方法能够为程序的平稳运行提供强大助力。近日,微软研究人员开发出一种可以用于发现软件安全漏洞的新方法。这个名为微软安全风险检测(Microsoft Security Risk Detection)的工具能够大大简化安全测试流程,让你无须成为安全问题专家也可以消除软件中的漏洞。本文译自 “Neural fuzzing: applying DNN to software security testing ”。


微软研究人员开发出一种用于发现软件安全漏洞的新方法——借助机器学习和深度神经网络,系统可以从既往经验中学习如何更好地发现这些漏洞。这个名为“神经网络模糊测试”的最新研究项目旨在对传统模糊测试技术加以强化,而且早期实验已经显现出良好的效果。


软件安全测试是一项艰巨任务,通常是由安全专家通过昂贵且针对局部的代码评审流程来实现,或者借助针对特定场景设计,专用而复杂的安全工具来检测和评估代码中的漏洞。微软最近发布了一个名为微软安全风险检测(Microsoft Security Risk Detection,缩写为MSRD)的工具,它大大简化了安全测试流程,让你无须成为安全问题专家也可以定位软件中的漏洞。这款基于Azure的工具已向Windows用户开放,并向Linux用户开放了预览版。



模糊测试



驱动这套微软安全风险检测工具(MSRD)的关键技术名为模糊测试(fuzz testing)。这种程序安全测试方法可以查找出导致程序被攻破的输入(如缓冲区溢出、内存访问冲突和无效指针引用取消等)。


模糊测试器(fuzzer)可以分成几个不同类别:


  • 黑箱模糊测试器,也被称为“傻瓜模糊测试器”,完全依靠样本输入文件生成新的输入。


  • 白箱模糊测试器,它对目标程序进行静态或动态分析,以此引导搜索更多新的输入,旨在尽可能多地探查代码路径。

  • 灰箱模糊测试器,与黑箱模糊测试器相似,它对目标程序的结构没有任何了解,但可根据对目标程序既往执行行为的观察,利用反馈回路来指导搜索。



图一:由MSRD中支持的神经网络AFL报告的崩溃



神经网络模糊测试



今年早些时候,微软研究员William Blum、Rishabh Singh和Mohit Rajpal等人启动了一个研究项目,研究如何使用机器学习和深度神经网络来改进模糊测试技术,通过在灰箱模糊测试器的反馈回路中插入一个深度神经网络来研究机器学习模型的学习过程。


在最初的实验中,研究员们考察了系统是否能够随着时间推移,对当前模糊测试器的历史模糊迭代进行观察并从中学习,他们将神经网络模糊测试的方法应用于一种名为American Fuzzy Lop(AFL)的灰箱模糊测试器中,尝试使用四种不同类型的神经网络对四个目标程序进行实验,分别是ELF、PDF、PNG和XML四种不同文件格式的解析程序。


结果非常鼓舞人心——对于上述四种输入格式解析器而言,这种基于神经网络的方法在代码覆盖率、唯一代码的路径和崩溃方面都比传统AFL有了显著进步。


对于ELF和PNG这两种格式的解析器而言,基于长短期记忆(LSTM)神经网络模型的AFL系统在代码覆盖率方面比传统AFL提高了10%。


对于除PDF格式以外所有的解析器,神经网络AFL都能够比传统AFL找到更多的唯一路径。对于PNG解析器而言,在经历过24小时的模糊测试之后,它发现的非重复代码路径比传统AFL多一倍。


图二:libpng文件解析库中找到漏洞数量随时间变化图示


评估模糊测试器的方法之一是比较报告的崩溃次数。对于ELF文件解析器,神经网络AFL报告了至少20次崩溃,而传统AFL却未能报告任何崩溃。这一结果是令人惊讶的,因为神经网络AFL就是利用AFL自身进行训练的。同时,对于文本型文件格式(如XML),神经网络AFL发现的崩溃次数比传统AFL多38%。对于PDF而言,传统AFL在搜寻新代码路径方面总体上优于神经AFL。但是,这两个系统都没有报告任何崩溃。



图三:针对readelf(左)和libxml(右)文件解析器报告的崩溃次数


总的来说,除了PDF以外,使用基于神经网络的模糊测试工具在每个实例上的表现都优于传统AFL。而面对PDF,神经网络AFL并没有优势的原因可能是因为在对神经模型进行查询时,PDF文件的较大尺寸会引起显著的资源开销。


转自:微软研究院AI头条


完整内容请点击“阅读原文”