咨询与建议

看过本文的还看了

相关文献

该作者的其他文献

文献详情 >针对浏览器JavaScript引擎的导向性模糊测试研究 收藏
针对浏览器JavaScript引擎的导向性模糊测试研究

针对浏览器JavaScript引擎的导向性模糊测试研究

作     者:张晓宏 

作者单位:中国地质大学(北京) 

学位级别:硕士

导师姓名:李梅;武成岗

授予年度:2021年

学科分类:08[工学] 0839[工学-网络空间安全] 

主      题:漏洞挖掘 JavaScript引擎 导向性 模糊测试 

摘      要:随着现代社会的不断发展,网络和各类应用软件已经成为人们生活中不可或缺的重要组成部分,但随之而来的各类安全漏洞,对用户的财产和信息安全造成了威胁。浏览器作为人们日常使用最多的应用软件,其内嵌的JavaScript引擎被披露的漏洞数目连年增长。但由于引擎本身具有的代码量大、逻辑复杂、输入格式严格等特点,使用现有的漏洞挖掘方法和工具对其进行测试存在很大的问题,有效性不高。本文针对浏览器JavaScript引擎,分析现有漏洞发生的原理,对目前已有的测试方法进行总结和改进,提出了一种更具针对性的模糊测试方法。现有的JavaScript引擎漏洞挖掘工具主要面临两个问题,第一是引擎输入空间巨大,基于生成的模糊测试系统,很难在合理的时间资源成本的约束下生成有效的测试用例;第二是现有的模糊系统大都缺乏对已知漏洞的总结和利用,基于变异的模糊测试系统的变异方向依然很盲目,有效性较低。且引擎对输入文件的语法要求严格,随机变异的策略会导致生成的种子语法通过率很低,无法对引擎进行深入测试。针对以上问题,本文主要进行了以下几方面的工作:1.为了总结漏洞模型,缩小模糊测试的搜索空间,本文对近年来披露的引擎漏洞进行了调研,将其中一些致错原因、崩溃时调用栈以及执行到的引擎函数相似的漏洞归类为一个家族,提取与家族特性相关的引擎底层函数作为模糊测试的主要测试目标,即导向目标。2.针对随机变异生成的种子语法通过率较低的问题,本文结合JavaScript语言特点和引擎特性,提出了四种不同的变异策略:单点变异、交叉变异、拦截变异、JIT变异。3.对静态分析生成的函数调用图中每一条边的权重进行区分和计算,对有关库函数的调用进行过滤,在提高距离计算准确度的情况下,降低复杂度。4.设计种子分级策略,结合使用距离和覆盖函数相似性两个指标,对种子进行优先级判断,使用模拟退火算法进行能量调度,给予优先级更高的种子更多的变异机会,且使用适应性算法对不同的种子使用不同粒度的变异策略进行变异,提高导向的效率。为了验证上述方法的有效性,本文设计并实现了导向性模糊测试系统Hunter,通过实验对系统实现的正确性和有效性进行了验证。实验结果表明Hunter系统能够将生成种子语法通过率提高到91.43%,且具有良好的导向性能。

读者评论 与其他读者分享你的观点

用户名:未登录
我的评分