CN107566363A - 一种基于机器学习的sql注入攻击防护方法 - Google Patents

一种基于机器学习的sql注入攻击防护方法 Download PDF

Info

Publication number
CN107566363A
CN107566363A CN201710765208.6A CN201710765208A CN107566363A CN 107566363 A CN107566363 A CN 107566363A CN 201710765208 A CN201710765208 A CN 201710765208A CN 107566363 A CN107566363 A CN 107566363A
Authority
CN
China
Prior art keywords
sql
sql statement
firewall box
model
database firewall
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
CN201710765208.6A
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.)
DBAPPSecurity Co Ltd
Original Assignee
DBAPPSecurity 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 DBAPPSecurity Co Ltd filed Critical DBAPPSecurity Co Ltd
Priority to CN201710765208.6A priority Critical patent/CN107566363A/zh
Publication of CN107566363A publication Critical patent/CN107566363A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种基于机器学习的SQL注入攻击防护方法,在客户端和数据库服务器间配置数据库防火墙设备,定义学习时间,利用数据库防火墙设备抓取并解析访问流量包;在学习时间内采集并分析SQL语句,构建SQL语句模型库;利用SQL语句模型库对SQL语句进行检测。本发明将学习的SQL语句模型化,最终形成一个较完整的可信SQL语句模型库,当请求的SQL操作语句模型不在可信模型库中,则判定存在SQL注入风险的操作,阻断或警告。本发明不存在改动语句就能绕过检测的风险,并能支持C/S架构,只要管理员在生成可信模型库时做好安全管控,并对可信模型库做好分析与管控,使用该方法对SQL注入能达到全方位100%的阻断或警告。

Description

