论文部分内容阅读
进入Web2.0时代,随着各类Web网站用户体验的提升和功能的日趋完善,在给广大互联网用户带来便利和实惠的同时也带来了一系列安全问题。而这其中跨站脚本攻击(XSS)和跨站脚本蠕虫(XSS Worm)攻击就是其中的闪亮明星,在安全威胁界中占有重要的地位。面对此种情况,近年来已经有不少的安全厂商相继推出了对应的防范检测跨站脚本攻击的安全工具,但由于动态代码混淆技术(DCO)已经被黑客和恶意攻击者所掌握并熟练应用,使得基于特征码的防范检测技术已不再像以前那样有效。在这种情况下就需要另辟蹊径,从新的角度考虑对XSS攻击的防范对策。 本文提出了一种基于行为的XSS攻击防范研究思路,采用在客户端进行防范检测的策略,采用动态污点分析和静态污点分析相结合的方法,将用户的敏感信息和隐私数据标记为污点数据,对标记的污点数据在程序执行的过程中进行动态追踪,对污点数据所参与的运算,如:算术运算、赋值运算、逻辑运算等进行分析,对运算的结果添加污点标记,并进行追踪。对污点数据所参与的函数调用等结构进行污点分析,然后根据分析结果对结构中的相关变量添加污点标记,当污点数据在程序的执行中进入控制结构时进行静态污点分析,根据静态污点分析算法划定污点作用域并根据其分析策略对控制结构中的相关变量添加污点标记。当在程序运行时检测到污点数据将要被发送到第三方时,根据传输点分析和污点信息处理策略进行分析,如为可疑XSS行为则向用户发出警报,否则,予以放行。对XSS蠕虫的防御,主要从以后可能出现的各种变种考虑,采用从根本上进行防御的策略,由于XSS蠕虫的传播在根本上需要通过用户的浏览器向服务器端提交POST请求,因此该论文采用对浏览器所提交的HTTP请求进行拦截和分析判断的策略,对于发现的可疑POST请求发出警报并申请用户裁决。 在实验设计中,本文采用Firefox浏览器,对其JavaScript引擎中的相关数据结构进行扩展,并在Firefox浏览器中添加Tamper Data插件对所提交的HTTP请求进行拦截分析。在对实验结果的分析过程中发现了一些没有考虑周全的方面,与预先设想的实验结果稍有偏差,但总体上是与设计预想相符的。 实验结果表明:本文所提出的方案是切实可行的,可以有效地对跨站脚本攻击和跨站脚本蠕虫攻击进行的检测防御。