Sql注入web攻击的实时入侵检测系统的制作方法

文档序号:7682416阅读:430来源:国知局
专利名称:Sql注入web攻击的实时入侵检测系统的制作方法
技术领域
本发明涉及WEB应用入侵检測领域,尤其涉及SQL注入WEB攻击的实时入侵检测系统'
背条技术
异常网络入侵检测有别于传统的入侵检査,它通过对比当前的数据和先前获得的"安全模型",看两 者之间的差异是否超出了误差范围来侦査新的数据,异常入侵侦査的优势之一是它不滞要一个很大的特征 数据库。
基于特征检测的入侵侦査系统(IDS)是目前世界上使用最广泛的系统,因为它能够非常迅速而且准 确地检测已知攻击,然而,基于特征检测的IDS对未知攻击的检测能力非常弱,因为一旦攻击者对攻击行 为稍做变形,特征就很难得到匹配,因此,攻击者可以很容易地躲避特征IDS。
另一方面,异常网络入侵侦査对于想要躲过特征IDS的未知网络攻击或者一个类似已知的攻击也是有 效的。然而,异常网络入侵侦査的缺点是因它的高误吿警率而导致了现实中的不实用,
直到2000年,互联网(WEB)的网络流爱完全超过了其他的应用系统,成为了世界上使用最广泛的 协议。随着网络的普及,越来越多的商业交易和交流通过网络传输,越来越多的人们喜欢在网络上做他们 最喜爱的事网上购物、网上银行交易,收发电子邮件等等。
同时,Web的安全问题也成为了条热门的话题。即使是那些发明网络的人也没有预料到网络在今天能 取得这么巨大的成功开始时,他们也可能并没有忽视网络的安全问题。另一个方面原因越来越多的黑客 将注意力转移到Web应用系统的常见弱点上使得网络应用与服务成为受攻击次数增长最快的领域。虽然许 多公司投入很大的资源来处理这些安全问趣,但是面对很多Web应用弱点,儿乎没有防御能力。不时发生 新的Web攻击。2002年计算机安全研究所(CSI)计算机犯罪与安全调査显示以年为计算单位,超过 半数的数据库都受到过某些攻击,平均每次攻击造成接近4百万美元的损失,这项调査同样表明如今网络 犯罪已经司空见惯了,网络犯罪包括了从破坏计算机(如网页籌改)的低端犯罪到盗取个人信息和商业欺 骗的高端犯罪。
有趣的是,超文本传输协议(HTTP)和网络应用可能是Web上錄容易受攻击的部分,其中一个原因在 于网络的广泛使用和HTTP、 CGI (通用网关接口)和网络应用创建时对安全方面的考虑甚少。另一个原 因是防火墙的HTTP80端口 (或者8080, HTTPs 443端口等)对于WEB应用总是开放的。
与其他的协议不同,针对WEB应用的攻击涵盖了从操作系统(OS)、 WEB服务到应用/数据库的各个 层次。这些攻击包括非法输入、缓冲区溢出、跨站点脚本攻击(XSS)、拒绝服务、会话劫持和SQL注 入。
在所有的攻击中,SQL注入是虽普遍的攻击方式之一。WEB攻击的趋势可以与自动化相比,即快速
找到弱点然后攻击.大多数时候,攻击者只滞要一个浏览器及与因特网的连接'然而,也有用于快速扫描 和检测弱点的辅助工具。_
SQL注入是网络攻击的一种形式,并且只需要一个浏览器,就能攻击Web应用系统(如ASP、 JSP、 PHP、 CGI等)本身,而不是运行着操作系统(OS)的Web服务器或服务,即使Web应用系统之间并不 相同,但是他们主要的体系还是十分相似的.举例说明,如果Web应用系统的参数检査不严密或处理不当, 就可能会被注入乱码参数,导致Web应用系统形成一个特殊的SQL结构并发送到数据库..许多Web应用 系统从Web用户取得参数,然后向数据库做SQL査询,举个例子,当一个用户从Web网页登录到网站时. Web网页取得登录用户的用户名和密码然后向数据库做SQL査询来确定是否是有效的用户名和密码。那 么.攻击者可能先发送一个伪逍的用户名和/或密码并通过SQL注入改变SQL査询而成功登录。
^数输入 用户名 密码
常例 John Johnl2345
SQL注入例子 Joe 'J'or' 1'=, 1
SQL注入过程因条件不同而操作不同.下面一起讲述.第一种情况是,Web应用系统根本不能对所 有的参数进行合法性检査或者检査不足,因此就直接用输入值构成SQL。第二种情况是,SQL由Web应 用系统使用输入参数简单构成,未对输入参数进行"长度检査、特殊字符过滤"等等必要操作。Web应用 系统还在应用层次上创建一个用伪造输入参数建立的SQL查询,并发送到数据库层去执行。例如,在一个 登录过程中,SQL可以通过从USERNAME- 'Susemaoie,, password- 1password'的USERPROFILE中选择 -个USERID来建立。在这个登录例子中当参数填入的时候,建立的SQL会从USERNAME-'Joe', password-T or'l'-'l'的USERPROFILE中选择USERID。这个'l'-'l,通常能保证返回的条件是tme,所 以攻:击者能有效登录Web应用系统.
为了侦査SQL注入攻击,许多人尝试基于特征检測的方法,主要包括以下几种方式1)检测是否存 在特殊字符2)检测输入参数中是否匹配已知的模式,如l-l,'a'-'a,等等;3)类似于2),将任何被公 布的已知格式放入检测列表,或者使用正则表达做部分格式匹配从而获取更多格式。
即使基于上述特征能够检拥到部分SQL注入攻击,但其局限性是显而易风的,主要表现在l)只能检 测到已知的SQL注入特征2)新型的SQL注入攻击技术会不断的产生,而且攻击特征与以往有所不同;3) 已经发现的SQL注入攻击变形繁多,并且逃逸技术已经非常普遍。
单纯基于特征的检测技术误吿率很高,或者说根本没什么效果.例如,一个合法的用户也可能会输入 一些特殊的字符'因此,如果系统只是简单地通过特殊字符判断,那么这种简单的判断方式就会导致很髙 的误告警率。如果系统想捕捉准确的已知格式,如1=1,那么当攻击者可能改变成z =z或者j仿nrt^仿rut
时就无效了。值得强调的是,系统几乎不可能在同一时间穷尽所有可能的格式。
因此现在有必要研发一个低误告警、离侦査率的,针对Web应用SQL注入攻击的检测技术。

