主页期刊介绍编委会编辑部服务介绍道德声明在线审稿编委办公English
2022年专刊出版计划 微信服务介绍 最新一期:2021年第2期
     
在线出版
各期目录
纸质出版
分辑系列
论文检索
论文排行
综述文章
专刊文章
美文分享
各期封面
E-mail Alerts
RSS
旧版入口
中国科学院软件研究所
  
投稿指南 问题解答 下载区 收费标准 在线投稿
高凤娟,王豫,司徒凌云,王林章.SmartFuSE:基于深度学习的符号执行与模糊测试的混合测试方法.软件学报,2021,32(4):7-0
SmartFuSE:基于深度学习的符号执行与模糊测试的混合测试方法
SmartFuSE:deep learning-based hybrid testing using symbolic execution and fuzzing
投稿时间:2020-09-13  修订日期:2020-10-26
DOI:10.13328/j.cnki.jos.006225
中文关键词:  软件测试  深度学习  路径表示  符号执行  模糊测试  混合测试
英文关键词:software testing  deep learning  path representation  symbolic execution  fuzzing  hybrid testing
基金项目:国家自然科学基金(No.62032010);江苏省研究生科研与实践创新计划项目
作者单位E-mail
高凤娟 计算机软件新技术国家重点实验室(南京大学), 江苏 南京 210023  
王豫 计算机软件新技术国家重点实验室(南京大学), 江苏 南京 210023  
司徒凌云 南京大学 计算机科学与技术系, 江苏 南京 210023  
王林章 计算机软件新技术国家重点实验室(南京大学), 江苏 南京 210023 lzwang@nju.edu.cn 
摘要点击次数: 129
全文下载次数: 90
中文摘要:
      随着软件技术的快速发展,面向领域的软件系统在广泛使用的同时带来了研究与应用上的新挑战.由于领域应用对安全性、可靠性有着很高的要求,而符号执行和模糊测试等技术在保障软件系统的安全性、可靠性方面已经发展了数十年.许多研究和被发现的缺陷表明了它们的有效性.但是由于两者的优劣不同,将这两者的结合仍是近期热门研究话题.目前的结合方法在于两者相互协助,例如模糊测试不可达的区域交给符号执行求解.但是这些方法只能在模糊测试(或符号执行)运行时判定是否应该借助符号执行(或模糊测试),无法同时利用这两者的优势,从而导致性能不足.基于此,我们提出基于深度学习,将基于符号执行的测试与模糊测试相结合的混合测试方法.该方法旨在测试开始之前就判断适合模糊测试(或符号执行)的路径集,从而制导模糊测试(或符号执行)到达适合它们的区域.同时,我们还提出混合机制实现两者之间的交互,从而进一步提升整体的覆盖率.基于LAVA-M中程序的实验表明,我们的方法相对于单独符号执行或模糊测试,能够提升20%多的分支覆盖率,增加约1~13倍的路径数目,多检测到929个缺陷.
英文摘要:
      With the rapid development of software techniques, domain-driven softwares raise new challenges in software security and robustness. Symbolic execution and fuzzing have been rapidly developed in recent decades years, demonstrating their ability in detecting software bugs. Enormous detected and fixed bugs demonstrate their feasibility. However, it is still a challenging task to combine the two methods due to their corresponding weakness. State-of-the-art techniques focus on incorporating the two methods such as using symbolic execution to solve paths when fuzzing gets stuck in complex paths. Unfortunately, such methods are inefficient because they have to switch to fuzzing (resp. symbolic execution) when conducting symbolic execution (resp. fuzzing). In this paper, we present a new deep learning-based hybrid testing method using symbolic execution and fuzzing. This method tries to predict paths that are suitable for fuzzing (resp. symbolic execution) and guide the fuzzing (resp. symbolic execution) to reach the paths. To further enhance the effectiveness, we propose a hybrid mechanism to make them interact with each other. We evaluate our approach on the programs in LAVA-M and the result shows compared to using symbolic execution or fuzzing independently, using our method helps more than 20% increase of branch coverage, 1 to 13 times increase of the number of paths, and uncover 929 bugs.
HTML  下载PDF全文  查看/发表评论  下载PDF阅读器
 

京公网安备 11040202500064号

主办单位:中国科学院软件研究所 中国计算机学会 京ICP备05046678号-4
编辑部电话:+86-10-62562563 E-mail: jos@iscas.ac.cn
Copyright 中国科学院软件研究所《软件学报》版权所有 All Rights Reserved
本刊全文数据库版权所有,未经许可,不得转载,本刊保留追究法律责任的权利