跨站攻击的检测方法、装置和具有该装置的防火墙的制作方法

文档序号:7860665阅读:198来源:国知局
专利名称:跨站攻击的检测方法、装置和具有该装置的防火墙的制作方法
技术领域
本发明涉及互联网领域,具体而言,涉及一种跨站攻击的检测方法、装置和具有该装置的防火墙。
背景技术
近几年,跨站攻击(Cross Site Scripting, XSS)始终盘跟着Web安全威胁的榜首。攻击者通过XSS,可以达到诸如钓鱼、网站挂马、HTTP会话劫持、信息盗取等非法目的,因此,XSS严重影响Web的安全和正常运行。
为了检测XSS,现有的IPS、IDS或WAF等系统中,均是基于正则表达式匹配的防护技术,也即通过正则表达式描述XSS行为,与正则表达式相匹配的行为确定为XSS行为,例如采用如下的正则表达式〈iframe\s+(src\s* = | height's* = | width's* =)。但是,可以用于XSS的形式非常多,几乎每一个HTML标签、CSS标签都可以被用于攻击,为了避免漏报,需要通过大量的正则表达式进行匹配,无疑会直接产生网络性能的降低。同时,HTML、CSS标签的混淆形式非常多,例如攻击者可以通过HTTP编码、HTML编码、添加无效字符(控制字符、换行符、标点符号)等手段进行防御躲避,使得基于正则表达式的防护技术出现漏报。为了避免漏报,需要对正则表达式放宽描述精度,而这种做法又会直接导致误报的出现。此外,采用基于正则表达式的防护技术,在规则命中后,没有额外的处理,从而安全管理员不能知道攻击的详细行为,给安全管理员的工作带来了额外的分析负担。综上,由于正则表达式本身描述能力的局限性,使得基于正则表达式的XSS检测技术存在误报高和漏报高的缺点。为了克服正则表达式在表述能力上的弱点,现存的很多WAF类产品采用基于机器学习的检测技术。通常该类技术都需要一个学习阶段,也即采用统计分析、数据挖掘等方法,学习到正常流量的数据特征后,在后续的检测阶段,对接收到的流量在学习到的正常流量模型的指导下进行分类,采用“非正常即异常”的方式检测攻击。但是,由于机器学习过程中存在过学习和欠学习的问题,过学习通常意味着攻击流量混入了正常流量中被错误地学习,从而导致攻击的特征被带入到最终的正常流量模型,此时在检测时会带来漏报的问题;欠学习通常意味着学习流量并没有包含所有的正常流量模式,导致部分正常流量的模型没有被学习到,在检测过程中会导致误报的问题。综上,由于现实中很难完整地学习到正常流量的所有特征,使得基于机器学习的检测技术中仍然存在误报和漏报的问题。针对相关技术中跨站攻击的检测方法容易误报和漏报的问题,目前尚未提出有效的解决方案。

