CN106845237A - 一种基于sql语句的sql注入风险评估方法 - Google Patents

一种基于sql语句的sql注入风险评估方法 Download PDF

Info

Publication number
CN106845237A
CN106845237A CN201710048581.XA CN201710048581A CN106845237A CN 106845237 A CN106845237 A CN 106845237A CN 201710048581 A CN201710048581 A CN 201710048581A CN 106845237 A CN106845237 A CN 106845237A
Authority
CN
China
Prior art keywords
risk
sql
return
enter next
next step
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
CN201710048581.XA
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.)
BEIJING ANHUA JINHE TECHNOLOGY CO LTD
Original Assignee
BEIJING ANHUA JINHE 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 BEIJING ANHUA JINHE TECHNOLOGY CO LTD filed Critical BEIJING ANHUA JINHE TECHNOLOGY CO LTD
Priority to CN201710048581.XA priority Critical patent/CN106845237A/zh
Publication of CN106845237A publication Critical patent/CN106845237A/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/56Computer malware detection or handling, e.g. anti-virus arrangements

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种基于SQL语句的SQL注入风险评估方法,其技术特点是包括以下步骤:建立以数据库id为key值存储规则组的多维存储体;通过数据库id获得的key值,从多维存储体的规则组中查找对应的风险规则并逐条匹配,根据风险规则匹配情况设置高、中、低、无风险等级,并根据风险等级进行放行、拦截和阻断控制。本发明能够根据SQL语句特征对SQL语句存在SQL注入行为的可能性进行风险评估,通过定义可能存在SQL注入的关键域范围,能够准确地计算SQL风险等级,能够及时发现可能存在SQL注入的行为,可广泛用于对访问数据库的SQL语句进行风险评估领域。

Description

一种基于SQL语句的SQL注入风险评估方法
技术领域
本发明属于数据库安全技术领域,尤其是一种基于SQL语句的SQL注入风险评估方法。
背景技术
随着数据库应用领域越来也广泛,各种应用系统的数据库的安全问题、敏感数据的防窃取和防篡改问题,越来越引起人们的高度重视。SQL注入攻击是黑客对数据库进行攻击的常用手段之一,目前,通过SQL注入获取数据库信息的方法层出不穷,为了保证数据库的安全,可以通过web程序本身自检或者增加web防火墙的方式进行防范,但是上述方法存在以下问题:(1)通过对已知的SQL注入特征进行规则匹配,进行防范,其范围狭窄,往往规则库的更新赶不上新的SQL注入方法的出现;(2)可防范的领域狭隘,当SQL注入在web服务器上发生时,两种机制都无法检测。
发明内容
本发明的目的在于克服现有技术的不足,提供一种设计合理且安全可靠的基于SQL语句的SQL注入风险评估方法。
本发明解决现有的技术问题是采取以下技术方案实现的:
一种基于SQL语句的SQL注入风险评估方法,包括以下步骤:
步骤1、建立以数据库id为key值存储规则组的多维存储体;
步骤2、通过数据库id获得的key值,从多维存储体的规则组中查找对应的风险规则并逐条匹配,根据风险规则匹配情况设置高、中、低、无风险等级,并根据风险等级进行放行、拦截和阻断控制。
所述多维存储结构以数据库id为key值存储规则组,在规则组中,在每一条风险规则中,均按照SQL注释、OR操作、union操作、高危操作、多语句查询、常量表达式、空密码查询、暴力破解函数、系统表和敏感表、自定义正则的顺序组合。
所述步骤2的具体处理过程为:
(1)根据数据库id找到此数据库对应的规则;
(2)判断是否存在风险规则且命中的风险规则数少于设定的阀值,是则进入下一步,否则结束;
(3)判断规则中有需匹配元素,有则进入下一步,否则返回步骤(2);
(4)判断是否命中高危操作,是则进入下一步,否则返回步骤(2);
(5)判断是否命中系统表或敏感表,是则进入下一步,否则返回步骤(2);
(6)判断是否命中SQL注释,是则进入下一步,否则返回步骤(2);
(7)判断是否命中OR操作,是则进入下一步,否则返回步骤(2);
(8)判断是否命中union操作,是则进入下一步,否则返回步骤(2);
(9)判断是否命中常量表达式操作,是则进入下一步,否则返回步骤(2);
(10)判断是否命中空密码查询,是则进入下一步,否则返回步骤(2);
(11)判断是否命中暴力破解函数,是则进入下一步,否则返回步骤(2);
(12)判断是否命中自定义正则,是则进入下一步,否则返回步骤(2);
(13)判断是否命中多语句查询,是则进入下一步,否则返回步骤(2);
(14)设置风险等级并进行控制:根据配置情况设置高、中、低、无风险等级,并根据风险等级进行放行、拦截和阻断控制。
所述的阀值为5。
本发明的优点和积极效果是:
1、本发明能够根据SQL语句特征对SQL语句存在SQL注入行为的可能性进行风险评估,在使用SQL语句访问数据库过程中,根据可配置的关键域、风险值、控制行为,对SQL语句关键域进行查找,从而计算出SQL语句的风险等级并采取的控制行为。
2、本发明设计合理,通过定义可能存在SQL注入的关键域范围,能够准确地计算SQL风险等级,能够及时发现可能存在SQL注入的行为,可广泛用于对访问数据库的SQL语句进行风险评估领域。
附图说明
图1是本发明的多维存储结构图;
图2是本发明的评估方法流程图。
具体实施方式
以下结合附图对本发明实施例做进一步详述:
一种基于SQL语句的SQL注入风险评估方法的设计原则是基于SQL语句中的关键域进行风险评估,在即将到达数据库的SQL请求进行风险评估后,决定SQL语句能否真正的在数据库执行,从而确保数据库安全。
本发明对SQL语法的特性和SQL注入利用的关键域进行分析可知,SQL注入通常利用SQL注释、OR操作、union操作、常量表达式、空密码查询、多语句查询、暴力破解函数、高危操作,以及对系统表和敏感表、自定义正则的访问到达目的。基于以上分析,本发明使用SQL注释、OR操作、union操作、常量表达式、空密码查询、多语句查询、暴力破解函数、高危操作,以及对系统表和敏感表、自定义正则这些关键域进行风险评估,通过对关键域的组合和风险值及操作的配置,达到对SQL注入风险进行计算和控制的目的。
本发明的基于SQL语句的SQL注入风险评估方法具体包括以下步骤:
步骤1、建立以数据库id为key值存储规则组的多维存储体。
如图1所示,本发明建立的多维存储结构以数据库id为key值存储规则组,在该规则组中,按照高风险优先原则,在每一条风险规则中,均按照SQL注释、OR操作、union操作、高危操作、多语句查询、常量表达式、空密码查询、暴力破解函数、系统表和敏感表、自定义正则的顺序组合,其特点是特征标记的元组优先匹配,正则元组滞后,而存储结构体中的正则元组存储的是编译后的正则地址。
步骤2、通过数据库id获得的key值,从多维存储体的规则组中查找对应的风险规则,逐条匹配,在风险规则中,逐个遍历元组,如果有其中一个元组没有匹配上,则直接返回,认为该规则没有命中;根据配置情况设置高、中、低、无风险等级,并根据风险等级进行放行、拦截和阻断控制。
本步骤的具体处理流程如图2所示,具体过程为:
(1)根据数据库id找到此数据库对应的规则;
(2)判断是否存在风险规则且命中的规则数少于设定的阀值(本实施例的阀值设置为5),是则进入下一步,否则结束;
(3)判断规则中有需匹配元素,有则进入下一步,否则返回步骤(2);
(4)判断是否命中高危操作,是则进入下一步,否则返回步骤(2);
(5)判断是否命中系统表或敏感表,是则进入下一步,否则返回步骤(2);
(6)判断是否命中SQL注释,是则进入下一步,否则返回步骤(2);
(7)判断是否命中OR操作,是则进入下一步,否则返回步骤(2);
(8)判断是否命中union操作,是则进入下一步,否则返回步骤(2);
(9)判断是否命中常量表达式操作,是则进入下一步,否则返回步骤(2);
(10)判断是否命中空密码查询,是则进入下一步,否则返回步骤(2);
(11)判断是否命中暴力破解函数,是则进入下一步,否则返回步骤(2);
(12)判断是否命中自定义正则,是则进入下一步,否则返回步骤(2);
(13)判断是否命中多语句查询,是则进入下一步,否则返回步骤(2);
(14)设置风险等级并进行控制:根据配置情况设置高、中、低、无风险等级,并根据风险等级进行放行、拦截和阻断控制。
需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。

Claims (4)

1.一种基于SQL语句的SQL注入风险评估方法,其特征在于包括以下步骤:
步骤1、建立以数据库id为key值存储规则组的多维存储体;
步骤2、通过数据库id获得的key值,从多维存储体的规则组中查找对应的风险规则并逐条匹配,根据风险规则匹配情况设置高、中、低、无风险等级,并根据风险等级进行放行、拦截和阻断控制。
2.根据权利要求1所述的一种基于SQL语句的SQL注入风险评估方法,其特征在于:所述多维存储结构以数据库id为key值存储规则组,在规则组中,在每一条风险规则中,均按照SQL注释、OR操作、union操作、高危操作、多语句查询、常量表达式、空密码查询、暴力破解函数、系统表和敏感表、自定义正则的顺序组合。
3.根据权利要求1所述的一种基于SQL语句的SQL注入风险评估方法,其特征在于:所述步骤2的具体处理过程为:
(1)根据数据库id找到此数据库对应的规则;
(2)判断是否存在风险规则且命中的风险规则数少于设定的阀值,是则进入下一步,否则结束;
(3)判断规则中有需匹配元素,有则进入下一步,否则返回步骤(2);
(4)判断是否命中高危操作,是则进入下一步,否则返回步骤(2);
(5)判断是否命中系统表或敏感表,是则进入下一步,否则返回步骤(2);
(6)判断是否命中SQL注释,是则进入下一步,否则返回步骤(2);
(7)判断是否命中OR操作,是则进入下一步,否则返回步骤(2);
(8)判断是否命中union操作,是则进入下一步,否则返回步骤(2);
(9)判断是否命中常量表达式操作,是则进入下一步,否则返回步骤(2);
(10)判断是否命中空密码查询,是则进入下一步,否则返回步骤(2);
(11)判断是否命中暴力破解函数,是则进入下一步,否则返回步骤(2);
(12)判断是否命中自定义正则,是则进入下一步,否则返回步骤(2);
(13)判断是否命中多语句查询,是则进入下一步,否则返回步骤(2);
(14)设置风险等级并进行控制:根据配置情况设置高、中、低、无风险等级,并根据风险等级进行放行、拦截和阻断控制。
4.根据权利要求3所述的一种基于SQL语句的SQL注入风险评估方法,其特征在于:所述的阀值为5。
CN201710048581.XA 2017-01-23 2017-01-23 一种基于sql语句的sql注入风险评估方法 Pending CN106845237A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710048581.XA CN106845237A (zh) 2017-01-23 2017-01-23 一种基于sql语句的sql注入风险评估方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710048581.XA CN106845237A (zh) 2017-01-23 2017-01-23 一种基于sql语句的sql注入风险评估方法

Publications (1)

Publication Number Publication Date
CN106845237A true CN106845237A (zh) 2017-06-13

Family

ID=59120482

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710048581.XA Pending CN106845237A (zh) 2017-01-23 2017-01-23 一种基于sql语句的sql注入风险评估方法

Country Status (1)

Country Link
CN (1) CN106845237A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108009427A (zh) * 2017-11-29 2018-05-08 北京安华金和科技有限公司 一种针对数据库漏洞规则的快速检索方法
CN108804554A (zh) * 2018-05-22 2018-11-13 上海达梦数据库有限公司 一种数据库查询方法、装置、服务器和存储介质
CN109063013A (zh) * 2018-07-11 2018-12-21 北京安数云信息技术有限公司 一种数据库行为操作阻断方法和装置
CN112804261A (zh) * 2021-03-19 2021-05-14 北京安华金和科技有限公司 一种数据转发控制方法、装置、存储介质及电子装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101267357A (zh) * 2007-03-13 2008-09-17 北京启明星辰信息技术有限公司 一种sql注入攻击检测方法及系统
CN101370008A (zh) * 2007-08-13 2009-02-18 杭州安恒信息技术有限公司 Sql注入web攻击的实时入侵检测系统
CN101610271A (zh) * 2009-07-21 2009-12-23 国网电力科学研究院 一种基于数据流还原技术的数据库安全防护方法
CN101833620A (zh) * 2010-04-28 2010-09-15 国网电力科学研究院 一种基于自定义安全jdbc驱动的数据库防护方法
CN102567546A (zh) * 2012-01-18 2012-07-11 北京神州绿盟信息安全科技股份有限公司 一种sql注入检测方法及装置
CN102768672A (zh) * 2012-06-12 2012-11-07 上海方正数字出版技术有限公司 一种磁盘空间管理方法和装置
CN103338208A (zh) * 2013-07-16 2013-10-02 五八同城信息技术有限公司 一种sql注入防御的方法和系统
CN103530427A (zh) * 2013-11-04 2014-01-22 北京京东尚科信息技术有限公司 一种基于多数据库的动态切换方法和装置
CN103780614A (zh) * 2014-01-21 2014-05-07 金华比奇网络技术有限公司 一种基于模拟攻击扩展的sql注入漏洞挖掘方法
CN105491063A (zh) * 2015-12-30 2016-04-13 深圳市深信服电子科技有限公司 防御网络入侵的方法及装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101267357A (zh) * 2007-03-13 2008-09-17 北京启明星辰信息技术有限公司 一种sql注入攻击检测方法及系统
CN101370008A (zh) * 2007-08-13 2009-02-18 杭州安恒信息技术有限公司 Sql注入web攻击的实时入侵检测系统
CN101610271A (zh) * 2009-07-21 2009-12-23 国网电力科学研究院 一种基于数据流还原技术的数据库安全防护方法
CN101833620A (zh) * 2010-04-28 2010-09-15 国网电力科学研究院 一种基于自定义安全jdbc驱动的数据库防护方法
CN102567546A (zh) * 2012-01-18 2012-07-11 北京神州绿盟信息安全科技股份有限公司 一种sql注入检测方法及装置
CN102768672A (zh) * 2012-06-12 2012-11-07 上海方正数字出版技术有限公司 一种磁盘空间管理方法和装置
CN103338208A (zh) * 2013-07-16 2013-10-02 五八同城信息技术有限公司 一种sql注入防御的方法和系统
CN103530427A (zh) * 2013-11-04 2014-01-22 北京京东尚科信息技术有限公司 一种基于多数据库的动态切换方法和装置
CN103780614A (zh) * 2014-01-21 2014-05-07 金华比奇网络技术有限公司 一种基于模拟攻击扩展的sql注入漏洞挖掘方法
CN105491063A (zh) * 2015-12-30 2016-04-13 深圳市深信服电子科技有限公司 防御网络入侵的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JUSTIN CLARKE: "《SQL注入攻击与防御(第2版)》", 31 October 2013 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108009427A (zh) * 2017-11-29 2018-05-08 北京安华金和科技有限公司 一种针对数据库漏洞规则的快速检索方法
CN108009427B (zh) * 2017-11-29 2021-01-26 北京安华金和科技有限公司 一种针对数据库漏洞规则的快速检索方法
CN108804554A (zh) * 2018-05-22 2018-11-13 上海达梦数据库有限公司 一种数据库查询方法、装置、服务器和存储介质
CN108804554B (zh) * 2018-05-22 2021-03-05 上海达梦数据库有限公司 一种数据库查询方法、装置、服务器和存储介质
CN109063013A (zh) * 2018-07-11 2018-12-21 北京安数云信息技术有限公司 一种数据库行为操作阻断方法和装置
CN112804261A (zh) * 2021-03-19 2021-05-14 北京安华金和科技有限公司 一种数据转发控制方法、装置、存储介质及电子装置

Similar Documents

Publication Publication Date Title
CN106845237A (zh) 一种基于sql语句的sql注入风险评估方法
Garg et al. Statistical vertical reduction‐based data abridging technique for big network traffic dataset
CN103944915B (zh) 一种工业控制系统威胁检测防御装置、系统及方法
Prabakar et al. An efficient technique for preventing SQL injection attack using pattern matching algorithm
US20180075240A1 (en) Method and device for detecting a suspicious process by analyzing data flow characteristics of a computing device
CN110213226B (zh) 基于风险全要素辨识关联的网络攻击场景重建方法及系统
CN103226675B (zh) 一种分析入侵行为的溯源系统及方法
CN103218561B (zh) 一种保护浏览器的防篡改方法和装置
CN101902441A (zh) 一种可实现序列攻击事件检测的入侵检测方法
WO2005101720A3 (en) Method and system for distinguishing network threats from false positives
CN109190380A (zh) 基于web指纹实现批量站点漏洞快速检测的方法及系统
EP3531324B1 (en) Identification process for suspicious activity patterns based on ancestry relationship
TW202112110A (zh) 攻擊路徑偵測方法、攻擊路徑偵測系統及非暫態電腦可讀取媒體
CN101540704B (zh) 不可信dbms恶意入侵检测系统及方法
CN106815229A (zh) 数据库虚拟补丁防护方法
CN106850675A (zh) 一种网络攻击行为的确定方法及装置
CN107302530B (zh) 一种基于白名单的工控系统攻击检测装置及其检测方法
CN104901962A (zh) 一种网页攻击数据的检测方法及装置
CN103685233B (zh) 一种基于Windows内核驱动的木马监测方法
CN103473353A (zh) 面向Web安全的数据库安全防护方法和系统
CN105069158A (zh) 数据挖掘方法及系统
KR102311997B1 (ko) 인공지능 행위분석 기반의 edr 장치 및 방법
Rao et al. Machine learning proposed approach for detecting database intrusions in RBAC enabled databases
CN103825875A (zh) 一种疫苗接种策略的虚拟机检测方法
Chen et al. A practical real-time authentication system with Identity Tracking based on mouse dynamics

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170613

WD01 Invention patent application deemed withdrawn after publication