CN107292170A - Sql注入攻击的检测方法及装置、系统 - Google Patents
Sql注入攻击的检测方法及装置、系统 Download PDFInfo
- Publication number
- CN107292170A CN107292170A CN201610207541.0A CN201610207541A CN107292170A CN 107292170 A CN107292170 A CN 107292170A CN 201610207541 A CN201610207541 A CN 201610207541A CN 107292170 A CN107292170 A CN 107292170A
- Authority
- CN
- China
- Prior art keywords
- sql
- injection
- statement
- sql injection
- tested
- 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
- 238000002347 injection Methods 0.000 title claims abstract description 240
- 239000007924 injection Substances 0.000 title claims abstract description 240
- 238000001514 detection method Methods 0.000 title abstract description 37
- 238000000034 method Methods 0.000 claims abstract description 79
- 238000012545 processing Methods 0.000 claims description 16
- 238000012360 testing method Methods 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 description 33
- 230000015654 memory Effects 0.000 description 23
- 230000008569 process Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 10
- 230000014509 gene expression Effects 0.000 description 7
- 239000000243 solution Substances 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000009795 derivation Methods 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- BDEDPKFUFGCVCJ-UHFFFAOYSA-N 3,6-dihydroxy-8,8-dimethyl-1-oxo-3,4,7,9-tetrahydrocyclopenta[h]isochromene-5-carbaldehyde Chemical compound O=C1OC(O)CC(C(C=O)=C2O)=C1C1=C2CC(C)(C)C1 BDEDPKFUFGCVCJ-UHFFFAOYSA-N 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 206010001488 Aggression Diseases 0.000 description 1
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 description 1
- 101100269618 Streptococcus pneumoniae serotype 4 (strain ATCC BAA-334 / TIGR4) aliA gene Proteins 0.000 description 1
- 230000016571 aggressive behavior Effects 0.000 description 1
- 208000012761 aggressive behavior Diseases 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种SQL注入攻击的检测方法及装置、系统。其中,该方法包括:对待测SQL语句进行解析,得到所述待测SQL语句的语法规则信息,其中,所述语法规则信息包括:语法元素以及所述语法元素的上下文信息;将所有所述语法规则信息与SQL注入规则集中的SQL注入规则进行匹配,其中,所述SQL注入规则为对SQL注入语句进行解析后得到的特征;统计所有所述语法规则信息与SQL注入规则集匹配的SQL注入规则的数量;并在统计数量大于预设阈值时,确定所述待测SQL语句为SQL注入攻击。
Description
技术领域
本发明涉及网络安全领域,具体而言,涉及一种结构化查询语言(StructuredQuery Language简称SQL)注入攻击的检测方法及装置、系统。
背景技术
由于SQL注入攻击可以用来从数据库获取敏感信息,或者利用数据库的特性执行添加用户,导出文件等一系列恶意操作,甚至有可能获取数据库乃至系统用户最高权限,因此,对于数据库系统来说,如何有效的进行SQL防御也显得格外重要。
WAF是一种基础的安全保护模块,主要针对HTTP访问的Web程序保护,部署在Web应用程序前面,在用户请求到达Web服务器前对用户请求进行扫描和过滤,分析并校验每个用户请求的网络包,确保每个用户请求有效且安全,对无效或有攻击行为的请求进行拦截或隔离。目前,常用的SQL注入检测方式是:在WAF(应用防火墙)中对用户提交的数据、cookie、refer等字段进行规则匹配,匹配方式主要包括如下几种:
1、关键词匹配
1)收集常见的SQL注入语法关键词(eg:and 1=1)
2)对用户输入的信息进行关键词查找,如果匹配1)中的关键词,则判定为SQL注入,进行拦截
2、正则表达式匹配
1)收集常见的SQL注入方法(eg:and*=*)
2)根据1)收集的信息,构造SQL注入正则表达式
3)对用户输入的信息进行正则表达式匹配,如果匹配2)中构造的正则表达式,则判定为SQL注入,进行拦截
3、基于语法分析的规则匹配
1)收集常见的SQL注入方法
2)根据1)收集的信息,构建基于SQL语法元素的规则特征库
3)对用户输入的信息进行SQL词法、语法分析,构造语法树
4)遍历4)中构造的语法树的每个SQL语法元素,语法上下文信息,进行规则检测,如果命中2)中构建规则库中的规则,则判定为SQL注入,进行拦截
其中,关键字方式只是简单的对一些关键字进行匹配检测,很容易产生误报,并且由于SQL的多样化,有经验的黑客通过一些语句的变化很容易绕过检测。正则表达式方式是由关键字方式发展而来的,虽然一定程度上降低了误报率,但由于正则表达式是基于字符串的过滤,执行效率比较低,同时针对一些比较复杂的注入方法,同样存在漏报率高的问题。
基于语法分析的规则匹配:该方式相比1和2中描述的方式,因考虑了SQL的语义,能识别一些变种SQL(如通过一些符号编码、添加注释等方式绕过),降低了误报率和漏报率,并且在执行效率上也有所提升,但由于进行匹配的是用户提交信息,和最终提交给数据库执行的SQL有所偏差,也会导致误报。虽然也有将用户提交信息和预定义的各类动态SQL模板进行组合生成SQL语句,对生成的语句进行再次规则匹配来降低误报率的方案,但在包含大量SQL模板的应用中,会导致整个匹配效率降低。其次,规则集的设定直接影响误报率和漏报率的高低,规则设定得较严格,会降低漏报率,但同时导致误报率升高;相反,如果设置得较宽松,会降低误报率,但同时导致漏报率升高。
并且基于WAF的SQL注入检测虽然可以对请求包进行分析检测,但市面上的数据库产品种类繁多,不同数据库产品提供的语法有很大差异,因此,在WAF不理解应用程序上下文及后端使用的数据库类型、语法结构、命令的情况下,仅仅通过分析网络数据包,做一些规则匹配,所能提供的SQL注入检测能力十分有限。另外,也存在多种绕过WAF进行入侵的方法,例如:利用WAF可能存在的HTTP协议解析缺陷。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
根据本发明实施例的一个方面,提供了一种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注入攻击的检测系统,包括:WEB服务器、防火墙服务器和数据库服务器;其中,所述WEB服务器上运行有通过所述防火墙服务器向所述数据库服务器提交待测SQL语句的应用程序;所述防火墙服务器,位于所述WEB服务器和所述数据库服务器之间,用于对所述待测SQL语句进行解析,得到所述待测SQL语句的语法规则信息,其中,所述语法规则信息包括:语法元素以及所述语法元素的上下文信息;将所述语法规则信息与SQL注入规则集中的SQL注入规则进行匹配,其中,所述SQL注入规则为对SQL注入语句进行解析后得到的特征;以及统计所述SQL注入规则集中与所述语法规则信息匹配的SQL注入规则的数量;并在统计数量大于与所述SQL注入规则所属类型对应的预设阈值时,确定所述待测SQL语句为SQL注入攻击。可选地,所述SQL注入规则集为按照预设规则对所述SQL注入规则进行分类后得到的规则集。
在本发明实施例中,在检测过程中,在将待测SQL语句的语法元素和该语法元素对应的上下文信息与SQL注入规则集中的SQL注入规则进行匹配的匹配结果,还要考虑与上述指定特征信息匹配的SQL注入规则的数量,即将该数量与预设阈值进行比较,因此,在保证检测准确性的同时,也降低了漏报率,进而解决了现有的SQL注入检测方式由于无法同时兼顾误报率和漏报率导致的检测效率不高的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种SQL注入攻击的检测方法的计算机终端的硬件结构框图;
图2是根据本发明实施例的一种可选的SQL注入攻击的检测方法的流程图;
图3是根据本发明实施例的一种可选的语法树遍历过程示意图;
图4是根据本发明实施例的一种可选的对待测SQL语句进行词法和语法分析处理的原理示意图;
图5是根据本发明实施例的另一种可选的SQL注入攻击的检测方法的流程图;
图6是根据本发明实施例的一种可选的SQL注入攻击的检测装置的结构框图;
图7是根据本发明实施例的另一种可选的SQL注入攻击的检测装置的结构框图;
图8是根据本发明实施例的另一种可选的SQL注入攻击的检测装置的结构框图;
图9是根据本发明实施例的一种可选的SQL注入攻击的检测系统的结构示意图;
图10是根据本发明实施例的一种可选的计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解以下实施例,现将本申请实施例中涉及到的技术术语解释如下:
SQL:是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
SQL注入攻击,是指通过构建特殊的输入作为参数传入Web应用程序,而这些输入大部分是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作。如果应用程序对输入内容未进行合法性检测,直接使用输入内容来构造动态SQL语句访问数据库时,就可能产生SQL注入攻击。
实施例1
根据本发明实施例,还提供了一种SQL注入攻击的检测方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种SQL注入攻击的检测方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的SQL注入攻击的检测方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在上述运行环境下,本申请提供了如图2所示的SQL注入攻击的检测方法。图2是根据本发明实施例的一种可选的SQL注入攻击的检测方法的流程图。如图2所示,该方法包括步骤S202-S206:
步骤S202,对待测SQL语句进行解析,得到所述待测SQL语句的语法规则信息,其中,该语法规则信息包括:语法元素以及该语法元素的上下文信息;其中,对待测SQL语句进行解析的实现方式有多种,在本申请的一个可选实施例中,可以表现为对待测SQL语句进行以下至少之一处理:词法分析和语法分析。
其中,对于上述词法和语法分析的处理过程可以通过构造SQL语法树的形式实现,但不限于此,具体地,基于词法分析和语法分析,生成基于语法元素和语义结构的语法树,然后遍历语法树中的每个语法元素节点,并获取该语法元素节点的父节点数据和子节点数据(即语法元素的上下文信息)。为便于理解,以图3所示语法树为例进行详细说明。如图3所示,该语法树中的语法元素节点为:update、set items、table、where、set item、exp1、column、value,上述各个语法元素之间的关联关系构成了语法树的父、子节点数据。可选地,图3所示语法树的生成过程简述如下:
a.SQL Update语法样例:
UPDATE[LOW_PRIORITY][IGNORE]table_reference
SETcol_name1={expr1|DEFAULT}
[,col_name2={expr2|DEFAULT}]...
[WHEREwhere_condition][ORDER BY...][LIMIT row_count]
b.样例SQL:update user set username=’lilei’,password=’123456’where id=1
c.将a和b中的样例解析成语法树中的语法元素:update、table(user)、setitems(username=’lilei’,password=’123456’)、where、condition exp(id=1)。
其中,对于词法和语法分析过程的实现原理可以参见图4,如图4所示,将承载有SQL语句的字符流输入值词法分析器,并输出承载由语法元素的符号流;然后将该符号流输入至语法分析器进行语法分析,从而输出语法树,并依据该语法树进行语义分析。其中:
a.词法分析器的功能输入源程序,按照构词规则分解成一系列单词符号,其中,单词是语言中具有独立意义的最小单位,包括关键字、标识符、运算符、界符和常量等。
TOKEN:
(1)关键字是由程序语言定义的具有固定意义的标识符。例如,mysql中的select,where,as,limit都是保留字。这些字通常不用作一般标识符。
(2)标识符用来表示各种名字,如变量名,数组名,过程名等等。
(3)常数常数的类型一般有整型、实型、布尔型、文字型等。
(4)运算符如+、-、*、/等等。
(5)界符如逗号、分号、括号、等等。
词法分析器使用状态转换图来识别单词符号。状态转换图是一张有限方向图。在状态转换图中,有一个初态和至少一个终态。
有限状态机,(英语:Finite-state machine,FSM),又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。
*状态总数(state)是有限的。
*任一时刻,只处在一种状态之中。
*某种条件下,会从一种状态转变(transition)到另一种状态。
词法分析器通常不会关心单词之间的关系(属于语法分析的范畴),举例来说:词法分析器能够将括号识别为单词,但并不保证括号是否匹配。
b.语法分析器(Parser)通常是作为编译器或解释器的组件出现的,它的作用是进行语法检查、并构建由输入的单词组成的数据结构(一般是语法分析树、抽象语法树等层次化的数据结构)。
常见的语法分析算法有LL(N)和LR(N)。
LL的第一个L表示fromLeft to right(从左往右处理输入),第二个L表示Left most推导(最左推导),是一种自顶向下(递归)的分析过程。
LR的第一个L和LL的第一个L含义相同,第二个R表示Right most推导(最右推导的逆过程),是一种自底向上(规约/移进)的分析过程。
括号里面的数字表示用于决策所需的后续token数,即在进行下一步动作的时候需要向前考虑几个token。
LL和LR的要求文法是上下文无关的、无二义性,First(A->C)∩First(A->B)=空,首符集不能有交集,否则当交集中的元素出现时,选择哪个产生式进行推导是不确定的,LL要求每次只能有一个生成式,LR要求每一步都有明确的动作(规约/移进)。
基于相关技术的SQL注入攻击的检测架构,入侵者可以在应用程序处对数据进行处理从而绕过WEB应用防火墙的拦截检测,为进一步降低漏报率,在本申请的一个可选实施例中,可以将检测过程移至数据库之前,即上述待测SQL语句的来源可以通过以下方式实现:获取应用程序提交给数据库待执行的上述待测SQL语句,从而实现对欲提交给数据库的所有SQL语句进行检测,进一步降低漏报率。
步骤S204,将所有上述语法规则信息与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注入。
步骤S206,统计所有上述语法规则信息与SQL注入规则集匹配的SQL注入规则的数量;并在统计数量大于预设阈值时,确定上述待测SQL语句为SQL注入攻击。由此可见,在该步骤中,综合考虑了匹配结果以及匹配结果的数量两种因素,这样可以在降低漏报率的同时,降低误报率,从而提高检测效率。
需要说明的是,上述预设阈值是与SQL注入规则对应的阈值,即不同类型的SQL注入规则对应有不同的阈值。
可选地,上述SQL注入规则所属类型可以按照不同的标准划分得到,例如可以按照不同的等级划分,其中,等级越高,出现在SQL注入攻击方法或语句中的概率就越大。此时,步骤S206可以表现为根据命中规则的等级(即与上述指定特征信息匹配的SQL注入规则所属的等级)和个数来判定待测SQL语句是否为SQL注入攻击。
由此也可以看出,SQL注入规则所属类型与预设阈值是对应的,即为不同类型的SQL注入规则分配了不同的阈值。例如,在上述类型表现为等级,其分为高中低三个等级时:命中1个高级别规则,直接判定为SQL注入攻击;命中3个中级别规则,判定为SQL注入攻击;命中7个低级别规则时,判定为SQL注入攻击。
在本申请的一个可选实施例中,为进一步提高SQL注入攻击的识别准确性,降低误报率,在SQL注入攻击的检测过程中,还可以增加以下匹配过程:在上述统计数量小于上述预设阈值时,将上述待测SQL语句与历史SQL集中的历史SQL语句进行匹配,其中,上述历史SQL语句为数据库中已经执行过的SQL语句;在上述历史SQL集中存在与上述待测SQL语句匹配的历史SQL语句时,确定上述待测SQL语句为非SQL注入攻击。此时步骤S206中的识别过程还包括:在确定上述待测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注入检测与拦截,要求应用程序访问数据库使用明文传输。如图5所示,主要包括以下处理过程:
步骤a,构造SQL注入规则集:a1,收集、分析目前黑客经常使用的SQL注入方法;a2,使用基于词法、语法分析的方法,将这些SQL注入方法构造成基于语法元素、语义结构的规则库,并定义规则等级、阈值:按规则出现在SQL注入方法及正常SQL中的概率将规则分为不同等级,例如将只会出现在SQL注入方法中,正常SQL很少使用的规则定义成高级别。为不同等级定义阀值,命中规则个数超过阀值的判定为SQL注入。
步骤b,构造目标SQL语法树:b1,获取应用程序提交给数据库待执行的SQL语句;b2,进行语法分析,构造语法树:使用基于词法、语法分析的方法,生成基于语法元素、语义结构的语法树。
步骤c,规则匹配计算:遍历步骤b中构造的语法树的每个语法元素节点,分析每个节点的父、子节点数据(SQL语句的上下文信息),结合步骤a中构造出来的规则集进行规则匹配计算。根据命中规则等级和个数,判断是否为SQL注入。例如:命中1个高级别规则,直接判定为SQL注入;命中3个中级别规则,判定为SQL注入。
步骤d,参数化目标SQL:对应用SQL进行参数化(将SQL中包含的常量、字符串等使用?代替)处理。
步骤e,历史执行SQL集:将步骤d中参数化后的SQL语句存入历史执行SQL集。应用提交数据库执行的SQL多种多样,但应用中包含的SQL模板相对固定,变化的是组合SQL模板生成SQL语句所使用到的参数值。收集参数化SQL语句的过程其实是在动态收集SQL模板。
步骤f,结合历史执行SQL进行判断:如果步骤c中命中规则但未超过阀值,且目标参数化SQL在历史执行SQL集中,则可能为误报,不进行拦截。如果步骤c中未命中规则,且目标参数化SQL不在历史执行SQL集中,可能是应用新上线的SQL模板,也可能是新型SQL注入方法,给用户预警,并收集SQL进行后续分析,如果分析为新型SQL注入方法,提取规则完善步骤a的规则集。
综上所述,本申请实施例提供一种基于语法分析的SQL注入攻击的检测方法,性能更高,准确度更高,可以解决相关技术中基于关键词和正则表达式匹配的不足。在部署结构上,本申请提供一种直接部署在数据库前面,应用程序的后面的处理方案,这样做的好处是无论攻击者采用了什么方式进行SQL注入攻击行为的包装,应用程序的上下文如何,都可以得到最终发送给数据库执行的SQL语句,并且可以针对后端使用的数据库类型不同,做不同的语法语义解析。在检测方法上,可以为每个规则定义等级,每个等级配置相应阀值。在进行规则匹配后,结合历史执行的SQL语句进行再判断,同时降低误报率及漏报率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述SQL注入攻击的检测方法的装置,如图6所示,该装置包括处理模块60,匹配模块62和识别模块64,其中:
处理模块60,用于对待测SQL语句进行解析,得到待测SQL语句的语法规则信息,其中,该语法规则信息包括:语法元素以及该语法元素的上下文信息。其中,对待测SQL语句进行解析的实现方式有多种,在本申请的一个可选实施例中,可以表现为对待测SQL语句进行以下至少之一处理:词法分析和语法分析。
匹配模块62,连接至处理模块60,用于将所有上述语法规则信息与SQL注入规则集中的SQL注入规则进行匹配,其中,上述SQL注入规则为对SQL注入语句进行词法和语法分析后得到的特征;可选地,SQL注入规则集为按照预设规则对上述SQL注入规则进行分类后得到的规则集,其中,上述预设规则包括:按照上述SQL注入规则的等级对上述SQL注入规则集中的SQL注入规则进行分类,其中,上述等级越高,与上述等级对应的SQL注入规则在SQL注入攻击中出现的概率越大。
其中,对于上述词法和语法分析的处理过程可以通过构造SQL语法树的形式实现,但不限于此,具体地,基于词法分析和语法分析,生成基于语法元素和语义结构的语法树,然后遍历语法树中的每个语法元素节点,并获取该语法元素节点的父节点数据和子节点数据(即语法元素的上下文信息)。
可选地,匹配模块62,还用于将上述待测SQL语句中的已被赋值的参数变量修改为未被赋值的参数变量,得到SQL模板语句;以及将上述SQL模板语句与上述历史SQL集中的历史SQL语句进行匹配。
识别模块64,连接至匹配模块62,用于统计所有上述语法规则信息与SQL注入规则集匹配的SQL注入规则的数量;并在统计数量大于预设阈值时,确定上述待测SQL语句为SQL注入攻击。
可选地,识别模块64,还用于在上述统计数量小于上述预设阈值时,将上述待测SQL语句与历史SQL集中的历史SQL语句进行匹配,其中,上述历史SQL语句为数据库中已经执行过的SQL语句;在上述历史SQL集中存在与上述待测SQL语句匹配的历史SQL语句时,确定上述待测SQL语句为非SQL注入攻击。
可选地,识别模块64,还用于在确定上述待测SQL语句为SQL注入攻击之前,确定上述历史SQL集中不存在与上述待测SQL语句匹配的历史SQL语句。
为进一步降低漏报率,如图7所示,上述装置还可以包括以下处理模块:获取模块66,连接至处理模块60,用于获取应用程序提交给数据库待执行的上述待测SQL语句。
在一个可选实施例中,如图8所示,上述装置还包括:拦截模块68,连接至识别模块64,用于在确定上述待测SQL语句为SQL注入攻击之后,对上述待测SQL语句进行拦截处理。
需要说明的是,对于上述各个模块,是可以通过软件或硬件来实现的,例如对于后者,可以表现为以下实现形式:上述各个模块分别位于不同的处理器中;或者,上述各个模块以任意组合的形式位于不同的处理器中。
另外,本实施例中优选实施方式可以参见实施例1中的相关描述,此处不再赘述。
实施例3
本申请实施例还提供一种SQL注入攻击的检测系统,如图9所示,该系统包括:WEB服务器90、防火墙服务器92和数据库服务器94;其中,
WEB服务器90上运行有通过防火墙服务器92向数据库服务器94提交待测SQL语句的应用程序;
防火墙服务器92,位于上述WEB服务器和上述数据库服务器之间,用于对上述待测SQL语句进行解析,得到上述待测SQL语句的语法规则信息,其中,上述语法规则信息包括:语法元素以及上述语法元素的上下文信息;将所有上述语法规则信息与SQL注入规则集中的SQL注入规则进行匹配,其中,上述SQL注入规则为对SQL注入语句进行解析后得到的特征;以及统计所有上述语法规则信息与上述SQL注入规则集中匹配的SQL注入规则的数量;并在上述统计数量大于与上述SQL注入规则所属类型对应的预设阈值时,确定上述待测SQL语句为SQL注入攻击。
需要说明的是,本实施例中优选实施方式可以参见实施例1中的相关描述,此处不再赘述。
实施例4
本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行SQL注入攻击的检测方法中以下步骤的程序代码:对待测SQL语句进行解析,得到上述待测SQL语句的语法规则信息,其中,上述语法规则信息包括:语法元素以及上述语法元素的上下文信息;将所有上述语法规则信息与SQL注入规则集中的SQL注入规则进行匹配,其中,上述SQL注入规则为对SQL注入语句进行词法和语法分析后得到的特征;统计上述SQL注入规则集中与上述语法规则信息匹配的SQL注入规则的数量;并在统计数量大于预设阈值时,确定上述待测SQL语句为SQL注入攻击。
可选地,图10是根据本发明实施例的一种计算机终端的结构框图。如图10所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器101、存储器103、以及与网站服务器连接的传输装置105。
其中,存储器103可用于存储软件程序以及模块,如本发明实施例中的SQL注入攻击的检测方法和装置对应的程序指令/模块,处理器101通过运行存储在存储器103内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的SQL注入攻击的检测方法。存储器103可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器103可进一步包括相对于处理器101远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置105用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置105包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置105为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器103用于存储预设动作条件和预设权限用户的信息、以及应用程序。
处理器101可以通过传输装置调用存储器103存储的信息及应用程序,以执行下述步骤:对待测SQL语句进行解析,得到上述待测SQL语句的语法规则信息,其中,上述语法规则信息包括:语法元素以及上述语法元素的上下文信息;将所有上述语法规则信息与SQL注入规则集中的SQL注入规则进行匹配,其中,上述SQL注入规则为对SQL注入语句进行词法和语法分析后得到的特征;统计上述SQL注入规则集中与上述语法规则信息匹配的SQL注入规则的数量;并在统计数量大于预设阈值时,确定上述待测SQL语句为SQL注入攻击。
可选的,上述处理器101还可以执行如下步骤的程序代码:按照上述SQL注入规则的等级对上述SQL注入规则集中的SQL注入规则进行分类,其中,上述等级越高,与上述等级对应的SQL注入规则在SQL注入攻击中出现的概率越大。
可选的,上述处理器101还可以执行如下步骤的程序代码:在上述统计数量小于上述预设阈值时,将上述待测SQL语句与历史SQL集中的历史SQL语句进行匹配,其中,上述历史SQL语句为数据库中已经执行过的SQL语句;
在上述历史SQL集中存在与上述待测SQL语句匹配的历史SQL语句时,确定上述待测SQL语句为非SQL注入攻击。
可选的,上述处理器101还可以执行如下步骤的程序代码:生成用于指示需要对上述待测SQL语句的类型进行重新判断的告警信息。
可选的,上述处理器101还可以执行如下步骤的程序代码:将上述待测SQL语句中的已被赋值的参数变量修改为未被赋值的参数变量,得到SQL模板语句;将上述SQL模板语句与上述历史SQL集中的历史SQL语句进行匹配。
可选的,上述处理器101还可以执行如下步骤的程序代码:确定上述历史SQL集中不存在与上述待测SQL语句匹配的历史SQL语句。
可选的,上述处理器101还可以执行如下步骤的程序代码:获取应用程序提交给数据库待执行的上述待测SQL语句。
可选的,上述处理器101还可以执行如下步骤的程序代码:对上述待测SQL语句进行拦截处理。
本领域普通技术人员可以理解,图10所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图10其并不对上述电子装置的结构造成限定。例如,计算机终端A还可包括比图10中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图10所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
实施例5
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例1所提供的SQL注入攻击的检测方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:对待测SQL语句进行解析,得到上述待测SQL语句的语法规则信息,其中,上述语法规则信息包括:语法元素以及上述语法元素的上下文信息;将所有上述语法规则信息与SQL注入规则集中的SQL注入规则进行匹配,其中,上述SQL注入规则为对SQL注入语句进行词法和语法分析后得到的特征;统计上述SQL注入规则集中与上述语法规则信息匹配的SQL注入规则的数量;并在统计数量大于预设阈值时,确定上述待测SQL语句为SQL注入攻击。
此处需要说明的是,上述计算机终端群中的任意一个可以与网站服务器和扫描器建立通信关系,扫描器可以扫描计算机终端上php执行的web应用程序的值命令。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (17)
1.一种结构化查询语言SQL注入攻击的检测方法,其特征在于,包括:
对待测SQL语句进行解析,得到所述待测SQL语句的语法规则信息,其中,所述语法规则信息包括:语法元素以及所述语法元素的上下文信息;
将所有所述语法规则信息与SQL注入规则集中的SQL注入规则进行匹配,其中,所述SQL注入规则为对SQL注入语句进行解析后得到的特征;
统计所有所述语法规则信息与SQL注入规则集匹配的SQL注入规则的数量;并在统计数量大于预设阈值时,确定所述待测SQL语句为SQL注入攻击。
2.根据权利要求1所述的方法,其特征在于,所述SQL注入规则集为按照以下规则对所述SQL注入规则进行分类后得到的规则集:
按照所述SQL注入规则的等级对所述SQL注入规则集中的SQL注入规则进行分类,其中,所述等级越高,与所述等级对应的SQL注入规则在SQL注入攻击中出现的概率越大。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述统计数量小于所述预设阈值时,将所述待测SQL语句与历史SQL集中的历史SQL语句进行匹配,其中,所述历史SQL语句为数据库中已经执行过的SQL语句;
在所述历史SQL集中存在与所述待测SQL语句匹配的历史SQL语句时,确定所述待测SQL语句为非SQL注入攻击。
4.根据权利要求3所述的方法,其特征在于,在所述统计数量小于所述预设阈值,且在所述历史SQL集中不存在与待测SQL语句匹配的历史SQL语句时,所述方法还包括:
生成用于指示需要对所述待测SQL语句的类型进行重新判断的告警信息。
5.根据权利要求3所述的方法,其特征在于,将所述待测SQL语句与历史SQL集中的历史SQL语句进行匹配,包括:
将所述待测SQL语句中的已被赋值的参数变量修改为未被赋值的参数变量,得到SQL模板语句;
将所述SQL模板语句与所述历史SQL集中的历史SQL语句进行匹配。
6.根据权利要求3所述的方法,其特征在于,确定所述待测SQL语句为SQL注入攻击之前,所述方法还包括:
确定所述历史SQL集中不存在与所述待测SQL语句匹配的历史SQL语句。
7.根据权利要求1所述的方法,其特征在于,所述预设阈值为与所述SQL注入规则所属类型对应的阈值。
8.根据权利要求1至7中任一项所述的方法,其特征在于,对所述待测SQL语句进行解析,得到所述待测SQL语句的语法规则信息之前,所述方法还包括:
获取应用程序提交给数据库待执行的所述待测SQL语句。
9.根据权利要求1至7中任一项所述的方法,其特征在于,在确定所述待测SQL语句为SQL注入攻击之后,所述方法包括:
对所述待测SQL语句进行拦截处理。
10.一种结构化查询语言SQL注入攻击的检测装置,其特征在于,包括:
处理模块,用于对待测SQL语句进行解析,得到所述待测SQL语句的语法规则信息,其中,所述语法规则信息包括:语法元素以及所述语法元素的上下文信息;
匹配模块,用于将所有所述语法规则信息与SQL注入规则集中的SQL注入规则进行匹配,其中,所述SQL注入规则为对SQL注入语句进行解析后得到的特征;
识别模块,用于统计所有所述语法规则信息与SQL注入规则集匹配的SQL注入规则的数量;并在统计数量大于预设阈值时,确定所述待测SQL语句为SQL注入攻击。
11.根据权利要求10所述的装置,其特征在于,所述SQL注入规则集为按照以下规则对所述SQL注入规则进行分类后得到的规则集:
按照所述SQL注入规则的等级对所述SQL注入规则集中的SQL注入规则进行分类,其中,所述等级越高,与所述等级对应的SQL注入规则在SQL注入攻击中出现的概率越大。
12.根据权利要求10所述的装置,其特征在于,所述识别模块,还用于在所述统计数量小于所述预设阈值时,将所述待测SQL语句与历史SQL集中的历史SQL语句进行匹配,其中,所述历史SQL语句为数据库中已经执行过的SQL语句;在所述历史SQL集中存在与所述待测SQL语句匹配的历史SQL语句时,确定所述待测SQL语句为非SQL注入攻击。
13.根据权利要求12所述的装置,其特征在于,所述匹配模块,还用于将所述待测SQL语句中的已被赋值的参数变量修改为未被赋值的参数变量,得到SQL模板语句;以及将所述SQL模板语句与所述历史SQL集中的历史SQL语句进行匹配。
14.根据权利要求12所述的装置,其特征在于,所述识别模块,还用于在确定所述待测SQL语句为SQL注入攻击之前,确定所述历史SQL集中不存在与所述待测SQL语句匹配的历史SQL语句。
15.根据权利要求10至14中任一项所述的装置,其特征在于,所述装置还包括:获取模块,用于获取应用程序提交给数据库待执行的所述待测SQL语句。
16.根据权利要求10至14中任一项所述的装置,其特征在于,所述装置还包括:拦截模块,用于在确定所述待测SQL语句为SQL注入攻击之后,对所述待测SQL语句进行拦截处理。
17.一种结构化查询语言SQL注入攻击的检测系统,其特征在于,包括:WEB服务器、防火墙服务器和数据库服务器;其中,
所述WEB服务器上运行有通过所述防火墙服务器向所述数据库服务器提交待测SQL语句的应用程序;
所述防火墙服务器,位于所述WEB服务器和所述数据库服务器之间,用于对所述待测SQL语句进行解析,得到所述待测SQL语句的语法规则信息,其中,所述语法规则信息包括:语法元素以及所述语法元素的上下文信息;将所述语法规则信息与SQL注入规则集中的SQL注入规则进行匹配,其中,所述SQL注入规则集为按照预设规则对所述SQL注入规则进行分类后得到的规则集;以及统计所有所述语法规则信息与SQL注入规则集匹配的SQL注入规则的数量;并在统计数量大于与所述SQL注入规则所属类型对应的预设阈值时,确定所述待测SQL语句为SQL注入攻击。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610207541.0A CN107292170B (zh) | 2016-04-05 | 2016-04-05 | Sql注入攻击的检测方法及装置、系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610207541.0A CN107292170B (zh) | 2016-04-05 | 2016-04-05 | Sql注入攻击的检测方法及装置、系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107292170A true CN107292170A (zh) | 2017-10-24 |
CN107292170B CN107292170B (zh) | 2021-06-22 |
Family
ID=60093464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610207541.0A Active CN107292170B (zh) | 2016-04-05 | 2016-04-05 | Sql注入攻击的检测方法及装置、系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107292170B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108090351A (zh) * | 2017-12-14 | 2018-05-29 | 北京百度网讯科技有限公司 | 用于处理请求消息的方法和装置 |
CN108763887A (zh) * | 2018-05-23 | 2018-11-06 | 腾讯科技(深圳)有限公司 | 数据库操作请求验证方法、装置、服务器及存储介质 |
CN109889471A (zh) * | 2017-12-06 | 2019-06-14 | 阿里巴巴集团控股有限公司 | 结构化查询语句sql注入检测方法和系统 |
CN110035031A (zh) * | 2018-01-11 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 一种sql注入的检测方法及数据处理方法 |
CN110378120A (zh) * | 2019-07-17 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 应用程序接口攻击检测方法、装置以及可读存储介质 |
CN111064735A (zh) * | 2019-12-25 | 2020-04-24 | 南开大学 | 一种电力信息系统sql注入漏洞检测方法及系统 |
CN111259039A (zh) * | 2020-02-12 | 2020-06-09 | 平安科技(深圳)有限公司 | 数据库操作方法、装置、设备和计算机可读存储介质 |
CN111651468A (zh) * | 2020-05-29 | 2020-09-11 | 中国平安财产保险股份有限公司 | 基于sql解析的数据更新方法、装置、电子设备及存储介质 |
CN112084499A (zh) * | 2020-09-11 | 2020-12-15 | 杭州安恒信息技术股份有限公司 | 一种基于语法分析的0day攻击检测方法、装置、设备及介质 |
CN112100617A (zh) * | 2020-09-15 | 2020-12-18 | 全球能源互联网研究院有限公司 | 一种异常sql检测方法及装置 |
CN112395637A (zh) * | 2019-08-15 | 2021-02-23 | 奇安信安全技术(珠海)有限公司 | 数据库防护方法及装置、存储介质、计算机设备 |
CN112883372A (zh) * | 2019-11-29 | 2021-06-01 | 中国电信股份有限公司 | 跨站脚本攻击检测方法和装置 |
CN113672491A (zh) * | 2020-05-14 | 2021-11-19 | 深圳市华胜软件技术有限公司 | 检测sql语句合法性的方法、存储介质及终端设备 |
CN113987511A (zh) * | 2021-10-28 | 2022-01-28 | 中国平安人寿保险股份有限公司 | Sql注入漏洞的检测方法、装置、计算机设备及存储介质 |
CN114640530A (zh) * | 2022-03-24 | 2022-06-17 | 深信服科技股份有限公司 | 一种数据泄露检测方法、装置、电子设备及可读存储介质 |
CN115185525A (zh) * | 2022-05-17 | 2022-10-14 | 贝壳找房(北京)科技有限公司 | 数据倾斜代码块定位方法、装置、设备、介质及程序产品 |
CN115549990A (zh) * | 2022-09-19 | 2022-12-30 | 武汉思普崚技术有限公司 | 一种sql注入检测方法及相关设备 |
US20230169180A1 (en) * | 2021-11-30 | 2023-06-01 | Oracle International Corporation | Detecting security vulnerabilities in queries via an information flow graph |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102375826A (zh) * | 2010-08-13 | 2012-03-14 | 中国移动通信集团公司 | Sql脚本解析方法、装置及系统 |
CN103744802A (zh) * | 2013-12-20 | 2014-04-23 | 北京奇虎科技有限公司 | Sql注入攻击的识别方法及装置 |
CN105357179A (zh) * | 2015-09-29 | 2016-02-24 | 深信服网络科技(深圳)有限公司 | 网络攻击的处理方法及装置 |
-
2016
- 2016-04-05 CN CN201610207541.0A patent/CN107292170B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102375826A (zh) * | 2010-08-13 | 2012-03-14 | 中国移动通信集团公司 | Sql脚本解析方法、装置及系统 |
CN103744802A (zh) * | 2013-12-20 | 2014-04-23 | 北京奇虎科技有限公司 | Sql注入攻击的识别方法及装置 |
CN105357179A (zh) * | 2015-09-29 | 2016-02-24 | 深信服网络科技(深圳)有限公司 | 网络攻击的处理方法及装置 |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109889471A (zh) * | 2017-12-06 | 2019-06-14 | 阿里巴巴集团控股有限公司 | 结构化查询语句sql注入检测方法和系统 |
CN108090351A (zh) * | 2017-12-14 | 2018-05-29 | 北京百度网讯科技有限公司 | 用于处理请求消息的方法和装置 |
CN108090351B (zh) * | 2017-12-14 | 2022-03-08 | 北京百度网讯科技有限公司 | 用于处理请求消息的方法和装置 |
CN110035031A (zh) * | 2018-01-11 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 一种sql注入的检测方法及数据处理方法 |
CN110035031B (zh) * | 2018-01-11 | 2022-04-26 | 阿里巴巴集团控股有限公司 | 一种sql注入的检测方法及数据处理方法 |
CN108763887A (zh) * | 2018-05-23 | 2018-11-06 | 腾讯科技(深圳)有限公司 | 数据库操作请求验证方法、装置、服务器及存储介质 |
CN110378120A (zh) * | 2019-07-17 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 应用程序接口攻击检测方法、装置以及可读存储介质 |
CN112395637A (zh) * | 2019-08-15 | 2021-02-23 | 奇安信安全技术(珠海)有限公司 | 数据库防护方法及装置、存储介质、计算机设备 |
CN112883372B (zh) * | 2019-11-29 | 2024-02-09 | 中国电信股份有限公司 | 跨站脚本攻击检测方法和装置 |
CN112883372A (zh) * | 2019-11-29 | 2021-06-01 | 中国电信股份有限公司 | 跨站脚本攻击检测方法和装置 |
CN111064735B (zh) * | 2019-12-25 | 2021-10-15 | 南开大学 | 一种电力信息系统sql注入漏洞检测方法及系统 |
CN111064735A (zh) * | 2019-12-25 | 2020-04-24 | 南开大学 | 一种电力信息系统sql注入漏洞检测方法及系统 |
CN111259039A (zh) * | 2020-02-12 | 2020-06-09 | 平安科技(深圳)有限公司 | 数据库操作方法、装置、设备和计算机可读存储介质 |
CN113672491B (zh) * | 2020-05-14 | 2024-06-04 | 深圳市华胜软件技术有限公司 | 检测sql语句合法性的方法、存储介质及终端设备 |
CN113672491A (zh) * | 2020-05-14 | 2021-11-19 | 深圳市华胜软件技术有限公司 | 检测sql语句合法性的方法、存储介质及终端设备 |
CN111651468B (zh) * | 2020-05-29 | 2024-07-02 | 中国平安财产保险股份有限公司 | 基于sql解析的数据更新方法、装置、电子设备及存储介质 |
CN111651468A (zh) * | 2020-05-29 | 2020-09-11 | 中国平安财产保险股份有限公司 | 基于sql解析的数据更新方法、装置、电子设备及存储介质 |
CN112084499A (zh) * | 2020-09-11 | 2020-12-15 | 杭州安恒信息技术股份有限公司 | 一种基于语法分析的0day攻击检测方法、装置、设备及介质 |
CN112100617A (zh) * | 2020-09-15 | 2020-12-18 | 全球能源互联网研究院有限公司 | 一种异常sql检测方法及装置 |
CN112100617B (zh) * | 2020-09-15 | 2023-11-24 | 全球能源互联网研究院有限公司 | 一种异常sql检测方法及装置 |
CN113987511A (zh) * | 2021-10-28 | 2022-01-28 | 中国平安人寿保险股份有限公司 | Sql注入漏洞的检测方法、装置、计算机设备及存储介质 |
US11860679B2 (en) * | 2021-11-30 | 2024-01-02 | Oracle International Corporation | Detecting security vulnerabilities in queries via an information flow graph |
US20230169180A1 (en) * | 2021-11-30 | 2023-06-01 | Oracle International Corporation | Detecting security vulnerabilities in queries via an information flow graph |
CN114640530B (zh) * | 2022-03-24 | 2023-12-29 | 深信服科技股份有限公司 | 一种数据泄露检测方法、装置、电子设备及可读存储介质 |
CN114640530A (zh) * | 2022-03-24 | 2022-06-17 | 深信服科技股份有限公司 | 一种数据泄露检测方法、装置、电子设备及可读存储介质 |
CN115185525A (zh) * | 2022-05-17 | 2022-10-14 | 贝壳找房(北京)科技有限公司 | 数据倾斜代码块定位方法、装置、设备、介质及程序产品 |
CN115549990A (zh) * | 2022-09-19 | 2022-12-30 | 武汉思普崚技术有限公司 | 一种sql注入检测方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107292170B (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107292170B (zh) | Sql注入攻击的检测方法及装置、系统 | |
CN107292167B (zh) | 基于精简语法树的sql语句安全检测方法 | |
US7983900B2 (en) | Method, computer program and apparatus for analysing symbols in a computer system | |
CN110362597A (zh) | 一种结构化查询语言sql注入检测方法及装置 | |
CN112800427B (zh) | webshell检测方法、装置、电子设备和存储介质 | |
US11640464B2 (en) | Protocol model learning and guided firmware analysis | |
CN1886705A (zh) | 高效实现及评估状态机和可编程有限状态自动机的方法和设备 | |
WO2011032094A1 (en) | Extracting information from unstructured data and mapping the information to a structured schema using the naive bayesian probability model | |
CN108520180A (zh) | 一种基于多维度的固件Web漏洞检测方法及系统 | |
CN112817877B (zh) | 异常脚本检测方法、装置、计算机设备和存储介质 | |
WO2023241529A1 (zh) | 漏洞信息处理方法、服务装置和漏洞检测模块 | |
CN109002712B (zh) | 一种基于值依赖图的污染数据分析方法、系统与电子设备 | |
US9600644B2 (en) | Method, a computer program and apparatus for analyzing symbols in a computer | |
CN115906086A (zh) | 基于代码属性图的网页后门检测方法、系统及存储介质 | |
RU2659482C1 (ru) | Способ защиты веб-приложений при помощи интеллектуального сетевого экрана с использованием автоматического построения моделей приложений | |
CN103093147B (zh) | 一种识别信息的方法和电子装置 | |
Tedesco et al. | Real-time alert correlation with type graphs | |
CN117056347A (zh) | Sql语句永真式注入检测方法、装置、计算机设备及存储介质 | |
CN111259039A (zh) | 数据库操作方法、装置、设备和计算机可读存储介质 | |
CN109977298A (zh) | 一种从正则表达式中抽取最长精确子串的方法 | |
CN114579809A (zh) | 事件分析方法、装置、电子设备及存储介质 | |
CN114547560A (zh) | 一种处理方法、装置及电子设备 | |
WO2017049254A1 (en) | Systems and methods for sql type and/or value evaluation to detect evaluation flaws | |
US11997110B2 (en) | Tree-based learning of application programming interface specification | |
US20240211595A1 (en) | Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program |
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 |