发明内容
本发明的主要目的在于提供一种跨站攻击的检测方法、装置和具有该装置的防火墙,以解决跨站攻击的检测方法容易误报和漏报的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种跨站攻击的检测方法。根据本发明的跨站攻击的检测方法包括对用户提交的数据进行参数分解,得到分解后的参数;对分解后的参数进行HTTP编码的解码,得到解码后的参数;对解码后的参数进行词法分析,得到词法分析后的参数;对词法分析后的参数进行语法分析,并建立语法树;以及当语法树建立成功时,确定用户提交的数据对应的行为是跨站攻击。进一步地,对用户提交的数据进行参数分解包括以下任意一种或多种参数分解对数据请求行中的URI进行参数分解;对数据请求的Cookie首部进行参数分解;对数据请求的Cookie2首部进行参数分解;对 数据请求的Referer首部进行参数分解;以及对POST请求的实体进行参数分解。进一步地,在对解码后的参数进行词法分析之前,该方法还包括判断解码后的参数是否由数字和/或字母组成,其中,对解码后的参数进行词法分析包括当解码后的参数不是由数字和/或字母组成时,对解码后的参数进行词法分析。进一步地,对解码后的参数进行词法分析,以得到词法分析后的参数包括对解码后的参数进行HTML的词法分析,以得到HTML词法分析后的参数;以及对解码后的参数进行CSS的词法分析,以得到CSS词法分析后的参数。进一步地,对词法分析后的参数进行语法分析包括对HTML词法分析后的参数进行HTML语法分析;以及对CSS词法分析后的参数进行CSS语法分析。进一步地,在确定用户提交的数据对应的行为是跨站攻击后,该方法还包括对成功建立的语法树进行语义分析;以及根据语义分析的结果确定跨站攻击的目的。进一步地,在确定用户提交的数据对应的行为是跨站攻击后,该方法还包括将用户提交的数据在虚拟机中执行;以及根据执行结果确定跨站攻击的目的。为了实现上述目的,根据本发明的另一方面,提供了一种跨站攻击的检测装置。根据本发明的跨站攻击的检测装置用于执行本发明提供的任意一种检测方法。为了实现上述目的,根据本发明的另一方面,提供了一种跨站攻击的检测装置。根据本发明的跨站攻击的检测装置包括协议分析器,用于对用户提交的数据进行参数分解,并对分解后的参数进行HTTP编码的解码,得到解码后的参数;词法分析器,用于对解码后的参数进行词法分析,得到词法分析后的参数;以及语法分析器,用于对词法分析后的参数进行语法分析,并建立语法树,以及当语法树建立成功时,确定用户提交的数据对应的行为是跨站攻击。进一步地,该装置还包括判断单元,用于在对解码后的参数进行词法分析之前,判断解码后的参数是否由数字和/或字母组成,其中,词法分析器还用于当解码后的参数不是由数字和/或字母组成时,对解码后的参数进行词法分析。进一步地,该装置还包括语义解析器,用于在确定用户提交的数据对应的行为是跨站攻击后,对成功建立的语法树进行语义分析,以及根据语义分析的结果确定跨站攻击的目的。进一步地,该装置还包括虚拟机,用于在确定用户提交的数据对应的行为是跨站攻击后,执行用户提交的数据,以及根据执行结果确定跨站攻击的目的。为了实现上述目的,根据本发明的另一方面,提供了一种防火墙。根据本发明的防火墙包括本发明提供的任意一种跨站攻击的检测装置。
通过本发明,采用包括以下步骤的跨站攻击的检测方法首先对用户提交的数据进行参数分解,然后对分解后的参数进行HTTP编码的解码,最后对解码后的参数进行词法分析和语法分析,并尝试建立语法树,当语法树能够成功建立时,确定用户提交的数据对应的行为是跨站攻击,实现了一种基于语法分析的智能检测手段,不是通过描述攻击表现形式,而是通过描述跨站攻击本质特征以达到检测跨站攻击的目的,解决了跨站攻击的检测方法容易误报和漏报的问题,进而达到了同时降低误报和漏报的效果。


