论文部分内容阅读
互联网科技高速发展,经历了几代的变革,从最早的桌面时代,到现在的手机时代,用户访问信息的设备虽然在不停地变化,但是用户访问信息的介质中有很大一部分都是网页。但是网页的多变性让计算机病毒有了可乘之机。网页主要编程语言是JavaScript,近些年随着Web App概念的兴起,网站对于JavaScript的依赖变得越来越重。并且伴随着Node基金的发展,JavaScript因为异步编程理念而在后端编程中使用场景越来越丰富。然而对于JavaScript语言相关的安全工具却没有得到相应的发展。针对这一问题,本文研究设计并实现了基于污点分析的JavaScript应用脆弱性检测工具。本文通过对目前国际社区内各种不同的编程语言中使用的静态检测工具进行分析,并且了解了静态检测工具的理论基础知识,最终通过对JavaScript语言标准进行深入学习,设计了完整的污点分析算法,完成了JavaScript脆弱性检测工具的设计和实现,整体论文的具体内容如下:1.通过对目前互联网网页应用现状进行分析,主要阐述了基于污点分析的JavaScript的应用脆弱性检测工具的研究背景和研究价值。阐述前人在污点分析和静态检测领域的研究和现状。2.详细介绍了工具研究和实现中需要用到的关键技术,包括研究中需要用到的词法分析、语法分析和抽象语法树,以及工具实现中需要用到的TypeScript,Node.js和测试驱动开发等技术。3.完成了工具架构的设计和算法的设计。依据工具架构的需求,对工具进行了模块化的架构设计,包括词法分析器、语法分析器和污点分析核心算法,最终生成了攻击路径图。详细说明了工具用到的核心算法,分别是基于深度优先遍历的抽象语法树预处理算法和核心污点分析算法。4.根据对工具架构和算法的设计,完成了工具中词法分析器、语法分析和核心污点分析算法的实现,并且生成了攻击路径图。同时对算法进行了实现,并且实验说明了算法的有效性。5.对平台和算法进行了测试,包括各个模块的测试,保证了系统的稳定性、兼容性和安全性。在论文的基础上,对算法设计和实现中出现的问题进行分析,并且对JavaScript脆弱性检测未来的发展和优化提出了展望。