CN113852638A - 一种攻击检测方法、装置、设备及存储介质 - Google Patents
一种攻击检测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113852638A CN113852638A CN202111146163.7A CN202111146163A CN113852638A CN 113852638 A CN113852638 A CN 113852638A CN 202111146163 A CN202111146163 A CN 202111146163A CN 113852638 A CN113852638 A CN 113852638A
- Authority
- CN
- China
- Prior art keywords
- type
- database
- target
- type information
- information
- 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.)
- Granted
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 128
- 238000002347 injection Methods 0.000 claims abstract description 53
- 239000007924 injection Substances 0.000 claims abstract description 53
- 238000000034 method Methods 0.000 claims abstract description 26
- 238000004590 computer program Methods 0.000 claims description 11
- 230000000694 effects Effects 0.000 abstract description 2
- 239000000243 solution Substances 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012550 audit Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种攻击检测方法,包括:获取请求流量,确定请求流量所访问的目标数据库类型,根据目标数据库类型确定对应的目标SQL注入检测方式,通过目标SQL注入检测方式对请求流量进行检测。可见,在本方案中,不同类型的数据库具有不同的SQL注入检测方式,因此,本方案并不需要使用全部的SQL注入检测方式对请求流量进行检测,而是只通过与访问的数据库类型对应的目标SQL注入检测方式对请求流量进行检测,提升了检测准确度,降低误报率,大幅提升了设备性能;本发明还公开了一种攻击检测装置、设备及存储介质,同样能实现上述技术效果。
Description
技术领域
本发明涉及网络安全技术领域,更具体地说,涉及一种攻击检测方法、装置、设备及存储介质。
背景技术
SQL(Structured Query Language,结构化查询语言)注入是指Web(World WideWeb,全球广域网)应用程序对用户输入数据的合法性没有判断或过滤不严,使得攻击者可以在Web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
常见的SQL注入检测方法包括基于规则、语法引擎、语义引擎等方法,但是由于数据库存在多种类型,所以目前的SQL注入检测方法需要针对不同类型数据库添加对应的规则或者引擎,并通过全规则、全引擎的方式进行SQL注入检测,从而浪费了设备的大量性能,增加了检测的误报率。
发明内容
本发明的目的在于提供一种攻击检测方法、装置、设备及存储介质,以提高SQL注入检测的准确度,降低误报率。
为实现上述目的,本发明提供的一种攻击检测方法,包括:
获取请求流量;
确定所述请求流量所访问的目标数据库类型;
根据所述目标数据库类型确定对应的目标SQL注入检测方式;
通过所述目标SQL注入检测方式对所述请求流量进行检测。
其中,所述确定所述目标服务器的目标数据库类型,包括:
确定所述请求流量所访问的目标服务器;
获取所述目标服务器的数据库端口号、数据库配置文件、流量数据中的至少一者;
根据所述数据库端口号、所述数据库配置文件、所述流量数据中的至少一者确定目标数据库类型。
其中,所述根据所述数据库端口号、所述数据库配置文件、所述流量数据中的至少一者确定目标数据库类型,包括:
根据不同类型数据库与数据库端口号之间的对应关系,确定与所述目标服务器的数据库端口号对应的第一类型信息;和/或,
对所述数据库配置文件的内容进行识别,确定第二类型信息;和/或,
识别所述流量数据中的数据库操作语句,根据所述数据库操作语句确定第三类型信息;和/或,
识别所述流量数据中的网站搭配信息,根据所述网站搭配信息确定第四类型信息;和/或,
识别所述流量数据中的名称信息,根据所述名称信息确定第五类型信息;所述名称信息包括数据库名称、表名、列名中的至少一者;
根据所述第一类型信息、所述第二类型信息、所述第三类型信息、所述第四类型信息、所述第五类型信息中的至少一者确定目标数据库类型。
其中,在根据所述第一类型信息、所述第二类型信息、所述第三类型信息、所述第四类型信息、所述第五类型信息中的至少两者确定目标数据库类型的情况下,包括:
确定所述第一类型信息、所述第二类型信息、所述第三类型信息、所述第四类型信息、所述第五类型信息中至少两者对应的优先级;
若优先级最高的类型信息为有效类型,则将优先级最高的类型作为所述目标数据库类型;
若优先级最高的类型信息为无效类型,则将除所述优先级最高的类型之外的其他有效类型,均作为所述目标数据库类型。
其中,所述根据所述第一类型信息、所述第二类型信息、所述第三类型信息、所述第四类型信息、所述第五类型信息中的至少一者确定目标数据库类型,包括:
确定所述第一类型信息、所述第二类型信息、所述第三类型信息、所述第四类型信息、所述第五类型信息中至少一者的有效类型;
将所有有效类型均作为所述目标数据库类型。
其中,根据所述数据库端口号、所述流量数据、所述数据库配置文件中的至少一者确定目标数据库类型之后,还包括:
利用所述目标服务器与所述目标数据库类型对数据库类型表进行更新;所述数据库类型表中存储了不同服务器与数据库类型之间的对应关系。
其中,所述获取所述目标服务器的数据库端口号、数据库配置文件及流量数据之前,还包括:
若数据库类型表中存储有与所述目标服务器对应的数据库类型,则将与所述目标服务器对应的数据库类型作为目标数据库类型;
若数据库类型表中未存储与所述目标服务器对应的数据库类型,则继续执行所述获取所述目标服务器的数据库端口号、数据库配置文件及流量数据中的至少一者的步骤。
为实现上述目的,本发明进一步提供一种攻击检测装置,包括:
获取模块,用于获取请求流量;
第一确定模块,用于确定所述请求流量所访问的目标数据库类型;
第二确定模块,用于根据所述目标数据库类型确定对应的目标SQL注入检测方式;
检测模块,用于通过所述目标SQL注入检测方式对所述请求流量进行检测。
为实现上述目的,本发明进一步提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述攻击检测方法的步骤。
为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述攻击检测方法的步骤。
通过以上方案可知,本发明实施例提供的一种攻击检测方法,包括:获取请求流量,确定请求流量所访问的目标数据库类型,根据目标数据库类型确定对应的目标SQL注入检测方式,通过目标SQL注入检测方式对请求流量进行检测。可见,在本方案中,不同类型的数据库具有不同的SQL注入检测方式,因此,本方案并不需要使用全部的SQL注入检测方式对请求流量进行检测,而是只通过与访问的数据库类型对应的目标SQL注入检测方式对请求流量进行检测,提升了检测准确度,降低误报率,大幅提升了设备性能;本发明还公开了一种攻击检测装置、设备及存储介质,同样能实现上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种攻击检测方法流程示意图;
图2为本发明实施例公开的另一种攻击检测方法流程示意图;
图3a为本发明实施例公开的一种数据库判定示意图;
图3b为本发明实施例公开的一种SQL注入检测流程示意图;
图4为本发明实施例公开的一种攻击检测装置结构示意图;
图5为本发明实施例公开的一种电子产品结构示意图。
具体实施方式
目前,SQL注入是最普遍的Web应用安全漏洞之一,针对这类漏洞的SQL注入检测方法主要有以下两种:
1、基于规则的检测方法:通常是指基于对请求包审计危险特征,如通过规则进行匹配,拦截各种数据库的SQL注入语句,而每种数据库又存在各种各样的攻击,此时安全产品就会编写大量的规则进行检测。其中,请求包是指从客户端到服务器端的请求消息。包括:请求行,请求头,请求体等。
2、基于语法、语义的检测方法:通常是指基于攻击payload审计,包括是否符合语法、是否存在危险函数、是否存在危险的语法结构、危险的语义动作等。语法引擎或者语义引擎凭借其对数据库语言的精准解析往往能够拥有比基于规则检测的方案更高的检出以及更低的误报。
其中:payload是专门用来验证、利用漏洞的代码片段,该片段具有攻击行为或者有对漏洞是否存在的验证行为。语法引擎是在词法分析的基础上将单词序列组合成各类语法短语,如“程序”、“语句”、“表达式”等等,语法分析程序判断源程序在结构上是否正确,源程序的结构由上下文无关文法描述,利用语法分析进行攻击检测的程序称为语法引擎。语义引擎是在语法分析的基础上,对结构上正确的源程序进行上下文有关性质的检查和类型检查被称为语义分析。利用语义分析进行攻击检测的程序称为语义引擎。
进一步,由于目前存在多种类型的数据库,如MySQL(关系型数据库管理系统)、MSSQL(SQLServer数据库服务器)、Oracle(关系数据库管理系统)等,但是,不管是使用上述的规则还是语法引擎进行SQL注入检测,安全厂商都需要添加与各种数据库对应的规则或语法引擎。然而,客户通常只会使用一种或者少量几种数据库。因此,目前的检测方法中,规则或语法引擎都存在一定的冗余。这不仅浪费了大量的性能,同时也增加了误报概率。
因此在本方案中,提供一种攻击检测方法、装置、设备及存储介质,以提高SQL注入检测的准确度,降低误报率。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,为本发明实施例公开的一种攻击检测方法流程示意图,通过图1可以看出,本方案具体包括如下步骤:
S101、获取请求流量;
需要说明的是,本方案所述的攻击检测方法适用于Web攻击检测等场景,可应用于防火墙和安全态势感知等产品。本实施例获取的请求流量可以是访问任意服务器或者终端的流量,在此并不具体限定。
S102、确定请求流量所访问的目标数据库类型;
在本实施例中,获取请求流量后,需要确定该请求流量所访问的数据库类型。具体来说,该数据库类型可以是请求流量所访问的服务器内的数据库类型,也可以是请求流量所访问的终端内的数据库类型,在本实施例中,仅以该请求流量访问服务器为例进行说明,为了进行区分,本方案将请求流量所访问的服务器称为目标服务器,将目标服务器的数据库类型称为目标数据库类型。其中,该数据库类型具体可以为MySQL、MSSQL、Oracle中的任意一者,在此并不具体限定。并且,本实施例在确定目标服务器的目标数据库类型时,可以通过多种方式进行确定。如:可以根据预先设置的数据库类型表中进行查找,该数据库类型表中预先记载了不同目标服务器的数据库类型;还可以从访问目标服务器的流量中查找与数据库相关的特征数据,从而识别数据库类型;还可以主动从目标服务器中获取数据库相关内容,从而识别数据库类型,在本实施例中并不具体限定数据库类型的确定方式。
S103、根据目标数据库类型确定对应的目标SQL注入检测方式;
S104、通过目标SQL注入检测方式对请求流量进行检测。
在本实施例中,不同类型的数据库具有不同的SQL注入检测方式,每种类型的SQL注入检测方式中,只会通过与本类型相对应的规则和引擎对本类型的流量进行检测。如:若数据库类型为MySQL,则对应的检测方式为:MySQL注入检测方式,该MySQL注入检测方式中,仅包括对MySQL进行检测的规则和引擎;若数据库类型为MSSQL,则对应的检测方式为:MSSQL注入检测方式,该MSSQL注入检测方式中,仅包括对MSSQL进行检测的规则和引擎;若数据库类型为Oracle,则对应的检测方式为:Oracle注入检测方式,该Oracle注入检测方式中,仅包括对Oracle进行检测的规则和引擎。本实施例中与不同类型数据库对应的请求流量的检测方式,可以为基于规则的检测方式,也可以为基于语法、语义的检测方式等等,在此并不具体限定。
综上可见,若请求流量访问的数据库为MySQL,目前的检测方案中,会直接使用MySQL注入检测方式、MSSQL注入检测方式、Oracle注入检测方式等等共同对请求流量进行检测,不仅增加了检测时间,浪费大量性能,还会增加误报概率。因此在本实施例中,确定请求流量访问的目标服务器的目标数据库类型后,只会使用与目标数据库类型对应的检测方式对请求流量进行检测,从而提升了检测准确度,降低误报率,大幅提升了设备性能。
参见图2,为本发明实施例公开的另一种攻击检测方法流程示意图,通过图2可以看出,本方案具体包括如下步骤:
S201、获取请求流量;
S202、确定请求流量所访问的目标服务器;
S203、获取目标服务器的数据库端口号、数据库配置文件及流量数据中的至少一者;
S204、根据数据库端口号、数据库配置文件、流量数据中的至少一者确定目标数据库类型;
S205、根据目标数据库类型确定对应的目标SQL注入检测方式;
S206、通过目标SQL注入检测方式对请求流量进行检测。
在本实施例中,该请求流量具体为访问目标服务器的流量,本实施例确定目标服务器的数据库类型时,为了准确识别目标数据库类型,首先需要获取目标服务器的数据库端口号、数据库配置文件及流量数据中的至少一者,通过数据库端口号、数据库配置文件、流量数据中的至少一者确定目标数据库类型。本实施例仅以上述信息为例对数据库类型的确定方式进行说明,但不局限于上述信息。
具体来说,本申请可以通过主动和被动两种方式收集相关信息来识别数据库类型。其中,数据库端口号和数据库配置文件即为通过主动方式收集,流量数据是通过被动方式收集。在本实施例中,在收集数据库端口号时,可以通过对目标服务器主动发起端口扫描操作,从而获得数据库端口号,如:使用telnet命令等对目标服务器进行探测获得数据库端口号;并且,有些数据库端口号会在流量包中展示,因此还可以从与目标服务器通讯的流量包中识别,该流量包为访问目标服务器的请求流量。进一步,本方案还可以与服务器端结合,通过安全软件等方式对服务器端的数据库配置文件等进行采集,从而确定对应的数据库类型;本实施例获取的流量数据即为用户与目标服务器之间交互的所有流量,通过识别流量数据中的关键信息可以确定数据库类型。进一步,本实施例获取数据库端口号、流量数据和数据库配置文件后,需要通过如下方式确定目标数据库类型:
步骤一、根据不同类型数据库与数据库端口号之间的对应关系,确定与所述目标服务器的数据库端口号对应的第一类型信息;
具体来说,通常情况下,Oracle数据库默认端口号为1521,MySQL数据库默认端口号为3306,SQLServer数据库默认端口号为1433,postgreSQL数据库默认端口号5432,这些端口都是固定的,通常情况下一个服务器只会有一个这样的端口。因此,若本方案获取到数据库端口号,便可根据不同类型数据库与数据库端口号之间的对应关系确定数据库类型,在此将通过数据库端口号确定的数据库类型称为第一类型信息;需要说明的是,若获取到的数据库端口号为空,或者获取到错误的数据库端口号,则生成的第一类型信息为空,属于无效类型;若数据库端口号为正确的,且查找到对应的数据库类型,则生成的第一类型信息为有效类型,可以为MySQL、MSSQL、Oracle中的任意一者。
步骤二、对数据库配置文件的内容进行识别,确定第二类型信息;
具体来说,在本实施例中,若用户上传数据库配置文件sql.php至服务器,本方案便能获取该文件的内容并进行识别,最后分析其属于何种数据库类型,如下所示,该配置文件可明显表示使用到了MySQL。
<?php
$con=mysql_connect("localhost","root","password");
$select_db=mysql_select_db('test');...
在本实施例中,将通过数据库配置文件确定的数据库类型称为第二类型信息。若获取到数据库配置文件为空,或者未能通过数据库配置文件识别出数据库类型信息,则生成的第二类型信息为空,属于无效信息;若能通过数据库配置文件识别出数据库类型,则生成的第二类型信息属于有效类型,可以为MySQL、MSSQL、Oracle中的任意一者。
步骤三、识别流量数据中的数据库操作语句,根据数据库操作语句确定第三类型信息;
具体来说,在许多用户场景下,会直接通过流量中HTTP(Hyper Text TransferProtocol,超文本传输协议)报文传输SQL语句,虽然不符合规范,但是在一些内网场景中较为常见。由于每种数据库语言都有自己的语言特性以及语法结构,因此本方案可使用内置的语法引擎进行检测,判断流量数据中的数据库操作语句是否符合某一种数据库语言的语言特性以及语法结构;例如:select@@version as'sql server version'这个是MSSQL和MySQL都能兼容;select version()as'mysql version'这个是MySQL的写法,MSSQL不能识别;需要注意的是,本方案包括但不限于上述的语法结构的类型。并且,本方案可对流量数据进行类型检测,仅从正常流量(白流量)中获取数据库操作语句,以便准确获得第三类型信息。
在本实施例中,将通过数据库操作语句确定的数据库类型称为第三类型信息。其中,若未能从流量数据中获取到数据库操作语句,或者未能从数据库操作语句查找到对应的数据类型,则生成的第三类型信息为无效类型,若能从数据库操作语句识别出数据库类型,则生成的第三类型信息为有效类型,可以为MySQL、MSSQL、Oracle中的任意一者。
步骤四、识别流量数据中的网站搭配信息,根据网站搭配信息确定第四类型信息;
具体来说,在许多的用户场景下,都会使用与数据库类型对应的环境搭配,例如:PHP+MySQL+Apache、ASP+MSSQL+IIS、JSP+Oracle、MySQL、MSSQL+Tomcat,因此在本方案中,可从用户日常访问目标服务器的流量数据中识别到网站搭配信息,从而确定数据库类型,如:用户访问的网页文件后缀为“.php”,则网站搭配信息为“.php”,通过上述环境搭配即可确定与该网站搭配信息“.php”对应的数据库类型为MySQL。
在本实施例中,将通过网站搭配信息确定的数据库类型称为第四类型信息。其中,若未能从流量数据中获取到网站搭配信息,或者未能从网站搭配信息查找到对应的数据类型,则生成的第四类型信息为无效类型,若能从网站搭配信息中识别出数据库类型,则生成的第四类型信息为有效类型,可以为MySQL、MSSQL、Oracle中的任意一者。
步骤五、识别流量数据中的名称信息,根据名称信息确定第五类型信息;名称信息包括数据库名称、表名、列名中的至少一者;
具体来说,本方案可从流量数据确定检测流量,该检测流量包括流量数据中的数据库操作语句及攻击流量(黑流量),从数据库操作语句及攻击流量中识别数据库名、表名、列名,从而确定数据库类型。如:识别到某一个数据库名叫做MySQL,那么数据库类型极有可能是MySQL。在本实施例中,将通过名称信息确定的数据库类型称为第五类型信息。其中,若未能从流量数据中获取到名称信息,或者未能从名称信息查找到对应的数据类型,则生成的第五类型信息为无效类型,若能从名称信息中识别出数据库类型,则生成的第五类型信息为有效类型,可以为MySQL、MSSQL、Oracle中的任意一者。
步骤六、根据第一类型信息、第二类型信息、第三类型信息、第四类型信息、第五类型信息中的至少一者确定目标数据库类型。
需要说明的是,本实施例中的上述步骤一~步骤五为确定类型信息的五种方式,并且这五个步骤之间是和/或的关系,可以执行步骤一~步骤五中任意一个或者多个步骤;也就是说,本方案获取目标服务器的数据库端口号、数据库配置文件、流量数据中的至少一者信息后,可根据获取的信息选择具体通过哪种方式确定类型信息。例如:若获取的是数据库端口号,则通过步骤一确定第一类型信息,若获取的是数据库配置文件,则通过步骤二确定第二类型信息,若获取的是数据库端口号及数据库配置文件,则通过步骤一及步骤二确定第一类型信息及第二类型信息。
并且,该第一类型信息、第二类型信息、第三类型信息、第四类型信息、第五类型信息中的任意类型信息,可以为空,即未识别数据库类型,也可以为至少一种数据库类型。获取到上述类型信息后,可以通过综合分析判断,确定请求流量所要访问的数据库类型。在综合分析判断时,可以通过多种方式确定目标数据库类型,如:可从五种类型信息中选取出现次数最多的数据类型作为目标数据库类型,还可以根据各种类型信息的重要级确定目标数据库类型等等,具体的选取方式在此并不具体限定。可见,本方案通过数据库端口号、数据库配置文件、流量数据中的至少一者确定数据库类型的方式,可使本方案能从多维度确定请求流量所访问的数据库类型,从而提高数据库类型的准确度,进而提升攻击检测的准确度。
参见图3a,为本发明实施例公开的一种数据库判定示意图,参见图3b,为本发明实施例公开的一种SQL注入检测流程示意图,也就是说:本方案在执行时主要分为两部分,包括图3a所示的数据库判定过程及图3b的SQL注入检测过程,参见图3a,在数据库判定过程,会对当前业务场景进行数据特征信息的获取,包括:数据库接口、白流量中的语法结构、网站环境搭配、数据库名、表名、列名、数据库配置文件,然后进行综合判断,确定当前请求流量访问的目标数据库类型。参见图3b,在SQL注入检测过程中,只启动与目标数据库类型对应的SQL注入检测方式,如:目标数据库类型为MySQL,则只开启MySQL注入检测方式,通过与MySQL对应的规则及引擎进行攻击的识别,并拦截具有攻击性质的请求流量。
综上所述,本方案可针对SQL注入攻击的攻击原理、表现形式等,先识别出当前请求流量所访问的数据库类型后,再使用与该数据库类型对应检测方式进行SQL注入检测,该检测方式可以为前文所述的基于规则的检测方法、基于语法、语义的检测方法,还可以为基于机器学习的检测方法。可见,本方案并不会对某个请求流量采用所有的检测方式进行检测,如:用户场景只使用到了MySQL,那么本方案只会开启与MySQL对应的检测方式,通过该检测方式中针对MySQL的规则、引擎等来检测SQL注入攻击。相较于传统的方案,本方案大大提升了攻击的检测准确度,同时又大幅提升了设备性能。
基于上述实施例,在本实施例中,确定目标数据库类型时可具体包括如下两种方式:
方式一、在根据第一类型信息、第二类型信息、第三类型信息、第四类型信息、第五类型信息中的至少两者确定目标数据库类型的情况下,可确定第一类型信息、第二类型信息、第三类型信息、第四类型信息、第五类型信息中至少两者对应的优先级;若优先级最高的类型信息为有效类型,则将优先级最高的类型作为目标数据库类型;若优先级最高的类型信息为无效类型,则将除优先级最高的类型之外的其他有效类型,均作为目标数据库类型。
方式二、在根据第一类型信息、第二类型信息、第三类型信息、第四类型信息、第五类型信息中的至少一者确定目标数据库类型的情况下,可确定第一类型信息、第二类型信息、第三类型信息、第四类型信息、第五类型信息中的有效类型;将所有有效类型均作为目标数据库类型。
具体来说,本方案根据获取到的数据库端口号、数据库配置文件、流量数据中的至少一者确定类型信息时,若未能从获取的内容中识别出类型信息,则该类型信息就属于无效类型,如:获取流量数据后,未从流量数据中识别出数据库名称、表名、列名中的任意一者,那么生成的第五类型信息中并未记载类型信息,那么该第五类型信息即为无效类型。在本实施例中,可根据每种类型信息确定数据库类型的准确度来设定每种类型信息的优先级,确定数据库类型的准确度越高,则优先级越高。因此,在本实施例中,如果优先级最高的类型信息是有效类型,则将优先级最高的类型作为目标数据库类型,如果优先级最高的类型信息为无效类型,则为了避免漏判,可将除优先级最高的类型之外的其他有效类型,均作为目标数据库类型。
其中,本方案可设置每种类型信息的优先级均不同,也可设置其中几个类型信息的优先级相同,但是不能将所有类型信息的优先级均设置为相同。如:设置多种类型信息的优先级最高,设置第一类型信息及第二类型信息的优先级最高,若第一类型信息及第二类型信息均为有效类型,则这两个类型信息均为目标数据库类型,若这两者中只有一者为有效类型,则将有效类型的类型信息作为目标数据库类型,若这两者均为无效类型,则将第三类型信息、第四类型信息、第五类型信息中的有效类型作为目标数据库类型。进一步,由于上述五种类型信息中,并非均能得到数据库类型,并且上述五种类型信息会存在类型一致的情况,因此本方案也可直接将所有类型信息中的数据库类型均作为目标数据库类型,从而提高数据类型确定速度。
进一步,本申请确定目标数据库类型之后,还需要利用目标服务器与目标数据库类型对数据库类型表进行更新;该数据库类型表中存储了不同服务器与数据库类型之间的对应关系。具体来说,对数据库类型表进行更新时具体包括如下情况:若数据库类型表中未记载目标服务器及对应的数据库类型,则在数据库类型中添加目标服务器及目标数据库类型;若数据库类型表中记载了目标服务器及对应的数据库类型,则判断数据库类型表中记载的与目标服务器及对应的数据库类型是否为目标数据库类型,若否,则将数据库类型表中记载的与目标服务器及对应的数据库类型修改为目标数据库类型,若是,则说明数据库类型表不需要更新。
通过方式对数据库类型表进行更新维护后,便可将该数据库类型表应用在数据库类型确定过程,如:本方案在获取目标服务器的数据库端口号、数据库配置文件及流量数据之前,若数据库类型表中存储有与目标服务器对应的数据库类型,则将与目标服务器对应的数据库类型作为目标数据库类型;若数据库类型表中未存储与目标服务器对应的数据库类型,则继续执行获取目标服务器的数据库端口号、数据库配置文件及流量数据中的至少一者的步骤,通过数据库端口号、数据库配置文件及流量数据中的至少一者确定目标数据库类型。当然,为了确保数据库类型表的准确性,每间隔预定时长,还可以主动通过获取数据库端口号、数据库配置文件及流量数据等信息确定各个服务器对应的数据库类型。
综上可见,本方案在对请求流量进行SQL注入检测时,首先需要数据库类型表或者数据特征信息对数据库进行类型识别,在识别出具体数据库类型后,只开启针对该类型数据库的SQL注入检测方式;通过该方式,可以在提升检测准确性的同时,能够降低安全设备的性能开销;并且,本实施例通过维护数据库类型表的方式,可在获取到请求流量之后,快速从数据库类型表中确定目标数据库类型,从而提高目标数据库类型的识别速度。
下面对本发明实施例提供的检测装置、设备及存储介质进行介绍,下文描述的检测装置、设备及存储介质与上文描述的检测方法可以相互参照。
参见图4,本发明实施例提供的一种攻击检测装置结构示意图,通过图4可以看出,该装置包括:
获取模块10,用于获取请求流量;
第一确定模块11,用于确定请求流量所访问的目标数据库类型;
第二确定模块12,用于根据所述目标数据库类型确定对应的目标SQL注入检测方式;
检测模块13,用于通过所述目标SQL注入检测方式对所述请求流量进行检测。
其中,所述第一确定模块包括:
第一确定单元,用于确定所述请求流量所访问的目标服务器;
获取单元,用于获取所述目标服务器的数据库端口号、数据库配置文件及流量数据中的至少一者;
第二确定单元,用于根据所述数据库端口号、所述数据库配置文件、所述流量数据中的至少一者确定目标数据库类型。
其中,所述第二确定单元包括:
第一确定子单元,用于根据不同类型数据库与数据库端口号之间的对应关系,确定与所述目标服务器的数据库端口号对应的第一类型信息;和/或,
第二确定子单元,用于对所述数据库配置文件的内容进行识别,确定第二类型信息;和/或,
第三确定子单元,用于识别所述流量数据中的数据库操作语句,根据所述数据库操作语句确定第三类型信息;和/或,
第四确定子单元,用于识别所述流量数据中的网站搭配信息,根据所述网站搭配信息确定第四类型信息;和/或,
第五确定子单元,用于识别所述流量数据中的名称信息,根据所述名称信息确定第五类型信息;所述名称信息包括数据库名称、表名、列名中的至少一者;
第六确定子单元,用于根据所述第一类型信息、所述第二类型信息、所述第三类型信息、所述第四类型信息、所述第五类型信息中的至少一者确定目标数据库类型。
其中,所述第六确定子单元具体用于:在根据所述第一类型信息、所述第二类型信息、所述第三类型信息、所述第四类型信息、所述第五类型信息中的至少两者确定目标数据库类型的情况下,确定所述第一类型信息、所述第二类型信息、所述第三类型信息、所述第四类型信息、所述第五类型信息中至少两者对应的优先级;若优先级最高的类型信息为有效类型,则将优先级最高的类型作为所述目标数据库类型;若优先级最高的类型信息为无效类型,则将除所述优先级最高的类型之外的其他有效类型,均作为所述目标数据库类型。
其中,所述第六确定子单元具体用于:在根据所述第一类型信息、所述第二类型信息、所述第三类型信息、所述第四类型信息、所述第五类型信息中的至少一者确定目标数据库类型的情况下,确定所述第一类型信息、所述第二类型信息、所述第三类型信息、所述第四类型信息、所述第五类型信息中至少一者的有效类型;将所有有效类型均作为所述目标数据库类型。
其中,所述第一确定模块还包括:
更新单元,用于利用所述目标服务器与所述目标数据库类型对数据库类型表进行更新;所述数据库类型表中存储了不同服务器与数据库类型之间的对应关系。
其中,所述第一确定模块还包括:
第三确定单元,用于在数据库类型表中存储有与所述目标服务器对应的数据库类型时,将与所述目标服务器对应的数据库类型作为目标数据库类型;
所述获取单元具体用于:在数据库类型表中未存储与所述目标服务器对应的数据库类型时,获取所述目标服务器的数据库端口号、数据库配置文件及流量数据中的至少一者。
参见图5,本发明实施例提供的一种电子设备结构示意图,包括:
存储器21,用于存储计算机程序;
处理器22,用于执行所述计算机程序时实现上述方法实施例所述的攻击检测方法的步骤。
在本实施例中,该设备可以为防火墙和安全态势感知等安全设备,具体可以终端或者服务器。
该设备可以包括存储器21、处理器22和总线23。
其中,存储器21至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器21在一些实施例中可以是设备的内部存储单元,例如该设备的硬盘。存储器21在另一些实施例中也可以是设备的外部存储设备,例如设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器21还可以既包括设备的内部存储单元也包括外部存储设备。存储器21不仅可以用于存储安装于设备的应用软件及各类数据,例如执行检测方法的程序代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器22在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器21中存储的程序代码或处理数据,例如执行检测方法的程序代码等。
该总线23可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,设备还可以包括网络接口24,网络接口24可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该设备与其他电子设备之间建立通信连接。
可选地,该设备还可以包括用户接口25,用户接口25可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口25还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在设备中处理的信息以及用于显示可视化的用户界面。
图5仅示出了具有组件21-25的设备,本领域技术人员可以理解的是,图5示出的结构并不构成对设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法实施例所述的攻击检测方法的步骤。
其中,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种攻击检测方法,其特征在于,包括:
获取请求流量;
确定所述请求流量所访问的目标数据库类型;
根据所述目标数据库类型确定对应的目标SQL注入检测方式;
通过所述目标SQL注入检测方式对所述请求流量进行检测。
2.根据权利要求1所述的攻击检测方法,其特征在于,所述确定所述目标服务器的目标数据库类型,包括:
确定所述请求流量所访问的目标服务器;
获取所述目标服务器的数据库端口号、数据库配置文件、流量数据中的至少一者;
根据所述数据库端口号、所述数据库配置文件、所述流量数据中的至少一者确定目标数据库类型。
3.根据权利要求2所述的攻击检测方法,其特征在于,所述根据所述数据库端口号、所述数据库配置文件、所述流量数据中的至少一者确定目标数据库类型,包括:
根据不同类型数据库与数据库端口号之间的对应关系,确定与所述目标服务器的数据库端口号对应的第一类型信息;和/或,
对所述数据库配置文件的内容进行识别,确定第二类型信息;和/或,
识别所述流量数据中的数据库操作语句,根据所述数据库操作语句确定第三类型信息;和/或,
识别所述流量数据中的网站搭配信息,根据所述网站搭配信息确定第四类型信息;和/或,
识别所述流量数据中的名称信息,根据所述名称信息确定第五类型信息;所述名称信息包括数据库名称、表名、列名中的至少一者;
根据所述第一类型信息、所述第二类型信息、所述第三类型信息、所述第四类型信息、所述第五类型信息中的至少一者确定目标数据库类型。
4.根据权利要求3所述的攻击检测方法,其特征在于,在根据所述第一类型信息、所述第二类型信息、所述第三类型信息、所述第四类型信息、所述第五类型信息中的至少两者确定目标数据库类型的情况下,包括:
确定所述第一类型信息、所述第二类型信息、所述第三类型信息、所述第四类型信息、所述第五类型信息中至少两者对应的优先级;
若优先级最高的类型信息为有效类型,则将优先级最高的类型作为所述目标数据库类型;
若优先级最高的类型信息为无效类型,则将除所述优先级最高的类型之外的其他有效类型,均作为所述目标数据库类型。
5.根据权利要求3所述的攻击检测方法,其特征在于,所述根据所述第一类型信息、所述第二类型信息、所述第三类型信息、所述第四类型信息、所述第五类型信息中的至少一者确定目标数据库类型,包括:
确定所述第一类型信息、所述第二类型信息、所述第三类型信息、所述第四类型信息、所述第五类型信息中至少一者的有效类型;
将所有有效类型均作为所述目标数据库类型。
6.根据权利要求2至5中任意一项所述的攻击检测方法,其特征在于,根据所述数据库端口号、所述流量数据、所述数据库配置文件中的至少一者确定目标数据库类型之后,还包括:
利用所述目标服务器与所述目标数据库类型对数据库类型表进行更新;所述数据库类型表中存储了不同服务器与数据库类型之间的对应关系。
7.根据权利要求2所述的攻击检测方法,其特征在于,所述获取所述目标服务器的数据库端口号、数据库配置文件及流量数据之前,还包括:
若数据库类型表中存储有与所述目标服务器对应的数据库类型,则将与所述目标服务器对应的数据库类型作为目标数据库类型;
若数据库类型表中未存储与所述目标服务器对应的数据库类型,则继续执行所述获取所述目标服务器的数据库端口号、数据库配置文件及流量数据中的至少一者的步骤。
8.一种攻击检测装置,其特征在于,包括:
获取模块,用于获取请求流量;
第一确定模块,用于确定所述请求流量所访问的目标数据库类型;
第二确定模块,用于根据所述目标数据库类型确定对应的目标SQL注入检测方式;
检测模块,用于通过所述目标SQL注入检测方式对所述请求流量进行检测。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的攻击检测方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的攻击检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111146163.7A CN113852638B (zh) | 2021-09-28 | 2021-09-28 | 一种攻击检测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111146163.7A CN113852638B (zh) | 2021-09-28 | 2021-09-28 | 一种攻击检测方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113852638A true CN113852638A (zh) | 2021-12-28 |
CN113852638B CN113852638B (zh) | 2024-02-27 |
Family
ID=78980506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111146163.7A Active CN113852638B (zh) | 2021-09-28 | 2021-09-28 | 一种攻击检测方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113852638B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040223486A1 (en) * | 2003-05-07 | 2004-11-11 | Jan Pachl | Communication path analysis |
CN101388763A (zh) * | 2007-09-12 | 2009-03-18 | 北京启明星辰信息技术有限公司 | 一种支持多种数据库类型的sql注入攻击检测系统 |
CN102411598A (zh) * | 2011-07-29 | 2012-04-11 | 株洲南车时代电气股份有限公司 | 一种实现数据一致性的方法及其系统 |
US20150120939A1 (en) * | 2013-10-30 | 2015-04-30 | Oracle International Corporation | System and method for supporting service resources and feature sets in a cloud platform environment |
CN106101090A (zh) * | 2016-06-07 | 2016-11-09 | 中国建设银行股份有限公司 | 用于规则引擎的操作方法以及规则引擎系统 |
CN107104949A (zh) * | 2017-03-24 | 2017-08-29 | 深圳昂楷科技有限公司 | 数据库类型获取方法、装置及电子设备 |
CN107368582A (zh) * | 2017-07-21 | 2017-11-21 | 深信服科技股份有限公司 | 一种sql语句检测方法及系统 |
CN109067717A (zh) * | 2018-07-20 | 2018-12-21 | 西安四叶草信息技术有限公司 | 一种检测sql注入漏洞的方法及装置 |
CN111885061A (zh) * | 2020-07-23 | 2020-11-03 | 深信服科技股份有限公司 | 一种网络攻击检测方法、装置、设备及介质 |
-
2021
- 2021-09-28 CN CN202111146163.7A patent/CN113852638B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040223486A1 (en) * | 2003-05-07 | 2004-11-11 | Jan Pachl | Communication path analysis |
CN101388763A (zh) * | 2007-09-12 | 2009-03-18 | 北京启明星辰信息技术有限公司 | 一种支持多种数据库类型的sql注入攻击检测系统 |
CN102411598A (zh) * | 2011-07-29 | 2012-04-11 | 株洲南车时代电气股份有限公司 | 一种实现数据一致性的方法及其系统 |
US20150120939A1 (en) * | 2013-10-30 | 2015-04-30 | Oracle International Corporation | System and method for supporting service resources and feature sets in a cloud platform environment |
CN106101090A (zh) * | 2016-06-07 | 2016-11-09 | 中国建设银行股份有限公司 | 用于规则引擎的操作方法以及规则引擎系统 |
CN107104949A (zh) * | 2017-03-24 | 2017-08-29 | 深圳昂楷科技有限公司 | 数据库类型获取方法、装置及电子设备 |
CN107368582A (zh) * | 2017-07-21 | 2017-11-21 | 深信服科技股份有限公司 | 一种sql语句检测方法及系统 |
CN109067717A (zh) * | 2018-07-20 | 2018-12-21 | 西安四叶草信息技术有限公司 | 一种检测sql注入漏洞的方法及装置 |
CN111885061A (zh) * | 2020-07-23 | 2020-11-03 | 深信服科技股份有限公司 | 一种网络攻击检测方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113852638B (zh) | 2024-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109768992B (zh) | 网页恶意扫描处理方法及装置、终端设备、可读存储介质 | |
CN108763031B (zh) | 一种基于日志的威胁情报检测方法及装置 | |
CN103744802B (zh) | Sql注入攻击的识别方法及装置 | |
US9081961B2 (en) | System and method for analyzing malicious code using a static analyzer | |
US9032516B2 (en) | System and method for detecting malicious script | |
US20150271202A1 (en) | Method, device, and system for detecting link layer hijacking, user equipment, and analyzing server | |
CN109474640B (zh) | 恶意爬虫检测方法、装置、电子设备及存储介质 | |
US20080301766A1 (en) | Content processing system, method and program | |
CN113301012B (zh) | 一种网络威胁的检测方法、装置、电子设备及存储介质 | |
US10834105B2 (en) | Method and apparatus for identifying malicious website, and computer storage medium | |
KR20080044145A (ko) | 웹 로그 상호연관분석을 이용한 웹 애플리케이션 공격의침입 탐지 시스템 및 방법 | |
CN113055399A (zh) | 注入攻击的攻击成功检测方法、系统及相关装置 | |
CN111835777A (zh) | 一种异常流量检测方法、装置、设备及介质 | |
CN113518077A (zh) | 一种恶意网络爬虫检测方法、装置、设备及存储介质 | |
CN113190839A (zh) | 一种基于SQL注入的web攻击防护方法及系统 | |
EP3776314B1 (en) | Staged dynamic taint flow inference | |
CN114006746A (zh) | 一种攻击检测方法、装置、设备及存储介质 | |
CN113810518A (zh) | 有效子域名识别方法、装置和电子设备 | |
CN113852638B (zh) | 一种攻击检测方法、装置、设备及存储介质 | |
CN109150842B (zh) | 一种注入漏洞检测方法及装置 | |
CN111131166A (zh) | 一种用户行为预判方法及相关设备 | |
CN111049816A (zh) | 域名地址的过滤方法、设备及计算机可读存储介质 | |
WO2020019515A1 (zh) | 一种注入漏洞检测方法及装置 | |
CN113032836B (zh) | 数据脱敏方法和装置 | |
CN115001724B (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 |