构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图I是根据本发明实施例的防火墙的工作示意图;图2是根据本发明第一实施例的跨站攻击的检测装置的框图;
图3是根据本发明第二实施例的跨站攻击的检测装置的框图;图4是根据本发明实施例的语法树的示意图;以及图5是根据本发明实施例的跨站攻击的检测方法的流程图。
具体实施例方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。图I是根据本发明实施例的防火墙的工作示意图,如图I所示,从因特网至WEB服务器,依次经过路由器或交换器、防火墙以及负载平衡,防火墙具有跨站攻击检测功能,设置于因特网与服务器之间,对跨站攻击的用户数据进行过滤,防止攻击者对服务器的恶意访问。其中,该实施例中的防火墙在进行跨站攻击检测时,对用户提交的数据进行词法和语法的分析,通过描述攻击本质特征来检测跨站攻击,能够更好的检测并组织跨站攻击,降低误检测和漏检测的概率。本发明实施例还提供了跨站攻击的检测装置,以下对本发明实施例所提供的跨站攻击的检测装置进行介绍。需要说明的是,在本发明实施例的跨站攻击的检测装置均可应用于本发明的防火墙。图2是根据本发明第一实施例的跨站攻击的检测装置的框图,如图2所示,该检测装置包括协议分析器10、词法分析器30和语法分析器50。协议分析器10首先对经过检测装置的HTTP流量进行HTTP协议分析,也即对用户提交的数据先进行参数分解,然后对分解后的参数进行HTTP编码的解码,最终输出解码后的参数。优选地,协议分析器10分析的对象主要针对的是跨站攻击通常发生的对象,并且按照数据提交的数据,依次分析请求行、请求首部和请求实体。其中,具体的分析对象包括请求行中的URI、请求的Cookie首部、请求的Cookie2首部、请求的Referer首部和POST请求的实体。通过协议分析器10后得到解码后的参数后,词法分析器30对各个解码后的参数进行词法分析,并去掉注释、无意义的字符,例如对于下列标签〈script src% $#i = ^xxxO浏览器会忽略“ src ”后边到“=”前边的字符,这些字符就是无意义字符。严格来说,这样写是一种错误,但是浏览器为了容错和方便的需要(因为很多开发者由于笔误,错写了无效字符),主动选择了忽视无效字符。这虽然让浏览器获得了更好的容错性能,但是也给攻击者提供了便利,可以利用无效的字符进行攻击特征混淆,得到词法分析后的参数。语法分析器50维护一个完善的、严格的通过上下文无关语言描述的语法分析表,把经过词法分析器30分析后的参数进行语法分析,尝试按照语言规范建立语法树。跨站攻击XSS的原理是注入可以在浏览器端执行的脚本,所以,要实施跨站攻击,攻击者所提交的恶意数据无论怎么变化,最终都必须满足语法规范,否则受害者浏览器将不能执行嵌入的恶意代码。因此,经过语法分析器50按照完备的规范进行语法解析后,如果用户提交的数据能够通过语法分析并成功建立语法树,这就意味着用户提交的数据包含 符合语法规范的代码,即确定用户提交的数据对应的行为是可疑的跨站攻击。采用该实施例提供的跨站攻击的检测装置,实现了一种基于语法分析的智能检测手段,实时对用户提交的数据进行分析检测,不是通过描述攻击表现形式,而是通过描述跨站攻击本质特征以达到检测跨站攻击的目的,同时降低跨站攻击检测的误报率和漏报率,能够更好地防止跨站攻击,维护网络安全。图3是根据本发明第二实施例的跨站攻击的检测装置的框图,如图3所示,协议分析器首先对经过检测装置的HTTP流量进行HTTP协议分析,也即对用户提交的数据先进行参数分解,分析的对象主要针对的是跨站攻击通常发生的对象,具体包括请求行中的URI、请求的Cookie首部、请求的Cookie2首部、请求的Referer首部和POST请求的实体,然后对各个对象的各个参数进行HTTP编码的解码。例如,协议分析器对用户提交的如下URI进行参数分解和解码/seach. asp id = IMfind = % 3C% 26% 23% 78% 34% 39% 3B% 4D% 47%20% 53% 54% 59% 4C% 45% 3D% 22% 78% 73% 73% 3A% 65% 78% 70% 72% 2F%2A% 58% 53% 53% 2A% 2F% 65% 73% 73% 69% 6F% 6E% 28% 61% 6C% 65% 72%74% 28% 27% 58% 53% 53% 27% 29% 29% 22% 3E% OA经过协议分析器后,将被分解、解码还原成两个参数Id (name =”id”, value = I);Find (name =”find,,,value = <&#x49 ;MG STYLE = " xss: expr/*XSS*/ession(alert {' XSS'))" >)。为了提高检测装置的处理速度,在进行词法和语法分析前,先进行初步判断,以排除明显的正常流量,该检测装置还包括判断单元,在经过协议分析器进行参数分解和解码之后,在对解码后的参数进行词法分析之前,判断单元判断解码后的参数是否由数字和/或字母组成。例如,针对上述的两个参数Id和Find,由于第一个参数Id的值是一个有数字组成的字符串,所以该参数肯定不会发生跨站攻击,而第二个参数Find,其值中包含标点符号,需要进行进一步的词法分析。如果URI的两个参数Id和Find均由数字和字母的组合、数字或字母组成,则该URI为正常明显流量,不需要进行跨站攻击的检测。在上述的判断中,如果解码后的参数不是由数字和/或字母组成时,则需对解码后的参数进行词法分析。其中,HTML词法分析器负责还原HTML编码,并去掉注释、无意义的字符;CSS词法分析器负责还原CSS中的编码,并去掉注释、无意义的字符。对于上述的Find参数,经过HTML词法分析器后,将还原成〈IMG STYLE = " xss: expression (alert {' XSS'))" >)。在进行词法分析后,语法分析器把经过词法分析器分析后的参数进行语法分析,其中,HTML语法分析器用于维护一个完善的、严格的通过上下文无关语言描述的HTML语法分析表;CSS语法分析器用于维护一个完善的、严格的通过上下文无关语言描述的CSS语法分析表。语法分析器的作用是把经过词法分析器解码后的字符串,尝试按照语言规范建立语法树。对于上述的Find参数,经过语法分析器后,能够建立如图4所示的语法树,从而能够确定用户提交的数据对应的行为是可疑的跨站攻击。在成功建立语法树的基础上,通过最终的HTML语义解析器和CSS语义解析器对语法树进行分析,如果发现用户提交的代码在语义上是Script操作,或者添加有潜在威胁的标签,例如 IFRAME、OBJECT、LINK、SCRIPT、STYLE、APPLET、META、EMBED 等等,则可进一步确 认攻击者的攻击目的,最终将分析得到的攻击目的存储在日志收集器中,并进行报警。在该实施例中,实现了一种基于语法分析和语义执行的智能检测手段,通过描述攻击本质特征检测跨站攻击而不是通过描述攻击表现形式,并且进一步对确定的跨站攻击进行语义分析,向安全管理员提供跨站攻击的分析结果。采用该实施例提供的跨站攻击的检测装置,能够克服正则表达式描述能力弱的缺点,比基于正则表达式特征的检测手段具有更高的检测能力,对抵御零日攻击具有更好的适应力,有更高的检出率和更低的漏报率;相比于基于机器学习的检测手段,该装置克服了机器学习问题中过学习和欠学习的问题,使得漏报率和误报率更低;并且能够提供能详细的行为目的说明,有效帮助安全管理员进行事后分析。为了更加准确的得到跨站攻击的目的,可以采用虚拟机来替代图3所示实施例中的语义解析器,在确定用户提交的数据对应的行为是跨站攻击后,通过虚拟机来执行用户提交的数据,从而根据执行结果准确的确定跨站攻击的目的。本发明实施例还提供了跨站攻击的检测方法,以下对本发明实施例所提供的跨站攻击的检测方法进行介绍。需要说明的是,在本发明实施例的跨站攻击的检测方法可以通过本发明实施例所提供的跨站攻击的检测装置来执行,本发明实施例的跨站攻击的检测装置也可以用于执行本发明实施例所提供的跨站攻击的检测方法。图5是根据本发明实施例的跨站攻击的检测方法的流程图,如图5所示,该方法包括如下的步骤S102至步骤SllO 步骤S102 :对用户提交的数据进行参数分解,得到分解后的参数。步骤S104 :对分解后的参数进行HTTP编码的解码,得到解码后的参数。上述的步骤S102和步骤S104可通过图2所示实施例中的协议分析器10执行,通过上述的两个步骤,对经过跨站攻击防护设备的HTTP流量进行HTTP协议分析,也即对用户提交的数据先进行参数分解,然后对分解后的参数进行HTTP编码的解码,最终输出解码后的参数。优选地,上述两个步骤中分析的对象主要针对的是跨站攻击通常发生的对象,并且按照数据提交的数据,依次分析请求行、请求首部和请求实体。其中,具体的分析对象包括请求行中的URI、请求的Cookie首部、请求的Cookie2首部、请求的Referer首部和POST请求的实体。步骤S106 :对解码后的参数进行词法分析,得到词法分析后的参数。该步骤可通过图2所示实施例中的词法分析器30执行,在词法分析过程中,可直接将注释和无意义的字符去掉,优选地,对解码后的参数进行词法分析包括HTML词法分析和CSS词法分析。步骤S108 :对词法分析后的参数进行语法分析,并建立语法树。步骤SllO :当语法树建立成功时,确定用户提交的数据对应的行为是跨站攻击。 上述的步骤S108和步骤SllO可通过图2所示实施例中的语分析器50执行,跨站攻击XSS的原理是注入可以在浏览器端执行的脚本,所以,要实施跨站攻击,攻击者所提交的恶意数据无论怎么变化,最终都必须满足语法规范,否则受害者浏览器将不能执行嵌入的恶意代码。因此,步骤S108和步骤SllO按照完备的规范进行语法解析后,如果用户提交的数据能够通过语法分析并成功建立语法树,这就意味着用户提交的数据包含符合语法规范的代码,即确定用户提交的数据对应的行为是可疑的跨站攻击,优选地,对HTML词法分析后的参数进行HTML语法分析,对CSS词法分析后的参数进行CSS语法分析。采用该实施例提供的跨站攻击的检测方法,能够克服正则表达式描述能力弱的缺点,比基于正则表达式特征的检测手段具有更高的检测能力,对抵御零日攻击具有更好的适应力,有更高的检出率和更低的漏报率;相比于基于机器学习的检测手段,该装置克服了机器学习问题中过学习和欠学习的问题,使得漏报率和误报率更低。为了提高检测方法速度,在进行词法和语法分析前,先进行初步判断,以排除明显的正常流量,优选地,在该步骤S106之前,该方法还包括判断解码后的参数是否由数字和/或字母组成,其中,如果解码后的参数是由数字和/或字母组成,则该用户提交的数据属于正常流量,无需进行后续的步骤S108和步骤SllO的处理,如果解码后的参数不是由数字和/或字母组成,依次执行步骤S108和步骤SllO的处理,对解码后的参数进行词法分析和语法分析。为了能够向安全管理员提供详细的跨站攻击的行为目的,有效帮助安全管理员进行事后分析,优选地,在步骤SllO之后,确定用户提交的数据对应的行为是跨站攻击后,该方法还包括对成功建立的语法树进行语义分析,并根据语义分析的结果确定跨站攻击的目的。为了向安全管理员提供更加准确的得到跨站攻击的目的,更加有效地帮助安全管理员进行事后分析,进一步优选地,在步骤SllO之后,将用户提交的数据在虚拟机中执行,并根据执行结果确定跨站攻击的目的。从以上的描述中,可以看出,本发明实现了如下技术效果实现了一种基于语法分析的智能检测手段,实时对用户提交的数据进行分析检测,不是通过描述攻击表现形式,而是通过描述跨站攻击本质特征以达到检测跨站攻击的目的,同时降低跨站攻击检测的误报率和漏报率,能够更好地防止跨站攻击,维护网络安全。需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技 术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种跨站攻击的检测方法,其特征在于,包括 对用户提交的数据进行参数分解,得到分解后的参数; 对所述分解后的参数进行HTTP编码的解码,得到解码后的参数; 对所述解码后的参数进行词法分析,得到词法分析后的参数; 对所述词法分析后的参数进行语法分析,并建立语法树;以及 当所述语法树建立成功时,确定所述用户提交的数据对应的行为是跨站攻击。
2.根据权利要求I所述的跨站攻击的检测方法,其特征在于,对用户提交的数据进行参数分解包括以下任意一种或多种参数分解 对数据请求行中的URI进行参数分解; 对数据请求的Cookie首部进行参数分解; 对数据请求的Cookie2首部进行参数分解; 对数据请求的Referer首部进行参数分解;以及 对POST请求的实体进行参数分解。
3.根据权利要求I所述的跨站攻击的检测方法,其特征在于,在对所述解码后的参数进行词法分析之前,所述方法还包括 判断所述解码后的参数是否由数字和/或字母组成, 其中,对所述解码后的参数进行词法分析包括当所述解码后的参数不是由数字和/或字母组成时,对所述解码后的参数进行词法分析。
4.根据权利要求I所述的跨站攻击的检测方法,其特征在于,对所述解码后的参数进行词法分析,以得到词法分析后的参数包括 对所述解码后的参数进行HTML的词法分析,以得到HTML词法分析后的参数;以及 对所述解码后的参数进行CSS的词法分析,以得到CSS词法分析后的参数。
5.根据权利要求4所述的跨站攻击的检测方法,其特征在于,对所述词法分析后的参数进行语法分析包括 对所述HTML词法分析后的参数进行HTML语法分析;以及 对所述CSS词法分析后的参数进行CSS语法分析。
6.根据权利要求I至5中任一项所述的跨站攻击的检测方法,其特征在于,在确定所述用户提交的数据对应的行为是跨站攻击后,所述方法还包括 对成功建立的语法树进行语义分析;以及 根据语义分析的结果确定所述跨站攻击的目的。
7.根据权利要求I至5中任一项所述的跨站攻击的检测方法,其特征在于,在确定所述用户提交的数据对应的行为是跨站攻击后,所述方法还包括 将所述用户提交的数据在虚拟机中执行;以及 根据执行结果确定所述跨站攻击的目的。
8.一种跨站攻击的检测装置,其特征在于,包括 协议分析器,用于对用户提交的数据进行参数分解,并对分解后的参数进行HTTP编码的解码,得到解码后的参数; 词法分析器,用于对所述解码后的参数进行词法分析,得到词法分析后的参数;以及 语法分析器,用于对所述词法分析后的参数进行语法分析,并建立语法树,以及当所述语法树建立成功时,确定所述用户提交的数据对应的行为是跨站攻击。
9.根据权利要求8所述的跨站攻击的检测装置,其特征在于,还包括 判断单元,用于在对所述解码后的参数进行词法分析之前,判断所述解码后的参数是否由数字和/或字母组成, 其中,所述词法分析器还用于当所述解码后的参数不是由数字和/或字母组成时,对所述解码后的参数进行词法分析。
10.根据权利要求8或9所述的跨站攻击的检测方法,其特征在于,还包括 语义解析器,用于在确定所述用户提交的数据对应的行为是跨站攻击后,对成功建立的语法树进行语义分析,以及根据语义分析的结果确定所述跨站攻击的目的。
11.根据权利要求8或9所述的跨站攻击的检测装置,其特征在于,还包括 虚拟机,用于在确定所述用户提交的数据对应的行为是跨站攻击后,执行所述用户提交的数据,以及根据执行结果确定所述跨站攻击的目的。
12.一种防火墙,其特征在于,包括权利要求8至11中任一项所述的跨站攻击的检测>j-U ρ α装直。
全文摘要
本发明提供了一种跨站攻击的检测方法、检测装置和具有该装置的防火墙。该检测方法首先对用户提交的数据进行参数分解,然后对分解后的参数进行HTTP编码的解码,最后对解码后的参数进行词法分析和语法分析,并尝试建立语法树,当语法树能够成功建立时,确定用户提交的数据对应的行为是跨站攻击。通过本发明,实现了一种基于语法分析的智能检测手段,不是通过描述攻击表现形式,而是通过描述跨站攻击本质特征以达到检测跨站攻击的目的,降低了误报率和漏报率。
文档编号H04L29/06GK102833269SQ20121034675
公开日2012年12月19日 申请日期2012年9月18日 优先权日2012年9月18日
发明者张斌, 常磊 申请人:苏州山石网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1