一种基于机器学习的SQL注入攻击防护方法
技术领域
本发明涉及数字信息的传输,例如电报通信的技术领域,特别涉及一种网络技术、数据库安全防护技术领域的基于机器学习的SQL注入防护方法。
背景技术
SQL是结构化查询语言(Structured Query Language)的简称,是一种特殊目的的编程语言,作为数据库查询和程序设计语言,其被用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
SQL注入,是指通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,SQL注入是利用现有应用程序,将恶意的SQL命令注入到后台数据库引擎执行,它可以通过在Web表单中输入恶意SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。比如大量网站泄露VIP会员的密码,这大多就是通过在Web表单中输入恶意SQL语句、递交查询字符而发生的,这类表单特别容易受到SQL注入式攻击。
传统SQL注入的防护主要从软件研发层面和WEB层面进行。
软件研发层面防护来说,这是指在开发过程中使用“检查参数格式”、“过滤特殊字符”或“绑定参数”等方法使SQL注入无法生效。然而,这种防护依赖于开发人员的编码习惯,因此存在一定的隐患,如开发人员不遵循“外部数据不可信”原则,或者故意留有后门,存在不可控风险。
WEB层面防护来说,是指事前进行WEB漏洞扫描检测、事中使用WEB防火墙阻断的防护方案。这套方案能有效的解决一部分SQL注入攻击,但在业务复杂系统中,扫描工具经常扫描不全面;WEB防火墙使用的匹配与过滤防护方式存在绕过的风险,且存在不支持C/S架构等不匹配之处。
发明内容
本发明的主要目的在于克服现有网络技术、数据库安全防护技术足,提供一种基于机器学习的SQL注入攻击防护方法。
本发明所采用的技术方案是,一种基于机器学习的SQL注入攻击防护方法,所述方法包括以下步骤:
步骤1:在应用端和数据库服务器间配置数据库防火墙设备;
步骤2:将数据库防火墙设备切换为学习模式,配置学习时间;
步骤3:利用数据库防火墙设备抓取并解析访问流量包;采集SQL语句;
步骤4:分析采集到的SQL语句,构建SQL语句模型库;
步骤5:若学习时间未达成,则重复步骤3、4,否则,数据库防火墙设备切换为防护模式,进行下一步;
步骤6:利用构建的SQL语句模型库,对SQL请求进行检测,对SQL注入攻击进行阻断或警告。
优选地,所述步骤1中,数据库防火墙设备根据预定义的禁止和许可策略让符合预定义标准的SQL操作通过,阻断不符合预定义标准的SQL。
优选地,所述步骤3中,利用数据库防火墙设备抓取并解析访问流量包包括以下步骤:
步骤3.1:在数据库防火墙设备中,配置数据库对象的IP和端口;
步骤3.2:数据库防火墙设备根据IP和端口抓取客户端发送至数据库的访问流量包;
步骤3.3:数据库防火墙设备对访问流量包进行解析,得到SQL语句。
优选地,所述步骤4中,包括以下步骤:
步骤4.1:将步骤3采集的SQL语句的参数部分删除或使用特征符号替换,生成SQL语句模型;
步骤4.2:判断SQL语句模型是否可信,若是,进行下一步,若否,删除;
步骤4.3:将可信的SQL语句模型存储至数据库防火墙设备的SQL语句模型库中。
优选地,所述步骤4.1中,所述SQL语句模型包括语句特征结构。
优选地,所述SQL语句模型库包括SQL模型ID、SQL模型、操作类型、表对象。
优选地,所述操作类型包括增加、删除、修改和查询。
优选地,所述步骤6中,SQL注入攻击的防护包括以下步骤:
步骤6.1:数据库防火墙设备接收来自客户端的SQL语句请求;
步骤6.2:数据库防火墙设备对SQL语句的参数部分删除或使用特征符号替换,生成待比对SQL语句模型;
步骤6.3:将待比对SQL语句模型与SQL语句模型库中的SQL语句模型进行逐次比对;
步骤6.4:若存在结构一致的SQL语句模型,则允许当前SQL语句执行,否则,判断当前SQL语句为SQL注入,进行阻断或警告。
本发明通过将学习的SQL语句模型化,最终形成一个较完整的可信SQL语句模型库,在SQL注入攻击防护过程中,当请求的SQL操作语句模型不在可信模型库中,则判定该SQL操作是存在SQL注入风险的操作,该SQL操作将会被阻断或警告。
本发明不存在改动语句就能绕过检测的风险,并能支持C/S架构,只要管理员在生成可信模型库时做好安全管控,并对可信模型库做好分析与管控,使用该方法对SQL注入能达到全方位100%的阻断或警告。
附图说明
图1为本发明的方法流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合实施例,对技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明涉及一种基于机器学习的SQL注入攻击防护方法,针对固化的数据库结构,内容包括但不限于:数据表、字段、索引、记录,本发明通过去参数化方法构建SQL语句模型库,对SQL语句进行模板化处理。
所述方法包括以下步骤。
步骤1:在应用端和数据库服务器间配置数据库防火墙设备。
所述步骤1中,数据库防火墙设备根据预定义的禁止和许可策略让符合预定义标准的SQL操作通过,阻断不符合预定义标准的SQL。
本发明中,数据库防火墙设备部署在应用系统与数据库服务器之间,通过SQL协议分析,根据预定义的禁止和许可策略让合法的SQL操作通过,阻断非法违规操作,形成数据库的外围防御圈,实现SQL危险操作的主动预防、实时审计。
步骤2:将数据库防火墙设备切换为学习模式,配置学习时间。
本发明中,学习时间为数据库防护墙设备在学习模式下时的学习时长。
步骤3:利用数据库防火墙设备抓取并解析访问流量包;采集SQL语句。
所述步骤3中,利用数据库防火墙设备抓取并解析访问流量包包括以下步骤:
步骤3.1:在数据库防火墙设备中,配置数据库对象的IP和端口;
步骤3.2:数据库防火墙设备根据IP和端口抓取客户端发送至数据库的访问流量包;
步骤3.3:数据库防火墙设备对访问流量包进行解析,得到SQL语句。
步骤4:分析采集到的SQL语句,构建SQL语句模型库。
步骤4.1:将步骤3采集的SQL语句的参数部分删除或使用特征符号替换,生成SQL语句模型;
步骤4.2:判断SQL语句模型是否可信,若是,进行下一步,若否,删除;
步骤4.3:将可信的SQL语句模型存储至数据库防火墙设备的SQL语句模型库中。
所述步骤4.1中,所述SQL语句模型包括语句特征结构。
所述SQL语句模型库包括SQL模型ID、SQL模型、操作类型、表对象和模式。
所述操作类型包括增加、删除、修改和查询。
所述模式包括学习模式和SQL注入防护模式。
本发明中,确切来说,步骤4.1中的SQL语句模型是一条没有参数仅有语句特征结构的语句。
本发明中,在学习周期内,学习到的每一条可信SQL语句模型都会被存储至SQL语句模型库中,最终会形成一个较完整的可信的SQL语句模型库,在学习周期内若学习到不可信的SQL语句模型,系统管理员可以手动删除该模型。
本发明中,可信的判断标准为:由于学习模式的时候,是采用防护规则进行防护的,即SQL语句通过防护规则,可认为是可信的。
步骤5:若学习时间未达成,则重复步骤3、4,否则,数据库防火墙设备切换为防护模式,进行下一步。
本发明中,数据库防火墙设备包括种模式:学习模式、防护模式。
本发明中,当数据库防火墙设备处于学习模式时,数据库防火墙通过规则库进行防护。
本发明中,当数据库防火墙设备处于防护模式时,数据库防火墙通过学习到的SQL语句模型库和规则库进行防护。
步骤6:利用构建的SQL语句模型库,对SQL请求进行检测,对SQL注入攻击进行阻断或警告。
所述步骤6中,SQL注入攻击的防护包括以下步骤:
步骤6.1:数据库防火墙设备接收来自客户端的SQL语句请求;
步骤6.2:数据库防火墙设备对SQL语句的参数部分删除或使用特征符号替换,生成待比对SQL语句模型;
步骤6.3:将待比对SQL语句模型与SQL语句模型库中的SQL语句模型进行逐次比对;
步骤6.4:若存在结构一致的SQL语句模型,则允许当前SQL语句执行,否则,判断当前SQL语句为SQL注入,进行阻断或警告。
本发明中,对于特征符号没有特殊要求,但都统一为一种约定模式,模型库中所有参数都用这种方式替换,对SQL语句的参数部分删除或使用特征符号替换的原则可以依据技术人员对于技术的实现需求自行设置原则。
本发明中,由于SQL注入会破坏原有语句的结构,因此,存在SQL注入的语句生成的模型就不可能与原语句的模型(模型库中的SQL语句模型)相同。
本发明中,举例来说,在学习过程中,客户端向数据库发送SQL操作请求:select *from 表A where 字段1="123";本发明的方法将该SQL语句去参数模型化后形成一条SQL语句模型:select * from a where aa=:1,并存储在模型库中;学习结束后,进入检测阶段,假设当一条具有SQL注入风险的SQL请求被发起:select * from a where aa="1" or "1"="1",则此条SQL语句会被模型化为:select * from a where a=:1 or "1"=:2,此条SQL语句模型实际上与模型库中的select * from a where aa=:1的SQL语句模型是不一致的,结构发生了变化,多出了or "1"= "1";因此本发明系统会判断此条SQL请求为SQL注入,进行阻断或警告操作。

Claims (8)

1.一种基于机器学习的SQL注入攻击防护方法,其特征在于:所述方法包括以下步骤:
步骤1:在应用端和数据库服务器间配置数据库防火墙设备;
步骤2:将数据库防火墙设备切换为学习模式,配置学习时间;
步骤3:利用数据库防火墙设备抓取并解析访问流量包;采集SQL语句;
步骤4:分析采集到的SQL语句,构建SQL语句模型库;
步骤5:若学习时间未达成,则重复步骤3、4,否则,数据库防火墙设备切换为防护模式,进行下一步;
步骤6:利用构建的SQL语句模型库,对SQL请求进行检测,对SQL注入攻击进行阻断或警告。
2.根据权利要求1所述的一种基于机器学习的SQL注入攻击防护方法,其特征在于:所述步骤1中,数据库防火墙设备根据预定义的禁止和许可策略让符合预定义标准的SQL操作通过,阻断不符合预定义标准的SQL。
3.根据权利要求1所述的一种基于机器学习的SQL注入攻击防护方法,其特征在于:所述步骤3中,利用数据库防火墙设备抓取并解析访问流量包包括以下步骤:
步骤3.1:在数据库防火墙设备中,配置数据库对象的IP和端口;
步骤3.2:数据库防火墙设备根据IP和端口抓取客户端发送至数据库的访问流量包;
步骤3.3:数据库防火墙设备对访问流量包进行解析,得到SQL语句。
4.根据权利要求1所述的一种基于机器学习的SQL注入攻击防护方法,其特征在于:所述步骤4中,包括以下步骤:
步骤4.1:将步骤3采集的SQL语句的参数部分删除或使用特征符号替换,生成SQL语句模型;
步骤4.2:判断SQL语句模型是否可信,若是,进行下一步,若否,删除;
步骤4.3:将可信的SQL语句模型存储至数据库防火墙设备的SQL语句模型库中。
5.根据权利要求4所述的一种基于机器学习的SQL注入攻击防护方法,其特征在于:所述步骤4.1中,所述SQL语句模型包括语句特征结构。
6.根据权利要求4所述的一种基于机器学习的SQL注入攻击防护方法,其特征在于:所述SQL语句模型库包括SQL模型ID、SQL模型、操作类型、表对象。
7.根据权利要求6所述的一种基于机器学习的SQL注入攻击防护方法,其特征在于:所述操作类型包括增加、删除、修改和查询。
8.根据权利要求1所述的一种基于机器学习的SQL注入攻击防护方法,其特征在于:所述步骤6中,SQL注入攻击的防护包括以下步骤:
步骤6.1:数据库防火墙设备接收来自客户端的SQL语句请求;
步骤6.2:数据库防火墙设备对SQL语句的参数部分删除或使用特征符号替换,生成待比对SQL语句模型;
步骤6.3:将待比对SQL语句模型与SQL语句模型库中的SQL语句模型进行逐次比对;
步骤6.4:若存在结构一致的SQL语句模型,则允许当前SQL语句执行,否则,判断当前SQL语句为SQL注入,进行阻断或警告。
CN201710765208.6A 2017-08-30 2017-08-30 一种基于机器学习的sql注入攻击防护方法 Pending CN107566363A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710765208.6A CN107566363A (zh) 2017-08-30 2017-08-30 一种基于机器学习的sql注入攻击防护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710765208.6A CN107566363A (zh) 2017-08-30 2017-08-30 一种基于机器学习的sql注入攻击防护方法

Publications (1)

Publication Number Publication Date
CN107566363A true CN107566363A (zh) 2018-01-09

Family

ID=60978412

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710765208.6A Pending CN107566363A (zh) 2017-08-30 2017-08-30 一种基于机器学习的sql注入攻击防护方法

Country Status (1)

Country Link
CN (1) CN107566363A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108763887A (zh) * 2018-05-23 2018-11-06 腾讯科技(深圳)有限公司 数据库操作请求验证方法、装置、服务器及存储介质
CN108959967A (zh) * 2018-07-16 2018-12-07 杭州安恒信息技术股份有限公司 一种防数据库敏感数据泄漏的方法及系统
CN109063013A (zh) * 2018-07-11 2018-12-21 北京安数云信息技术有限公司 一种数据库行为操作阻断方法和装置
CN109324985A (zh) * 2018-09-03 2019-02-12 中新网络信息安全股份有限公司 一种基于机器学习的自动适应场景的sql注入识别方法
CN110059480A (zh) * 2019-03-13 2019-07-26 深圳壹账通智能科技有限公司 网络攻击行为监控方法、装置、计算机设备及存储介质
CN110414219A (zh) * 2019-07-24 2019-11-05 长沙市智为信息技术有限公司 基于门控循环单元与注意力机制的注入攻击检测方法
CN112395637A (zh) * 2019-08-15 2021-02-23 奇安信安全技术(珠海)有限公司 数据库防护方法及装置、存储介质、计算机设备
CN112989403A (zh) * 2019-12-18 2021-06-18 拓尔思天行网安信息技术有限责任公司 一种数据库破坏的检测方法、装置、设备及存储介质
CN113660239A (zh) * 2021-08-10 2021-11-16 中电积至(海南)信息技术有限公司 一种基于加盐与前端waf防护耦合的防sql注入系统
CN114491649A (zh) * 2022-04-07 2022-05-13 北京安华金和科技有限公司 一种数据库备案访问控制方法和系统
CN117688555A (zh) * 2024-02-02 2024-03-12 深圳昂楷科技有限公司 数据库的控制方法、装置、终端设备以及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101370008A (zh) * 2007-08-13 2009-02-18 杭州安恒信息技术有限公司 Sql注入web攻击的实时入侵检测系统
CN101609493A (zh) * 2009-07-21 2009-12-23 国网电力科学研究院 一种基于自学习的数据库sql注入防护方法
CN102413127A (zh) * 2011-11-09 2012-04-11 中国电力科学研究院 一种数据库综合安全防护方法
CN106991322A (zh) * 2016-01-21 2017-07-28 北京启明星辰信息安全技术有限公司 一种结构化查询语言sql注入攻击的检测方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101370008A (zh) * 2007-08-13 2009-02-18 杭州安恒信息技术有限公司 Sql注入web攻击的实时入侵检测系统
CN101609493A (zh) * 2009-07-21 2009-12-23 国网电力科学研究院 一种基于自学习的数据库sql注入防护方法
CN102413127A (zh) * 2011-11-09 2012-04-11 中国电力科学研究院 一种数据库综合安全防护方法
CN106991322A (zh) * 2016-01-21 2017-07-28 北京启明星辰信息安全技术有限公司 一种结构化查询语言sql注入攻击的检测方法和装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108763887A (zh) * 2018-05-23 2018-11-06 腾讯科技(深圳)有限公司 数据库操作请求验证方法、装置、服务器及存储介质
CN109063013A (zh) * 2018-07-11 2018-12-21 北京安数云信息技术有限公司 一种数据库行为操作阻断方法和装置
CN108959967A (zh) * 2018-07-16 2018-12-07 杭州安恒信息技术股份有限公司 一种防数据库敏感数据泄漏的方法及系统
CN109324985A (zh) * 2018-09-03 2019-02-12 中新网络信息安全股份有限公司 一种基于机器学习的自动适应场景的sql注入识别方法
CN110059480A (zh) * 2019-03-13 2019-07-26 深圳壹账通智能科技有限公司 网络攻击行为监控方法、装置、计算机设备及存储介质
CN110414219A (zh) * 2019-07-24 2019-11-05 长沙市智为信息技术有限公司 基于门控循环单元与注意力机制的注入攻击检测方法
CN112395637A (zh) * 2019-08-15 2021-02-23 奇安信安全技术(珠海)有限公司 数据库防护方法及装置、存储介质、计算机设备
CN112989403A (zh) * 2019-12-18 2021-06-18 拓尔思天行网安信息技术有限责任公司 一种数据库破坏的检测方法、装置、设备及存储介质
CN112989403B (zh) * 2019-12-18 2023-09-29 拓尔思天行网安信息技术有限责任公司 一种数据库破坏的检测方法、装置、设备及存储介质
CN113660239A (zh) * 2021-08-10 2021-11-16 中电积至(海南)信息技术有限公司 一种基于加盐与前端waf防护耦合的防sql注入系统
CN114491649A (zh) * 2022-04-07 2022-05-13 北京安华金和科技有限公司 一种数据库备案访问控制方法和系统
CN117688555A (zh) * 2024-02-02 2024-03-12 深圳昂楷科技有限公司 数据库的控制方法、装置、终端设备以及存储介质

Similar Documents

Publication Publication Date Title
CN107566363A (zh) 一种基于机器学习的sql注入攻击防护方法
CN109302380B (zh) 一种安全防护设备联动防御策略智能决策方法及系统
Staniford-Chen et al. GrIDS-a graph based intrusion detection system for large networks
Friedberg et al. Combating advanced persistent threats: From network event correlation to incident detection
US8667121B2 (en) System and method for managing data and policies
Yi et al. Overview on attack graph generation and visualization technology
US20050273851A1 (en) Method and apparatus providing unified compliant network audit
Coppolino et al. Integration of a System for Critical Infrastructure Protection with the OSSIM SIEM Platform: A dam case study
Frye et al. An ontology-based system to identify complex network attacks
Meng et al. Adaptive non-critical alarm reduction using hash-based contextual signatures in intrusion detection
Toker et al. Mitre ics attack simulation and detection on ethercat based drinking water system
US20060248591A1 (en) Information security auditing and incident investigation system
KR102250147B1 (ko) 네트워크 보안 기능 인터페이스를 위한 보안 정책 번역
Ramaki et al. Towards event aggregation for reducing the volume of logged events during IKC stages of APT attacks
Sung et al. Using system dynamics to investigate the effect of the information medium contact policy on the information security management
Upadhyay et al. SQL injection avoidance for protected database with ASCII using SNORT and honeypot
Xu et al. Identification of ICS Security Risks toward the Analysis of Packet Interaction Characteristics Using State Sequence Matching Based on SF‐FSM
Bhattacharjee et al. Fuzzy Approach for Intrusion Detection System: A Survey.
Greco et al. Advanced widespread behavioral probes against lateral movements
Montanari et al. Multi-aspect security configuration assessment
Hilker Next challenges in bringing artificial immune systems to production in network security
Kumar et al. Network Security Threats and Protection Models
Zhao et al. SDNVD-SCADA: A formalized vulnerability detection platform in SDN-enabled SCADA system
Seminaro Internet of Things Protection: Mitigating IoT Threats
Seo et al. An application of blackboard architecture for the coordination among the security systems

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: 20180109