Sql注入攻击检测方法及其装置的制作方法

文档序号:7717131阅读:293来源:国知局
专利名称:Sql注入攻击检测方法及其装置的制作方法
技术领域
本发明涉及信息安全技术领域,尤其是涉及一种SQL注入攻击检测方法及其装置。
背景技术
随着互联网的逐步发展,提供各种服务的网络站点越来越多,给人们的日常生活 提供了很大的方便。然而,同样随着互联网发展以及计算机技术的进步,针对网站系统的攻 击种类也是越来越多,越来越频繁。其中,SQL注入攻击已经逐渐成为网站系统遭遇的最频 繁的攻击方式之一,通过SQL注入攻击能够篡改网页内容并可能取得网站系统最高的数据 管理权限,给网站系统带来严重的危害。由于SQL注入事件频繁发生,既损害WEB系统建 设单位的形象,也可能直接导致经济上的损失,甚至产生严重的社会影响。对于通信运营商 而言,越来越多的业务系统通过WEB形式,提供网页浏览服务,完成相应业务订购与提供功 能,如门户网站、音乐平台、彩铃系统、号簿管家系统等。基于WEB的业务系统的部署越来越 广泛,如果防护不当而使WEB站点遭受SQL注入攻击,就可能导致业务系统网页内容被篡 改,甚至有可能由于业务系统的相关业务数据被篡改而造成经济上的损失和不良的社会影 响。实际上,现有的SQL注入攻击的实现方式比较简单,攻击者通过构造特定的输入 字符串实现对WEB系统后台数据库的非法操作。常见的SQL注入攻击方式为攻击者通过在 网站的URL中加入SQL语句,利用网站系统的漏洞来执行该SQL语句,从而可以直接修改网 站后台数据,或者猜测出业务系统用户帐号口令,或者猜测出数据库管理员帐号口令等。而 现有的各种防护系统大都是通过提取用户访问动态网页而发送的URL,然后判断URL中是 否包含SQL注入关键字,来检测网站系统是否正在遭受SQL注入攻击,如果判断结果是URL 中包含了 SQL注入关键字,则认定发送该URL的用户正在进行SQL注入攻击,阻断其访问, 并发送警告页面。现有的网站系统SQL注入攻击防护方法的实施流程如图1和图2所示,包括步骤S11、客户通过浏览器向TOB服务器发起HTTP请求;S12、WEB服务器将来自浏览器的HTTP请求发给筛选器,筛选器进行匹配处理,判 断该请求是否包含SQL注入关键字;如果是转到S17,否则执行S13 ;S13、筛选器向TOB服务器发送确定没有SQL注入攻击的反馈消息;S14.WEB服务器向数据库提交获取数据请求消息;S15、数据库接到WEB服务器的获取数据请求消息后,将WEB服务器请求的数据返 回给WEB服务器;S16、WEB服务器接收到数据库返回的数据后,向浏览器发送正常HTTP响应消息, 并将完整HTTP内容发送给浏览器;S17、筛选器向TOB服务器发送检测到SQL注入攻击的反馈消息;S18、TOB服务器接收到来自筛选器的检测到SQL注入攻击的反馈消息后,将一个有警告内容的HTTP网页发送到浏览器。利用如上所述的现有的SQL注入攻击检测方法在检测SQL注入攻击时,用户每发 出一个访问网页的请求,筛选器都需要将用户提交的URL或者URL携带的其他参数进行SQL 注入关键字匹配处理,判断是否存在SQL注入攻击。筛选器将每次的用户请求作为离散的 事件进行处理,即用户每提交一次访问请求,筛选器都要进行攻击规则匹配处理,然后网站 系统根据匹配结果进行相应的处理。由于实际当中正常访问网站的用户提供的访问请求中 也可能偶尔包含有SQL注入关键字,这样就可能将正常访问网站的用户错误的认定为攻击 用户而阻断其对网站的合法访问,造成误报,因此这种每当出现SQL注入关键字即认定为 SQL注入攻击的SQL注入攻击检测方法,必然导致现有网站防护方法在其SQL注入攻击检测 过程中存在较高的误报率。此外对于正在进行SQL注入攻击的恶意用户不进行及时阻断访 问,而是对其每次访问请求都进行SQL注入关键字匹配处理,也使得这种SQL注入攻击检测 方法的计算量很大,效率很低。

发明内容
本发明实施例提供一种SQL注入攻击检测方法及其装置,以降低现有技术中对 SQL注入攻击检测的误报率。本发明实施例还提供一种SQL注入攻击检测方法及其装置,以减小检测SQL注入 攻击的计算工作量,提高检测效率。本发明实施例提供了一种SQL注入攻击检测方法,包括检测用户是否以相同的 访问属性信息、在规定时间长度内发送了规定次数的、携带有SQL注入关键字的用于请求 访问相关网站的请求消息;若检测结果为是,则认定该用户对该网站正在进行SQL注入攻 击;若检测结果为否,则认定该用户未对该网站进行SQL注入攻击。本发明实施例提供了一种SQL注入攻击检测装置,包括检测单元,用于检测用户 是否以相同的访问属性信息、在规定时间长度内发送了规定次数的、携带有SQL注入关键 字的用于请求访问相关网站的请求消息;认定单元,用于在检测单元的检测结果为是时,认 定该用户对该网站正在进行SQL注入攻击;以及在检测单元的检测结果为否时,认定该用 户未对该网站进行SQL注入攻击。本发明实施例提供了一种SQL注入攻击检测方法,包括维护黑名单,该黑名单中 存储有针对每个被认定为对网站进行SQL注入攻击的用户所使用的访问属性信息以及该 用户被认定为SQL注入攻击时的时间信息的对应关系;在检测到发送用于请求访问相关网 站的请求消息的用户所使用的访问属性信息在所述黑名单存储的访问属性信息之中、且当 前时间与黑名单中存储的与该用户使用的访问属性信息对应的时间信息之间的时间间隔 小于规定时长时,确定该用户对该网站正在进行SQL注入攻击。本发明实施例提供了一种SQL注入攻击检测装置,包括 黑名单维护单元,用于维护黑名单,所述黑名单中存储有针对每个被认定为对网 站进行SQL注入攻击的用户所使用的访问属性信息以及该用户被认定为SQL注入攻击时的 时间信息的对应关系;检测单元,用于检测发送用于请求访问相关网站的请求消息的用户 所使用的访问属性信息是否在黑名单维护单元维护的黑名单存储的访问属性信息之中、且 当前时间与所述黑名单中存储的与该用户使用的访问属性信息对应的时间信息之间的时间间隔小于规定时长;确定单元,用于在检测单元的检测结果为是时,确定该用户对该网站 正在进行SQL注入攻击。 本发明实施例提供的SQL注入攻击检测方法及其装置是基于恶意人员进行SQL注 入攻击的行为特征,对用户发送的请求访问动态网页的请求消息中携带的SQL注入关键字 进行累计计数,规定时间长度内,当与该用户发送该请求消息时使用的访问属性信息相应 的SQL注入累计值达到限定值时,认定该用户正在对网站实施SQL注入攻击。本发明实施 例提供的SQL注入攻击检测方法及其装置有效地克服现有的SQL检测机制的缺陷,解决了 现有的SQL注入攻击检测方法中存在的高误报率的问题。并且通过黑名单机制的引入,使 得在限定时长的时间间隔内,认定使用黑名单中记录的访问属性信息发送请求消息的用户 正在对网站进行SQL注入攻击,从而提高了检测效率。


