首页 / 专利库 / 编辑中 / 时间线 / 一种SQL注入攻击的检测方法、装置、设备及存储介质

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

阅读:1073发布:2020-05-30

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

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

说明书全文

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

技术领域

[0001] 本发明涉及攻击检测领域,特别涉及一种SQL注入攻击的检测方法、装置、设备及计算机可读存储介质。

背景技术

[0002] SQL注入攻击是攻击者对数据库进行攻击的最常用手段之一。攻击者通过构建SQL语法里的一些组合(SQL语句)作为参数传入Web应用程序,并通过执行SQL语句进而执行所要的操作,实现对数据库的攻击。目前,检测SQL注入攻击的方法,一般是先利用关键字设置匹配规则,然后通过匹配规则对各SQL语句进行匹配,匹配得出表示SQL注入攻击的SQL语句,再根据各表示SQL注入攻击的SQL语句确定出SQL注入攻击的注入过程。
[0003] 但是,按照现有技术的方法,若设置的匹配规则比较复杂,即,匹配规则中的关键字较多,由于只有在SQL语句匹配到匹配规则中的全部关键字时,才认定该SQL语句是表示SQL注入攻击的SQL语句,这样将造成SQL注入攻击的漏检,并且,攻击者会依据匹配规则中的关键字避开规则,进一步造成漏检;或者,若设置的匹配规则比较简单,即,匹配规则中的关键字较少,但是由于在正常操作数据库时也会使用很多关键字,因此这样将难以排查出SQL注入攻击,并且将影响数据库的正常使用。
[0004] 因此,如何在不影响数据库的正常使用的基础上,全面准确地检测出SQL注入攻击的注入过程,是本领域技术人员目前需要解决的技术问题。

发明内容

