基于代理的跨站脚本攻击防御研究

发布日期:2019年6月18日
基于代理的跨站脚本攻击防御研究 基于代理的跨站脚本攻击防御研究

本内容试读结束

下载后可阅读完整内容,立即下载

在网络安全领域中,跨站脚本攻击已经是最严重的安全问题之一。本文在深入研究跨站脚本攻击方式的基础上,提出了一种基于代理的跨站脚本防御框架。该框架部署在客户端和服务器端之间,利用算法对通信数据进行深度分析和过滤,从而对跨站脚本进行有效的防御。实验证明设计的框架不仅能对跨站脚本攻击进行有效的防御,而且可以对合法标签进行放行,为用户提供良好的访问体验。

跨站脚本攻击(Cross Site Scripting, XSS)是目前网络攻击中最流行的方法之一, 它通过Web 应用中的漏洞将恶意脚本注入到网页中[1]。

针对跨站脚本攻击防御, 国内外许多专家和学者都对其作了大量研究工作。

A. Guha 等人[2]提出了一种静态方法,对JavaScript 脚本的XMLHttpRequest 请求建立请求图,在服务器端监视用户发送的XMLHttpRequest 请求,若不符合请求图则视为攻击。该方法可以防止普通跨站脚本攻击以及跨站请求伪造攻击(Cross-Site Request Forgery, CDRF),但是局限于分析XMLHttpRequest请求,不能防御那些不向Web 程序所在服务器发送的XMLHttpRequest 请求的攻击,而且此方法需要修改服务器端Web 程序源代码。

Noxes [3]通过制定一系列的规则,对用户的数据在客户端进行拦截或放行,从而对跨站脚本进行有效防御,但是随着近几年跨站脚本攻击技术的不断更新,基于编码的跨站脚本攻击已经能突破Noxes 的拦截规则。

2011 年中国科学计算机网络入侵防范中心王夏莉提出基于行为的跨站脚本攻击检测,通过分析JavaScript 命令代码的特征行为,对于危险的HTTP 请求数据包放入隔离区,将其中可疑的请求操作转发给用户,由用户自身进行判断。一般用户无法判断是否存在危险,不适合大面推广[4]。

Likarish [5]使用网络爬虫工具去收集网络上的良性脚本和恶意脚本数据,提出了基于函数和代码的特征的机器学习算法。该算法通过深度的学习之后,可以对数据进行检测区分。但是,检测的准确度依靠机器学习的数据样本,对数据辨别的准确率还有待提高。

目前, 对跨站脚本防御做的比较成功的是编码防御。

其中, 对编码技术总结的比较全面的是OWASP对跨站脚本攻击作出的一系列防御规则[6]。这种防御规则确保数据在前台展示的时候都经过了编码,有效预防了危险数据在HTML 文件中被引用[7]。但是,这种规则在带来安全的同时,也限制了Web 应用的部分功能,使得部分合法的标签缺少使用权限,从而降低客户端用户的体验。本着放开合法标签的目的,我们提出了一种基于代理的跨站防御方法。该方法通过对数据的深入拆分解析,准确识别出标签是否合法、数据中是否存在脚本以及数据安全。研究结果表明,该方法对于当前流行的跨站脚本攻击有良好的防御效果。

2. 基于代理的跨站脚本防御框架模型 我们构造的基于代理的跨站脚本防御框架模型如图1 所示。防御模块由分析引擎和处理引擎两大部分组成。分析引擎的功能是对数据进行重编码、去除干扰和整理标签处理,为下一步的处理引擎提供预处理之后的数据以及数据基本特征。处理引擎的功能是对分析引擎传入的数据进行非法标签、非法事件和非法引用的处理,确认无风险后进行放行,并将此次处理记录日志。该框架模型能够对合法标签进行放行,为客户端提供多功能的访问体验通过正确识别HTML 标签,对跨站脚本攻击进行有效的防御。



相关标签