论文部分内容阅读
随着Web技术的蓬勃发展,互联网变得越来越丰富,随之而来的是,针对Web应用程序漏洞的攻击也越来越多,其危害程度也越来越大,给Web应用程序的安全带来了巨大的威胁,其中最为著名的有跨站脚本攻击、SQL注入、跨站请求伪造、点击劫持。攻击者可以利用这些漏洞注入自己编写的恶意代码、改变程序的执行流程、破坏用户程序以及窃取用户敏感信息等。现有的Web安全措施主要集中在服务端,客户端的安全机制相对比较薄弱,客户端安全检测防御工作亟需完善,因此研究一种客户端的安全检测防御方法是个有意义的课题。传统的污点检测方法大多是针对服务端特定语言,由于服务端web应用程序所使用的编程语言多种多样,实现一种适用于服务端所有编程语言的通用污点分析方法几乎是件不可能的事。而通过扩展浏览器内核加强客户端安全是一种复杂且不通用的方法,主要是因为浏览器的种类繁多,不同版本的浏览器其实现也不同。针对上述问题,本文提出了一种新的web漏洞检测防御方法,基于客户端代码重写的动态污点分析方法,目的是在无需修改服务端和客户端代码的情况下能够阻止恶意脚本的非法行为。该方法首先将客户端JavaScript代码转换成中间代码,然后实现具体的污点分析引擎,该引擎在程序运行时动态的追踪敏感数据的处理过程,记录所有敏感数据的信息流,找出目标数据与源数据之间的依赖关系,阻止不信任域的源数据流入到目标数据中,从而达到检测防御漏洞攻击的目的。在上述动态污点分析方法的基础上,本文设计并实现了一个Web漏洞攻击检测防御系统,系统以代理的形式部署在浏览器端,对Web数据进行实时实验,实验结果表明,本系统在信息的机密性和完整性保护以及算法的准确性上都取得了较好的结果,同时能有效的阻止常见的Web漏洞攻击。