[0005] 有鉴于此,本发明的目的在于提供一种SQL注入攻击的检测方法,能够在不影响数据库的正常使用的基础上,全面准确地检测出SQL注入攻击的注入过程;本发明的另一目的是提供一种SQL注入攻击的检测装置、设备及计算机可读存储介质,均具有上述有益效果。
[0006] 为解决上述技术问题,本发明提供一种SQL注入攻击的检测方法,包括:
[0007] 获取目标数据库的数据库访问信息;其中,所述数据库访问信息包括SQL语句;
[0008] 利用第一等级的匹配规则对所述SQL语句进行预匹配,确定出匹配成功的第一SQL语句,并确定出与所述第一SQL语句对应的SQL注入攻击的注入方和访问时间;
[0009] 根据所述访问时间得出扩大时间范围的第一时间段,并从所述数据库访问信息中筛选出所述注入方在所述第一时间段的第二SQL语句;
[0010] 利用第二等级的匹配规则对所述第二SQL语句进行全匹配,并根据匹配到的目标SQL语句确定出所述SQL注入攻击的SQL注入过程;
[0011] 其中,所述第二等级的匹配规则的复杂程度低于所述第一等级的匹配规则的复杂程度。
[0012] 优选地,所述根据所述访问时间得出扩大时间范围的第一时间段,并从所述数据库访问信息中筛选出所述注入方在所述第一时间段的第二SQL语句过程,具体包括:
[0013] 设置扩大时间范围的时间窗
[0014] 以所述访问时间为基准,将所述访问时间的前向和后向的时间窗设置为所述第一时间段;
[0015] 从所述数据库访问信息中筛选出所述注入方在所述第一时间段的所述第二SQL语句。
[0016] 优选地,在所述利用第二等级的匹配规则对所述第二SQL语句进行全匹配,并根据匹配到的目标SQL语句确定出所述SQL注入攻击的SQL注入过程之后,进一步包括:
[0017] 以所述第一时间段为基准,利用所述第一时间段的前向和后向的时间窗更新所述第一时间段,并进入所述从所述数据库访问信息中筛选出所述注入方在所述第一时间段的第二SQL语句的步骤。
[0018] 优选地,所述第一等级的匹配规则和所述第二等级的匹配规则的设置方法具体包括:
[0019] 利用关键字的组合设置匹配规则;
[0020] 根据所述匹配规则的复杂程度,将所述匹配规则划分为对应的等级。
[0021] 优选地,在所述利用第二等级的匹配规则对所述第二SQL语句进行全匹配,并根据匹配到的目标SQL语句确定出所述SQL注入攻击的SQL注入过程之后,进一步包括:
[0022] 获取全段时间范围的全段数据库访问信息;
[0023] 利用所述全段数据库访问信息设置SQL线路图;
[0024] 在所述SQL线路图上标注出确定出的所述SQL注入过程。
[0025] 优选地,所述数据库访问信息包括:SIP和/或DIP和/或Dport和/或Sport。
[0026] 优选地,在所述利用第二等级的匹配规则对所述第二SQL语句进行全匹配,并根据匹配到的目标SQL语句确定出所述SQL注入攻击的SQL注入过程之后,进一步包括:
[0027] 发出对应的提示信息。
[0028] 为解决上述技术问题,本发明还提供一种SQL注入攻击的检测装置,包括:
[0029] 第一获取模,用于获取目标数据库的数据库访问信息;其中,所述数据库访问信息包括SQL语句;
[0030] 第一匹配模块,用于利用第一等级的匹配规则对所述SQL语句进行预匹配,确定出匹配成功的第一SQL语句,并确定出与所述第一SQL语句对应的SQL注入攻击的注入方和访问时间;
[0031] 第二获取模块,用于根据所述访问时间得出扩大时间范围的第一时间段,并从所述数据库访问信息中筛选出所述注入方在所述第一时间段的第二SQL语句;
[0032] 第二匹配模块,用于利用第二等级的匹配规则对所述第二SQL语句进行全匹配,并根据匹配到的目标SQL语句确定出所述SQL注入攻击的SQL注入过程;
[0033] 其中,所述第二等级的匹配规则的复杂程度低于所述第一等级的匹配规则的复杂程度。
[0034] 优选地,所述第二获取模块具体包括:
[0035] 第一设置子模块,用于设置扩大时间范围的时间窗;
[0036] 第二设置子模块,用于以SQL语句的第一访问时间为基准,将访问时间的前向和后向的时间窗设置为第一时间段;
[0037] 筛选子模块,用于从所述数据库访问信息中筛选出所述注入方在所述第一时间段的所述第二SQL语句。
[0038] 优选地,进一步包括:
[0039] 第三设置子模块,用于以所述第一时间段为基准,利用所述第一时间段的前向和后向的时间窗更新所述第一时间段,并调用筛选子模块。
[0040] 优选地,进一步包括:
[0041] 规则设置模块,用于利用关键字的组合设置匹配规则;
[0042] 等级划分模块,用于根据匹配规则的复杂程度,将匹配规则划分为对应的等级。
[0043] 优选地,进一步包括:
[0044] 信息获取模块,用于获取全段时间范围的全段数据库访问信息;
[0045] 线路图设置模块,用于利用全段数据库访问信息设置SQL线路图;
[0046] 标注模块,用于在所述SQL线路图上标注出确定出的所述SQL注入过程。
[0047] 优选地,进一步包括:
[0048] 提示模块,用于在所述利用第二等级的匹配规则对所述第二SQL语句进行全匹配,并根据匹配到的目标SQL语句确定出所述SQL注入攻击的SQL注入过程之后,发出对应的提示信息。
[0049] 为解决上述技术问题,本发明还提供一种SQL注入攻击的检测设备,包括:
[0050] 存储器,用于存储计算机程序
[0051] 处理器,用于执行所述计算机程序时实现上述任一种SQL注入攻击的检测方法的步骤。
[0052] 为解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种SQL注入攻击的检测方法的步骤。
[0053] 本发明提供的一种SQL注入攻击的检测方法,在获取目标数据库的数据库访问信息之后,利用复杂程度较高的第一等级的匹配规则对数据库访问信息中的SQL语句进行预匹配,确定出匹配成功的第一SQL语句,并确定出与第一SQL语句对应的SQL注入攻击的注入方和访问时间;然后根据访问时间得出扩大时间范围的第一时间段,并从数据库访问信息中筛选出注入方在第一时间段的第二SQL语句;再利用复杂程度较低的第二等级的匹配规则对第二SQL语句进行全匹配,并根据匹配到的目标SQL语句确定出SQL注入攻击的SQL注入过程。本方法通过复杂程度较高的第一等级的匹配规则对数据库访问信息中的SQL语句进行预匹配,能够准确地定位出SQL注入攻击的注入方和注入时间;利用复杂程度较低的第二等级的匹配规则对第二SQL语句进行全匹配,能够全面地检测出SQL注入攻击的注入过程;并且,是对第一时间段中的第二SQL语句进行全匹配,因此能够相对降低对目标数据库的正常使用的影响。
[0054] 为解决上述技术问题,本发明还提供了一种SQL注入攻击的检测装置、设备及计算机可读存储介质,均具有上述有益效果。附图说明
[0055] 为了更清楚地说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0056] 图1为本发明实施例提供的一种SQL注入攻击的检测方法的流程图
[0057] 图2为本发明实施例提供的一种SQL注入攻击的检测装置的结构图;
[0058] 图3为本发明实施例提供的一种SQL注入攻击的检测设备的结构图。

