2

南科大联合UIUC团队利用AI升级软件安全测试技术,性能强于SOTA近43%,并节省计算资源

 2 years ago
source link: https://www.mittrchina.com/news/detail/10431
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
麻省理工科技评论-南科大联合UIUC团队利用AI升级软件安全测试技术,性能强于SOTA近43%,并节省计算资源
南科大联合UIUC团队利用AI升级软件安全测试技术,性能强于SOTA近43%,并节省计算资源
模糊测试(fuzz testing)是一项关键软件安全测试技术,其本质在于制定模糊策略,在给定的时间内充分发挥计算能力,生成能够尽可能扩大程序执行覆盖率的测试用例,以发现存在的程序漏洞和错误。近年来,
280


模糊测试(fuzz testing)是一项关键软件安全测试技术,其本质在于制定模糊策略,在给定的时间内充分发挥计算能力,生成能够尽可能扩大程序执行覆盖率的测试用例,以发现存在的程序漏洞和错误。

近年来,随着人工智能尤其是深度学习的发展,科学家取得了许多模糊测试技术的研究成果,如众多具有优化计算能力的模糊策略。然而,当前还鲜有对这些模糊策略特征及作用的探索与思考,这潜在地阻碍了模糊测试技术的进一步发展。

因此,中国南方科技大学的张煜群课题组联合美国伊利诺伊大学厄巴纳-香槟分校张令明课题组,对深度神经网络在模糊测试中的作用进行研究,并提出了相应的优化技术。

相关论文以《评估和改进基于神经程序平滑的模糊测试》(Evaluating and Improving Neural Program-Smoothing-based Fuzzing)为题发表在第 44 届软件工程国际会议(International Conference on Software Engineering,简称 ICSE)上[1]。

方科技大学计算机科学与工程系助理教授张煜群(来源:张煜群)

现有基于深度学习的模糊测试技术,如美国哥伦比亚大学团队提出的 Neuzz 和 MTFuzz,是通过深度神经网络来产生给定输入到输出的梯度,再根据梯度对输入的程序字节进行优先度排序,梯度更高的字节能获得更多的计算资源,以生成变异测试用例。

为验证梯度优先度排序的有效性,张煜群团队将计算资源导入到梯度更小的字节来变异产生测试用例。研究发现,在一些基准测试项目上,梯度逆序的表现强于原始策略,这说明原始策略在计算资源还是有未知的浪费。

那么,深度神经网络的预测能力究竟如何在模糊测试中起作用?通过比较研究不同深度神经网络模型对最终性能的影响,合作团队发现,模型的不同并不会带来性能上的显著差别。换句话说,深度神经网络的预测能力并不能为模糊测试带来性能上的提升。

图 | 美国伊利诺伊大学厄巴纳-香槟分校计算机科学系副教授张令明(来源:张令明)
在进行更加深入的研究后,该团队得出,深度神经网络模型只是“记住”了那些它看过的数据,然后从探索角度出发去评估各种位置字节对程序分支的影响,起到了像是“字典”的功能,而不是“预测未知”的功能。

这意味着,使用最简单直接的全连接神经网络就足以在模糊测试中奏效。根据这一结论,他们使用轻量分析方法提前记录每个分支的访问情况,且在测试过程中只对已访问分支数低于特定阈值的程序分支求梯度,避免计算资源的浪费。

图 | 基于深度学习的模糊测试技术基本框架(来源:ICSE)
值得一提的是,只通过这一小小的改进,就使最简单的全连接神经网络在模糊测试胜过了多任务学习建模的 SOTA(指目前最好/最先进的模型),且性能强了近 10%。

那么,除了发挥“字典”的作用,人工智能技术在模糊测试过程中是否还能进一步帮助做决策呢?

对此,两个课题组继续展开合作研究,对模糊测试中广泛采用的随机变异策略 havoc 进行探索,并提出了能够有效提升 havoc 的轻量级方法。近日,相关论文以《一种解决所有问题的模糊策略》(One Fuzzing Strategy to Rule Them All)为题发表在第 44 届 ICSE 上[2]。

图 | 基于多臂选择机的 havoc 优化机制图示(来源:ICSE)
据了解,测试策略在不同阶段对变异器(mutator)的选择是有偏好的。研究中,课题组人员对十多个变异器分别展开保守和激进的划分,再通过一个双重多臂赌博机对变异器的选择进行了策略化建模,将 havoc 的效率整整提升了 11.1%,与占有三个并行执行进程的模糊测试技术 QSYM 相比也不落下风。

随后,张煜群团队想到,人工智能既然能以“字典”的方式快速解析出模糊测试想要的信息,又能帮助模糊测试决策,那能不能将两者组合在一起呢?因此,他们将深度神经网络模型和 havoc 测试策略结合,带来一种深度学习优化模糊测试技术。该技术取得了极佳的效果,比 SOTA 的性能整整好了 43%。

图 | 深度学习优化模糊测试技术的基本流程(来源:ICSE)

众所周知在人工智能时代,人类面临无穷的的可能性。经过精心的设计,人工智能技术能够基于不同的方法论,在需要严谨逻辑的软件分析场景中发挥更强的作用。今后,我们或将在越来越多行业里见到更多人工智能带来的惊喜。

-End-

参考:
1. Evaluating and Improving Neural Program-Smoothing-based Fuzzing. Mingyuan Wu, Ling Jiang, Jiahong Xiang, Yuqun Zhang, Guowei Yang, Huixin Ma, Sen Nie, Shi Wu, Heming Cui, and Lingming Zhang. Proceedings of the 44th IEEE International Conference on Software Engineering (ICSE 2022), full paper, to appear, May 2022.
2. One Fuzzing Strategy to Rule Them All. Mingyuan Wu, Ling Jiang, Jiahong Xiang, Yanwei Huang, Heming Cui, Lingming Zhang, and Yuqun Zhang, Proceedings of the 44th IEEE International Conference on Software Engineering (ICSE 2022), full paper, to appear, May 2022.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK