CN106845237A - 一种基于sql语句的sql注入风险评估方法 - Google Patents
一种基于sql语句的sql注入风险评估方法 Download PDFInfo
- 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
Links
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
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注入获取数据库信息的方法层出不穷,为了保证数据库的安全,可以通过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。
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)
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)
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 | 深圳市深信服电子科技有限公司 | 防御网络入侵的方法及装置 |
-
2017
- 2017-01-23 CN CN201710048581.XA patent/CN106845237A/zh active Pending
Patent Citations (10)
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)
Title |
---|
JUSTIN CLARKE: "《SQL注入攻击与防御(第2版)》", 31 October 2013 * |
Cited By (6)
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 |