检索规则说明:AND代表“并且”;OR代表“或者”;NOT代表“不包含”;(注意必须大写,运算符两边需空一格)
检 索 范 例 :范例一: (K=图书馆学 OR K=情报学) AND A=范并思 范例二:J=计算机应用与软件 AND (U=C++ OR U=Basic) NOT M=Visual
作 者:王允超 王清贤 丁文博 WANG Yunchao;WANG Qingxian;DING Wenbo(State Key Laboratory of Mathematical Engineering and Advanced Computing,Zhengzhou 450001,China)
机构地区:[1]数学工程与先进计算国家重点实验室,河南郑州450001
出 处:《信息工程大学学报》2020年第3期316-324,共9页Journal of Information Engineering University
基 金:河南省软科学研究计划资助项目(192102210128)。
摘 要:模糊测试是一种高效的漏洞挖掘技术,但该方法很难适用于一些处理结构化输入的程序,例如JavaScript引擎。传统的模糊测试方法采用低级别的变异策略(比特/字节翻转)生成的测试用例,由于无法通过严格的语法、语义检查而被过早丢弃,导致难以发现程序深层的漏洞。提出一种语义感知的模糊测试方法并实现原型工具SaFuzzer,通过基于语法规则的语法树变异及语义修复,保证了样本的执行成功率。通过选择真实的软件进行测试,实验结果表明,SaFuzzer相比当前先进的AFL和Superion工具可以实现更高的代码覆盖并发现更多的bug。Fuzzing is an efficient vulnerability discovery technique.However,it is difficult to be applied to programs that process highly structured input,such as JavaScript engines.Testcases generated by traditional fuzzing methods which rely on low-level mutation strategies(bit/byte flipping)struggle to pass the strict syntax and semantic checks and will be rejected early,which makes it difficult to find deep bugs in the program.This paper proposes a semantic-aware fuzzing method and implements one prototype tool named SaFuzzer.The syntax tree mutation based on syntax rule and error semantic repairing guarantee the success rate of sample generation.Through testing real software,the experimental results show that SaFuzzer can achieve higher code coverage and find more bugs than the current advanced fuzzers such as AFL and Superion.
关 键 词:模糊测试 JAVASCRIPT 语义感知 语法树变异
分 类 号:TP393[自动化与计算机技术—计算机应用技术]
正在载入数据...
正在载入数据...
正在载入数据...
正在载入数据...
正在载入数据...
正在载入数据...
正在载入数据...
正在链接到云南高校图书馆文献保障联盟下载...
云南高校图书馆联盟文献共享服务平台 版权所有©
您的IP:216.73.216.15