具体实施方式

[0059] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0060] 本发明实施例的核心是提供一种SQL注入攻击的检测方法,能够在不影响数据库的正常使用的基础上,全面准确地检测出SQL注入攻击的注入过程;本发明的另一核心是提供一种SQL注入攻击的检测装置、设备及计算机可读存储介质,均具有上述有益效果。
[0061] 为了使本领域技术人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
[0062] 图1为本发明实施例提供的一种SQL注入攻击的检测方法的流程图。如图1所示,一种SQL注入攻击的检测方法包括:
[0063] S10:获取目标数据库的数据库访问信息;其中,数据库访问信息包括SQL语句。
[0064] 具体的,在本实施例中,首先需要获取目标数据库的IP地址和端口号,并依据IP地址和端口号获取目标数据库的流量信息,并通过解析流量信息,以获取目标数据库的数据库访问信息。需要说明的是,在本实施例中,数据库访问信息至少包括SQL语句,对于数据库访问信息中的其他信息,本实施例对此不做具体的限定。
[0065] S20:利用第一等级的匹配规则对SQL语句进行预匹配,确定出匹配成功的第一SQL语句,并确定出与第一SQL语句对应的SQL注入攻击的注入方和访问时间。
[0066] 具体的,利用预先设置的第一等级的匹配规则对SQL语句进行预匹配,在匹配规则中的关键字与SQL语句中的关键字相同的情况下,判定第一等级的匹配规则与SQL语句匹配成功。需要说明的是,本实施例为了方便表述,将该匹配成功的SQL语句称为第一SQL语句。进而,通过解析第一SQL语句,确定出SQL注入攻击的注入方和访问时间。其中,注入方也就是进行SQL注入攻击的攻击方,访问时间即该SQL语句对应的时间。
[0067] 需要说明的是,在实际操作中,可以设置多个第一等级的匹配规则,也即,第一等级对应有多个匹配规则,在对SQL语句进行匹配时,利用第一等级中的各匹配规则分别与SQL语句进行匹配,并且只要存在与SQL语句匹配的匹配规则,则表示利用第一等级的匹配规则匹配SQL语句成功。
[0068] S30:根据访问时间得出扩大时间范围的第一时间段,并从数据库访问信息中筛选出注入方在第一时间段的第二SQL语句。
[0069] 具体的,在得出第一SQL语句并确定出该第一SQL语句所对应的访问时间之后,进一步得出与该访问时间对应的第一时间段。可以理解的是,访问时间是一个时间点,基于该时间点,扩大时间范围,得到对应的第一时间段,第一时间段指的是一段时间。需要说明的是,本实施例对扩大时间范围的扩大程度不做限定,即,对第一时间段的具体时长不做限定。在得出第一时间段之后,从数据库访问信息中筛选出访问对象为确定出的注入方,访问时间在第一时间段中的SQL语句,即,得出第二SQL语句。
[0070] S40:利用第二等级的匹配规则对第二SQL语句进行全匹配,并根据匹配到的目标SQL语句确定出SQL注入攻击的SQL注入过程;
[0071] 其中,第二等级的匹配规则的复杂程度低于第一等级的匹配规则的复杂程度。
[0072] 具体的,在得出第二SQL语句之后,利用第二等级的匹配规则对第二SQL语句进行全匹配操作,利用据匹配成功的目标SQL语句,根据注入方的SQL注入操作方式以及操作对象等信息,确定出SQL注入攻击的注入过程。
[0073] 需要说明的是,与第一等级的匹配规则类似的,第二等级中也包括多个匹配规则,并且第二等级的匹配规则相较于第一等级的匹配规则来说复杂程度低,因此,SQL语句更容易与第二等级中的匹配规则匹配成功。
[0074] 本发明实施例提供的一种SQL注入攻击的检测方法,在获取目标数据库的数据库访问信息之后,利用复杂程度较高的第一等级的匹配规则对数据库访问信息中的SQL语句进行预匹配,确定出匹配成功的第一SQL语句,并确定出与第一SQL语句对应的SQL注入攻击的注入方和访问时间;然后根据访问时间得出扩大时间范围的第一时间段,并从数据库访问信息中筛选出注入方在第一时间段的第二SQL语句;再利用复杂程度较低的第二等级的匹配规则对第二SQL语句进行全匹配,并根据匹配到的目标SQL语句确定出SQL注入攻击的SQL注入过程。本方法通过复杂程度较高的第一等级的匹配规则对数据库访问信息中的SQL语句进行预匹配,能够准确地定位出SQL注入攻击的注入方和注入时间;利用复杂程度较低的第二等级的匹配规则对第二SQL语句进行全匹配,能够全面地检测出SQL注入攻击的注入过程;并且,是对第一时间段中的第二SQL语句进行全匹配,因此能够相对降低对目标数据库的正常使用的影响。
[0075] 在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例中,根据访问时间得出扩大时间范围的第一时间段,并从数据库访问信息中筛选出注入方在第一时间段的第二SQL语句过程,具体包括:
[0076] 设置扩大时间范围的时间窗;
[0077] 以访问时间为基准,将访问时间的前向和后向的时间窗设置为第一时间段;
[0078] 从数据库访问信息中筛选出注入方在第一时间段的第二SQL语句。
[0079] 具体的,首先根据实际需求设置时间窗,根据时间窗的大小得出扩大的时间范围的程度;其中,时间窗越大,扩大的时间范围越大,反之亦然。然后,根据第一SQL语句确定出对应的访问时间,并以访问时间为基准,将访问时间之前的时间窗对应的时间以及访问时间之后的时间窗对应的时间设置为第一时间段。换句话说,在本实施例中,第一时间段具体包括两个时间段,即,访问时间之前的时间窗的时间和访问时间之后的时间窗的时间。最后,根据预先获取到的目标数据库的数据库访问信息对应的访问时间,从数据库访问信息中筛选出注入对象为注入方,访问时间在第一时间段内的SQL语句,得到第二SQL语句。
[0080] 可见,按照本实施例的方式确定出第一时间段,该第一时间段分布在注入方的访问时间的前后,使得得出的第二SQL语句的时间分布更均衡,避免后续根据目标SQL语句确定SQL注入攻击的片面性。
[0081] 作为优选的实施方式,本实施例在利用第二等级的匹配规则对第二SQL语句进行全匹配,并根据匹配到的目标SQL语句确定出SQL注入攻击的SQL注入过程之后,进一步包括:
[0082] 以第一时间段为基准,利用第一时间段的前向和后向的时间窗更新第一时间段,并进入从数据库访问信息中筛选出注入方在第一时间段的第二SQL语句的步骤。
[0083] 具体的,在实施例中,是在利用第二等级的匹配规则匹配第二SQL语句,得出目标SQL语句之后,进一步以第一时间段为基准,利用第一时间段的前向和后向的时间窗得出新的时间段,并利用该新的时间段更新第一时间段;再从数据库访问信息中筛选出更新后的第一时间段对应的第二SQL语句,以便继续利用第二等级的匹配规则对更新的第二SQL语句进行全匹配,从而逐步扩大筛选注入方的SQL语句的时间范围。
[0084] 此处,以具体的实例来进行解释:假设第一访问时间为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],依次类推。
[0085] 在实际操作中,可以设置迭代更新第一时间段的过程:
[0086] t01=T+(n-1)*t;
[0087] t1=T+n*t;
[0088] t02=T-(n-1)*t;
[0089] t2=T-n*t;
[0090] 第一时间段为[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。
[0091] 也就是说,在本实施例中,每次利用第二等级的匹配规则匹配到目标SQL语句时,即,任何一条第二SQL语句与第二等级的匹配规则中的任何一条匹配规则匹配成功,则需要扩大时间范围。即,以第一时间段为基准,以时间窗为长度,分别向前和向后得出新的时间段,并将新的时间段作为更新的第一时间段,再利用第二等级的匹配规则对更新后的第一时间段对应的第二SQL语句进行全匹配,直至第二SQL语句中不存在与第二等级的匹配规则相匹配的目标SQL语句,不再扩大时间范围,匹配结束。
[0092] 可见,本实施例通过在利用第二等级的匹配规则匹配到目标SQL语句后,迭代扩大时间范围进行全匹配,能够更全面地检测出表示SQL注入攻击的目标SQL语句,从而更全面地得出SQL注入攻击的注入过程。
[0093] 作为优选的实施方式,本实施例中的数据库访问信息包括:SIP和/或DIP和/或Dport和/或Sport。
[0094] 具体的,在本实施例中,通过获取目标数据库的流量,得到目标数据库的SIP和/或DIP和/或Dport和/或Sport;其中,SIP表示被访问设备的设备信息;DIP表示访问设备的设备信息;Sport表示访问设备的端口,Dport表示被访问设备的端口。对应的,在匹配得出目标SQL语句后,可以依据目标SQL语句以及与目标SQL语句对应的SIP和/或DIP和/或Dport和/或Spor等数据库访问信息,分析得出SQL注入攻击的注入过程。
[0095] 本实施例通过利用SIP和/或DIP和/或Dport和/或Sport以及SQL语句分析得出SQL注入攻击的注入过程,能够使得分析得出的注入攻击的注入过程更加全面。
[0096] 在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例中,第一等级的匹配规则和第二等级的匹配规则的设置方法具体包括:
[0097] 利用关键字的组合设置匹配规则;
[0098] 根据匹配规则的复杂程度,将匹配规则划分为对应的等级。
[0099] 在本实施例中,首先利用各不同的组合方式,如在一个匹配规则中关键字的数量,关键字的匹配原则,将各关键字进行组合,得出匹配规则。然后,根据匹配规则的复杂程度,即匹配规则中的关键字的组合方式与SQL语句匹配的难易程度,将匹配规则划分为对应的等级,即第一等级和第二等级。具体的,本实施例优选地将各匹配规则存储于数据库表中。
[0100] 需要说明的是,在实际操作中,可以进一步为各匹配规则设置规则ID、规则名等,以便于查看各匹配规则。另外,可以先为匹配规则设置复杂程度,再根据匹配规则的复杂程度将匹配规则划分为对应的等级。也就是说,可以设置数量多于等级数的复杂程度的等级,如,等级有两种,复杂程度可分为1-5级,程度值越高,匹配规则越复杂。然后,将复杂程度为4-5的匹配规则设置为第一等级,并将复杂程度为1-3的匹配规则设置为第二等级;并且可以根据实际需求调整等级所对应的复杂程度,如将复杂程度1-2设置为第二等级。
[0101] 可见,按照本实施例的方法设置不同等级的匹配规则,操作方式便捷。
[0102] 在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例在利用第二等级的匹配规则对第二SQL语句进行全匹配,并根据匹配到的目标SQL语句确定出SQL注入攻击的SQL注入过程之后,进一步包括:
[0103] 获取全段时间范围的全段数据库访问信息;
[0104] 利用全段数据库访问信息设置SQL线路图;
[0105] 在SQL线路图上标注出确定出的SQL注入过程。
[0106] 具体的,首先从预先获取的数据库访问信息中筛选出时间范围在全段时间范围内的信息,即得到全段数据库访问信息;其中,全段时间指的是所有设置的第一时间段,即,时间范围为[第一访问时间-n*t,第一访问时间+n*t]的时间,其中,n表示第二等级的匹配规则匹配到第二SQL语句的次数,t表示时间窗。然后,利用全段数据库访问信息中的SQL语句中的操作类型以及操作对象,按照时间顺序设置SQL线路图。最后,根据匹配到的目标SQL语句,在该SQL线路图上进行标注,从而得出SQL注入攻击的过程示意图。需要说明的是,本实施例对在SQL线路图上进行标注的方式不做限定,例如,可以是通过颜色标记将匹配到的目标SQL语句对应的时间点、操作方式以及操作对象在SQL线路图上进行标记。
[0107] 可见,本实施例通过进一步获取全段时间范围的全段数据库访问信息,并利用全段数据库访问信息设置SQL线路图;然后在SQL线路图上标注出匹配成功的目标SQL语句对应的操作方式以及操作对象,可以更便于用户查看SQL注入攻击的情况,进一步提升用户的使用体验。
[0108] 需要说明的是,在其他的实施方式中,可以直接利用匹配出的目标SQL语句设置SQL注入攻击线路图,从而更便于用户查看注入攻击的过程。
[0109] 在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例在利用第二等级的匹配规则对第二SQL语句进行全匹配,并根据匹配到的目标SQL语句确定出SQL注入攻击的SQL注入过程之后,进一步包括:
[0110] 发出对应的提示信息。
[0111] 具体的,本实施例是在根据匹配到的目标SQL语句确定出SQL注入攻击的SQL注入过程之后,发出对应的提示信息。并且,在实际操作中,若存在多个注入方对应的注入攻击过程,则可以分别对各检测出的注入过程进行提示。
[0112] 需要说明的是,本实施例对发出提示信息的具体方式不做限定,例如可以是在确定出各SQL注入攻击的注入过程之后,触发蜂鸣器/指示灯/显示器等提示装置发出对应的提示信息,如蜂鸣音/闪烁灯/显示文字或图像等,以直观地提示用户当前的检测情况,从而能够进一步提高用户的使用体验。
[0113] 上文对于本发明提供的一种SQL注入攻击的检测方法的实施例进行了详细的描述,本发明还提供了一种与该方法对应的SQL注入攻击的检测装置、设备及计算机可读存储介质,由于装置、设备及计算机可读存储介质部分的实施例与方法部分的实施例相互照应,因此装置、设备及计算机可读存储介质部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
[0114] 图2为本发明实施例提供的一种SQL注入攻击的检测装置的结构图,如图2所示,一种SQL注入攻击的检测装置包括:
[0115] 第一获取模块21,用于获取目标数据库的数据库访问信息;其中,数据库访问信息包括SQL语句;
[0116] 第一匹配模块22,用于利用第一等级的匹配规则对SQL语句进行预匹配,确定出匹配成功的第一SQL语句,并确定出与第一SQL语句对应的SQL注入攻击的注入方和访问时间;
[0117] 第二获取模块23,用于根据访问时间得出扩大时间范围的第一时间段,并从数据库访问信息中筛选出注入方在第一时间段的第二SQL语句;
[0118] 第二匹配模块24,用于利用第二等级的匹配规则对第二SQL语句进行全匹配,并根据匹配到的目标SQL语句确定出SQL注入攻击的SQL注入过程;
[0119] 其中,第二等级的匹配规则的复杂程度低于第一等级的匹配规则的复杂程度。
[0120] 本发明实施例提供的SQL注入攻击的检测装置,具有上述SQL注入攻击的检测方法的有益效果。
[0121] 作为优选的实施方式,第二获取模块23具体包括:
[0122] 第一设置子模块,用于设置扩大时间范围的时间窗;
[0123] 第二设置子模块,用于以SQL语句的第一访问时间为基准,将访问时间的前向和后向的时间窗设置为第一时间段;
[0124] 筛选子模块,用于从数据库访问信息中筛选出注入方在第一时间段的第二SQL语句。
[0125] 作为优选的实施方式,进一步包括:
[0126] 第三设置子模块,用于以第一时间段为基准,利用第一时间段的前向和后向的时间窗更新第一时间段,并调用筛选子模块。
[0127] 作为优选的实施方式,进一步包括:
[0128] 规则设置模块,用于利用关键字的组合设置匹配规则;
[0129] 等级划分模块,用于根据匹配规则的复杂程度,将匹配规则划分为对应的等级。
[0130] 作为优选的实施方式,进一步包括:
[0131] 信息获取模块,用于获取全段时间范围的全段数据库访问信息;
[0132] 线路图设置模块,用于利用全段数据库访问信息设置SQL线路图;
[0133] 标注模块,用于在SQL线路图上标注出确定出的SQL注入过程。
[0134] 作为优选的实施方式,进一步包括:
[0135] 提示模块,用于在利用第二等级的匹配规则对第二SQL语句进行全匹配,并根据匹配到的目标SQL语句确定出SQL注入攻击的SQL注入过程之后,发出对应的提示信息。
[0136] 图3为本发明实施例提供的一种SQL注入攻击的检测设备的结构图,如图3所示,一种SQL注入攻击的检测设备包括:
[0137] 存储器31,用于存储计算机程序;
[0138] 处理器32,用于执行计算机程序时实现如上述SQL注入攻击的检测方法的步骤。
[0139] 本发明实施例提供的SQL注入攻击的检测设备,具有上述SQL注入攻击的检测方法的有益效果。
[0140] 为解决上述技术问题,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述SQL注入攻击的检测方法的步骤。
[0141] 本发明实施例提供的计算机可读存储介质,具有上述SQL注入攻击的检测方法的有益效果。
[0142] 以上对本发明所提供的SQL注入攻击的检测方法、装置、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
[0143] 说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0144] 专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