CN111079148B - 一种sql注入攻击的检测方法、装置、设备及存储介质 - Google Patents

一种sql注入攻击的检测方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111079148B
CN111079148B CN201911347734.6A CN201911347734A CN111079148B CN 111079148 B CN111079148 B CN 111079148B CN 201911347734 A CN201911347734 A CN 201911347734A CN 111079148 B CN111079148 B CN 111079148B
Authority
CN
China
Prior art keywords
sql
matching
injection
time
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911347734.6A
Other languages
English (en)
Other versions
CN111079148A (zh
Inventor
邵宛岩
范渊
刘博�
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
DBAPPSecurity Co Ltd
Original Assignee
DBAPPSecurity Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by DBAPPSecurity Co Ltd filed Critical DBAPPSecurity Co Ltd
Priority to CN201911347734.6A priority Critical patent/CN111079148B/zh
Publication of CN111079148A publication Critical patent/CN111079148A/zh
Application granted granted Critical
Publication of CN111079148B publication Critical patent/CN111079148B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种SQL注入攻击的检测方法、装置、设备及介质,方法包括:获取目标数据库的数据库访问信息;其中,数据库访问信息包括SQL语句;利用第一等级的匹配规则对SQL语句进行预匹配,确定出匹配成功的第一SQL语句,并确定出与第一SQL语句对应的SQL注入攻击的注入方和访问时间;根据访问时间得出扩大时间范围的第一时间段,并从数据库访问信息中筛选出注入方在第一时间段的第二SQL语句;利用第二等级的匹配规则对第二SQL语句进行全匹配,并根据匹配到的目标SQL语句确定出SQL注入攻击的SQL注入过程;本方法能够在不影响数据库的正常使用的基础上,全面准确地检测出SQL注入攻击的注入过程。

Description

一种SQL注入攻击的检测方法、装置、设备及存储介质
技术领域
本发明涉及攻击检测领域,特别涉及一种SQL注入攻击的检测方法、装置、设备及计算机可读存储介质。
背景技术
SQL注入攻击是攻击者对数据库进行攻击的最常用手段之一。攻击者通过构建SQL语法里的一些组合(SQL语句)作为参数传入Web应用程序,并通过执行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注入攻击的SQL注入过程之后,进一步包括:
获取全段时间范围的全段数据库访问信息;
利用所述全段数据库访问信息设置SQL线路图;
在所述SQL线路图上标注出确定出的所述SQL注入过程。
优选地,所述数据库访问信息包括:SIP和/或DIP和/或Dport和/或Sport。
优选地,在所述利用第二等级的匹配规则对所述第二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注入攻击的注入方和注入时间;利用复杂程度较低的第二等级的匹配规则对第二SQL语句进行全匹配,能够全面地检测出SQL注入攻击的注入过程;并且,是对第一时间段中的第二SQL语句进行全匹配,因此能够相对降低对目标数据库的正常使用的影响。
为解决上述技术问题,本发明还提供了一种SQL注入攻击的检测装置、设备及计算机可读存储介质,均具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种SQL注入攻击的检测方法的流程图;
图2为本发明实施例提供的一种SQL注入攻击的检测装置的结构图;
图3为本发明实施例提供的一种SQL注入攻击的检测设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的核心是提供一种SQL注入攻击的检测方法,能够在不影响数据库的正常使用的基础上,全面准确地检测出SQL注入攻击的注入过程;本发明的另一核心是提供一种SQL注入攻击的检测装置、设备及计算机可读存储介质,均具有上述有益效果。
为了使本领域技术人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
图1为本发明实施例提供的一种SQL注入攻击的检测方法的流程图。如图1所示,一种SQL注入攻击的检测方法包括:
S10:获取目标数据库的数据库访问信息;其中,数据库访问信息包括SQL语句。
具体的,在本实施例中,首先需要获取目标数据库的IP地址和端口号,并依据IP地址和端口号获取目标数据库的流量信息,并通过解析流量信息,以获取目标数据库的数据库访问信息。需要说明的是,在本实施例中,数据库访问信息至少包括SQL语句,对于数据库访问信息中的其他信息,本实施例对此不做具体的限定。
S20:利用第一等级的匹配规则对SQL语句进行预匹配,确定出匹配成功的第一SQL语句,并确定出与第一SQL语句对应的SQL注入攻击的注入方和访问时间。
具体的,利用预先设置的第一等级的匹配规则对SQL语句进行预匹配,在匹配规则中的关键字与SQL语句中的关键字相同的情况下,判定第一等级的匹配规则与SQL语句匹配成功。需要说明的是,本实施例为了方便表述,将该匹配成功的SQL语句称为第一SQL语句。进而,通过解析第一SQL语句,确定出SQL注入攻击的注入方和访问时间。其中,注入方也就是进行SQL注入攻击的攻击方,访问时间即该SQL语句对应的时间。
需要说明的是,在实际操作中,可以设置多个第一等级的匹配规则,也即,第一等级对应有多个匹配规则,在对SQL语句进行匹配时,利用第一等级中的各匹配规则分别与SQL语句进行匹配,并且只要存在与SQL语句匹配的匹配规则,则表示利用第一等级的匹配规则匹配SQL语句成功。
S30:根据访问时间得出扩大时间范围的第一时间段,并从数据库访问信息中筛选出注入方在第一时间段的第二SQL语句。
具体的,在得出第一SQL语句并确定出该第一SQL语句所对应的访问时间之后,进一步得出与该访问时间对应的第一时间段。可以理解的是,访问时间是一个时间点,基于该时间点,扩大时间范围,得到对应的第一时间段,第一时间段指的是一段时间。需要说明的是,本实施例对扩大时间范围的扩大程度不做限定,即,对第一时间段的具体时长不做限定。在得出第一时间段之后,从数据库访问信息中筛选出访问对象为确定出的注入方,访问时间在第一时间段中的SQL语句,即,得出第二SQL语句。
S40:利用第二等级的匹配规则对第二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语句,得出目标SQL语句之后,进一步以第一时间段为基准,利用第一时间段的前向和后向的时间窗得出新的时间段,并利用该新的时间段更新第一时间段;再从数据库访问信息中筛选出更新后的第一时间段对应的第二SQL语句,以便继续利用第二等级的匹配规则对更新的第二SQL语句进行全匹配,从而逐步扩大筛选注入方的SQL语句的时间范围。
此处,以具体的实例来进行解释:假设第一访问时间为T,时间窗为t(t≤60s),第一次扩大时间范围,得出的第一时间段为[T-t,T)∪(T,T+t];在更新第一时间段后,第一时间段为[T-2t,T-t)∪(T+t,T+2t];在再次更新第一时间段后,第一时间段为[T-3t,T-2t)∪(T+2t,T+3t],依次类推。
在实际操作中,可以设置迭代更新第一时间段的过程:
t01=T+(n-1)*t;
t1=T+n*t;
t02=T-(n-1)*t;
t2=T-n*t;
第一时间段为[t2,t02)∪(t01,t1],即,[T-n*t,T-(n-1)*t)∪(T+(n-1)*t,T+n*t],其中,n表示第二等级的匹配规则匹配到第二SQL语句的次数,且n的初始值一般为1,n=n+1。
也就是说,在本实施例中,每次利用第二等级的匹配规则匹配到目标SQL语句时,即,任何一条第二SQL语句与第二等级的匹配规则中的任何一条匹配规则匹配成功,则需要扩大时间范围。即,以第一时间段为基准,以时间窗为长度,分别向前和向后得出新的时间段,并将新的时间段作为更新的第一时间段,再利用第二等级的匹配规则对更新后的第一时间段对应的第二SQL语句进行全匹配,直至第二SQL语句中不存在与第二等级的匹配规则相匹配的目标SQL语句,不再扩大时间范围,匹配结束。
可见,本实施例通过在利用第二等级的匹配规则匹配到目标SQL语句后,迭代扩大时间范围进行全匹配,能够更全面地检测出表示SQL注入攻击的目标SQL语句,从而更全面地得出SQL注入攻击的注入过程。
作为优选的实施方式,本实施例中的数据库访问信息包括:SIP和/或DIP和/或Dport和/或Sport。
具体的,在本实施例中,通过获取目标数据库的流量,得到目标数据库的SIP和/或DIP和/或Dport和/或Sport;其中,SIP表示被访问设备的设备信息;DIP表示访问设备的设备信息;Sport表示访问设备的端口,Dport表示被访问设备的端口。对应的,在匹配得出目标SQL语句后,可以依据目标SQL语句以及与目标SQL语句对应的SIP和/或DIP和/或Dport和/或Spor等数据库访问信息,分析得出SQL注入攻击的注入过程。
本实施例通过利用SIP和/或DIP和/或Dport和/或Sport以及SQL语句分析得出SQL注入攻击的注入过程,能够使得分析得出的注入攻击的注入过程更加全面。
在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例中,第一等级的匹配规则和第二等级的匹配规则的设置方法具体包括:
利用关键字的组合设置匹配规则;
根据匹配规则的复杂程度,将匹配规则划分为对应的等级。
在本实施例中,首先利用各不同的组合方式,如在一个匹配规则中关键字的数量,关键字的匹配原则,将各关键字进行组合,得出匹配规则。然后,根据匹配规则的复杂程度,即匹配规则中的关键字的组合方式与SQL语句匹配的难易程度,将匹配规则划分为对应的等级,即第一等级和第二等级。具体的,本实施例优选地将各匹配规则存储于数据库表中。
需要说明的是,在实际操作中,可以进一步为各匹配规则设置规则ID、规则名等,以便于查看各匹配规则。另外,可以先为匹配规则设置复杂程度,再根据匹配规则的复杂程度将匹配规则划分为对应的等级。也就是说,可以设置数量多于等级数的复杂程度的等级,如,等级有两种,复杂程度可分为1-5级,程度值越高,匹配规则越复杂。然后,将复杂程度为4-5的匹配规则设置为第一等级,并将复杂程度为1-3的匹配规则设置为第二等级;并且可以根据实际需求调整等级所对应的复杂程度,如将复杂程度1-2设置为第二等级。
可见,按照本实施例的方法设置不同等级的匹配规则,操作方式便捷。
在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例在利用第二等级的匹配规则对第二SQL语句进行全匹配,并根据匹配到的目标SQL语句确定出SQL注入攻击的SQL注入过程之后,进一步包括:
获取全段时间范围的全段数据库访问信息;
利用全段数据库访问信息设置SQL线路图;
在SQL线路图上标注出确定出的SQL注入过程。
具体的,首先从预先获取的数据库访问信息中筛选出时间范围在全段时间范围内的信息,即得到全段数据库访问信息;其中,全段时间指的是所有设置的第一时间段,即,时间范围为[第一访问时间-n*t,第一访问时间+n*t]的时间,其中,n表示第二等级的匹配规则匹配到第二SQL语句的次数,t表示时间窗。然后,利用全段数据库访问信息中的SQL语句中的操作类型以及操作对象,按照时间顺序设置SQL线路图。最后,根据匹配到的目标SQL语句,在该SQL线路图上进行标注,从而得出SQL注入攻击的过程示意图。需要说明的是,本实施例对在SQL线路图上进行标注的方式不做限定,例如,可以是通过颜色标记将匹配到的目标SQL语句对应的时间点、操作方式以及操作对象在SQL线路图上进行标记。
可见,本实施例通过进一步获取全段时间范围的全段数据库访问信息,并利用全段数据库访问信息设置SQL线路图;然后在SQL线路图上标注出匹配成功的目标SQL语句对应的操作方式以及操作对象,可以更便于用户查看SQL注入攻击的情况,进一步提升用户的使用体验。
需要说明的是,在其他的实施方式中,可以直接利用匹配出的目标SQL语句设置SQL注入攻击线路图,从而更便于用户查看注入攻击的过程。
在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例在利用第二等级的匹配规则对第二SQL语句进行全匹配,并根据匹配到的目标SQL语句确定出SQL注入攻击的SQL注入过程之后,进一步包括:
发出对应的提示信息。
具体的,本实施例是在根据匹配到的目标SQL语句确定出SQL注入攻击的SQL注入过程之后,发出对应的提示信息。并且,在实际操作中,若存在多个注入方对应的注入攻击过程,则可以分别对各检测出的注入过程进行提示。
需要说明的是,本实施例对发出提示信息的具体方式不做限定,例如可以是在确定出各SQL注入攻击的注入过程之后,触发蜂鸣器/指示灯/显示器等提示装置发出对应的提示信息,如蜂鸣音/闪烁灯/显示文字或图像等,以直观地提示用户当前的检测情况,从而能够进一步提高用户的使用体验。
上文对于本发明提供的一种SQL注入攻击的检测方法的实施例进行了详细的描述,本发明还提供了一种与该方法对应的SQL注入攻击的检测装置、设备及计算机可读存储介质,由于装置、设备及计算机可读存储介质部分的实施例与方法部分的实施例相互照应,因此装置、设备及计算机可读存储介质部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
图2为本发明实施例提供的一种SQL注入攻击的检测装置的结构图,如图2所示,一种SQL注入攻击的检测装置包括:
第一获取模块21,用于获取目标数据库的数据库访问信息;其中,数据库访问信息包括SQL语句;
第一匹配模块22,用于利用第一等级的匹配规则对SQL语句进行预匹配,确定出匹配成功的第一SQL语句,并确定出与第一SQL语句对应的SQL注入攻击的注入方和访问时间;
第二获取模块23,用于根据访问时间得出扩大时间范围的第一时间段,并从数据库访问信息中筛选出注入方在第一时间段的第二SQL语句;
第二匹配模块24,用于利用第二等级的匹配规则对第二SQL语句进行全匹配,并根据匹配到的目标SQL语句确定出SQL注入攻击的SQL注入过程;
其中,第二等级的匹配规则的复杂程度低于第一等级的匹配规则的复杂程度。
本发明实施例提供的SQL注入攻击的检测装置,具有上述SQL注入攻击的检测方法的有益效果。
作为优选的实施方式,第二获取模块23具体包括:
第一设置子模块,用于设置扩大时间范围的时间窗;
第二设置子模块,用于以SQL语句的第一访问时间为基准,将访问时间的前向和后向的时间窗设置为第一时间段;
筛选子模块,用于从数据库访问信息中筛选出注入方在第一时间段的第二SQL语句。
作为优选的实施方式,进一步包括:
第三设置子模块,用于以第一时间段为基准,利用第一时间段的前向和后向的时间窗更新第一时间段,并调用筛选子模块。
作为优选的实施方式,进一步包括:
规则设置模块,用于利用关键字的组合设置匹配规则;
等级划分模块,用于根据匹配规则的复杂程度,将匹配规则划分为对应的等级。
作为优选的实施方式,进一步包括:
信息获取模块,用于获取全段时间范围的全段数据库访问信息;
线路图设置模块,用于利用全段数据库访问信息设置SQL线路图;
标注模块,用于在SQL线路图上标注出确定出的SQL注入过程。
作为优选的实施方式,进一步包括:
提示模块,用于在利用第二等级的匹配规则对第二SQL语句进行全匹配,并根据匹配到的目标SQL语句确定出SQL注入攻击的SQL注入过程之后,发出对应的提示信息。
图3为本发明实施例提供的一种SQL注入攻击的检测设备的结构图,如图3所示,一种SQL注入攻击的检测设备包括:
存储器31,用于存储计算机程序;
处理器32,用于执行计算机程序时实现如上述SQL注入攻击的检测方法的步骤。
本发明实施例提供的SQL注入攻击的检测设备,具有上述SQL注入攻击的检测方法的有益效果。
为解决上述技术问题,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述SQL注入攻击的检测方法的步骤。
本发明实施例提供的计算机可读存储介质,具有上述SQL注入攻击的检测方法的有益效果。
以上对本发明所提供的SQL注入攻击的检测方法、装置、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

Claims (9)

1.一种SQL注入攻击的检测方法,其特征在于,包括:
获取目标数据库的数据库访问信息;其中,所述数据库访问信息包括SQL语句;
利用第一等级的匹配规则对所述SQL语句进行预匹配,确定出匹配成功的第一SQL语句,并确定出与所述第一SQL语句对应的SQL注入攻击的注入方和访问时间;
设置扩大时间范围的时间窗;
以所述访问时间为基准,将所述访问时间的前向和后向的时间窗设置为第一时间段;
从所述数据库访问信息中筛选出所述注入方在所述第一时间段的第二SQL语句;
利用第二等级的匹配规则对所述第二SQL语句进行全匹配,并根据匹配到的目标SQL语句确定出所述SQL注入攻击的SQL注入过程;
其中,所述第二等级的匹配规则的复杂程度低于所述第一等级的匹配规则的复杂程度。
2.根据权利要求1所述的方法,其特征在于,在所述利用第二等级的匹配规则对所述第二SQL语句进行全匹配,并根据匹配到的目标SQL语句确定出所述SQL注入攻击的SQL注入过程之后,进一步包括:
以所述第一时间段为基准,利用所述第一时间段的前向和后向的时间窗更新所述第一时间段,并进入所述从所述数据库访问信息中筛选出所述注入方在所述第一时间段的第二SQL语句的步骤。
3.根据权利要求1所述的方法,其特征在于,所述第一等级的匹配规则和所述第二等级的匹配规则的设置方法具体包括:
利用关键字的组合设置匹配规则;
根据所述匹配规则的复杂程度,将所述匹配规则划分为对应的等级。
4.根据权利要求2所述的方法,其特征在于,在所述利用第二等级的匹配规则对所述第二SQL语句进行全匹配,并根据匹配到的目标SQL语句确定出所述SQL注入攻击的SQL注入过程之后,进一步包括:
获取全段时间范围的全段数据库访问信息;
利用所述全段数据库访问信息设置SQL线路图;
在所述SQL线路图上标注出确定出的所述SQL注入过程。
5.根据权利要求4所述的方法,其特征在于,所述数据库访问信息包括:SIP和/或DIP和/或Dport和/或Sport。
6.根据权利要求1至5任一项所述的方法,其特征在于,在所述利用第二等级的匹配规则对所述第二SQL语句进行全匹配,并根据匹配到的目标SQL语句确定出所述SQL注入攻击的SQL注入过程之后,进一步包括:
发出对应的提示信息。
7.一种SQL注入攻击的检测装置,其特征在于,包括:
第一获取模块,用于获取目标数据库的数据库访问信息;其中,所述数据库访问信息包括SQL语句;
第一匹配模块,用于利用第一等级的匹配规则对所述SQL语句进行预匹配,确定出匹配成功的第一SQL语句,并确定出与所述第一SQL语句对应的SQL注入攻击的注入方和访问时间;
第二获取模块,用于设置扩大时间范围的时间窗;以所述访问时间为基准,将所述访问时间的前向和后向的时间窗设置为第一时间段;从所述数据库访问信息中筛选出所述注入方在所述第一时间段的第二SQL语句;
第二匹配模块,用于利用第二等级的匹配规则对所述第二SQL语句进行全匹配,并根据匹配到的目标SQL语句确定出所述SQL注入攻击的SQL注入过程;
其中,所述第二等级的匹配规则的复杂程度低于所述第一等级的匹配规则的复杂程度。
8.一种SQL注入攻击的检测设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述的SQL注入攻击的检测方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的SQL注入攻击的检测方法的步骤。
CN201911347734.6A 2019-12-24 2019-12-24 一种sql注入攻击的检测方法、装置、设备及存储介质 Active CN111079148B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911347734.6A CN111079148B (zh) 2019-12-24 2019-12-24 一种sql注入攻击的检测方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911347734.6A CN111079148B (zh) 2019-12-24 2019-12-24 一种sql注入攻击的检测方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111079148A CN111079148A (zh) 2020-04-28
CN111079148B true CN111079148B (zh) 2022-03-18

Family

ID=70317319

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911347734.6A Active CN111079148B (zh) 2019-12-24 2019-12-24 一种sql注入攻击的检测方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111079148B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113055399A (zh) * 2021-03-31 2021-06-29 深信服科技股份有限公司 注入攻击的攻击成功检测方法、系统及相关装置

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103138986A (zh) * 2013-01-09 2013-06-05 天津大学 一种基于可视分析的网站异常访问行为的检测方法
US8782184B2 (en) * 2011-04-04 2014-07-15 Message Systems, Inc. Method and system for adaptive delivery of digital messages
CN104050178A (zh) * 2013-03-13 2014-09-17 北京思博途信息技术有限公司 一种互联网监测反作弊方法和装置
CN105046150A (zh) * 2015-08-06 2015-11-11 福建天晴数码有限公司 防止sql注入的方法及系统
CN106254368A (zh) * 2016-08-24 2016-12-21 杭州迪普科技有限公司 Web漏洞扫描的检测方法及装置
CN106355094A (zh) * 2016-07-08 2017-01-25 耿童童 一种基于语法变换的sql注入攻击防御系统及防御方法
CN107683597A (zh) * 2015-06-04 2018-02-09 思科技术公司 用于异常检测的网络行为数据收集和分析
CN108156166A (zh) * 2017-12-29 2018-06-12 百度在线网络技术(北京)有限公司 异常访问识别和接入控制方法及装置
CN109150871A (zh) * 2018-08-14 2019-01-04 阿里巴巴集团控股有限公司 安全检测方法、装置、电子设备及计算机可读存储介质
CN109561097A (zh) * 2018-12-17 2019-04-02 泰康保险集团股份有限公司 结构化查询语言注入安全漏洞检测方法、装置、设备及存储介质
CN110113341A (zh) * 2019-05-09 2019-08-09 极智(上海)企业管理咨询有限公司 一种注入攻击检测方法、装置、计算机设备及存储介质
CN110476400A (zh) * 2017-04-06 2019-11-19 微软技术许可有限责任公司 用于检测针对基于云的机器的特定集合的定向网络攻击的系统和方法
CN110520845A (zh) * 2017-04-19 2019-11-29 华为技术有限公司 更新htm用户异常中止元数据
CN110602021A (zh) * 2018-06-12 2019-12-20 蓝盾信息安全技术有限公司 一种基于http请求行为与业务流程相结合的安全风险值评估方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631107B2 (en) * 2002-06-11 2009-12-08 Pandya Ashish A Runtime adaptable protocol processor

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782184B2 (en) * 2011-04-04 2014-07-15 Message Systems, Inc. Method and system for adaptive delivery of digital messages
CN103138986A (zh) * 2013-01-09 2013-06-05 天津大学 一种基于可视分析的网站异常访问行为的检测方法
CN104050178A (zh) * 2013-03-13 2014-09-17 北京思博途信息技术有限公司 一种互联网监测反作弊方法和装置
CN107683597A (zh) * 2015-06-04 2018-02-09 思科技术公司 用于异常检测的网络行为数据收集和分析
CN105046150A (zh) * 2015-08-06 2015-11-11 福建天晴数码有限公司 防止sql注入的方法及系统
CN106355094A (zh) * 2016-07-08 2017-01-25 耿童童 一种基于语法变换的sql注入攻击防御系统及防御方法
CN106254368A (zh) * 2016-08-24 2016-12-21 杭州迪普科技有限公司 Web漏洞扫描的检测方法及装置
CN110476400A (zh) * 2017-04-06 2019-11-19 微软技术许可有限责任公司 用于检测针对基于云的机器的特定集合的定向网络攻击的系统和方法
CN110520845A (zh) * 2017-04-19 2019-11-29 华为技术有限公司 更新htm用户异常中止元数据
CN108156166A (zh) * 2017-12-29 2018-06-12 百度在线网络技术(北京)有限公司 异常访问识别和接入控制方法及装置
CN110602021A (zh) * 2018-06-12 2019-12-20 蓝盾信息安全技术有限公司 一种基于http请求行为与业务流程相结合的安全风险值评估方法
CN109150871A (zh) * 2018-08-14 2019-01-04 阿里巴巴集团控股有限公司 安全检测方法、装置、电子设备及计算机可读存储介质
CN109561097A (zh) * 2018-12-17 2019-04-02 泰康保险集团股份有限公司 结构化查询语言注入安全漏洞检测方法、装置、设备及存储介质
CN110113341A (zh) * 2019-05-09 2019-08-09 极智(上海)企业管理咨询有限公司 一种注入攻击检测方法、装置、计算机设备及存储介质

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
An Approach for SQL Injection Detection Based on Behavior and Response Analysis;Zeli Xiao;《2017 9th IEEE International Conference on Communication Software and Networks》;20171221;第1437-1442页 *
Proposed Method for SQL Injection Detection and its Prevention;Ashish Kumar;《International Journal of Engineering & Technology》;20191128;第7卷(第2.6期);第213-216页 *
The Study of APT Security Detection Architecture and Key Technologies;Yiwen Liu;《Journal of Security and Safety Technology》;20150916;第3卷(第3期);第24-29页 *
Web 访问日志安全分析技术研究;张峰;《背景邮电大学学报》;20140430;第37卷(第2期);第93-98页 *
基于改进的模式匹配算法的SQL注入攻击防范技术;张生财;《科技创新与应用》;20171225;第68-69页 *
基于时问的SQL注入分析与防范;赵瑞颖;《信息网络安全》;20100326;第56-57页 *
基于时间的 SQL注入研究;blacksunny;《https://www.cnblogs.com/blacksunny/p/8056101.html》;20171218;文章全文 *

Also Published As

Publication number Publication date
CN111079148A (zh) 2020-04-28

Similar Documents

Publication Publication Date Title
CN108170859B (zh) 语音查询的方法、装置、存储介质及终端设备
JP7127106B2 (ja) 質問応答処理、言語モデルの訓練方法、装置、機器および記憶媒体
CN106033393B (zh) 一种应用程序测试方法及系统以及移动终端
CN106844217A (zh) 对应用的控件进行埋点的方法及装置、可读存储介质
CN105183630B (zh) 应用程序测试方法及装置
US9575996B2 (en) Emotion image recommendation system and method thereof
CN105487970B (zh) 一种界面展示方法及装置
CN112116059A (zh) 一种车辆故障诊断方法、装置、设备及存储介质
CN112036153B (zh) 工单纠错方法、装置、计算机可读存储介质和计算机设备
US11282514B2 (en) Method and apparatus for recognizing voice
CN110990627B (zh) 一种知识图谱构建的方法、装置、电子设备及介质
CN105095464B (zh) 一种检索系统的检测方法和装置
CN116611074A (zh) 安全信息审查方法、设备、存储介质及装置
CN106557773B (zh) 一种车辆故障诊断的方法及系统
CN112769840A (zh) 一种基于强化学习Dyna框架的网络攻击行为识别方法
CN111079148B (zh) 一种sql注入攻击的检测方法、装置、设备及存储介质
CN105786851A (zh) 问答知识库的构建方法、提供搜索的方法及装置
CN104657248A (zh) Java线程堆栈分析方法及系统
CN109389972B (zh) 语义云功能的质量测试方法、装置、存储介质和设备
CN115294947B (zh) 音频数据处理方法、装置、电子设备及介质
GB2618429A (en) Natural language analysis of a command line using a machine learning model to generate a natural language description of the command line
CN105975389A (zh) 一种进程数据提取方法及装置
CN110262672A (zh) 建议候选列表生成方法及装置
CN113628077B (zh) 生成不重复考题的方法、终端及可读存储介质
CN109491900A (zh) 接口测试方法、装置、电子设备及计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant