网络应用攻击的检测方法

文档序号:7760299阅读:177来源:国知局
专利名称:网络应用攻击的检测方法
技术领域
本发明总体涉及一种网络应用攻击的检测方法。
背景技术
传统的网络应用防火墙(以下简称WAF)基于检测OSI 7层模型(根据开放系统互联(OSI)模型的网络划分原则)中第4层上的攻击的入侵检测系统(IDS)或入侵保护系统(IPS),对7层模型中的最高层(即第7层)上发生的攻击进行防卫,这给防御攻击带来限制。图1是说明传统的OSI 7层模型的图。如图1所示,OSI 7层模型被用来划分计算机网络结构模型中的协议和方法,包括应用层、表示层、会话层、运输层、网络层、数据链路层和物理层。网络应用防火墙(WAF)在第7层上检测和防卫攻击的原因如下。首先,通常用来检测攻击的入侵检测系统(IDS)或者入侵防护系统(IPS)等系统针对数据包分析试图扩展网络防火墙的功能,该网络防火墙的功能仅能阻止特定网际协议 (IP)地址的特定端口,而网络防火墙检测到攻击的地点是在第4层。其次,有意义的最小数据单元,即数据包,而不是无意义的电子信号,在0SI7层模型中首先出现在第4层,所以在最初数据单元建立的第4层,判断并阻止攻击。S卩,智能网络防火墙只有能够在第7层同时进行网络信息分析,以检测和防护应用层(第7层L7)的攻击时,才能够使误报或漏报最少,而根据现有技术,通过检测第4层来检测第7层上的攻击,因而常规的检测和防护方法无法完成任务。特别地,第4层上有数据单元形式的数据包,基于传统的入侵检测系统(1此)和入侵防护系统(IPS)的第一代和第二代网络应用防火墙(WAF),通过对数据包中的单元进行模式匹配,来判断相应的网络信息中是否存在攻击。也就是说,传统的第一代、第二代网络应用防火墙(WAF)通过检测相应的数据包是否与由管理器事先记录的一般5000个攻击模式(一般表示为Regx)的数据包相对应,来判断究竟是正常的数据包,还是攻击数据包。而最新研发的网络应用防火墙(WAF)采用了深度包检测(DPI)方法,它不像传统的方法那样只检测数据包的包头来判断是否存在攻击,而还要检测数据包的净负荷部分。 然而这不是一种真正的应用层上的防护方法,而只是根据相关技术在第4层检测的高级方法。另外,传统的在第4层实施的攻击检测方法,用来检测应用层(第7层)发生的攻击,有以下4个局限性。第一,一旦攻击模式发生变化,就需要添加新的攻击模式。第二,由于处理速度的需求,能够登记的攻击模式数量有一定限制(最大数量为 10000),需要定期对以前登记的攻击模式予以删除。第三,基于第4层数据包模式匹配的传统网络应用防火墙(WAF),很难从技术上对攻击数据包进行调整(例如删除个人信息的指定部分,例如对HTML标签进行调整、删除
原因如下。数据包的调整会引起数据包大小的改变。对于第一代、第二代网络应用防火墙(WAF),对数据包包头中数据包尺寸的变更进行再注册需要很多操作,会增加处理时间,这使其很难适应网络服务的实际环境。第四,由于传统方法不是通过检测整个的HTTP信息而是部分的HTTP信息来判断攻击,因此在语义上会出现错误,例如将一个非攻击型数据包判断成攻击数据包等。

发明内容
因此,考虑到上述相关技术中存在的问题提出了本发明,本发明旨在提出一种网络应用攻击的检测方法,在该方法中,仅从所接收到的HTTP信息中分离出净负荷,将HTTP 信息重新组合,然后利用分析器对组合后的HTTP信息进行分析,以判断组合后的HTTP信息是否包含与攻击相关的内容。为了达到上述目的,依照本发明的一个方面,提出了一种网络应用攻击的检测方法,该方法包括以下步骤当接收到构成HTTP信息的数据包时,网络应用防火墙将该HTTP 信息重新组合;分析组合后的HTTP信息并判断组合后的HTTP信息是否包括与攻击相关的内容;如果组合后的HTTP信息不包括与攻击相关的内容,就将组合后的HTTP信息发送给 web服务器或用户服务器,正常处理组合后的HTTP信息;如果组合后的HTTP信息包括与攻击相关的内容,则将组合后的HTTP信息检测为攻击,对其进行重新处理。如前所述,依据本发明,只是从接收到的HTTP信息的数据包中分离出净负荷,重新组合该HTTP信息,利用分析器分析组合后的HTTP信息的内容,以确定组合后的HTTP信息是否包括与攻击相关的内容,由此减少了误报率。


结合附图,根据以下详细说明,能够更清楚地了解本发明的上述以及其它目的、特点和优势,在附图中图1表示通用的OSI 7层模型;图2表示采用本发明的通信系统的配置;图3表示实施例的网络应用攻击的检测方法的示例步骤的流程图;图4是说明本发明方法所采用的组合后的HTTP信息的意义的图;图5A至图5D是说明本发明所采用的SQL分析器的功能的图。
具体实施例方式下面详细说明本发明的优选实施例,附图示出了本发明的示例。在所有附图和说明中,尽量采用相同的附图标记表示相同或相似的部分。图2表示应用本发明的通信系统的配置。如图2所示,该通信系统包括web服务器20,其管理站点以向用户提供各种服务; 用户服务器30,其与web服务器通信,从web服务器接收各种信息并向其发送各种信息;网络应用防火墙(WAF) 10,其将web服务器和用户服务器通过网络联结起来,检测来自用户服务器的攻击以保护web服务器的功能。
这里,用户服务器可以是个人电脑(PC),或者是通过网络与多个个人电脑通信的服务器。同时,网络应用防火墙(WAF) 10采用网络应用攻击检测方法来防护web服务器不受外部攻击,如图2所示,WAF 10包括XML分析器11、JavaScript分析器12和SQL分析器 13。换言之,在网络应用攻击的检测方法中,网络应用防火墙(WAF)仅仅收集接收到的HTTP信息中的净负荷部分,去掉数据包的包头部分,将HTTP信息重新组合,然后对组合后的HTTP信息进行语义分析,检测是否存在攻击。该方法有如下优势。第一,即使攻击模式变化,也不需要注册新的攻击模式。第二,由于不存在存储模式的概念,也就不需要删除现有的攻击模式。第三,攻击的存在与否是通过检测整个的HTTP信息确定的,如果确定出现了攻击,则可以对重新组合的HTTP信息进行调整,之后发送。即,例如可以删除社会安全号码以及修改HTML和JavaScript标签。第四,由于攻击存在与否是通过对整个的组合后的HTTP信息进行语义分析后确定的,而不是仅仅检测数据包,因此可以大幅降低误报率。图3是根据实施例的网络应用攻击的检测方法的示例步骤的流程图。图4是说明本发明方法所采用的重新组合的HTTP信息的意义的图,图5A至图5D是说明本发明所采用的SQL分析器的功能的图。第一步中,在与外部服务器进行网络通信的过程中,当接收到组成HTTP信息的数据包时,网络应用防火墙(WAF)将数据包顺序排列,去除相应数据包的包头部分,仅剩下相应数据包的净负荷部分,然后利用净负荷部分重新组合HTTP信息(502)。这里,HTTP信息的重组意味着通过对数据包的头部进行分析以及将数据包顺序排列,而只收集净负荷部分。换言之,如图4所示,重新组合意味着,相应的数据包依据其顺序进行排列,只组合数据包40中的净负荷部分42。S卩,如图4所示,构成HTTP信息的数据包40,每个数据包都包含包头部分41和净负荷部分42,根据本发明,仅从数据包中分离出净负荷部分,利用该净负荷部分重新组合HTTP信息。具体地,当HTTP信息到达目标计算机(或者服务器)时,其数据在到达下一层时被进一步分解为子数据单元,例如第7层(L7)—第6层一第5层一第4 层一第3层一第2层一第1层。第4层的数据单元是数据包。此处,在数据包中,包头部分 (简称“包头”)包括诸如包序列等信息,净负荷部分(也简称为“净负荷”)包括如网络上所传输信息的源和目标部分等实际的数据。本发明仅重新组合相应数据包的净负荷部分。亦即,网络应用防火墙(WAF)设置为用于防卫对管理网站的web服务器的攻击,配置网站的基本元素通常是XML、JavMcript和SQL,所以应用本发明方法的WAF可包括三种分析器,即XML分析器、JavaScript分析器和SQL分析器。根据网站标准的变化,分析器的种类会不同。这里,XML是DHTML和HTML语言的高级形式,是一种标记语言,能够保证基于标签的文档的完整性和上/下位关系。XML分析器针对组合后的HTTP信息检查标签的开始点和结束点,以确认XML语法的完整性和上/下位关系,XML分析器用于判断组合后的HTTP信息是否包含与攻击相关的内容。JavaScript分析器用来分析JavaScript,后者是一种计算机编程语言(C、Java,Phyton等),并将程序转换为二进制数,即转换为计算机可读的格式。JavMcript分析器应用了 ECMAkript语言标准,如果某些语法与标准相矛盾,那么计算机就无法读取相应的 Jav必cript语法,由此就会出现错误。传统的网络应用防火墙(WAF)应用Jav必cript通过检查表示JavMcript语法结构开始的 < 脚本 > 标签的存在来判断攻击性语法的存在,并不分析JavMcript的语法。但是根据本发明,需要确定,应用EMCA-262标准JavMcript分析器(解码器),相应的JavMcript语法是否为有效。更进一步,在传统的情况下,在第4 层,由于不能检查整个JavMcript的HTTP信息,所以没有办法检查JavMcript语法的有效性。然而,本发明却能够如上所述,通过将HTTP信息重组、应用Jav必cript分析器分析重组后的HTTP信息来实现这一功能。换言之,JavaScript分析器检查遵循EMCA-262标准的Javakript语法,以判断Javakript的语法是否有效。通过将组合后的HTTP信息分解为最小单元,并检查分解后的单元是否属于SQL语法中的一部分,SQL分析器能够确定HTTP信息中是否包含攻击性语法。下面参照图5A至图5D来说明SQL分析器的功能。在使用SQL分析器来进行攻击检测的例子中,SQL注入攻击语法是(名称=“penta”或者名称=“security”)与关键词=“pentasec”,如图5A所示,SQL分析器将SQL注入攻击语法分解为SQL标准的最小单元,并检查每个最小单元是否存在攻击。这里,如果最小单元属于SQL指令的一部分,则相应的整个结构被认为是SQL语法。相反,传统的网络应用防火墙(WAF)使用事先注册各种模式(签名)的方法,如图5B所示,例如,SQL注入攻击语法从‘a’ = ‘a’变成‘b’ = ‘b’,则这种情况无法被保护,因而出现问题。更进一步,在使用上述方法的传统网络应用防火墙(WAF)已经注册了如图5C所示模式(签名)的情况下,如果由用户发送给服务器的请求HTTP信息包含了诸如"'"haVing a goodtime…==…”等语法,那么因为在单词“having”之后存在“==”标志,传统的网络应用防火墙(WAF)将会认为它是SQL注入攻击语法,这会带来误报的问题。亦即,XML分析器通过对组合后的HTTP信息进行分析来检测攻击,而SQL分析器则是将攻击语法分解成最小单元,并检测最小单元是否属于SQL的一部分,来检测攻击。第四,如果判断结果(506)显示不包含与攻击相关的内容,那么网络应用防火墙 (WAF)将组合后的HTTP信息发给web服务器,或者通过网络发给用户服务器,这样组合后的 HTTP信息得到正常的处理(508)。第五,如果判断结果(506)显示包含与攻击相关的内容,则网络应用防火墙(WAF) 判定组合后的HTTP信息或者组合后的HTTP信息所含的数据包是异常的,将组合后的HTTP 信息检测为攻击,并对异常的组合HTTP信息进行重新处理(510)。这里,异常的组合HTTP 信息的重新处理可以采用两种方法。第一种,要求发送异常数据包的web服务器或用户服务器重新发送与异常数据包相对应的数据包,或者将数据包删除。第二种,修改异常数据包,然后传输。下文中,对第二种方法还有更详细的说明。具体讲,在正常信息的情况下,用户希望(请求)利用用户服务器30向网络上的 web服务器20发送数据,该数据包含了被怀疑成攻击的语法(例如 < 脚本 >),即使用户并不是想进行攻击,传统的网络应用防火墙(WAF)依然将其判定为攻击,并阻止用户请求。但是,在这种情况下,本发明的网络应用防火墙(WAF)会把“〈脚本〉”标签改变为例如“[脚本]”,则不再是攻击型语法,由此防止了对用户正常操作的误报。更进一步,对由web服务器20传给用户服务器30的响应信息包含有个人信息的情况,如果只是由于包含了简单的个人信息而阻止网页,则用户也无法看到不包含个人信息的其他信息。对此,本发明的网络应用防火墙(WAF) 10仅将包含个人信息的部分加以掩饰(例如,76****-11*****),这样,与个人信息无关的其他信息就可以正常传递(反馈)给用户了。由此,本发明不仅能检测到从外部传来的网络信息所含的攻击,还能通过对网络信息的调整(掩饰)防止如社会安全号、信用卡号、地址、邮箱帐户、公司验证号、雇主的身份识别号等个人信息的泄露。至此,根据本发明,网络应用防火墙(WAF)将组合后的网络信息 (HTTP信息)所含的消息中与个人信息相关的消息的一部分调整为外部源程序无法读取的消息。此外,组合后的HTTP信息的意义在于分析数据包的包头部分,数据包被按顺序排列,这表示最初要在第7层传输的原始信息的状态得到恢复。因此,网络应用防火墙(WAF)的至少一个分析器分析组合后的HTTP信息的内容, 以判断是否存在攻击性语法,如果数据包包含攻击性语法等,并被判定为异常,则发送数据的网络服务器将会被要求重新发送相应的包,而网络应用防火墙(WAF)重复接收相应数据包的步骤,如上所述去掉数据包的包头部分,重组HTTP信息(50 ,或者仅对相应数据包中与攻击相关的内容进行删除或调整,然后发送调整后的数据包。下面,参照表格1和2说明两个相关的示例。[第一示例使用分析器的语义检测引擎]表 1跨站式脚本(XSS)攻击语法〈脚本类型=“文本/JavaScript”〉警报(“penta”); 〈脚本〉在本例中,DHTML (XML)分析器将标签起点<tag>和标签终点</tag>作为一个标签来分析该标签的属性和功能。亦即,传统的网络应用防火墙(WAF)通常把〈脚本〉标签判断为攻击,于是将相应的数据包作为攻击数据包,而本发明的网络应用防火墙(WAF)分析由整个HTTP信息重组所得的DTHML语法,所以即使检测到了〈脚本〉标签,该网络应用防火墙(WAF)也不会将该信息当作攻击处理,而仅当重组后的HTTP信息为攻击语法,则该网络应用防火墙(WAF)才将该信息作为攻击处理。这极大地降低了攻击误报率。此外,对表1的情况,根据本发明,XML分析器将标签的起点和终点作为一个标签分析,由此分析标签的属性和功能,传统的网络应用防火墙(WAF)将〈脚本〉标签判定为攻击,而本发明的网络应用防火墙(WAF)分析整个的重组后的HTTP信息语法,仅当整个重组后的HTTP信息为攻击语法时,才将之作为攻击处理。[第二示例使用分析器的语义检测引擎]表 2注入攻击语法(名称=“penta”或名称=“security”)与关键字=“pentasec”此处,由于所有末端节点的结果都是SQL的一部分,所以不论全部语法结构是否为SQL语法,结果均为真。亦即,在SQL注入攻击这种著名的网络攻击方式的情况下,传统的网络应用防火墙(WAF)事先在存储器中登记“或字串=字串”的攻击模式,这样,调制过的SQL注入攻击就不能预先得到保护,而只有在攻击发生后才能加以保护。但是根据本发明,在数据库管理系统中可执行的各种SQL语法都能被检测到,即使是调整过的攻击、新型攻击等,也都可以得到保护。 尽管已经示例性说明了本发明的优选实施例,但本领域的技术人员应认识到,在不脱离所附权利要求公开的范畴和精神的情况下,可以对本发明进行各种修正、增加或替换。
权利要求
1.一种网络应用攻击的检测方法,该方法包括以下步骤当接收到组成HTTP信息的数据包时,网络应用防火墙去掉相应数据包的包头部分,仅收集数据包的净负荷部分,然后重新组合所述HTTP信息;分析器分析重组后的HTTP信息,判断所述重组后的HTTP信息是否包含与攻击相关的内容;在所述重组后的HTTP信息不包含所述与攻击相关的内容时,则将所述重组后的HTTP 信息传送给web服务器或用户服务器,按常规处理所述重组后的HTTP信息;在所述重组后的HTTP信息包含所述与攻击相关的内容时,则判定所述重组后的HTTP 信息为攻击,然后以如下处理方式中的任一种对其进行重新处理,所述处理方式包括要求发送异常数据包的所述web服务器或所述用户服务器重新发送与所述异常数据包相对应的数据包;删除所述异常数据包;或者,调整所述异常数据包,然后将调整后的数据包发送给所述web服务器或所述用户服务器。
2.如权利要求1所述的网络应用攻击的检测方法,其中,所述分析器包括XML分析器, 该XML分析器用于检测重组后的HTTP信息的标签的起点和终点,以确认XML语法的完整性和上/下位关系,然后判断所述重组后的HTTP信息是否包含与攻击相关的语法。
3.如权利要求1所述的网络应用攻击的检测方法,其中,所述分析器包括JavMcript 分析器,该JavMcript分析器用于检测JavMcript语法的有效性,以判断所述重组后的 HTTP信息是否包含与攻击相关的语法。
4.如权利要求1所述的网络应用攻击的检测方法,其中,所述分析器包括SQL分析器, 该SQL分析器将所述重组后的HTTP信息分解成最小单元,检查分解出的单元是否属于SQL 语法的一部分,由此判断所述重组后的HTTP信息是否包含与攻击相关的语法。
5.如权利要求1所述的网络应用攻击的检测方法,其中,所述网络应用防火墙执行调整操作,使得所述重组后的HTTP信息中包括的怀疑为攻击的消息被调整为正常的消息。
6.如权利要求1所述的网络应用攻击的检测方法,其中,所述网络应用防火墙执行调整操作,使得所述重组后的HTTP信息包括的消息中与个人信息相关的消息的一部分被调整为外部不可读取的消息。
全文摘要
本发明提供了一种网络应用攻击的检测方法。所述方法包括以下步骤在接收到构成HTTP信息的数据包时,网络应用防火墙重组HTTP信息,分析重组后的HTTP信息,并判断重组后的HTTP信息是否包含与攻击相关的内容,如果重组后的HTTP信息不包含与攻击相关的内容,则将重组后的HTTP信息发送给web服务器或用户服务器,并正常处理重组后的HTTP信息,如果重组后的HTTP信息包含与攻击相关的内容,则将重组后的HTTP信息判定为攻击,对其进行重新处理。
文档编号H04L29/08GK102316087SQ20101028726
公开日2012年1月11日 申请日期2010年9月17日 优先权日2010年7月5日
发明者朴永仁, 朴海珉, 李锡雨, 金德洙 申请人:潘塔安全系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1