摘 要:跨站脚本攻击是一种特殊的Web客户端脚本注入攻击手段,目前对于跨站脚本攻击缺乏有效的防御措施。针对这一问题,提出一种采用决策树分类算法检测跨站脚本攻击的方法,该方法将Web应用程序中容易受到跨站脚本攻击的元素和对象作为特征属性,利用决策树算法对特征属性的取值进行分类,以此对跨站脚本攻击进行检测。实验结果表明,该方法能够有效解决跨站脚本攻击的检测问题。
关键词:Web安全;跨站脚本攻击;决策树算法;攻击检测
0 引言
跨站脚本攻击(Cross Site Scripting,XSS)是一种面向Web应用程序客户端,基于脚本代码漏洞的计算机攻击技术。跨站脚本攻击是由于Web应用程序对用户的输入过滤和处理不足造成的,攻击者利用跨站脚本漏洞把恶意的脚本程序注入到网页中,当其他用户浏览被注入的网页时,就会执行其中的恶意脚本,对受害用户造成Cookie窃取、会话劫持、钓鱼欺骗甚至发起拒绝服务攻击等各种危害。
跨站脚本攻击一般不会影响到Web服务器的安全。但是如果跨站脚本攻击与其他攻击手段同时作用时,则可能对Web服务器和受害者主机造成危害。例如,跨站脚本攻击与SQL注入攻击结合会破坏Web服务器数据库安全;跨站脚本攻击获取受害人主机信息后,攻击者进一步进行网络入侵攻击等。
1 DOM-Based跨站脚本攻击原理
DOM-Based型跨站脚本攻击是基于DOM结构的一类特殊的跨站脚本攻击。在Web应用程序中,脚本可以通过DOM来操纵网页的内容和属性,从而实现Web应用程序在运行时动态改变页面的内容和样式。但是如果脚本代码中包含恶意脚本时,就可能发生脚本代码恶意操纵DOM对象而导致Web应用程序发生跨站脚本攻击。
由于DOM-Based跨站脚本攻击的本质和攻击原理与传统的跨站脚本攻击不同,因此传统的跨站脚本攻击检测和防御方法不适用于检测DOM-Based跨站脚本攻击,导致DOM-Based跨站脚本攻击成为互联网安全的严重威胁。
2 基于决策树分类的攻击检测方法
本文提出一种基于CART决策树自动检测DOM-Based跨站脚本攻击的方法,并基于该方法构建了以CART决策分类模块、攻击检测知识库模块和攻击检测模块为一体的攻击检测模型,该模型结构如图1所示。
模型以标准DOM树作为原型,构建一棵CART决策树。该决策树的主要功能是在程序运行时检测敏感位置的脚本代码是否对程序造成DOM-Based跨站脚本攻击。
2.1 特征属性选取
2.1.1 Web地址特征属性
用户向Web服务器发出信息请求,一般通过统一资源定位地址进行交互,即链接。用户可以在链接中添加参数,当服务器得到用户请求后,首先获取所请求的资源,然后将参数传给服务器进行处理。攻击者利用这种机制,构造具有攻击性的URL地址向服务器进行提交,就可能发生跨站脚本攻击。所以,攻击检测系统需要URL中的参数对进行分析,获取参数以及其取值作为攻击检测的特征属性。
其次,Web应用程序中,部分HTML元素具有可请求服务器资源的属性,如、、、