CN107451473A - 基于特征模式识别的sql注入检测方法 - Google Patents

基于特征模式识别的sql注入检测方法 Download PDF

Info

Publication number
CN107451473A
CN107451473A CN201710627467.2A CN201710627467A CN107451473A CN 107451473 A CN107451473 A CN 107451473A CN 201710627467 A CN201710627467 A CN 201710627467A CN 107451473 A CN107451473 A CN 107451473A
Authority
CN
China
Prior art keywords
sql
abstract syntax
sentences
database
feature
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.)
Pending
Application number
CN201710627467.2A
Other languages
English (en)
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.)
Hangzhou Meichuang Science & Technology Co Ltd
Original Assignee
Hangzhou Meichuang Science & Technology 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 Hangzhou Meichuang Science & Technology Co Ltd filed Critical Hangzhou Meichuang Science & Technology Co Ltd
Priority to CN201710627467.2A priority Critical patent/CN107451473A/zh
Publication of CN107451473A publication Critical patent/CN107451473A/zh
Pending legal-status Critical Current

Links

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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开了一种基于特征模式识别的sql注入检测方法,包括如下步骤:(1‑1)基于sql语法解析和sql语义解析生成sql注入特征模式抽象语法树库;(1‑2)获取应用程序到数据库的网络流量,根据数据库协议解析网络流量,从中提取完整的sql语句;(1‑3)对获取的sql语句进行SQL语句语法解析,获取sql语句的语法单元;(1‑4)对sql语句的语法单元进行sql语义解析,执行语义计算,生成计算简化过的目标抽象语法树;本发明具有减少了误报、漏报,提高了工作效率的特点。

Description

基于特征模式识别的sql注入检测方法
技术领域
本发明涉及网络安全技术领域,尤其是涉及一种基于特征模式识别的sql注入检测方法。
背景技术
Sql注入就是通过把sql命令插入到应用程序的用户输入从而影响查询字符串,最终达到欺骗服务器执行恶意的sql命令。
当应用程序使用用户输入内容来动态构造sql语句用以访问数据库时,会发生sql注入攻击。许多应用程序在编写时,没有对用户输入的内容做合法性过滤或者过滤不完整,使应用程序存在sql注入的安全隐患。攻击者通过sql注入达到获取敏感信息,破坏应用数据,直至控制整个服务器。
现有的sql注入攻击的识别方案的缺陷:1.都是针对web应用,无法对非web应用提供支持。2.通过http协议的url,post信息等web浏览器提交到web服务启的信息做sql注入识别,只有sql语句的片段没有完整的sql语句。3.从http协议获取的信息不能区分是构造sql语句的信息还是其他信息,例如url中存在sql注入语句但是这部分数据并没有被用来构造sql语句容易误报。4.使用正则表达式进行识别效率低,为了提高效率仅做部分字符的检测容易漏报。5.由于从http协议获取的不是完整sql语句,使用词法分析的识别方法可能导致语句中的语法单元和数据不能正确区分从而导致误报。
发明内容
本发明的发明目的是为了克服现有技术中的使用词法分析的识别方法可能导致语句中的语法单元和数据不能正确区分,导致误报的不足,提供了一种基于特征模式识别的sql注入检测方法。
为了实现上述目的,本发明采用以下技术方案:
一种基于特征模式识别的sql注入检测方法,包括如下步骤:
(1-1)基于sql语法解析和sql语义解析生成sql注入特征模式抽象语法树库;
(1-2)获取应用程序到数据库的网络流量,根据数据库协议解析网络流量,从中提取完整的sql语句;
(1-3)对获取的sql语句进行SQL语句语法解析,获取sql语句的语法单元;
(1-4)对sql语句的语法单元进行sql语义解析,执行语义计算,生成计算简化过的目标抽象语法树;
(1-5)将计算生成的目标抽象语法树与sql注入特征模式抽象语法树库进行匹配,如果特征模式抽象语法树库中任一个特征模式抽象语法树是目标抽象语法树的子树,则做出存在sql注入攻击的判断。
本发明支持所有应用不仅限于web应用,能够获取完整的sql语句从而减少漏报,能够排除不是sql语句的内容从而减少误报,基于抽象语法树的比较而不是字符比较,极大提高了工作效率。
作为优选,所述sql注入特征模式抽象语法树库是由语法分析、语义分析、语义计算后生成的抽象语法树集合。
作为优选,获取应用程序到数据库的网络流量包括应用程序到数据库的所有流量。
作为优选,从应用程序到数据库的网络流量提取完整sql语句的方法为根据各种特定的数据库协议解析提取。
作为优选,sql语句的语法单元包含保留关键字、常量、变量、标识符、数据类型、函数、表达式、运算符和注释。
作为优选,语义计算包含变量替换,常量替换,函数计算,表达式计算和运算符计算。
作为优选,特征库匹配的过程为抽象语法树的子树匹配。
因此,本发明具有如下有益效果:
1.支持所有应用不仅限于web应用。
2.能够获取完整的sql语句从而减少漏报。
3.能够排除不是sql语句的内容从而减少误报。
4.基于抽象语法树的比较而不是字符比较,极大提高了工作效率。
附图说明
图1是本发明的一种流程图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步的描述。
图1为本实施例的一种基于特征模式识别的sql注入检测方法,包括以下步骤:
1.基于sql语法解析和sql语义解析生成sql注入特征模式抽象语法树库:
经过预防解析得到如下语法元素:
A.关键字,sql语句的保留关键字例如select,from等。
B.常量,sql语句中的常量值例如字符常量’aa’,数字常量123等。
C.变量,sql语句中使用的变量例如绑定变量。
D.标识符,sql语句中的标识符例如表名,字段名等。
E.数据类型,sql语句中对象的数据类型,例如字符类型,数字类型,日期类型等。
F.函数,sql语句中的函数,列如sum,count等。
G.表达式,sql语句中标表达式,例如1+2,var1*12等。
H.运算符,sql语句中的运算符,例如+,-,*,/等。
I.注释,sql语句中个的注释,插入到sql语句中不执行的内容。
语义解析执行如下运算:
A.变量替换,将变量具体化,例如绑定变量绑定时的值。
B.常量替换,将常量替换为常量表的表项。
C.函数计算,执行函数计算例如sum计算数据和。
D.表达式计算,执行表达式计算例如1+2计算后等到3。
E.运算符计算,执行运算符运算例如-1,先计算云算符在计算表达式。
使用LALR执行语法分析生成抽象语法树。
2.获取应用程序到数据库的网络流量,从中提取完整的sql语句:
A.获取应用程序到数据库的网络流量,可以使用透明代理方法,网络流量镜像端口等方法。
B.根据各个数据库网络协议的特征得出需要使用哪个网络协议解析器。
C.使用特定的网络协议解析器解析网络流量提取完整的sql语句。
3.对获取的sql语句进行SQL语句语法解析,获取sql语句的语法单元:
sql语句解析方法与特征库生成时使用的方法一致。
4.对sql语句的语法单元进行sql语义解析执行语义计算,生成计算简化过的抽象语法树:
Sql语句语义解析方法与特召开生成时使用的方法一致。
5.sql注入特征模式匹配:
匹配特征模式抽象语法树是目标抽象语法树的子树则判断存在sql注入攻击。
应理解,本实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。

Claims (7)

1.一种基于特征模式识别的sql注入检测方法,其特征是,包括如下步骤:
(1-1)基于sql语法解析和sql语义解析生成sql注入特征模式抽象语法树库;
(1-2)获取应用程序到数据库的网络流量,根据数据库协议解析网络流量,从中提取完整的sql语句;
(1-3)对获取的sql语句进行SQL语句语法解析,获取sql语句的语法单元;
(1-4)对sql语句的语法单元进行sql语义解析,执行语义计算,生成计算简化过的目标抽象语法树;
(1-5)将计算生成的目标抽象语法树与sql注入特征模式抽象语法树库进行匹配,如果特征模式抽象语法树库中任一个特征模式抽象语法树是目标抽象语法树的子树,则做出存在sql注入攻击的判断。
2.根据权利要求1所述的基于特征模式识别的sql注入检测方法,其特征是,所述sql注入特征模式抽象语法树库是由语法分析、语义分析、语义计算后生成的抽象语法树集合。
3.根据权利要求1所述的基于特征模式识别的sql注入检测方法,其特征是,获取应用程序到数据库的网络流量包括应用程序到数据库的所有流量。
4.根据权利要求1所述的基于特征模式识别的sql注入检测方法,其特征是,从应用程序到数据库的网络流量提取完整sql语句的方法为根据各种特定的数据库协议解析提取。
5.根据权利要求1所述的基于特征模式识别的sql注入检测方法,其特征是,sql语句的语法单元包含保留关键字、常量、变量、标识符、数据类型、函数、表达式、运算符和注释。
6.根据权利要求1所述的基于特征模式识别的sql注入检测方法,其特征是,语义计算包含变量替换,常量替换,函数计算,表达式计算和运算符计算。
7.根据权利要求1或2或3或4或5或6所述的基于特征模式识别的sql注入检测方法,其特征是,特征库匹配的过程为抽象语法树的子树匹配。
CN201710627467.2A 2017-07-27 2017-07-27 基于特征模式识别的sql注入检测方法 Pending CN107451473A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710627467.2A CN107451473A (zh) 2017-07-27 2017-07-27 基于特征模式识别的sql注入检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710627467.2A CN107451473A (zh) 2017-07-27 2017-07-27 基于特征模式识别的sql注入检测方法

Publications (1)

Publication Number Publication Date
CN107451473A true CN107451473A (zh) 2017-12-08

Family

ID=60489630

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710627467.2A Pending CN107451473A (zh) 2017-07-27 2017-07-27 基于特征模式识别的sql注入检测方法

Country Status (1)

Country Link
CN (1) CN107451473A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108090351A (zh) * 2017-12-14 2018-05-29 北京百度网讯科技有限公司 用于处理请求消息的方法和装置
CN108875366A (zh) * 2018-05-23 2018-11-23 四川大学 一种面向php程序的sql注入行为检测系统
CN109324985A (zh) * 2018-09-03 2019-02-12 中新网络信息安全股份有限公司 一种基于机器学习的自动适应场景的sql注入识别方法
CN113139183A (zh) * 2020-01-17 2021-07-20 深信服科技股份有限公司 一种检测方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123497A (zh) * 2014-07-04 2014-10-29 北京神州绿盟信息安全科技股份有限公司 一种防御sql注入的方法、装置及系统
CN106355094A (zh) * 2016-07-08 2017-01-25 耿童童 一种基于语法变换的sql注入攻击防御系统及防御方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123497A (zh) * 2014-07-04 2014-10-29 北京神州绿盟信息安全科技股份有限公司 一种防御sql注入的方法、装置及系统
CN106355094A (zh) * 2016-07-08 2017-01-25 耿童童 一种基于语法变换的sql注入攻击防御系统及防御方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
石聪聪 等: "基于语法树特征匹配的SQL注入防护方法研究与实现", 《2011 INTERNATIONAL CONFERENCE ON INTELLIGENT COMPUTATION AND INDUSTRIAL APPLICATION(ICIA2011)》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108090351A (zh) * 2017-12-14 2018-05-29 北京百度网讯科技有限公司 用于处理请求消息的方法和装置
CN108090351B (zh) * 2017-12-14 2022-03-08 北京百度网讯科技有限公司 用于处理请求消息的方法和装置
CN108875366A (zh) * 2018-05-23 2018-11-23 四川大学 一种面向php程序的sql注入行为检测系统
CN109324985A (zh) * 2018-09-03 2019-02-12 中新网络信息安全股份有限公司 一种基于机器学习的自动适应场景的sql注入识别方法
CN113139183A (zh) * 2020-01-17 2021-07-20 深信服科技股份有限公司 一种检测方法、装置、设备及存储介质
CN113139183B (zh) * 2020-01-17 2023-12-29 深信服科技股份有限公司 一种检测方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN103559444B (zh) 一种sql注入检测方法及装置
CN100489879C (zh) 一种对页面数据进行校验的方法、系统和服务器
CN103559235B (zh) 一种在线社交网络恶意网页检测识别方法
CN103744802B (zh) Sql注入攻击的识别方法及装置
CN107451473A (zh) 基于特征模式识别的sql注入检测方法
US7941420B2 (en) Method for organizing structurally similar web pages from a web site
CN111079043B (zh) 一种关键内容定位方法
CN101216842B (zh) 获取页面关键词的方法及页面信息处理装置
US8209599B2 (en) Method and system for handling references in markup language documents
CN108959926A (zh) 一种sql注入攻击的检测方法
CN101183458B (zh) 图片验证码生成方法和图片验证码生成装置
CN107092639A (zh) 一种搜索引擎系统
CN112989348A (zh) 攻击检测方法、模型训练方法、装置、服务器及存储介质
CN104765882B (zh) 一种基于网页特征字符串的互联网网站统计方法
CN104954345B (zh) 基于对象分析的攻击识别方法及装置
CN107862039B (zh) 网页数据获取方法、系统和数据匹配推送方法
CN111753171A (zh) 一种恶意网站的识别方法和装置
CN107437026A (zh) 一种基于广告网络拓扑的恶意网页广告检测方法
CN107526968A (zh) 一种基于语法分析的sql防注入方法和装置
CN109657114B (zh) 一种抽取网页半结构化数据的方法
CN106992967A (zh) 恶意网站识别方法和系统
CN110020161B (zh) 数据处理方法、日志处理方法和终端
CN108846292B (zh) 脱敏规则生成方法及装置
CN110474890B (zh) 一种基于智能流量导向切换的数据反爬取方法及装置
US20090204889A1 (en) Adaptive sampling of web pages for extraction

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20171208