一种SQL命令注入的检测方法及系统技术方案

技术编号:16301500 阅读:46 留言:0更新日期:2017-09-26 19:36
本申请公开了一种SQL命令注入的检测方法,包括:采集提交给业务端的请求数据;采集业务端到数据库端的数据库协议流量,并从数据库协议流量中提取注入SQL命令段;判断是否能在请求数据中检测到注入SQL命令段,若检测到所述SQL命令段,则存在SQL命令注入。该方法能够在无法避免外部命令中含有SQL命令注入的情况下,以一种更有效、准确率更高的,且无须频繁更新的SQL命令注入的检测方法,检测到外部命令中被注入的SQL命令,保障企业后台数据库中数据的安全。本申请还公开了一种SQL命令注入的检测系统,具有上述有益效果。

Method and system for detecting SQL command injection

The invention discloses a detection method, a SQL command injection includes: acquisition request data submitted to the business end; acquisition service end to end database protocol traffic database, and extract into the SQL command section from the database protocol traffic; determine whether can detect the injection in SQL command request data, if detected the SQL command, there is a SQL command injection. This method can not avoid the external command containing SQL command injection conditions in a more effective, more accurate, and no detection method for frequent updates to the SQL command injection, detected by injecting external command in the SQL command, data security database security in the enterprise. The invention also discloses a detection system of SQL command injection, which has the above beneficial effect.

【技术实现步骤摘要】
一种SQL命令注入的检测方法及系统
本申请涉及数据检测
,特别涉及一种SQL命令注入的检测方法及系统。
技术介绍
在当今互联网时代,越来越多的企业将业务迁移到互联网上,而众多的企业业务应用主要是以WEB方式交互实现的,而通过WEB方式进行交互的数据也通过这种方式进入业务系统,最终被保存在企业的后台数据库中,对于以开发WEB应用软件为主的企业,后台数据库中数据的重要性不言而喻。而通过WEB实现交互固然有其好的一面,但同时也存在潜在的风险。其中,一些恶意攻击者意图躲避后台程序开发人员的注意,在通过WEB方式提交的表单、输入域名以及页面请求的命令中插入SQL(StructuredQueryLanguage,中文名为:结构化查询语言)命令的字符串,利用WEB应用程序的漏洞将恶意的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模板附加疑似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命令注入的检测方法来检测到外部命令中被注入的SQL命令,得以更好的保障企业后台数据库中数据的安全。本申请同时还提供了一种SQL命令注入的检测系统,具有上述有益效果,在此不再赘述。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其它的附图。图1为本申请实施例所提供的一种SQL命令注入的检测方法的流程图;图2为本申请实施例所提供的另一种SQL命令注入的检测方法的流程图;图3为本申请实施例所提供的又一种SQL命令注入的检测方法的流程图;图4为本申请实施例所提供的再一种SQL命令注入的检测方法的流程图;图5为本申请实施例所提供的还一种SQL命令注入的检测方法的流程图;图6为本申请实施例所提供的一种SQL命令注入的检测方法中双端匹配检测原理图;图7为本申请实施例所提供的一种SQL命令注入的检测系统的结构图。具体实施方式本申请的核心是提供一种SQL命令注入的检测方法及系统,在无法避免外部命令中含有SQL命令注入的情况下,以一种更有效、准确率更高的,本文档来自技高网
...
一种SQL命令注入的检测方法及系统

【技术保护点】
一种SQL命令注入的检测方法,其特征在于,包括:采集提交给业务端的请求数据;采集所述业务端到数据库端的数据库协议流量,并从所述数据库协议流量中提取注入SQL命令段;判断是否能在所述请求数据中检测到所述注入SQL命令段,若检测到所述注入SQL命令段,则存在SQL命令注入。

【技术特征摘要】
1.一种SQL命令注入的检测方法,其特征在于,包括:采集提交给业务端的请求数据;采集所述业务端到数据库端的数据库协议流量,并从所述数据库协议流量中提取注入SQL命令段;判断是否能在所述请求数据中检测到所述注入SQL命令段,若检测到所述注入SQL命令段,则存在SQL命令注入。2.根据权利要求1所述的检测方法,其特征在于,从所述数据库协议流量中提取注入SQL命令段,包括:从所述数据库协议流量中提取SQL命令;对所述SQL命令进行模板化处理,得到SQL模板,并对每两个所述SQL模板进行对比,得到比较结果;根据所述比较结果从所述SQL模板中提取所述注入SQL命令段。3.根据权利要求2所述的检测方法,其特征在于,对所述SQL命令进行模板化处理,得到SQL模板,并对每两个所述SQL模板进行对比,得到比较结果,包括:对第一SQL命令进行所述模板化处理,得到SQL基线模板;对除所述第一SQL外的其余所述SQL命令进行所述模板化处理,得到新SQL模板;对所述SQL基线模板与所述新SQL模板均以最小单位进行拆分,分别得到第一集合和第二集合;对所述第一集合中的最小单位与所述第二集合中的最小单位执行匹配操作,得到匹配比例;对所述匹配比例与阈值进行对比,得到比较结果。4.根据权利要求3所述的检测方法,其特征在于,对所述匹配比例与阈值进行对比,得到比较结果,包括:判断所述匹配比例是否超过阈值;若所述匹配比例超过所述阈值,则对所述新SQL模板附加疑似SQL注入风险的标记。5.根据权利要求4所述的检测方法,其特征在于,根据所述比较结果从所述SQL模板中提取所述注入SQL命令段,包括:从被附加所述标记的所述新SQL模板中提取所述注入SQL命令段。6.一种SQL命令注入的检测系统...

【专利技术属性】
技术研发人员:陆明友
申请(专利权)人:深信服科技股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1