图1是现有的网站系统针对SQL注入攻击的防护方法流程图;图2是现有的网站系统针对SQL注入攻击的防护方法流程图;图3是本发明实施例1提供的SQL注入攻击检测方法的流程图;图4是本发明实施例2提供的SQL注入攻击检测方法的流程图;图5是本发明实施例3提供的SQL注入攻击检测方法的流程图;图6是本发明实施例4提供的SQL注入攻击检测装置的示意图;图7是本发明实施例5提供的SQL注入攻击检测装置的示意图;图8是本发明实施例6提供的SQL注入攻击检测方法的流程图;图9是本发明实施例7提供的SQL注入攻击检测装置的示意图。
具体实施例方式本发明实施例提供了一种SQL注入检测方法及其装置,基于恶意攻击用户进行 SQL注入攻击的行为特征,对来自恶意攻击用户的SQL注入攻击进行检测和筛选。该方法 一方面通过生成黑名单来记录恶意攻击用户的访问属性信息以及该用户被认定为SQL注 入攻击时的时间信息的对应关系,来防御恶意攻击用户短时间、连续注入的攻击行为,另一 方面通过在临时存储区域中对访问用户发送的访问动态网页的请求中携带的SQL注入关 键字出现次数进行累计记录,并与规定次数进行比较,高于规定次数时才认定该用户正在 对网站进行SQL注入攻击,从而提高SQL注入攻击检测的准确率,为网站系统提供针对SQL 注入攻击的更加完善的防护,解决了现有的SQL注入攻击检测方法中存在的高误报率的问 题。本发明实施例1提供了一种SQL注入攻击检测方法,其流程图如图3所示,包括S30、提取用户发来的访问动态网页的请求消息中携带的参数;S31、将提取的参数与SQL注入关键字进行匹配,判断用户发来的访问动态网页的 请求消息中是否包含SQL注入关键字,如果存在转到S32,否则转到S38 ;S32、判断临时存储区域内记录的用户的访问属性信息是否包含有当前用户的访 问属性信息,其中用户的访问属性信息包括但不限于为用户所使用的源IP地址和/或源端 口号等,如果有转到S33 ;否则转到S35 ;
S33、判断临时存储区域内记录的该用户发送请求消息所使用的访问属性信息对 应的时间信息TO与当前时间T之间的时间间隔是否小于规定时长T2,如果是,转到S34;否 则转到S36 ;其中T是用户当前发送请求消息的时间点信息;S34、将临时存储区域内记录的该用户所使用的访问属性信息对应的SQL注入累 计值counter加1,然后执行步骤S37 ;S35、在临时存储区域内存储该用户所使用的访问属性信息,并对应该访问属性信 息存储该用户发送请求消息的时间信息,以及对应该访问属性信息存储对应的SQL注入累 计值counter,并置1,然后执行步骤S37 ;S36、将临时存储区域中存储的该用户所使用的访问属性信息对应的时间信息TO 更新为当前时间信息T,并将存储的该用户所使用的访问属性信息对应的SQL注入累计值 counter置1,然后执行步骤S37 ;步骤37,判断在临时存储区域中存储的用户所使用的访问属性信息对应的 counter值是否达到SQL注入累计阈值K,如果是转到S39 ;否则转到S38 ;S38、认定该用户未对该网站进行SQL注入攻击。S39、认定该用户正在对网站进行SQL注入攻击。用于SQL注入攻击的关键字可以被分为在探测系统漏洞时使用的SQL注入探测关 键字和在实际攻击系统漏洞时使用的SQL注入攻击关键字。并且注入探测和注入攻击经常 是混在一起进行的。所以对于SQL注入关键字的累计计数和判断可以是针对SQL注入探测 关键字进行的,或者是针对SQL注入攻击关键字进行的,或者是同时针对SQL注入探测关键 字和SQL注入攻击关键字进行的。其中将SQL注入关键字细分为SQL注入探测关键字和SQL 注入攻击关键字之后,将临时存储区域内记录的SQL注入累计值counter具体分为SQL注 入探测累计值counterl和SQL注入攻击累计值counter〗,在TOB服务器中记录第一 SQL注 入探测累计阈值K1,第一 SQL注入攻击累计阈值K2,第二 SQL注入探测累计阈值K3,第二 SQL注入攻击累计阈值K4。单独针对SQL注入探测关键字进行累计和判断时,counterl与 第一 SQL注入探测累计阈值Kl进行比较;单独针对SQL注入攻击关键字进行累计和判断 时,counter2与第一 SQL注入探测累计阈值K2进行比较;同时针对SQL注入探测关键字和 SQL注入攻击关键字进行累计和判断时,counterl与第二 SQL注入探测累计阈值K3进行比 较并且coimterf与第二 SQL注入攻击累计阈值K4进行比较。本发明实施例2提供了一种 SQL注入攻击检测方法,该实施例给出了其中同时针对SQL注入探测关键字和SQL注入攻击 关键字进行累计计数和判断的具体流程,具体如图4所示,具体包括S40、提取用户发来的访问动态网页的请求消息中携带的参数;S41、将提取的参数与SQL注入关键字进行匹配,判断用户发来的访问动态网页的 请求消息中是否包含SQL注入关键字,如果存在转到S42,否则转到S48 ;S42、判断临时存储区域内已记录的用户的访问属性信息中是否包含有当前用户 的访问属性信息,如果有转到S43 ;否则转到S45 ;S43、判断临时存储区域内记录的该用户发送请求消息所使用的访问属性信息对 应的时间信息TO与当前时间信息T之间的时间间隔是否小于规定时长T2,如果是,转到 S44 ;否则 转到S46 ;S44、判断用户发送的请求消息中携带的SQL注入关键字类型,如果是SQL注入探测关键字,则在临时存储区域内存储的关联该用户所使用的访问属性信息的SQL注入探测 累计值coimterl加1,如果是SQL注入攻击关键字则在临时存储区域内存储的关联该用户 所使用的访问属性信息的SQL注入探测累计值coimterf加1 ;然后执行S47 ;S45、在临时存储区域内将该用户所使用的访问属性信息、该用户发送请求消息的 时间信息对应进行存储,以及判断用户发送的请求消息中携带的SQL注入关键字的类型, 如果为SQL注入探测关键字则counterl置1,counter2置0,否则counterl置0,counter2 置1 ;转到S47 ;S46、将临时存储区域中存储的该用户所使用的访问属性信息对应的时间信息TO 更新为当前时间信息T,以及判断用户发送的请求消息中携带的SQL注入关键字的类型,如 果为SQL注入探测关键字则将存储的该用户所使用的访问属性信息对应的counterl置1, counter2置0,如果为SQL注入攻击关键字则将存储的该用户所使用的访问属性信息对应 的 counterl 置 0,counter2 置 1 ;转到 S47 ;S47、判断在临时存储区域中存储的用户所使用的访问属性信息对应的counterl 值是否达到SQL注入探测累计阈值K3且对应的counted值是否达到SQL注入攻击累计阈 值K4,如果是转到S49 ;否则转到S48 ;S48、认定该用户未对该网站进行SQL注入攻击。S49、认定该用户正在对网站进行SQL注入攻击。以上实施例2提供的SQL注入攻击检测方法中应用了前述介绍的对SQL注入关键 字累计次数进行判断的第三种方式。对于实际保护网站免受SQL注入攻击时,可以根据对 网站的保护程度要求的不同和网站容易受到攻击的程度,对恶意用户的SQL注入攻击的检 测方法可以使用上述三种方式的任意一种或者将三种方式结合使用。上述的K系列参数(包括K1、K2、K3、K4)是衡量SQL注入探测次数和SQL注入攻 击次数的累计阈值,通过这些阈值来判断疑似攻击用户的行为,如果在Tl时间间隔内,来 自使用临时存储区域记录的访问属性信息的用户的SQL注入探测累计值过多,达到K1,或 者SQL注入攻击累计值过多,达到K2,则认定当前用户正在进行SQL注入攻击;或者用户注 入探测次数达到一定程度(达到K3)的同时,注入攻击次数也达到一定程度(达到K4),则 同样认定当前用户正在进行SQL注入攻击。一般来说,注入探测的目的是找到一个存在注入漏洞的URL,注入攻击是对这个 URL进行攻击,获取数据库数据或者账号密码等;如果只进行探测不进行攻击,对网站的影 响比较小,因为还没对数据库等造成直接的篡改,所以K1、K3值相对可以较大;而在攻击阶 段有可能对数据库造成篡改需要严格防护,所以Κ2、Κ4的值相对Κ1、Κ3值较小,即有Kl > Κ2,Κ3 > Κ4。此外,单独作用的阈值要高于共同作用的阈值,即Kl > Κ3,Κ2 > Κ4。 以上参数的设定是与TOB系统的应用是否容易遭受攻击,以及受保护的严格程度 相关的,如一个容易受攻击的网站或者需要严格保护的网站,可以将Τ2设为10秒,将Kl设 为50次,Κ2设为30次(即10秒内达到50次探测,或30次攻击,就可以认定用户正在对 网站进行SQL攻击),K3设为25次,K4设为15次(即10秒钟内达到25次探测并且达到 15次攻击,就可以认定用户正在对网站进行SQL攻击);相反如果网站不很容易遭受攻击, 可以将T2设为10秒,Kl为100次,K2设为60次(即10秒钟内达到100次探测,或60次 攻击,才认定用户正在对网站进行SQL攻击),K3设为50次,K4设为30次(即10秒钟内达到50次探测并且达到30次攻击,才认定用户正在对网站进行SQL攻击)。上述的实施例通过对SQL注入关键字的累计计数,并与相应的限定阈值进行比较 来判断用户是否正在对网站进行SQL注入攻击,有效地提高了判断的准确率,降低了 SQL注 入攻击检测方法的误报率。在此基础上,本发明的实施例3提供了一种SQL注入攻击检测 方法,该SQL注入攻击检测方法在实施例1给出的方法的基础上增加维护黑名单的机制,在 WEB服务器中维护一个黑名单,其中黑名单中存储有学习到的针对每个被认定为对网站进 行SQL注入攻击的用户所使用的访问属性信息以及该用户被认定为SQL注入攻击时的时间 信息的对应关系,这样在WEB服务器接收到用户发送的访问请求消息后,首先判断该用户 发送该访问请求使用的访问属性信息是否被记录在黑名单中,如果不在黑名单中,或者在 黑名单中但当前访问时间与黑名单中对应该用户使用的访问属性信息记录的时间信息之 间的时间间隔已经超过了时长阈值Tl,则再执行上述实施例1或者实施例2提供的方法,以 判断用户是否正在对访问的网站进行SQL攻击,可选的还可以进而将黑名单中存储的该用 户使用的访问属性信息和对应的时间信息删除,以减小黑名单占用的存储空间。此外当该 用户发送访问请求使用的访问属性信息在黑名单中,并且当前访问时间与黑名单中对应该 用户使用的访问属性信息记录的时间信息之间的时间间隔没有超过时长阈值Tl,则可以直 接认定该用户正在进行SQL注入攻击,并阻止其对动态网页的访问。这样在上述实施例1的基础上,还可以在步骤S39中认定该用户正在对网站进行 SQL注入攻击之后,将该用户使用的访问属性信息以及相应的访问时间信息Th对应的添加 到黑名单,并将黑名单中记录的该相应的访问时间信息Th置为用户的当前访问时间T。具 体的流程示意图如图5所示,包括S51、判断当前用户发送访问请求信息所利用的访问属性信息是否记录在黑名单 中,如果是转到S52 ;否则转到S31,后续执行过程请参照上述实施例1中的具体描述; S52、判断当前访问时间T与黑名单中记录的与用户所利用的访问属性信息对应 的访问时间信息Th之间的时间间隔是否超过时间阈值T2,如果超过则转到S53 ;否则转到 S54 ;S53、在黑名单中清除该用户发送网页访问请求信息所使用的访问属性信息和相 应的访问时间信息Th,然后转到S31,后续执行过程请参照上述实施例1中的具体描述;S54、认定该用户对该网站正在进行SQL注入攻击,处理过程结束;S55、在上述实施例1中S39执行完后,在黑名单中添加该用户发送访问请求信息 所使用的访问属性信息以及对应的该用户被认定为SQL注入攻击时的时间信息Th。由以上本发明公开的实施例可知,本发明实施例提供的SQL注入攻击检测方法简 单易行,对现有的网站防护系统软件的结构改变不多,有很强的实际操作性,从而使得本发 明实施例提供的SQL注入检测方法能够有效防止恶意人员利用SQL注入攻击方法篡改网页 系统的页面或者篡改业务系统的相关数据。对应发明实施例提供的上述SQL注入攻击检测方法,本发明还提供了以下的SQL 注入攻击检测装置的实施例。其中本发明实施例4提供的SQL注入攻击检测装置如图6所示,包括检测单元61,用于检测用户是否以相同的访问属性信息、在规定时间长度内发送 了规定次数的、携带有SQL注入关键字的用于请求访问相关网站的通用资源定位符URL请求消息;认定单元62,用于在检测单元的检测结果为是时,认定该用户对该网站正在进行 SQL注入攻击;以及在检测单元的检测结果为否时,认定该用户未对该网站进行SQL注入攻
击ο其中检测单元具体包括第一判断子单元611,用于在用户发送的用于请求访问相关网站的URL请求消息 中携带SQL注入关键词时,判断在临时存储区域中是否能够查找到该用户发送所述URL请 求消息所使用的访问属性信息;存储子单元612,用于在第一判断子单元的判断结果为否时,在临时存储区域中存 储该用户所使用的访问属性信息以及该用户发送所述URL请求消息的时间信息的对应关 系,并将存储的该用户所使用的访问属性信息对应的SQL注入累计值置1 ;第二判断子单元613,用于在第一判断子单元的判断结果为是时,判断当前时间与 临时存储区域中存储的该用户发送所述URL请求消息所使用的访问属性信息对应的时间 信息之间的时间间隔是否小于第二规定时长;累计值处理子单元614,用于在第二判断子单元的判断结果为是时,将临时存储区 域中存储的该用户发送所述URL请求消息所使用的访问属性信息对应的SQL注入累计值加 1 ;以及在第二判断子单元的判断结果为否时,将临时存储区域中存储的该用户发送所述 URL请求消息所使用的访问属性信息对应的SQL注入累计值清零;第三判断子单元615,用于在经存储子单元或累计值处理子单元对SQL注入累计 值进行处理后,判断临时存储区域中存储的该用户发送所述URL请求消息所使用的访问属 性信息对应的SQL注入累计值是否达到规定阈值;确定子单元616,用于在第三判断子单元的判断结果为是时,确定检测结果为是, 以及在第三判断子单元的判断结果为否时,确定检测结果为否。针对增加了黑名单机制的本发明实施例3提供的检测方法,本发明实施例5对应 的提供了一种SQL注入攻击检测装置,如图7所示,包括检测单元71,用于检测用户是否以相同的访问属性信息、在规定时间长度内发送 了规定次数的、携带有SQL注入关键字的用于请求访问相关网站的通用资源定位符URL请 求消息;认定单元72,用于在检测单元的检测结果为是时,认定该用户对该网站正在进行 SQL注入攻击;以及在检测单元的检测结果为否时,认定该用户未对该网站进行SQL注入攻
击ο 黑名单维护单元73,用于维护黑名单,所述黑名单中存储有针对每个被认定为对 网站进行SQL注入攻击的用户所使用的访问属性信息以及该用户被认定为SQL注入攻击时 的时间信息的对应关系;确定单元74,用于在检测单元检测用户之前,确定出用户使用的相同的访问属性 信息不在黑名单维护单元维护的黑名单存储的访问属性信息之中;或者确定出用户使用的 相同的访问属性信息在黑名单维护单元维护的黑名单存储的访问属性信息之中、且当前时 间与所述黑名单中存储的与用户使用的相同的访问属性信息对应的时间信息之间的时间间隔不小于第一规定时长;存储单元75,用于在认定单元认定该用户对该网站正在进行SQL注入攻击后,将 该用户使用的相同的访问属性信息以及该用户被认定为对该网站正在进行SQL注入攻击 的时间信息对应地存储到黑名单维护单元维护的黑名单中。删除单元76,用于在确定单元确定出用户使用的相同的访问属性信息在黑名单存 储的访问属性信息之中、且当前时间与黑名单中存储的与用户使用的相同的访问属性信息 对应的时间信息之间的时间间隔不小于第一规定时长时,删除黑名单维护单元维护的黑名 单中存储的用户使用的相同的访问属性信息及其对应的时间信息。对应于黑名单机制的应用,本发明实施例6提供了一种SQL注入攻击检测方法,如 图8所示,包括 S81、维护黑名单,所述黑名单中存储有针对每个被认定为对网站进行SQL注入攻 击的用户所使用的访问属性信息以及该用户被认定为SQL注入攻击时的时间信息的对应 关系;其中黑名单的维护过程可以但不限于为检测用户是否以相同的访问属性信息、在 规定时间长度内发送了规定次数的、携带有SQL注入关键字的用于请求访问相关网站的请 求消息;在检测结果为是时,认定该用户对该网站正在进行SQL注入攻击,并将该用户所使 用的访问属性信息以及认定该用户对该网站正在进行SQL注入攻击的时间信息对应存储 到所述黑名单中,该过程的具体实现过程请参照上述实施例1和实施例2中的描述,这里不 再赘述。S82、在检测到发送用于请求访问相关网站的请求消息的用户所使用的访问属性 信息在上述维护的黑名单存储的访问属性信息之中、且当前时间与黑名单中存储的与该用 户使用的访问属性信息对应的时间信息之间的时间间隔小于规定时长Tl时,直接确定该 用户对该网站正在进行SQL注入攻击,从而相对现有技术提高检测的效率。对应本发明实施例7提供的SQL注入攻击检测方法,本发明的实施例7提供了对 应的SQL注入攻击检测装置,如图9所示,包括黑名单维护单元91,用于维护黑名单,所述黑名单中存储有针对每个被认定为对 网站进行SQL注入攻击的用户所使用的访问属性信息以及该用户被认定为SQL注入攻击时 的时间信息的对应关系;检测单元92,用于检测发送用于请求访问相关网站的通用资源定位符URL请求消 息的用户所使用的访问属性信息是否在黑名单维护单元维护的黑名单存储的访问属性信 息之中、且当前时间与所述黑名单中存储的与该用户使用的访问属性信息对应的时间信息 之间的时间间隔小于规定时长;确定单元93,用于在检测单元的检测结果为是时,确定该用户对该网站正在进行 SQL注入攻击。其中黑名单维护单元91又被具体分为检测子单元911,用于检测用户是否以相同的访问属性信息、在规定时间长度内发 送了规定次数的、携带有SQL注入关键字的用于请求访问相关网站的请求消息;维护子单元912,用于在检测子单元的检测结果为是时,认定该用户对该网站正在 进行SQL注入攻击,并将该用户所使用的访问属性信息以及认定该用户对该网站正在进行 SQL注入攻击的时间信息对应存储到所述黑名单中。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种SQL注入攻击检测方法,其特征在于,包括检测用户是否以相同的访问属性信息、在规定时间长度内发送了规定次数的、携带有 SQL注入关键字的用于请求访问相关网站的请求消息;若检测结果为是,则认定该用户对该网站正在进行SQL注入攻击;若检测结果为否,则认定该用户未对该网站进行SQL注入攻击。
2.如权利要求1所述的方法,其特征在于,还包括维护黑名单的步骤,所述黑名单中存 储有针对每个被认定为对网站进行SQL注入攻击的用户所使用的访问属性信息以及该用 户被认定为SQL注入攻击时的时间信息的对应关系;检测用户过程之前,还包括确定出用户使用的相同的访问属性信息不在所述黑名单存储的访问属性信息之中;或者确定出用户使用的相同的访问属性信息在所述黑名单存储的访问属性信息之中、且当 前时间与所述黑名单中存储的与用户使用的相同的访问属性信息对应的时间信息之间的 时间间隔不小于第一规定时长;
3.如权利要求2所述的方法,其特征在于,在认定该用户对该网站正在进行SQL注入攻 击后,还包括将该用户使用的相同的访问属性信息以及该用户被认定为对该网站正在进行SQL注 入攻击的时间信息对应地存储到所述黑名单中。
4.如权利要求2所述的方法,其特征在于,在确定出用户使用的相同的访问属性信息 在黑名单存储的访问属性信息之中、且当前时间与黑名单中存储的与用户使用的相同的访 问属性信息对应的时间信息之间的时间间隔不小于第一规定时长时,还包括删除所述黑名 单中存储的用户使用的相同的访问属性信息及其对应的时间信息。
5.如权利要求1所述的方法,其特征在于,检测用户是否以相同的访问属性信息、在规 定时间长度内发送了规定次数的、携带有SQL注入关键字的用于请求访问相关网站的请求 消息,具体包括在用户发送的用于请求访问相关网站的请求消息中携带SQL注入关键词时,判断在临 时存储区域中是否能够查找到该用户发送所述请求消息所使用的访问属性信息,若否则在 临时存储区域中存储该用户所使用的访问属性信息以及该用户发送所述请求消息的时间 信息的对应关系,并将存储的该用户所使用的访问属性信息对应的SQL注入累计值置1 ;若 是则判断当前时间与临时存储区域中存储的该用户发送所述请求消息所使用的访问属性 信息对应的时间信息之间的时间间隔是否小于第二规定时长,若是则将临时存储区域中存 储的该用户发送所述请求消息所使用的访问属性信息对应的SQL注入累计值加1 ;若否则将临时存储区域中存储的该用户发送所述请求消息所使用的访问属性信息对应的时 间信息修改为当前时间信息,并将对应的SQL注入累计值置1 ;判断临时存储区域中存储的该用户发送所述请求消息所使用的访问属性信息对应的 SQL注入累计值是否达到规定阈值,若是则确定所述检测结果为是,若否在确定所述检测结 果为否。
6.如权利要求5所述的方法,其特征在于,所述SQL注入关键字为SQL注入探测关键字,所述SQL注入累计值为SQL注入探测累计值;或所述SQL注入关键字为SQL注入攻击关键字,所述SQL注入累计值为SQL注入攻击累 计值;或所述SQL注入关键字包括SQL注入探测累计值和SQL注入攻击关键字,所述SQL注入 累计值包括SQL注入探测累计值和SQL注入攻击累计值。
7.如1 6任一权利要求所述的方法,其特征在于,所述访问属性信息包括源IP地址 和源端口号。
8.一种SQL注入攻击检测装置,其特征在于,包括检测单元,用于检测用户是否以相同的访问属性信息、在规定时间长度内发送了规定 次数的、携带有SQL注入关键字的用于请求访问相关网站的请求消息;认定单元,用于在检测单元的检测结果为是时,认定该用户对该网站正在进行SQL注 入攻击;以及在检测单元的检测结果为否时,认定该用户未对该网站进行SQL注入攻击。
9.如权利要求8所述的装置,其特征在于,还包括黑名单维护单元,用于维护黑名单,所述黑名单中存储有针对每个被认定为对网站进 行SQL注入攻击的用户所使用的访问属性信息以及该用户被认定为SQL注入攻击时的时间 信息的对应关系;确定单元,用于在检测单元检测用户之前,确定出用户使用的相同的访问属性信息不 在黑名单维护单元维护的黑名单存储的访问属性信息之中;或者确定出用户使用的相同的访问属性信息在黑名单维护单元维护的黑名单存储的访问 属性信息之中、且当前时间与所述黑名单中存储的与用户使用的相同的访问属性信息对应 的时间信息之间的时间间隔不小于第一规定时长;
10.如权利要求9所述的装置,其特征在于,还包括存储单元,用于在认定单元认定该用户对该网站正在进行SQL注入攻击后,将该用户 使用的相同的访问属性信息以及该用户被认定为对该网站正在进行SQL注入攻击的时间 信息对应地存储到黑名单维护单元维护的黑名单中。
11.如权利要求9所述的装置,其特征在于,还包括删除单元,用于在确定单元确定出 用户使用的相同的访问属性信息在黑名单存储的访问属性信息之中、且当前时间与黑名单 中存储的与用户使用的相同的访问属性信息对应的时间信息之间的时间间隔不小于第一 规定时长时,删除黑名单维护单元维护的黑名单中存储的用户使用的相同的访问属性信息 及其对应的时间信息。
12.如权利要求8所述的装置,其特征在于,所述检测单元具体包括第一判断子单元,用于在用户发送的用于请求访问相关网站的请求消息中携带SQL注 入关键词时,判断在临时存储区域中是否能够查找到该用户发送所述请求消息所使用的访 问属性信息;存储子单元,用于在第一判断子单元的判断结果为否时,在临时存储区域中存储该用 户所使用的访问属性信息以及该用户发送所述请求消息的时间信息的对应关系,并将存储 的该用户所使用的访问属性信息对应的SQL注入累计值置1 ;第二判断子单元,用于在第一判断子单元的判断结果为是时,判断当前时间与临时存储区域中存储的该用户发送所述请求消息所使用的访问属性信息对应的时间信息之间的 时间间隔是否小于第二规定时长;累计值处理子单元,用于在第二 判断子单元的判断结果为是时,将临时存储区域中存 储的该用户发送所述请求消息所使用的访问属性信息对应的SQL注入累计值加1 ;以及在第二判断子单元的判断结果为否时,将临时存储区域中存储的该用户发送所述请求 消息所使用的访问属性信息对应的时间信息修改为当前时间信息,并将对应的SQL注入累 计值置1 ;第三判断子单元,用于在经存储子单元或累计值处理子单元对SQL注入累计值进行处 理后,判断临时存储区域中存储的该用户发送所述请求消息所使用的访问属性信息对应的 SQL注入累计值是否达到规定阈值;确定子单元,用于在第三判断子单元的判断结果为是时,确定检测结果为是,以及在第 三判断子单元的判断结果为否时,确定检测结果为否。
13.一种SQL注入攻击检测方法,其特征在于,包括维护黑名单,所述黑名单中存储有针对每个被认定为对网站进行SQL注入攻击的用户 所使用的访问属性信息以及该用户被认定为SQL注入攻击时的时间信息的对应关系;在检测到发送用于请求访问相关网站的请求消息的用户所使用的访问属性信息在所 述黑名单存储的访问属性信息之中、且当前时间与所述黑名单中存储的与该用户使用的访 问属性信息对应的时间信息之间的时间间隔小于规定时长时,确定该用户对该网站正在进 行SQL注入攻击。
14.如权利要求13所述的方法,其特征在于,维护黑名单的过程具体包括检测用户是否以相同的访问属性信息、在规定时间长度内发送了规定次数的、携带有 SQL注入关键字的用于请求访问相关网站的请求消息;在检测结果为是时,认定该用户对该网站正在进行SQL注入攻击,并将该用户所使用 的访问属性信息以及认定该用户对该网站正在进行SQL注入攻击的时间信息对应存储到 所述黑名单中。
15.如权利要求13或14所述的方法,其特征在于,所述SQL注入关键字为SQL注入探 测关键字,或为SQL注入攻击关键字、或为SQL注入探测关键字和SQL注入攻击关键字。
16.如权利要求13或14所述的方法,其特征在于,所述访问属性信息包括源IP地址和源端口号。
17.一种SQL注入攻击检测装置,其特征在于,包括黑名单维护单元,用于维护黑名单,所述黑名单中存储有针对每个被认定为对网站进 行SQL注入攻击的用户所使用的访问属性信息以及该用户被认定为SQL注入攻击时的时间 信息的对应关系;检测单元,用于检测发送用于请求访问相关网站的请求消息的用户所使用的访问属性 信息是否在黑名单维护单元维护的黑名单存储的访问属性信息之中、且当前时间与所述黑 名单中存储的与该用户使用的访问属性信息对应的时间信息之间的时间间隔小于规定时 长;确定单元,用于在检测单元的检测结果为是时,确定该用户对该网站正在进行SQL注 入攻击。
18.如权利要求17所述的装置,其特征在于,所述黑名单维护单元具体包括 检测子单元,用于检测用户是否以相同的访问属性信息、在规定时间长度内发送了规 定次数的、携带有SQL注入关键字的用于请求访问相关网站的请求消息;维护子单元,用于在检测子单元的检测结果为是时,认定该用户对该网站正在进行SQL 注入攻击,并将该用户所使用的访问属性信息以及认定该用户对该网站正在进行SQL注入 攻击的时间信息对应存储到所述黑名单中。
全文摘要
本发明公开了一种SQL注入攻击检测方法,包括检测用户是否以相同的访问属性信息、在规定时间长度内发送了规定次数的、携带有SQL注入关键字的用于请求访问相关网站的通用资源定位符URL请求消息;若检测结果为是,则认定该用户对该网站正在进行SQL注入攻击;若检测结果为否,则认定该用户未对该网站进行SQL注入攻击。本发明实施例相应的公开了SQL注入攻击检测装置。本发明实施例提供的SQL注入攻击检测方法及其装置是基于恶意人员进行SQL注入攻击的行为特征,有效地克服现有的SQL检测机制的缺陷,解决了现有的SQL注入攻击检测方法中存在的高误报率的问题。
文档编号H04L29/06GK102045319SQ20091020671
公开日2011年5月4日 申请日期2009年10月21日 优先权日2009年10月21日
发明者位莅, 曹承祖, 王自亮 申请人:中国移动通信集团山东有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1