发明内容
本发明为解决现有技术存在的不足之处,目的在于提供考一个先进异常SQL注入检测系统,这个系统 将数据库层与Web应用层相关联,因此检测技术更加精确,更加有力并且低误告警,
本发明的目标是为异常入侵检测提供一种新的方式,即基于状态码、参数长度、请求流量、返回流量、 特殊字符等进行异常检测。
本发明的较长远目标是提供一个数据库层和Web应用层相关联的异常SQL注入检测系统,用来检 测目前最为流行的、危害最大的Web应用攻^~SQL注入,同时降低误告整。
本发明深层次的目标是提供一个单机运行的计算机软件产品,可以实现以下功能针对某个网站通过学 习创建正常数据库和Web应用SQL访问数据模型;实时捕获数据库和Web应用SQL査询数据;基于已 经创建的正常访问数据模型与实时捕获的网站访问数据的比较,完成SQL注入攻击的异常入侵检测。
学习创建正常数据库和Web应用SQL访问模型;实时捕获网站数据库和web应用SQL访问数据;基 于已经创建的正常访问数据模型与实时捕获的网站访问数据的比较,完成SQL注入攻击的异常入侵检测。
本发明长远一点的目标是提供一 个软/硬件一体的系统,该系统通过一个可操作的处理器来执行一 系列 的指令,在学习模式下可以针对某个网站通过学习创建正常数据库和Web应用SQL访问模型.在检测模 ^下可以实时捕获数据库和Web应用SQL访问数据,并且基于己经创建的正常访问数据模型与实时捕获 的网站访问数据的比较,完成SQL注入攻击的异常入侵检测。该系统还可以配置相应的存储,用于保存学习 模式及检测模式下的运行结果。
本发明更长远一点的目标是提供一个系统,该系统能够将数据库层面的异常访问与WEB应用层面的 异常访问进行有效的关联,
本发明的基本目标是提供一种灵活、正确的方法来检测Web应用安全(与SQL注入攻击相关),用于 克服传统技术设备的不足之处.
本发明的目标是提供一个低误吿整率的检测系统,
本发明的另一个目标是提供一个异常SQL注入检测系统,它可以通过数据库层和Web应用层的攻击 关联,在攻击特征/攻击模式未知的情况下,能够检测到全新的0-day攻击。该系统事先并不知道攻击具有 怎祥的一个攻击特.征效击模式,
本发明的另一个目标是提供一个可配置的系统,它可以检测其他Web应用攻击,如通过伪造参数方式 进行的跨站脚本攻击等。
本发明是通过以下技术方案达到上述目的SQL注入WEB攻击的实时入侵检郝系统,包括 为网站提供学习正常数据库和Web应用标准査询语句(SQL)査询数据的方法;
为网站提供捕获实时数据库和Web应用SQL査询数据的方法;
基于正常数据库和Web应用SQL访问数据与实时数据库和Web应用SQL访问数据的典型SQUi入攻
击检测方法。
作为优选,学习的方法包括测定数据库层属性的方法和测定Web应用层属性的方法。 作为优选,测定数据库层展性的方法侦听网站的WEB服务器与数据库之间流量。 作为优选,测定数据库层属性的方法从数据库审计特征中获得数据库层属性. 作为优选,.测定数据库层属性的方法采集该网站发起的SQL操作数据。 作为优选,数据库层属性包括用户数据、操作数据、目标对象数据和状态码数据。 作为优选,Web应用层属性至少包括状态码、网站请求流量、网站返回流量和值长度* 作为优选,检测的方法包括基于正常Web应用SQL访问数据和实时Web应用SQL访问数据产生第一 个异常分数的方法,
基于正常数据库SQL访问数据和实时数据库SQL访问数据产生第二个异常分数的方法。 第一个异常分数与第二个异常分数关联的方法, 作为优选,根据第一个异常分数(Sl)和第二个异常分数(S2),采用如下公式测定关联分数(S) 的方法
S-SlxS2/(Sl+S2、 作为优选,,检测方法适用于检测0-daySQL注入攻击. 作为优选,所述的系统无法预知类似的攻击特征效击模式。 一个计算机程序产品包含了带有指令的计算机可读介质,可以使计算机 从网站访问数据学习正常数据库和Web应用标准査询语句(SQL)的模型。 为网站捕获实时数据库和网站应用SQL访问数据。
SQL注入攻击,
作为优选,学习指令可以使计算机执行以下操作 测定数据库层属性;和 测定Web应用层属性。
作为优选'测定数据库层属性的指令可以使计算机执行以下操作侦听网站的WEB服务器与数据库 间的流量。
作为优选'测定数据库层属性的指令可以使计算机执行^下操作从数据库审计特征中获取欲据库层 厲性,
作为优选,测定数据库层属性的指令可以使计算机执行以卞操作采集网站发起的SQL操作数据. 作为优选,数据库层属性包括用户数据、揚作数据、目标对象数据和状态码数据' 作为优选,Web应用系统属性至少包括状态码、网站请求流量、网站返回流量和值长度。 作为优选,检测指令可以使计算机执行以下操作.
基于正常Web应用SQL访问数据和实时Web应用SQL访问数据产生第一 个异常分数。
基于正常数据库SQL访问数据和实时数据库SQL访问数据产生第二个异常分数。
第一个异常分数与第二个异常分数进行关联, 作为优选,关联指令可以使计算机执行以下操作
根据第一个异常分数(Sl)和第二个异常分数(S2),采用如下公式测定关联分数(S):
S=SlxS2/(Sl+S2). 作为优选,检测指令适用于检测O"daySQL注入攻击。 作为优选,检测指令无法预知类似的攻击特征效击模式。 检测方法由以下步驟组成
从网站访问数据学习正常数据库和Web应用标准査询语句(SQL)的模型。 为网站捕获实时数据库和网站应用SQL访问数据。
基于正常数据库和Web应用SQL访问数据与实时数据库和Web应用SQL访问数据检测的异常的典型 SQL注入攻击。
作为优选,学习步骤包括测定数据库层属性;和测定Web应用层属性。 作为优选,测定数据库层属性的步骤包含了侦听网站的WEB服务器与数据库间的流量。 作为优选,测定数据库层属性的步骤包括了从数据库审计特征获取数据库层属性。 作为优选,测定数据库层属性的步骤包括了采集网站发起的SQL操作数据。 作为优选,数据库层属性包括用户数据、操作数据、目标对象数据和状态码数据。 作为优选,Web应用层的厲性至少包含状态码、网站请求流jt、网站返回流量和值长度。 作为优选,检测步骤包括基于正常Web应用SQL访问数据和实时Web应用SQL访问数据产生第一 个异常分数。基于正常数据库SQL访问数据和实时数据^SQL访问数据产生第二个异常分数'第一个异常 分数与第二个异常分数进疔关联.
作为优选,关联步骤包括根据第一个异常分数(Sl)和第二个异常分数(S2),采用如下公式测定关 联分数(S):
S=S1 xS2/(Sl+S2). 作为优选,检测步骤包含了检测O-daySQL注入攻击, SQL注入WEB攻击的实时入侵检测系统,一个可以执行一系列指令的可操作处理器,即在学习模式下学习网站的正常数据库和Web应用标 准査询语句(SQL)的访问数据;在侦査模式下捕获PJ站的实时数据库和Web应用SQL访问数据;基于 正常数据库和Web应用SQL访问数据与实时数据库和Web应用SQL访问数据在检测模式下检测异常的 典型SQL注入攻击;
与处理器相连的存储器用于保存学习模式和检测模式下的结果。 作为优选,可控处理器可以配置用于执行一系列的指令来测定数据库层属性和测定Web应用层属性, 采用学习或捕获模式畢可控的。
作为优选,可控处理器在测定数据库层属性时,还可以进一步配置成通过侦听WEB服务器和数据库 之间的网站流量实现。
作为优选,可控处理器在测定数据库层属性时,还可以进一步配置成从数据库审计特征中获取数据库 层属性。
作为优选,可控处理器在测定数据库层属性时,还可以进一步配置成通过采集网站发起的SQL操作数 据实现。
作为优选,数据库层属性包括用户数据、操作数据、目标对象数据和状态码数据。 作为优选,,Web应用层属性至少包含状态码、网站请求流量、网站返回流量和值长度。 作为优选,可控处理器在执行检测操作时可以进一步配置为
基于正常Web应用SQL访问数据和实时Web应用SQL访问数据产生第一个异常分数。
基于正常数据库SQL访问数据和实时数据库SQL访问数据产生第二个异常分数。
第一个异常分数与第二个异常分数进行关联。 作为优选,可控处理豳可以进一步配置如下
根据第一个异常分数(SI)和第二个异常分数(S2),釆用如下公式测定关联分数(S):
S=SlxS2/(Sl+S2).
作为优选,可控检测处理器适用于检測0-day SQL注入攻击。 作为优选,指令无法预知类似攻击的特ffi/攻击模式。
本发明的有益效果本发明不仅可以检测常见的SQL注入攻击的检测技术,同时具备低误吿警、高 侦査率的特点。


图1与本发明一致的实时异常SQL注入检测系统总体框架示意图。
图2使用FIG1所示系统对某个网站的WEB应用进行实时异常SQL注入检测的示意图。
图3与本次发明一致的实时异常SQL注入检测器的总体结构示意图。
图4A与本发明一致的WEB应用层属性采集总体结构示意图。
图4B与本发明一致的数据库层属性采集总体结构示意图。
图5与本发明一致的系统在学习模式下的学习过程总体流程示意图。
图6神经网络参数总体示意图。
图7与本发明一致的标准化处理过程总体流程示意图。
图8与本发明一致的标准化处理和算分模块总体流程示意图,
图9后台数据库实体示意图,实线表示正常访问情况下能够看到的实体,虚线表示非正常(异常)模 式下能够看到实体。
图10Web应用层和数据库层关联总体示意图。
具体实施例方式
实施例1 :提到图表,在图1中与本发明一致的实时异常SQL注入检测系统以数字IO表示。系统10 的研制目标是用于检测异常SQL注入,并通过如图10所示的数据库层520与Web应用层510的关联实现 髙准确率、低误告警,数据库层520对应到图2中的后台数据库220。 Web应用层510对应到图2中的 Web服务器210或者其他计算机设备所运行的WEB应用。
图2是图1中的系统10应用于网站200进行实时异常SQL注入攻击检测的示意。网站200包含了一个为 终端ffl户205提供WEB应用的WEB服务器210,终端用户205可以是个人电脑、膝上型电脑、笔记本型 个人电脑、记事本或者其他带有网络浏览器的计算机设备,在这群希望访问网站200的用户群中有一个攻 击者,他同样属于带浏览器功能的终端用户205。攻击者可能会使用其他的工具来检测网站200的弱点。
再次回到图1,系统10包含一个系统控制器20,它与数据采集器40、学习模块60、异常SQL注入检 测器相连。正常运行时,系统10通过数据采集器40来采集及提取来自网络流量12或者数据库日志14的 数据。系统10支持学习模式22,学习模式22用于从学习阶段的一系列数据采集中学到正常行为模型。在 学习模式22下Web应用层510和数据库层520的正常行为均可以学习到。系统10还支持检测模式24, 检测模式24用来检测实时异常SQL注入攻击,如果检测到某种攻击,系统控制器20就会产生ALARM 告警,ALARM可以对异常行为进行提示和/或阻止潜在的麥意行为。系统控制器20可以是一个处理器, 也可以是一个基于计算机、服务器等的其他计算机设备,因此,系统控制器20可以同时实现上述描述的 一个或多个处理过程,多个处理可以是并行、串行或混合的工作模式。 系统控制器20连接着一个存储25,用于存.放数据及下文提到的结果数据, 1.采集模块
数据采集器40在系统控制器20控制下,分别在学习模式22和检测模式24下对WEB应用层属性42和数 据库层属性44进行学习和检测。数据采集器40可以通过捕获网络TCP/IP流量Tl (传输控制协议/互联 网络协议)或采集WEB服务器日志的方式获取WEB应用层属性42。当数据采集器40滞要采集数据库层
厲性44时可以使用数据库审计日志。WEB应用厲性42的列表参见图4A,数据采集器40将采集到的一 系列WEB应用层属性42 (图4A)和数据库层属性44的结果保存在存储器中。
在图4A中,WEB应用层42属性列表包括参数值异常分数84A、参数名异常分数86A、扭态码88A、请 求流量卯A和返回流量92A,作为学习(培训)要素,这些信息由数据收集器40通过网络流量12获得。 在图2中,网络流量12以标识为Tl的箭头表示。在检测模式下,实时的WEB应用层属性列表包含参数 值异常分数84B、参数名异常分数86B、状态码88B、请求流置卯B和返回流量92B. 参数值异常分数84A或者84B通过用来定义SQL注入的发生,比如SQL注入发生时大多数情况下参数值 长度会比正常的长,当出现异常特殊字符(如没有限制")"或者")")时参数值的异常分数就会产生,这 就意味着发生了 SQL注入攻击。为了增强检测能力,其他的一些特殊字符也被用来计算参数值异常分数。 参数名异常分数通过用来定义SQL的注入的发生,比如SQL注入发生时大多数情况下用户或游客分数 会比正常情况下大。状态码88A或者8犯是一个内部错误代码,表示应用系统出现了问题,如Web应用 向数据库层发送査询请求失败,请求流量卯A或者卯ti表示客户(用户)或者是攻击者发送到Web应用 的请求数量。返回流量92A或者92B表示从WEB服务器210返回给客户端的流量。从WEB服务器210 到互联网(WWW)的返回流量以标识为Tl的箭头所示。 WEB应用层属性42只是一个例子,可能随着Web应用的不同而有所变化。 前面已经清楚地描述了如何从WEB应用层510提取或者采集数据,并根据WEB层属性42产生异常 分数。然而,仅仅从Web应用层510而言,系统10还不足以精确描述由WEB服务器210执行的Web应 用层510是如何向后台数据库220或者数据库层520发送査询膽行指令的。从理论上讲,数据库层520 的数据库层属性44可以作为一个很重要的辅助工具,用来精确判断或评估将要发生的真实攻击和证明已 经发生的攻击行为或攻击造成的损失.
采集数据库层属性44有几种方法。例如,通过侦听WEB服务器210和后台数据库220之间、标识为T2 的双向箭头所表示的网络流量来完成数据库层属性44的釆集。另一种方法是,从后台数据库220本身采 巢数据库层属性44,比如通过数据库的审计特性,或者从包含来自系统10的SQL操作数据的特定区域中 采集。
如图4B所示,在学习模式下,常见的数据库层属性44包括用户102A、操作104A、操作对象106A和状 态码〗08A。在检测模式下,常见的数据库层属性44包含括用户102B、操作104B、操作对象106B和状 态码IO犯。具体来说,用户102A或者102B指执行SQL操作的数据库用户。操作104A或者104B指事 先定义的一系列数据库操作,如选择(Select)、插入(Insert)、删除(Delete)或更新(Update)或新建(Create)。 操作对象106A或者106B指被访问的表或者视图'状态码108A或者108B表示访问是否成功. 数据库层属性44只是一个例子,随着后台数据库220的不同会有所变化, 2.学习模块如图6所示,在学习(处理)模式22下,每个CGI-URL会产生一个神经网络64,其中URL是在互联网 (WWW)中使用的统一资源定位器,而CGI则是通用的网关接口,神经网络64包含参数分数65、 (http) 状态码66、 (http)请求流量67和(http)返回流量68 (这里的http代表超文本传输协议)。参数分数65根据 参数长度、参数名和参数取值产生。与学习过程中正常的参数长度相比,参数越长参数分数就越高'参数 分数就决定了异常分数。参数值也是以类似的方式产生。
例如,"obj-n咖e"或者 "usef,与"参数名(par咖etern咖e),,是一样的'参数值(parametervalue)是 一个参数的取值。每个"参数名(parameter name)都有一个与之关联的值的长度。此外,参数分数、状 态码、请求流量、返回流量可以从"http"请求中分别提取。
一个黑客或者异常访问者的上述属性的实时用户访问分数,会与先前干净环境下(学习模式)下的用户分 数进行比较。如果比较的差值超过一定的阀值,表示异常访问者和/或黑客被检测到了。 当攻击者发送不同的字符时,请求流量和返回流量也通常被用来有效地检测特殊的用户。 数据采集器40的数据采集过程和图5所示的学习过程300需要提取哪些属性作为神经网络64的输入参数, 都是可配置的。通常情况下参数分数、http状态码、请求流量和返回流量会被提取出来。
图5是学习过程300的总体流程图。学习过程从步骤302开始,解析网络流量12或WEB服务器曰志, 随后是步骤304,相关参数的提取。从网络流量12中提取参数列表的描述如上。跟着步骤304的是步骤 305,利用图8所示的标准化和算分引擎完成数据标准化与异常分数计算。跟着步骤305的是步骤306,在 学习模式60下,由标准化和算分引擎处理的结果被传入SOM (自组织映射)引擎62。 SOM (自组织映射) 引擎62是神经网络的一种类型。SOM引擎62处理提取的数据并产生SOM数据输出。
跟着步骤306的是步骤308, SOM输出数据被标准化和算分引擎70处理后输出标准化数据。当不同的 参数有不同的数据取值范围时标准化处理是必须的。例如,如果参数分数范围是从O-IO,而(http)状态码范 围是0~500时,就需要标准化来阻止在计算异常分数时一个属性的参与作用比另一个属性大(如果这不 是我们期望的)。步骤308后面是步骤310,对标准化后的输出数据进行分析。这些数据可能通过可视化的 图表、报吿等等方式进行分析,也可能通过计算机处理程序分析。
图5的流程图辨述的是与学习过程相关的WEB应用层属性42的处理过程。数据库层属性44的处理过 程也与此类似。
在常见的Web应用使用案例中,采用模式匹配的方式提取参数特征。例如, 一个用户名包含了字符、数 字和'_,。 ID可能是由一串数字组成的。但是在SQL注入攻击案例中,为了是使入成功,输入的用户名将 会趋向于在字符串中含有不同的"特殊"字符,如(但不限于)一个单边的引号(')、大矛号(>)、小 于号(<)或者圆括号。
下面是一个简单的黑客攻击例子,以Http (超文本传输协议)字符串形式表示的Web应用SQL注入攻 击,http字串如下 http:〃www.youweb.com/showdetail.asp id=49 and 1=1
这里的www指的是耳联网;"youweb.com "表示网站地址或者是页面位置;剩下的字符如"? id=49and 1=1"是SQL注入攻击数据,
如果没有返回任何错误信息,攻击者或者黑客可能会尝试另—个SQL注入字串如下 http:〃www,yourweb.com/show.asp id=49 and (select count(,).from sysobjecte)>0 这里字符"? id=49 and (select count(*) from sysobjecte) >0是另一个SQL注入攻击数据。
上述SQL注入例子是针对(SQL) WEB服务器210。然而,对于其他数据库这个字串是类似的'只是 系统的表名/视图名不同,可以从sysobjects中获取。
从上述的SQL注入例子,我们很容易看到在长度和特征分布上,URL中的参数特征分布与正常情况下 有所不同。
图9是后台数据库210中的视图400的例子。正常访问对象表示正常访问模式,以实线表示。在异常或 者不规则情况下,除了正常访问模式下的视图对象外,还有以虚线表示的访问模式。正如我们所看到的' 在正常情况下,WEB用户402会査询用户信息表404、分类表406和订单表408。然而,访问所有用户表 410则表示是异常的或不规范的。(all-user表格是oracle系统表,包含数据库系统所有用户信息。)
—个通用网关接口 (CGI)允许WEB设计者创建动态网页。例如,当用户与网页交互,并用数据填写 表格时,输入的信息可能会显示在展示给用户的下一个页面。CGI同样也用于搜索引擎。CGI可能是放在 服务器上的一个脚本,通常在一个目录下。
系统10主要用于检测WEB应用层510或者数据库层520的攻击,即在学习过程中,将检测字串中不同 的字符输入到不同的bins,然后为每个URL计算出一个异常分数。在检测模式24下,系统10再次获得每 个CGIURL的分数,并计算出与学习过程中创建的异常分数的差值,用来生成新的异常分数。
CGIURL中的每个参数名/参数值,系统10使用特殊的.bins来保存湘述不同的字符集,如下所示 (a-zA-Z, 0-9, ', ";,",",/,WV,!通,弁,豕,MA&,,(,),隱尸,9, ,(,),1).
在学习模式下,对于每个CGI/Web应用,系统10通过学习或者培训操作来学习正常模式。
图8是对标准化和算分引擎70的描述。在WEB应用日志中的每个CGI请求URL,多数要素被抽取/计算 /标准化。在参数名长度子模板71中,参数名长度元素被提取、计算和标准化。在参数值长度子模板72 中'参数值长度元素被提取、计箅和标准化'在参数分布分数子模板73中,参数分布分数被提取、计箅 和标准化.在参数值分布分数子模板74中'参数值分布分数被提取、计算和标准化'分布分数可以通过 字符的不同类型发生事件的多少来判断。
为了减少误告警,标准化和算分引擎70将a-z^-Z归入字母类型,0-9为数字类型。而"特殊字符"如 "'"," > "等则被纳入同不同bins子模板75处理的其他类型。鉴于上述假设,对于某个CGI来说其字母 将会落入一个固定的模式。例如,在正常使用情况下,用户名可能总是落入字符和数字类型中。另一方面,
当SQL注入发生时,CGI中可能会有"特殊字符",如a'or'l'-'l,这时将落入特殊字符类型和/或者异常 字符类型中。
参数值长度的标准化是很重要的,在全部的异常分数计算过程中参数值长度能够适合于一个固定的范围 (如:0-1),输出结果可以用方式Eq.(l)表示 |LenR — LenA| / Max(Le眠LenA) Eq. (1)
其中,LenR表示实时参数值长度,LenA表示为学习后的平均参数值长度.如果新的长度与学习模式下的 长度接近,那么结果就趋向于0。另一方面,如果实时参数值长度LenR比LenA大很多的话,结果就会趋 向于1。
图7是毎个子模板的标准化和得分计算处理程序350的总体流程图。处理程序350从步骤352开始,计 算要素提取,接下来是步骤354,要素计算,接着是步骤356,要素标准化,在有些实例中,分数是在步 骤358时产生的,这个步骤用虚线来标志说明是一个选择性功能, 3.检测模块
类似于学习模块,检测模式24用于完成实时检测过程的数据捕获。所不同的是,在数据提取和标准化 以后,需耍传入学习神经过网络用来计算当前数据与先前"正常学习模型"数据之间的偏差,
WEB应用层正常数据与SQL注入攻击弓I起的异常流量对比如下表所示 WEB正常流量vs. SQL注入WEB流量
Web Training
203.73660929.275283576.5658123.1718
210.327813826.72诉6609.3593113.7122
219.322007761.41085645.5216103.568
221.86084581诉.066627.1404112.3334
212.3305304426.5677516.7143151.091
203.7924397639.5583432.9758172.911
201.1655923804.7452柳.0诉8159.6027
200.41341911041.625邻3.2338132.卿6
200.1381941261.073402.2831131.4284
Web Detection
303.99卯448 139.9668 502.1129 0.003258 303.9974611 139.9346 462.2181 0.028421
303.9卿634
139.6504 139.7436
447.8501
445,2572
443.2334
442.135
524.5301
523.5133
522.0063
0.041096 0.067242 0.117713
2.34E-04 U6E-04 6.01E-05
4 WEB层异常分数
如图3所示,WEB层异常分数由WEB层异常检测器82计算得到,计算的依据是对比实时数据和神经网 络64 (使用自组织映射运算法则)中的学习数据之间的偏差。 5数据库层异常分数
另一方面,数据库层异常分数是由数据库层异常检测器84计算的。类似的学习与检测机制适W于数据库 H 520,所不同的是需要将Web应用层510的分类对应到数据库层520。图IO就有这样的一个例子.在图 10中,Web应用层510中的脚本515关联到数据库表525中的列或对象。箭头表示的是关联的例子。例如, 脚本515中的用户是对应到数据库表525中是一个执行SQL操作的数据库用户。脚本515中的动作对应到 相应的数据库对象操作如选择(Select)、插入(Insert)、删除(Delete)或更新(Upadte)或创建(Create)。脚本中 的目标对象是指被访问的表和视图.状态码表示访问是否成功。
在千净环境中学习和釆集数据后,每个实时数据都会产生一个异常分数,通过与神经网络64中的正常 数据对比得到,Web应用层510和数据库层520中交替进行。
WEB层异常侦测器82和数据库层异常检测器84会产生自身的异常分数,以便最大程度描述攻击行为。 接着,由WEB层与数据库层关联器86计算出一个联合分数。应用层异常分数与数据库异常分数关联得到 的关联分数提供了一个更准确的检测方法,并且误吿警率很低。事实上输入的用户参数是各式各样的、不 可预期的,而且数据库层的行为很难用特征来描述,因此单一层面的分数往往会导致较高的误告整率。有 很多的算法可以用来产生两层之间的关联分数。比如,如果两个分数都很高,那么(结果)关联分数必须
是高的。同样地,如果两个分数都很低,那么(结果)关联分数就必须是低的。一种可行的关联分数计算 方程式Eq,(2)如下
S-S1 xS2/(Sl+S2) Eq.(2)
其中,Sl表示为网络WEB应用层异常分数;S2表示数据库层异常分数。这个公式可以根据需要进行修改, 只要其输出是表示两层的关联即可.
上面的例子被用来描述相关的CGI.然而,系统10可以被配置用来检测跨站脚本。
具体说来,上述功能可以通过硬件、软件、软/5J件一体件或者其他任何组合实现。如果以软件方式实 现,这些功能可以以一系列的指令或代码形式储存或传输于可读的计算机介质之中。计算机可读介貭包括 卄箅机存储介质和将计算机程序从一个地方转移到另一个地方的传输介质。存储介质可以是任何一个可以 被计算机访问到的有用介质,比如包括但不限于RAM、 ROM、 EEPROM、 CD-ROM或其他光盘阵列、磁 盘阵列和其他磁盘存储设备,或者任何可以用来装载或存储想要的指令或数据结构的可被计算机访问到的 介质。同样,存储介质可以采用任意的连接方式。例如,如果软件是从网站、服务器或者其他使用同轴电 缆、光纤电缆、双绞线、数字用户线或者无线技术(如红外线、电波和微波)传输的远程资源上传送过来的, 那么同轴电缆、光纤电缆、双绞线、数字用户线或者无线技术(如红外线、电波和微波)都属于介质的范畴。 目前常用的磁盘和唱片还包括CD,激光彩碟、数字通用盘(DVD)、软盘和通常用磁场复制数据的磁盘, 与用激光复制数据的圆盘。上面所述的任意组合都厲于计算机可读介质范畴。
先前有关信息披露的描述是为了让所有在这个领域的专家能够处理或使用这些漏洞,对于那些专家来说很 容易就能辨别出上述实例的各种变化,本文定义的基本原则同样适用于没有超出漏洞本质和范围的其他案 例。因此,漏洞并没有规定要局限于本文所描述的案例,但是它在广义的范畴上必须与文本的原则和异常 特征相一 致。
权利要求
1.SQL注入WEB攻击的实时入侵检测系统,其特征在于包括为网站提供学习正常数据库和Web应用标准查询语句(SQL)查询数据的方法;为网站提供捕获实时数据库和Web应用SQL查询数据的方法;基于正常数据库和Web应用SQL访问数据与实时数据库和Web应用SQL访问数据的典型SQL注入攻击检测方法。
2. 根据权利要求1所述的SQL注入WEB攻击的实时入侵检測系统,其特征在于,学习的方法包括-测定数据库层属性的方法和 测定Web应用层属性的方法.
3. 根据权利要求2所述的SQL注入WEB攻击的实时入侵检测系统,其特征在于,测定数据库层属性的方 法侦听网站的WEB服务器与数据库之间流至,
4. 根据权利要求2所述的SQL注入WEB攻击的实时入侵检测系统,其特征在于,测定数据库层属性的方 法从数据库审计特征中获得数据库层属性。
5. 根据权利要求2所述的SQL注入WEB攻击的实时入侵检测系统,其特征在于,测定数据库层属性的方 法采集该网站发起的SQL操作数据,
6. 根据权利要求2所述的SQL注入WEB攻击的实时入侵检测系统,其特征在于,数据库层属性包括用 户数据、操作数据、目标对象数据和状态码数据,
7. 根据权利要求6所述的SQL注入WEB攻击的实时入侵检测系统,其特征在于,Web应用层属性至少 包括状态码、网站请求流量、网站返回流量和值长度.
8. 根据权利要求1所述的SQU4入WEB攻击的实时入侵检测系统,其特征在于,检测的方法包括基于正常Web应用SQL访问数据和实时Web应用SQL访问数据产生第一 个异常分数的方法。基于正常数据库SQL访问数据和实时数据库SQL访问数据产生第二个异常分数的方法。第一个异常分数与第二个异常分数关联的方法。
9. 根据权利要求8所述的SQL注入WEB攻击的实时入侵检测系统,其特征在于,根据第一个异常分数 (Sl)和第二个异常分数(S2),采用如下公式測定关联分数(S)的方法<formula>formula see original document page 2</formula>
10. 根据权利要求1所述的SQL注入WEB攻击的实时入侵检测系统,其特征在于,检测方法适用于检测 O-daySQL注入攻击。
11. 根据权利要求1所述的SQL注入WEB攻击的实时入侵检测系统,其特征在于,所述的系统无法预知 类似的攻击特征成击模式.
12. —个计算机程序产品包含了带有指令的计算机可读介质,其特征在于,可以使计算机 从网站访问数据学习正常数据库和Web应用标准査询语句(SQL)的模型。 为网站捕获实时数据库和网站应用SQL访问数据。基于正常数据库和Web应用SQL访问数据与实时数据库和Web应用SQL访问数据检测的异常的典 型SQL注入攻击。
13. 根据权利要求12所述的计算机程序产品,其特征在于,学习指令可以使计算机执行以下操作测定数据库层属性;和 测定Web应用层属性。
14. 根据权利要求13所述的计算机程序产品,其特征在于,测定数据库层属性的指令可以使计算机执行以 下操作侦听网站的WEB服务器与数据库间的流量,
15. 根据权利要求13所述的计算机程序产品,其特征在于,测定数据库层属性的指令可以使计算机执行以 下操作从数据库审计特征中获取数据库层属性。
16. 根据权利要求13所述的计算机程序产品,其特征在于,测定数据库层属性的指令可以使计算机执行以下操作采集网站发起的SQL操作数据,
17. 根据权利要求13所述的计算机程序产品,其特征在于,数据库层属性包括用户数据、操作数据、目标 对象数据和状态码数据。
18. 根据权利要求17所述的计算机程序产品,其特征在于,Web应用系统属性至少包括状态码、网站请求 流量、网站返回流量和值长度。
19. 根据权利要求12所述的计算机程序产品,其特征在于,检测指令可以使计算机执行以下操作基于正常Web应用SQL访问数据和实时Web应用SQL访问数据产生第一个异常分数。基于正常数据库SQL访问数据和实时数据库SQL访问数据产生第二个异常分数。第一个异常分数与第二个异常分数进行关联.
20. 根据权利要求19所述的计算机程序产品,其特征在于,关联指令可以使计算机执行以下操作根据第一个异常分数(Sl)和第二个异常分数(S2),采用如下公式测定关联分数(S):S=S1 xS2/(Sl+S2). 。
21. 根据权利要求12所述的计算机程序产品,其特征在于,检测指令适用于检测O-daySQL注入攻击。
22. 根据权利要求12所述的计算机程序产品,其特征在于,检测指令无法预知类似的攻击特征/攻击模式。
23. 检测方法由以下步骤组成从网站访问数据学习正常数据库和Web应用标准査询语句(SQL)的模型。 为网站捕获实时数据库和网站应用SQL访问数据。 基于正常数据库和Web应用SQL访问数据与实时数据库和Web应用SQL访问数据检测的异常的典 型SQL注入攻击。
24. 根据权利要求23所述的检测方法,其特征在于,学习步骤包括测定数据库层属性和 测定Web应用层属性。
25. 根据权利要求24所述的检测方法,其特征在于,测定数据库层属性的步驟包含了侦听网站的WEB 服务器与数据库间的流量,
26. 根据权利要求24所述的检测方法,其特征在于,测定数据库层属性的步骤包括了从数据库审计特征 获取数据库层属性。
27. 根据权利要求24所述的检测方法,其特征在于,测定数据库层属性的步骤包括了采集网站发起的 SQL操作数据。
28. 根据权利要求24所述的检测方法,其特征在于,数据库层属性包括用户数据、操作数据、目标对象数 据和状态码数据,
29. 根据权利要求28所述的检测方法,其特征在于,Web应用层的属性至少包含状态码、网站请求流量、 网站返回流量和值长度。
30. 根据权利要求23所述的检测方法,其特征在于,检测步骤包括基于正常Web应用SQL访问数据和实时Web应用SQL访问数据产生第一个异常分数。基于正常数据库SQL访问数据和实时数据库SQL访问数据产生第二个异常分数。第一个异常分数与第二个异常分数进行关联,
31. 根据权利要求30所述的检测方法,其特征在于,关联步骤包括根据第一个异常分数(Sl)和第二个 异常分数(S2),采用如下公式測定关联分数(S):S=SlxS2/(Sl+S2). 。
32. 根据权利要求23所述的检測方法,其特征在于,检测步驟包含了检测O-daySQL注入攻击。
33. SQL注入WEB攻击的实时入侵检測系统,其特征在于一个可以执行一系列指令的可操作处理器,即在学习模式下学习网站的正常数据库和Web应用标 准査i旬语句(SQL)的访问数据在侦査模式下捕获网站的实时数据库和Web应用SQL访问数据;基于 正常数据库和Web应用SQL访问数据与实时数据库和Web应用SQL访问数据在检测模式下检测异常的 典型SQL注入攻击与处理器相连的存储器用于保存学习模式和检測模式下的结果,
34. 根据权利要求33所述的SQL注入WEB攻击的实时入俊检測系统,其特征在于,可控处理器可以配置 用于执行一 系列的指令来测定数据库层属性和测定Web应用层属性,采用学习或捕获模式是可控的,
35. 根据权利要求34所述的SQL注入WEB攻击的实时入侵检测系统,其特征在于,可控处理器在测定数 据库层属性时,还可以进一步配置成通过侦听WEB服务器和数据库之间的网站流量实现,
36. 根据权利要求34所述的SQL注入WEB攻击的实时入侵检测系统,其特征在于,可控处理器在测定数 据库层属性时,还可以进一步配置成从数据库审计特征中获取数据库层属性。
37. 根据权利要求34所述的SQL注入WEB攻击的实时入侵检测系统,其特征在于,可控处理器在测定数 据库层属性时,还可以进一步配置成通过采集网站发起的SQL操作数据实现。
38. 根据权利要求34所述的SQL注入WEB攻击的实时入侵检测系统,其特征在于,数据库层属性包括用 户数据、操作数据、目标对象数据和状态码数据.
39. 根据权利要求38所述的SQL注入WEB攻击的实时入侵检测系统,其特征在于,Web应用层属性至 少包含状态码、网站请求流至、网站返回流量和值长度,
40. 根据权利要求33所述的SQL注入WEB攻击的实时入侵检测系统,其特征在于,可控处理器在执行检 测操作时可以进一步配置为基于正常Web应用SQL访问数据和实时Web应用SQL访问数据产生第一个异常分数。基于正常数据库SQL访问数据和实时数据库SQL访问数据产生第二个异常分数。第一个异常分数与第二个异常分数进行关联,
41. 根据权利要求40所述的SQL注入WEB攻击的实时入侵检测系统,其特征在于,可控处理器可以进一 步配置如下根据第一个异常分数(Sl)和第二个异常分数(S2),采用如下公式测定关联分数(S):S=SlxS2/(Sl+S2). 。
42. 根据权利要求33所述的SQL注入WEB攻击的实时入侵检测系统,其特征在于,可控检测处理器适用 于检测0-day SQL注入攻击,
43. 根据权利要求33所述的SQL注入WEB攻击的实时入侵检测系统,其特征在于,指令无法预知类似攻 击的特征/攻击模式,
全文摘要
本发明涉及一种SQL注入WEB攻击的实时入侵检测系统,包括为网站提供学习正常数据库和Web应用标准查询语句(SQL)查询数据的方法;为网站提供捕获实时数据库和Web应用SQL查询数据的方法;基于正常数据库和Web应用SQL访问数据与实时数据库和Web应用SQL访问数据的典型SQL注入攻击检测方法。本发明的有益效果本发明不仅可以检测常见的SQL注入攻击的检测技术,同时具备低误告警、高侦查率的特点。
文档编号H04L12/24GK101370008SQ200810002168
公开日2009年2月18日 申请日期2008年1月11日 优先权日2007年8月13日
发明者卢天华, 杨永清, 渊 范 申请人:杭州安恒信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1